Repository navigation
v1.4.0
First public release.
Added
- Multiple CLIProxyAPI accounts. Each account has its own base URL, API key (own credential ref), provider route ID, protocol mode, model selection and per-model overrides, and synchronizes into its own
llm-pi-airoutes (cli-proxy-2,cli-proxy-2-responses,cli-proxy-2-messages, …). - Per-account enable switch. A disabled account keeps its settings but its routes are removed, so its models leave the picker. New accounts start disabled; a manual refresh still probes them so models can be picked before enabling.
- Settings panel account bar: switch accounts, + Add Account, Delete Account, credential-ref field.
cliproxyapitool:add_accountandremove_accountactions,account,enabledandapiKeyEnvparameters; output lists every account.- HTTP routes
POST /api/dsh-cliproxyapi/accounts/addand/accounts/remove;refreshandsaveacceptaccountId. - English
README.mdand ChineseREADME.zh.mdwith captioned screenshots;screenshots.jsonfor plugin storefronts;LICENSE,AGENTS.md,CHANGELOG.md. - GitHub Actions: CI (Ubuntu + Windows, Node 22 / 24) and a tag-triggered release that attaches the packed bundle and optionally publishes to npm.
Changed
state.jsonis now{ version: 2, refreshIntervalSeconds, probeTimeoutMs, accounts: [...] }. A v1 single-account file migrates automatically into accountdefaultwith the same routes, key and selection; the original is kept asstate.v1.json.- An account with an explicit base URL only probes that URL and never falls back to local
:8317, the existing route orCLIPROXYAPI_BASE_URL. - Overlapping provider route IDs between accounts are rejected on save; an overlapping account in a hand-edited file is reported as an error and never writes or removes another account's routes.
- Settings writes from concurrent account syncs are serialized.
/cpa-statusand/cpa-refreshcover every account.- The DSH version requirement moved to top-level
engines.dsh, where DSH reads it;./iconis exported. engines.nodeis now>=22(the versions CI tests).
Fixed
- First-run selection no longer uses hard-coded model ids. An account without a saved selection is seeded once, on its first successful probe, with the newest model of each family from its own server's catalog (at most 12). Previously a fresh install pre-selected 7 fixed ids that most servers do not offer, so nothing reached the picker.
- Reset to Recommended uses the same catalog-derived list (with its count) instead of the fixed 7.
- Saving a new account before its catalog was ever probed no longer stores an empty selection.
- When a saved selection matches nothing on the server, the error names the server and the discovered models stay visible in the panel.