Proxy subscription manager that bridges Surge with Mihomo (Clash.Meta), enabling Surge to use proxy protocols it doesn't natively support (SS, VMess, VLESS, Trojan, Hysteria2, etc.) via a single Mihomo process.
Surge's external-proxy feature spawns one process per node — unacceptable for 50–200 nodes. Surge Enhancer uses Mihomo as a single-process middleware with one SOCKS5 listener per node, so Surge connects to each as a regular socks5 proxy.
Surge → (socks5) → Mihomo (127.0.0.1:PORT) → (ss/vmess/...) → Remote Server
| Backend | Mihomo |
| Language | Rust |
| Build | cargo build --release |
- Multi-subscription support — fetch from multiple providers, each as a "group"
- Format auto-detection — Clash YAML (including flow mappings), base64-encoded URI lists, plain URI lists
- Mihomo config generation — merges proxies + listeners into your mihomo template
- Surge-compatible HTTP API —
policy-path=http://127.0.0.1:9300/surge/group/ProviderA - HTMX dashboard — view node status, trigger refreshes, test delays
- Scheduled refresh — periodically re-fetches subscriptions and reloads mihomo
- Regex filtering — include/exclude nodes by name pattern per group
- Disk-level subscription cache — falls back on fetch failure; only updated after successful parse
- CRUD API — add/update/delete groups at runtime
- Mihomo installed and available in
PATH
Download from Releases:
surge-enhancer-macos-arm64
cargo build --release- Create
config.yaml(seeconfig.example.yaml) - Prepare a mihomo template YAML with your DNS/rules
- Run:
surge-enhancer config.yaml- Point Surge to
http://127.0.0.1:9300/surge/group/YourGroup - Open
http://127.0.0.1:9300for the dashboard
MIT