@neilurk12/pi-9router
v0.1.2
Published
9Router AI model provider extension for pi coding agent
Maintainers
Readme
pi-9router
9Router AI model provider extension for pi coding agent. 9Router is a local/remote AI gateway that exposes an OpenAI-compatible REST API. The extension dynamically fetches the live model list from the gateway at startup and registers chat-capable models with pi.
Installation
pi install npm:@neilurk12/pi-9routerPrerequisites
Start 9Router locally before launching pi. See the 9Router setup guide for installation. By default, the extension expects 9Router at http://localhost:20128.
Verify 9Router is reachable:
curl http://localhost:20128/api/health
# {"ok":true}Setup
The gateway URL and API key are both optional — local 9Router installs typically run with auth disabled and on the default port.
Environment variables (recommended)
export NINEROUTER_URL="http://localhost:20128" # default; override for VPS/tunnel
export NINEROUTER_KEY="sk-..." # only if your 9router requires authConfig file
Create ~/.pi/9router.json:
{
"baseUrl": "https://9router.example.com",
"apiKey": "sk-..."
}If both env vars and the config file are set, environment variables take precedence.
Models
Models are fetched from ${NINEROUTER_URL}/v1/models at every pi startup — no hardcoded list. Whatever you configure in 9Router shows up in pi's /model picker.
Entries with non-chat kind values (e.g. webSearch, embedding, tts, stt, image) are filtered out, so only chat-capable models appear in /model.
Usage
Select a 9Router model in pi with the /model command.
Troubleshooting
- No 9router models in
/model— check that 9Router is running (curl $NINEROUTER_URL/api/health) and thatNINEROUTER_URLpoints to it. The extension logs the exact fetch URL on failure. - 401 Unauthorized — set
NINEROUTER_KEYor addapiKeyto~/.pi/9router.json. - Wrong models listed — reconfigure 9Router; the extension re-fetches on every startup.
