fix(core): preserve request fidelity and provider errors
pi-commandcode-provider
A custom provider for pi that connects to the Command Code Provider API.
Disclaimer: This is an unofficial, community-maintained integration. It is not affiliated with, endorsed by, or supported by Command Code. You need your own Command Code account and API key or subscription. Command Code's terms, availability, and pricing apply.
Install
pi install npm:pi-commandcode-provider
Start or reload pi, then authenticate:
/login
Select Use a subscription, then Command Code. Complete the browser flow and choose a model with /model.
Oh My Pi
Install the same package in Oh My Pi:
omp plugin install pi-commandcode-provider
Restart OMP or run /reload, then use /login and select Use a subscription followed by Command Code.
Authentication
Browser login
Run /login in pi or OMP. Select Use a subscription, then Command Code. The browser flow stores the returned credential in the host's auth file.
If automatic transfer from the browser fails, copy the API key shown by Command Code and paste it into the terminal prompt.
Environment variable
export COMMANDCODE_API_KEY="user_..."
Auth file
The provider also reads existing credentials from:
~/.commandcode/auth.json~/.pi/agent/auth.json~/.omp/agent/auth.json
Supported examples:
{
"apiKey": "user_..."
}
{
"command-code": {
"type": "api",
"key": "user_..."
}
}
{
"commandcode": "user_..."
}
Usage
Open /model and select one of the models provided by Command Code. Model availability changes over time and is refreshed from the Provider API when the extension loads.
List Command Code models from the terminal:
pi --list-models commandcode
In OMP, use:
omp models
For non-interactive OMP requests, use a provider-qualified model ID shown by omp models. For example:
omp -p "hello" --model commandcode/deepseek/deepseek-v4-flash
Model discovery and offline behavior
The provider fetches the current model catalog from:
https://api.commandcode.ai/provider/v1/models
The last successful catalog is cached at <agent-dir>/commandcode-models.json. For pi this is ~/.pi/agent/commandcode-models.json by default. Compatible hosts such as OMP use their own agent directory.
If the endpoint is temporarily unavailable, the provider uses the cached catalog. On a first offline start without a cache, pi still loads, but Command Code models remain unavailable until the connection is restored and /reload succeeds.
The following environment variables are intended for tests, local mocks, and compatible API endpoints:
COMMANDCODE_API_BASECOMMANDCODE_MODELS_URLCOMMANDCODE_MODELS_CACHE
Pricing display
The Command Code Provider API does not currently include prices in its model catalog. This extension therefore keeps a static table for models with known prices so pi can display estimated request costs.
Models missing from that table display zero cost in pi. This does not mean that Command Code will bill the request at zero. Check the current Command Code pricing before relying on the displayed value.
Update and remove
Update installed pi packages:
pi update --extensions
Remove the provider:
pi remove npm:pi-commandcode-provider
For OMP:
omp plugin upgrade pi-commandcode-provider
omp plugin uninstall pi-commandcode-provider
Development
Start an isolated pi instance with only the current checkout installed and no existing Command Code credentials:
npm run pi:isolated
Run /login inside pi. Temporary credentials, configuration, and sessions are deleted when pi exits.
Start the current checkout with your existing pi credentials and only Command Code models in the model picker:
npm run pi:authenticated
Both commands accept additional pi arguments after --, for example npm run pi:authenticated -- --model claude-sonnet-4-6.
See CONTRIBUTING.md for local setup and tests. See RELEASE.md for the release process.
License
MIT