explaingit

tindy2013/subconverter

Analysis updated 2026-06-24

16,547C++Audience · ops devopsComplexity · 3/5Setup · moderate

TLDR

Self-hosted utility that converts proxy subscription links between formats like Clash, Surge, Quantumult, V2Ray, and Shadowsocks via a local HTTP endpoint.

Mindmap

mindmap
  root((subconverter))
    Inputs
      Proxy subscription URLs
      Target format param
      Optional config rules
    Outputs
      Converted subscription
      Merged subscriptions
      Gist upload
    Use Cases
      Use one provider in another app
      Merge multiple subscriptions
      Auto publish to Gist
    Tech Stack
      C++
      Docker
      HTTP
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Convert a Clash subscription URL into a Surge or Quantumult X format for use on iOS or macOS.

USE CASE 2

Merge several proxy subscriptions into one combined link served from a local endpoint.

USE CASE 3

Run subconverter inside Docker on a home server so all your devices can rewrite subscriptions on demand.

USE CASE 4

Auto upload a converted subscription to a private GitHub Gist for easy sharing across devices.

What is it built with?

C++DockerHTTP

How does it compare?

tindy2013/subconverteraaronfeng753/waifu2x-extension-guiceph/ceph
Stars16,54716,54816,592
LanguageC++C++C++
Setup difficultymoderateeasyhard
Complexity3/53/55/5
Audienceops devopsgeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Easiest to run via Docker, otherwise expect to build the C++ binary or use a prebuilt release for your platform.

In plain English

subconverter is a utility that converts proxy subscription links between different formats. A proxy subscription is a URL that contains a list of server configurations for a proxy app, tools people use to route internet traffic through different servers. Different proxy apps use incompatible subscription formats, so if you have a subscription from one provider but want to use it in a different app, you normally can't. subconverter solves this by acting as a local conversion service. You run it on your own machine, and it exposes a simple web address you can call with a URL like: http://127.0.0.1:25500/sub?target=clash&url=<your subscription URL>. You tell it what format you want to convert to (the "target") and provide the original subscription URL, and it returns a converted subscription you can use in your preferred app. Supported formats include Clash, ClashR, Quantumult, Quantumult X, Loon, Surge (versions 2, 3, and 4), Shadowsocks (SS), ShadowsocksR (SSR), SSD, Surfboard, V2Ray, and Shadowrocket-compatible formats. Most of these can be used as both input and output. The tool also supports merging multiple subscriptions into one by joining the URLs together. An additional feature lets you automatically upload the converted subscription to a GitHub Gist (a way to share text snippets via GitHub) by adding an access token to the configuration file. The project is written in C++ and can also be run via Docker.

Copy-paste prompts

Prompt 1
Help me run tindy2013 subconverter in Docker and expose it on port 25500 of my home server.
Prompt 2
Build the subconverter URL that converts a V2Ray subscription to Clash format and applies rename rules.
Prompt 3
Walk me through merging two Shadowsocks subscriptions into a single Clash config using subconverter.
Prompt 4
Show me how to configure subconverter to auto upload its output to a GitHub Gist using a personal access token.
Prompt 5
Explain the rule generation config files in subconverter and how to customize the emoji and rename rules.

Frequently asked questions

What is subconverter?

Self-hosted utility that converts proxy subscription links between formats like Clash, Surge, Quantumult, V2Ray, and Shadowsocks via a local HTTP endpoint.

What language is subconverter written in?

Mainly C++. The stack also includes C++, Docker, HTTP.

How hard is subconverter to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is subconverter for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub tindy2013 on gitmyhub

Verify against the repo before relying on details.