爱意满满的作品展示区。
lightionight

我 vibe coding 了一个原生的 Surge 配置管理工具:规则、模块和多端 Profile 一起管

  •  
  •   lightionight · 1 day ago · 645 views

    平时用 Surge 的朋友应该都遇到过这些问题:

    规则源越来越多,顺序不好整理;
    模块散落在不同地方,更新起来很麻烦;
    Mac 、iPhone 、iPad 各有一份配置,改一个地方还得惦记另外几份;
    规则一旦选择内联,生成的配置文件很快就会变得又大又难维护。

    所以我 vibe 了一个 macOS 原生工具——Surge Shallow

    它不是代理客户端,也不会替代 Surge 。简单来说,它更像是一个 Surge 配置管理台:把平时需要手动维护的规则源、Proxy 、Proxy Group 、平台差异和模块集中到一个地方,检查通过后再生成可以直接交给 Surge 使用的配置文件。

    目前主要支持这些功能:

    • 集中管理多个规则源,可以调整顺序、策略和适用平台;
    • Surge Ruleset 默认以 RULE-SET URL 的方式保留,不下载、不展开、不合并去重,生成的 Profile 会小很多;
    • 如果遇到 Clash Payload 、纯域名列表或者需要转换格式的来源,也可以单独切换成下载并内联合并;
    • 可以导入已有的 Surge .conf / .dconf,先查看迁移结果,确认后再应用;
    • 原生管理 Proxy 和 Proxy Group ,不用一直手写配置;
    • macOS 与 iOS/iPadOS 的公共配置可以复用,只需要单独维护平台差异;
    • 支持 Surge 、Loon 、Quantumult X 的模块来源,并转换成 Surge 可以使用的模块;
    • 模块参数、脚本、策略、MITM 和自定义规则都可以在界面里调整;
    • 生成结果会先做检查,通过之后再写入 Surge 的 iCloud 目录;
    • Mac 、iPhone 和 iPad 可以继续通过 Surge 自己的 iCloud 配置同步使用。

    我自己比较在意的一点,是它不会为了“方便管理”把所有远端 Ruleset 都塞进最终配置。

    现在新增规则源时,默认就是“外部 Ruleset 引用”。最终 Profile 只保存一条类似下面这样的配置:

    RULE-SET,https://example.com/rules.list,PROXY
    

    规则正文仍然由 Surge 加载,这样配置文件不会因为规则越来越多而不断膨胀。只有确实需要转换、内联或者内容级去重时,才需要主动切换到内联合并模式。

    界面使用 SwiftUI 编写,是一个真正的 macOS 原生应用。规则、模块、Profile 和设置共用同一套导航与应用状态,不是简单把另一个项目的页面嵌进来。

    目前最新版本是 Surge Shallow 2.0.0,适用于 macOS 26 。

    项目已经开源,感兴趣的话可以下载试试,也欢迎提交 Issue 、建议或者 PR:

    GitHub:
    https://github.com/funnythingfunnylove/Surge-Shallow

    最新版下载:
    https://github.com/funnythingfunnylove/Surge-Shallow/releases/tag/v2.0.0

    如果你平时也在手动维护一大堆 Surge 规则、模块和多端配置,希望 Surge Shallow 能帮你少复制几次配置、少检查几个文件,把时间留给真正需要折腾的东西。另外感谢 EEliberto/SurgeRelay-macOS ,提供了模块管理的思路 借鉴了一下

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2900 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:01 · PVG 19:01 · LAX 04:01 · JFK 07:01
    ♥ Do have faith in what you're doing.