@bacnh85/pi-commandcode
v0.2.0
Published
Pi extension that connects to Command Code's OpenAI-compatible Provider API.
Maintainers
Readme
@bacnh85/pi-commandcode
Pi extension that connects to Command Code's OpenAI-compatible Provider API.
Install
pi install npm:@bacnh85/pi-commandcodeWhat it does
Registers the commandcode provider in Pi. Models are fetched dynamically from
GET /provider/v1/models and appear in Pi's /model picker under the
commandcode/ prefix. Pi's built-in OpenAI completions client handles all
streaming and tool calling — no custom API code.
Usage
Log in
/login commandcodeThis uses Pi's built-in /login flow — no dedicated slash command needed.
Paste your Command Code API key (generate one in
Studio → API Keys).
Alternatively, set the API key via environment variable (for CI/headless):
export COMMAND_CODE_API_KEY=cmd_...Once logged in, models populate via catalog refresh and /model shows them:
/model commandcode/deepseek/deepseek-v4-flashEnvironment variables
| Variable | Default | Description |
|----------|---------|-------------|
| COMMAND_CODE_API_KEY | — | API key (overrides /login; read by catalog refresh) |
| COMMAND_CODE_BASE_URL | https://api.commandcode.ai/provider/v1 | Override the base URL (must include /v1; chat completions POST to <baseUrl>/chat/completions) |
settings.json (base URL)
The endpoint URL lives in settings.json under commandcode.baseUrl
(precedence: env > repo .pi/settings.json > global ~/.pi/agent/settings.json >
default). Edit it interactively:
/commandcode-configArrow keys navigate, Enter edits, Esc saves — the panel re-registers the provider
at the new endpoint and refreshes the model catalog; pick models with /model.
In non-TUI mode (or with the show arg) the command prints a config summary.
The API key is never stored in settings.json — it lives in auth.json via
/login commandcode or the env var.
How it works
- On startup, registers the
commandcodeprovider withapi: "openai-completions". - Models are loaded from a disk cache (instant session restore) and warmed in
the background from
/provider/v1/models. - After
/login, Pi's catalog refresh callsrefreshModels, which fetches the live model list authenticated with your stored key. - Pi's built-in OpenAI completions API handles all streaming and tool calling.
The Provider API bills at model cost with no markup. See Command Code's Provider API docs and Pricing & Limits for plans, credits, and per-token rates.
Notes
- API key vs. CLI subscription: This extension uses the Provider API
surface (OpenAI-compatible, pay-as-you-go or plan credits). The Command Code
CLI subscription (GOAT/Pro/Max) and its
/usagerolling windows are tracked on the web Studio and are not exposed via the Provider API key. - Usage display: Install
@bacnh85/pi-subfor a session-cost footer when acommandcodemodel is active. Because the Provider API key does not expose live usage windows, pi-sub shows session cost and tok/s (same asopencode-goand9router), not 5h/weekly meters.
Changelog
See CHANGELOG.md for release history.
License
MIT
