[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82365":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":15,"starSnapshotCount":15,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},82365,"subconverter","tindy2013\u002Fsubconverter","tindy2013","Utility to convert between various subscription format",null,"C++",16711,3804,102,234,0,21,61,67,63,45,"GNU General Public License v3.0",false,"master",true,[26,27,28,29,30,31,32,33,34,35,5,36,37,38],"clash","clashr","emoji","gist","quantumult","quantumultx","regular-expression","rename","ss","ssr","surfboard","surge","v2ray","2026-06-12 02:04:25","# subconverter\n\nUtility to convert between various proxy subscription formats.\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Factions\u002Fworkflows\u002Fbuild.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Factions)\n[![GitHub tag (latest SemVer)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Ftag\u002Ftindy2013\u002Fsubconverter.svg)](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Ftags)\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Ftindy2013\u002Fsubconverter.svg)](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Freleases)\n[![GitHub license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftindy2013\u002Fsubconverter.svg)](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Fblob\u002Fmaster\u002FLICENSE)\n\n[Docker README](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Fblob\u002Fmaster\u002FREADME-docker.md)\n\n[中文文档](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Fblob\u002Fmaster\u002FREADME-cn.md)\n\n- [subconverter](#subconverter)\n  - [Supported Types](#supported-types)\n  - [Quick Usage](#quick-usage)\n    - [Access Interface](#access-interface)\n    - [Description](#description)\n  - [Advanced Usage](#advanced-usage)\n  - [Auto Upload](#auto-upload)\n\n## Supported Types\n\n| Type         | As Source  | As Target    | Target Name |\n| ------------ | :--------: | :----------: | ----------- |\n| Clash        |     ✓      |      ✓       | clash       |\n| ClashR       |     ✓      |      ✓       | clashr      |\n| Quantumult   |     ✓      |      ✓       | quan        |\n| Quantumult X |     ✓      |      ✓       | quanx       |\n| Loon         |     ✓      |      ✓       | loon        |\n| SS (SIP002)  |     ✓      |      ✓       | ss          |\n| SS Android   |     ✓      |      ✓       | sssub       |\n| SSD          |     ✓      |      ✓       | ssd         |\n| SSR          |     ✓      |      ✓       | ssr         |\n| Surfboard    |     ✓      |      ✓       | surfboard   |\n| Surge 2      |     ✓      |      ✓       | surge&ver=2 |\n| Surge 3      |     ✓      |      ✓       | surge&ver=3 |\n| Surge 4      |     ✓      |      ✓       | surge&ver=4 |\n| V2Ray        |     ✓      |      ✓       | v2ray       |\n| Telegram-liked HTTP\u002FSocks 5 links |     ✓      |      ×       | Only as source |\n\nNotice:\n\n1. Shadowrocket users should use `ss`, `ssr` or `v2ray` as target.\n\n2. You can add `&remark=` to Telegram-liked HTTP\u002FSocks 5 links to set a remark for this node. For example:\n\n   - tg:\u002F\u002Fhttp?server=1.2.3.4&port=233&user=user&pass=pass&remark=Example\n\n   - https:\u002F\u002Ft.me\u002Fhttp?server=1.2.3.4&port=233&user=user&pass=pass&remark=Example\n\n\n---\n\n## Quick Usage\n\n> Using default groups and rulesets configuration directly, without changing any settings\n\n### Access Interface\n\n```txt\nhttp:\u002F\u002F127.0.0.1:25500\u002Fsub?target=%TARGET%&url=%URL%&config=%CONFIG%\n```\n\n### Description\n\n| Argument | Required | Example | Description |\n| -------- | :------: | :------ | ----------- |\n| target   | Yes      | clash   | Target subscription type. Acquire from Target Name in [Supported Types](#supported-types). |\n| url      | Yes      | https%3A%2F%2Fwww.xxx.com | Subscription to convert. Supports URLs and file paths. Process with [URLEncode](https:\u002F\u002Fwww.urlencoder.org\u002F) first. |\n| config   | No       | https%3A%2F%2Fwww.xxx.com | External configuration file path. Supports URLs and file paths. Process with [URLEncode](https:\u002F\u002Fwww.urlencoder.org\u002F) first. More examples can be found in [this](https:\u002F\u002Fgithub.com\u002Flzdnico\u002Fsubconverteriniexample) repository. |\n\nIf you need to merge two or more subscription, you should join them with '|' before the URLEncode process.\n\nExample:\n\n```txt\nYou have 2 subscriptions and you want to merge them and generate a Clash subscription:\n1. https:\u002F\u002Fdler.cloud\u002Fsubscribe\u002FABCDE?clash=vmess\n2. https:\u002F\u002Frich.cloud\u002Fsubscribe\u002FABCDE?clash=vmess\n\nFirst use '|' to separate 2 subscriptions:\nhttps:\u002F\u002Fdler.cloud\u002Fsubscribe\u002FABCDE?clash=vmess|https:\u002F\u002Frich.cloud\u002Fsubscribe\u002FABCDE?clash=vmess\n\nThen process it with URLEncode to get %URL%:\nhttps%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess\n\nThen fill %TARGET% and %URL% in Access Interface with actual values:\nhttp:\u002F\u002F127.0.0.1:25500\u002Fsub?target=clash&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess\n\nFinally subscribe this link in Clash and you are done!\n```\n\n---\n\n## Advanced Usage\n\nPlease refer to [中文文档](https:\u002F\u002Fgithub.com\u002Ftindy2013\u002Fsubconverter\u002Fblob\u002Fmaster\u002FREADME-cn.md#%E8%BF%9B%E9%98%B6%E7%94%A8%E6%B3%95).\n\n## Auto Upload\n\n> Upload Gist automatically\n\nAdd a [Personal Access Token](https:\u002F\u002Fgithub.com\u002Fsettings\u002Ftokens\u002Fnew) into [gistconf.ini](.\u002Fgistconf.ini) in the root directory, then add `&upload=true` to the local subscription link, then when you access this link, the program will automatically update the content to Gist repository.\n\nExample:\n\n```ini\n[common]\n;uncomment the following line and enter your token to enable upload function\ntoken = xxxxxxxxxxxxxxxxxxxxxxxx(Your Personal Access Token)\n```\n","subconverter 是一个用于不同代理订阅格式之间转换的工具。它支持包括Clash、Quantumult、Surge、V2Ray等在内的多种主流代理软件格式之间的相互转换，通过C++编写，具备高效处理能力和广泛的兼容性。利用正则表达式和重命名功能，用户可以自定义节点信息，同时支持自动上传至指定位置。此项目非常适合需要跨平台使用代理服务或希望统一管理多个代理订阅列表的用户，在维护个人网络环境安全与访问自由方面发挥重要作用。",2,"2026-06-11 04:08:28","high_star"]