{"_id":"@bacnh85/pi-9router","_rev":"7-26a1328da8bafb962c4b72a2055b61fd","name":"@bacnh85/pi-9router","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.2":{"name":"@bacnh85/pi-9router","version":"0.1.2","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"ca6ceb87d7351629148451b93716384ddf9d849b","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.2.tgz","fileCount":7,"integrity":"sha512-+Gfo8fXVQVRHFb06F9Obb4sKXNpX0soZ3IF/Aaz98PFvhKJ49+2tXpAgfWjDv8YpUKeHMm7XKhQEijxVu0EaYQ==","signatures":[{"sig":"MEYCIQC+y1QL1I5YMadIsVydttmS05RZQRpKeLHYAWGsT6FitwIhAJDRVHnKQnGM46FUBUq3UV2l9A1AND5IszZzNIaHAwtp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32031},"type":"module","gitHead":"3302e96071be5f8a134af4742b9c23077dc5a6b6","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.2_1785044952881_0.4453343258899176","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bacnh85/pi-9router","version":"0.1.3","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"118ca9301920225e50f2e5cad5b74d33993efe0d","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.3.tgz","fileCount":7,"integrity":"sha512-Z8f8doMdpKAbn9JrvQ9Z6oYyjvZbjE8XX68wY2JqF4k43wc4ZObt3f8nhc7zMH8MLm0TxedCq5KteFjzwGjWhA==","signatures":[{"sig":"MEUCIQDLglgWGN9NstQCHfLppUKnO+rg2DSp1U0na0CjTELc2QIgHyoAdLgUJfaQ8AeEUMVP8qva+8akFg8ZnWhBd9dlsDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33200},"type":"module","gitHead":"eb7184a8396d996b28666c49acb6f1fb14419afb","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.3_1785060768511_0.9196974737285748","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bacnh85/pi-9router","version":"0.1.4","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"81ca6193b119ecc4044d8f907fd26eda2020916f","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.4.tgz","fileCount":8,"integrity":"sha512-ls18niluvVsNkCKlCKwBd+Oq0D6Cx16cL6XTLtCzilbWFSheOrO9WdGlq13xJRQ1vzKP2YLDlMO/1mJ34gWIhQ==","signatures":[{"sig":"MEYCIQDyKEBYbocbYcoe7AS2XCCbsmM2iSqkrhudQQe4xtW6/AIhAPu7wwwEsPqPU1g2DObpLyuRXutBS4+TuirZhz6od7dJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33697},"type":"module","gitHead":"92c3ed2b01c74685201a903655a39a7c7ddff2dc","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.4_1785379338275_0.2348846671616971","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bacnh85/pi-9router","version":"0.1.5","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"0144bcc13a8f1b32ce527cacdc0f59dfb90ed98b","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.5.tgz","fileCount":8,"integrity":"sha512-aBTjZ5OkACLuqqDzZwrqCFyiBjsIzg6BCWBoSmNivXvDL+V/2dA+DygmVcwJp5qqafBSK6kJUnB/4cASLpc5cQ==","signatures":[{"sig":"MEUCICISkRCZEWWjhUT5wg4/LEURdstZcX4fUZ7FseaPH+SUAiEAxicLDWnTtJZ/GEqcVuAj1qKZRRTS7mflzIJPlHWmm4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32954},"type":"module","gitHead":"7b1d8f29050f4f8d76d63d2c1c822c6f10eb3929","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.5_1785424786857_0.1427432452095727","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bacnh85/pi-9router","version":"0.1.6","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.6","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"6d3a5b99b6ec4306a412b52131f49c26744b74cf","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.6.tgz","fileCount":8,"integrity":"sha512-DvlOIYqDv9D58oUH2FJ4QK9L+zw9ZqvyHz58KRjnglZ4aRgFWnTHZP6hFfE2b5YLB3cYN9++VvG+birxkFSDbA==","signatures":[{"sig":"MEYCIQD1zCgRj1XGnwaT3UH2mAAXij03SFXGL4X1dq3MEYJWMAIhAN+gGkVrg/2B/IiSJaAOs0OHQP7prxjaQKWZXqzcYf0L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35298},"type":"module","gitHead":"1a891a526f2a0cc60c25ad9a55a205d377546f66","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.6_1785464054627_0.7308123495105348","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bacnh85/pi-9router","version":"0.1.7","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"license":"MIT","_id":"@bacnh85/pi-9router@0.1.7","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-9router","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"5b74af4c3bfebd6bdb7ab9bc7a694f0f565cdcdc","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.7.tgz","fileCount":8,"integrity":"sha512-ch+o0BkB0Y6rjDYhYTiK9GbImpYdP/avLD7SOiockFu5xYPlHSFt0VWQU76loYKh0xmJ4wolbQ0kE/r44r9r/g==","signatures":[{"sig":"MEUCIEC4UHkcQmXaEPhQo8OzXXmiQWK/FlJtoKHWtyYvTUJRAiEAtI+ivM0aiENqrkLfmnPtc0o7ecLUaRaYG9U24HRqfLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35426},"type":"module","gitHead":"b6dc2aa08224976862793b502d6ec946c2b9b2d4","scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-9router"},"_npmVersion":"10.9.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-9router_0.1.7_1785926413550_0.9899251241691258","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bacnh85/pi-9router","version":"0.1.8","description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","type":"module","license":"MIT","publishConfig":{"access":"public"},"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-9router","repository":{"type":"git","url":"git+https://github.com/bacnh85/pi-extensions.git","directory":"pi-9router"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"scripts":{"test":"node --import tsx --test extensions/test/unit.test.ts","typecheck":"tsc --noEmit"},"pi":{"extensions":["./extensions/index.ts"]},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","typebox":"*"},"devDependencies":{"@types/node":"^20.19.43","tsx":"^4.23.1","typescript":"^5.9.3"},"_id":"@bacnh85/pi-9router@0.1.8","gitHead":"bb76008af4f32f8a4f3b33b88ead01a68169b625","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-DqkFvti1gXtDE4at7+8rDaOrg/wP4wfEvQZYj1SI+1imFavxRsKNyoZuZJsFHliSFOE0vyNcZtQrCaDsEiQ4hw==","shasum":"60c5d58d5508d88cd15bd5b49cffc20a5be14897","tarball":"https://registry.npmjs.org/@bacnh85/pi-9router/-/pi-9router-0.1.8.tgz","fileCount":8,"unpackedSize":36014,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA7K9alBVVnk5ZqMpWSOL5n7SXq+YPHQRWIj59ghCuYWAiAoKMw3GJoRTVT8r2dj0Q2dn8tkJf/XvOylgNX38YP3wg=="}]},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"directories":{},"maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-9router_0.1.8_1786716248629_0.7913764252850533"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T05:49:12.692Z","modified":"2026-08-14T14:04:08.924Z","0.1.2":"2026-07-26T05:49:13.037Z","0.1.3":"2026-07-26T10:12:48.660Z","0.1.4":"2026-07-30T02:42:18.417Z","0.1.5":"2026-07-30T15:19:47.001Z","0.1.6":"2026-07-31T02:14:14.777Z","0.1.7":"2026-08-05T10:40:13.749Z","0.1.8":"2026-08-14T14:04:08.780Z"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-9router","keywords":["pi","pi-extension","9router","ai-router","openai-proxy","api-gateway"],"repository":{"type":"git","url":"git+https://github.com/bacnh85/pi-extensions.git","directory":"pi-9router"},"description":"Pi extension that connects to a 9router AI routing proxy instance via its OpenAI-compatible API.","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"readme":"# @bacnh85/pi-9router\n\nPi extension for [9router](https://github.com/decolua/9router) — connect to your 9router AI routing proxy instance.\n\n## Install\n\n```bash\npi install npm:@bacnh85/pi-9router\n```\n\n## Usage\n\n### Configure connection\n\n```\n/login-9router\n```\n\nPrompts for:\n- **Endpoint URL** (default: `http://localhost:20128/v1`)\n- **API key** (required if your 9router has `REQUIRE_API_KEY=true`)\n\nOnce configured, models from 9router appear in Pi's `/model` picker under the `9router/` provider prefix.\n\n### Toggle reasoning/thinking levels\n\n```\n/9router-reasoning\n```\n\nToggles Pi thinking-level support for 9router models ON/OFF.\n\nWhen ON, use `Shift+Tab`, `--thinking high`, or model suffixes like\n`9router/...:high` to control `reasoning_effort` sent to 9router.\n\n### Check status\n\n```\n/9router-status\n```\n\nShows connection status, model count, and current configuration.\n\n### Environment variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `NINE_ROUTER_BASE_URL` | — | Overrides saved endpoint URL |\n| `NINE_ROUTER_API_KEY` | — | Overrides saved API key |\n| `NINE_ROUTER_ENABLE_REASONING` | — | Overrides saved reasoning toggle (`true`/`false`) |\n\n## How it works\n\n1. On startup, loads config from `~/.pi/agent/9router-config.json` and registers the `9router` provider\n2. Models are fetched dynamically from `GET /v1/models` on first use\n3. Pi's built-in OpenAI completions API handles all streaming and tool calling\n4. No built-in providers are overridden — `9router/` models are a separate namespace\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for release history.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}