Releases: ricatix/pi-9router
Release list
v0.1.2 — fix: /9router command not registered
Fix
- Slash command
/9routernot registered afterpi install npm:pi-9router
Root cause: package lacked the pi.extensions manifest in package.json, so Pi's
package loader only loaded dist/index.js for local:-prefixed installs via a
fallback path. npm: and git: installs resolved the package but never invoked
the factory in src/index.ts, so commands/tools/providers stayed unregistered —
even though pi list showed the package and defaultProvider/defaultModel got
written to settings.json from a side effect.
This release adds:
"pi": { "extensions": ["./dist/index.js"] }to package.json so npm and git sources resolve dist/index.js the same way
local sources do.
Repro (before fix)
pi install npm:pi-9router- Start Pi, run
pi list→pi-9routeris listed settings.jsonshowsdefaultProvider: 9routeranddefaultModel: ...- Press
/in the TUI →/9routeris missing from the picker
Verification (after fix)
pi install npm:pi-9router@0.1.2(or just/reloadif already installed)- Press
/→/9routerappears cat ~/.pi/agent/npm/node_modules/pi-9router/package.json | grep -A2 '"pi"'
should show theextensionsarray
Docs
- README: noted the
pi.extensionsmanifest under Installation - README: new Troubleshooting entry "Slash command
/9routeris not registered"
with verification steps
Verification log
bun install --frozen-lockfile— no changesbun run typecheck— cleanbun test— 7/7 passbun run build—dist/regenerated,dist/index.jsstill contains
registerCommand("9router", ...)- npm OIDC trusted publish via
v0.1.2tag (Node 24, npm 11.5.1+) — success in 21s
v0.1.1
v0.1.1
Patch release focused on publishing reliability and release documentation.
Changed
- Added npm Trusted Publishing workflow documentation.
- Added release/versioning guide for SemVer and tag-based publishes.
- Added agent knowledge base files for repository and source conventions.
- Removed package-level provenance config so local manual publish does not fail outside OIDC.
- Bumped package version to 0.1.1.
Publishing
- Published to npm as
pi-9router@0.1.1. - npm dist-tag:
latest. - Provenance: GitHub OIDC Trusted Publishing with npm attestations.
Validation
bun run typecheckbun testbun run buildbun pm pack --dry-run
v0.1.0 — initial npm-ready release
Initial npm-ready release
Pi Coding Agent extension for 9router — an open-source AI routing proxy. Connect Pi to any 9router instance via its OpenAI-compatible API with dynamic model discovery, local cache, and graceful startup.
Features
- /9router command with subcommands:
status,refresh,models,setup,reasoning,clear ninerouter_statusLLM tool for read-only status checks- Dynamic 9router provider — registers via
registerProviderwith auto-discovery + cached models - models.dev enrichment with non-blocking fallback (5s timeout)
- Dual env var support —
9ROUTER_*andNINE_ROUTER_*(9ROUTER_* wins) - Secure persistence — config and cache at
~/.pi/agent/9router-config.jsonwith0o600permissions - Graceful startup — registers cached provider before refresh so Pi shows models on first paint
Quality
- Strict TypeScript with
ExtensionAPItyping from@earendil-works/pi-coding-agent - 7 unit tests, 15
expect()calls —bun test✅ bun run typecheck✅,bun run build✅- Custom error hierarchy:
NineRouterDiscoveryError,NineRouterAuthError,NineRouterValidationError,NineRouterEmptyModelsError - Secret redaction in all log/status paths
Install
pi install npm:pi-9router
# or
pi install git:github.com/ricatix/pi-9routerSee README for configuration and usage.
License
MIT © 2026 ricatix