This repository is the lightweight official plugin registry for CLIProxyAPI.
It only maintains registry.json; plugin binaries, checksums, and release notes
must stay in each plugin author's own GitHub repository.
registry.json must use this shape:
{
"schema_version": 1,
"plugins": [
{
"id": "sample-provider",
"name": "Sample Provider",
"description": "Adds sample provider support.",
"author": "author-name",
"repository": "https://github.com/author-name/cliproxy-sample-provider",
"logo": "https://raw.githubusercontent.com/author-name/cliproxy-sample-provider/main/logo.png",
"homepage": "https://github.com/author-name/cliproxy-sample-provider",
"license": "MIT",
"tags": ["provider"]
}
]
}Required fields:
idnamedescriptionauthorrepository
Optional fields:
version(legacy; only used as a display fallback when the latest release cannot be queried)logohomepagelicensetags
schema_versionmust be1.idmust match CLIProxyAPI plugin ID rules: start with an ASCII letter or digit, then use only ASCII letters, digits,.,_, or-, up to 128 characters total.idvalues must be unique.version, when present, must not start withv.repositorymust be exactlyhttps://github.com/{owner}/{repo}.
Plugin authors publish binaries in their own GitHub Releases. CLIProxyAPI
reads the repository's latest release: the release tag defines the plugin
version and must be v<version> with a dotted numeric version, for example
v0.1.0. Publishing a new release is all it takes to ship an update; the
registry does not need to change.
Each release must include one checksums.txt and one zip per supported platform.
Asset names must use the release tag version without the leading v:
<id>_<version>_<goos>_<goarch>.zip
checksums.txt
Examples:
sample-provider_0.1.0_darwin_arm64.zip
sample-provider_0.1.0_linux_amd64.zip
sample-provider_0.1.0_windows_amd64.zip
checksums.txt
checksums.txt must use sha256sum format:
<sha256> sample-provider_0.1.0_darwin_arm64.zip
Each platform zip must contain the target dynamic library at the zip root:
- Darwin:
<id>.dylib - Linux:
<id>.so - Windows:
<id>.dll
Nested dynamic libraries, absolute paths, zip-slip paths, mismatched filenames, and multiple dynamic libraries are rejected by the CLIProxyAPI installer.
The plugins array is ordered by pull request, not by where a pull request
happens to insert its entry:
- Plugins published by the
router-for-meorganization (therepositoryowner isrouter-for-me) always appear at the top of the list. - Every other plugin is ordered by the number of the merged pull request that first introduced it, from smallest to largest. When one pull request adds multiple plugins, they keep the relative order used in that pull request.
- Pull requests that only update an existing plugin's metadata (such as
version,name,description,logo, ortags) do not change the entry's position. Renaming a plugin'sidlikewise keeps the original entry's position.
Open a pull request that updates only registry.json unless documentation also
needs clarification. The pull request should include:
- The plugin's GitHub repository URL.
- The latest release tag in
v<version>form, for examplev0.1.0. - Evidence that the required zip asset and
checksums.txtexist in the release. - A short description of what capability the plugin adds.