English | 中文
This project is a subscription converter aiming to transform subscriptions into mihomo-compatible configs.
We ship two built-in templates in the root template/ directory: zju.yaml and general.yaml. The Web UI defaults to zju, and the API does the same when the template query parameter is omitted. The repository includes config.yaml.example as the default runtime config.
- Support Clash config and V2ray format base64 links (i.e. the original subscription does not have to be Clash)
- A Web-UI (thanks to @Musanico)
- Rules based on ACL
- Nodes auto update based on proxy-provider
- Rules auto update based on rule-provider
- Support proxy rule-provider to prevent failure to get rules from GitHub
- Support multiple airports
- Display remaining traffic and total traffic (only useful when you use a single airport, requires your airport and Clash to support it at the same time, Clash for Windows, Clash Verge, Stash, Clash Meta for Android, etc. are known to support it)
- Implement the api of subscription conversion to proxy-provider (normal people won't use it)
- Support template files
docs (both Chinese and English, but machine translated)
subconv/: FastAPI backend and converter logicapi.py: thin entrypoint used by the CLI and Vercelconfig.yaml.example: example runtime config; put user changes inconfig.yamltemplate/: runtime YAML templates (zju.yamlis the default,general.yamlis the alternate)mainpage/: Vue/Vite frontenddocs/: VitePress documentation site, deployed separately via GitHub Pages
Local commands (requires uv and bun):
- Backend:
uv sync, optionally copyconfig.yaml.exampletoconfig.yaml(recommended; the bundleddocker-compose.ymlrequires it), edit it if needed, thenuv run python api.py - Frontend:
cd mainpage && bun install && bun run dev - Docs:
cd docs && bun install && bun run dev
Clash Core from Dreamacro (original Clash core) is no longer supported. It's recommended to use mihomo instead.
Deploy by yourself according to docs
Welcome issue and PR. If you want to contribute, please create a new branch from main and then create a PR to dev, or you can merge main into dev first and then make changes in dev, and finally create a PR to dev branch.
This project is distributed under MPL-2.0 License