{"_id":"9agent","_rev":"11-ea14671c8c267e7b929d8126e9647994","name":"9agent","dist-tags":{"beta":"0.2.2","latest":"0.6.1"},"versions":{"0.2.1":{"name":"9agent","version":"0.2.1","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.2.1","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"11f7ee0826a00732a8708408f2bcf4f6a2505c85","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.2.1.tgz","fileCount":27,"integrity":"sha512-d+JanQWcWk7HpAMHzYffFgDzQqd/AbUPjnENYuz2GLa5tcBOyJ8Y8Lbhm8MmQr4b3zMVlHxGJwc8U6mwyB0B9w==","signatures":[{"sig":"MEUCIQCRBdB4aYCo72BW4aL8sEcfNIGl0Mzs1Z50UDt/Tz80VwIgD2dqFittCAN1Xy5W7gl44KAc7+BJRGLjdzj0gFzqDQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73751},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"aff960c331e244be59b5b8fb10f30d21e41b39c8","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"11.17.0","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.2.1_1787476707439_0.6369535715647179","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"9agent","version":"0.2.2","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.2.2","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"28433e60744a3fc7bfbcedd00ff0c39ba171717d","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.2.2.tgz","fileCount":27,"integrity":"sha512-33CmFc99q4bluV5YUQPVmkcvpil2Y0S1jvTx8wzSdRM1FjnJ1AVrdNDAEGuViudx7rvokyZsNzNzIZYZO7itQA==","signatures":[{"sig":"MEQCIHbFte7rFXgzlrTP3Q3ijr89bcHh5zZqqfFTAl3rG1bCAiBEJ2Oo6FYxBUgtadTCl79si5BWkIcXLBnWZUGvpWazQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69449},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"3199b2ce9f437b2321526aeecb29ee51e604685c","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"11.17.0","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.2.2_1787477350868_0.8079491405414936","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"9agent","version":"0.3.0","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.3.0","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"da9e4f5cc2887548286299bd315c34da4145d193","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.3.0.tgz","fileCount":27,"integrity":"sha512-td34l2XG7zxDCFh6lfwRNXkWQjz+jJkajUhhvVmPyQbnLhQRPClSCwOF3Exc5xfqbJ+lgy0qxa3ohUM1ex4xqQ==","signatures":[{"sig":"MEUCIFyuDYJFrylU9VVnMYzz1+pBxrZUrk2CtbcihxHp3l5VAiEAyRx5j9ek1RejF5TCdm1QWotRmQUWsA4y29jkG864M5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72444},"main":"dist/index.js","type":"module","_from":"file:/tmp/9agent-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"_resolved":"/tmp/9agent-0.3.0.tgz","_integrity":"sha512-td34l2XG7zxDCFh6lfwRNXkWQjz+jJkajUhhvVmPyQbnLhQRPClSCwOF3Exc5xfqbJ+lgy0qxa3ohUM1ex4xqQ==","repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"11.17.0","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.3.0_1787487990600_0.5164576522504956","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"9agent","version":"0.4.0","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.4.0","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"39078cf5a3ab330c101dfe7b2389843ad0d166ee","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.4.0.tgz","fileCount":31,"integrity":"sha512-5Ew8ScOH7gdheiQvSXkorLtWnk05Am/7DzVTNY670JjA7mR36V9LHbpGTyPsPU/m3G/wYMeeHipryV/OV0WTcQ==","signatures":[{"sig":"MEUCIQC3EgK85nRMon+3L1DQZSCB4EzJQq6mwVe81oxmQx/2uwIgJK+WH5tjelOnbJ2rbZf7hwz0RsYjP9+8KYf5xW4f7Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/9agent@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86183},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"43ea231d7a2cd6fb265a9759b238e05e687ffb37","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","deploy":"wrangler pages deploy site --project-name=9agent --branch=main","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","predeploy":"bash scripts/stamp-version.sh","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"10.9.8","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","wrangler":"^4.125.0","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.4.0_1787561770401_0.3663210699901698","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"9agent","version":"0.5.0","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.5.0","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"85aeebf62d94795722942352a0a01c36ce038fc1","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.5.0.tgz","fileCount":50,"integrity":"sha512-GfScEmhRzfBN514ZL5bc80l93IpR/PzojdKCWAeFHT72ityeD1mw6fFINyzTiJmMiYO3MPKdOomW0EmrLLfCPA==","signatures":[{"sig":"MEUCIQCmlYFJfQf9eNro8LPG5qd5cRLzAZHlq6TzUQTu2DH1zgIgL0ObixpChD/E8WvGa2HbJkA5ydLdMl9CvFc/Vi29atk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/9agent@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85663},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e676309125e1624f109fcef786c8807f2b90b29e","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","deploy":"wrangler pages deploy site --project-name=9agent --branch=main","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","predeploy":"bash scripts/stamp-version.sh","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"10.9.8","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","wrangler":"^4.125.0","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0","eslint-plugin-no-comments":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.5.0_1787649322940_0.5576094335219075","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"9agent","version":"0.5.1","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.5.1","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"a19faf869fe70e461b8ce886f5d218f225f607ad","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.5.1.tgz","fileCount":52,"integrity":"sha512-hJlAEYBhqipJ1UOAaOjBsSbJFJ4fQp7UG727z98C9WXDMpjnAhhhZTy9Q+zbMIZhyJUhNOfI71GDH7fztR5E1g==","signatures":[{"sig":"MEQCIAHA/QAlP3dQlfglwZt+xWk/qRUxva0/b6XY3Vxl7IChAiASIsOuoMhOea0vA3+fotx0NR0Rl+c2aFgDc2froKYWsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/9agent@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91198},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"80fb88ed09848d22c3dd16a53da6810a99a8970e","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","deploy":"wrangler pages deploy site --project-name=9agent --branch=main","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","predeploy":"bash scripts/stamp-version.sh","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"10.9.8","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","wrangler":"^4.125.0","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0","eslint-plugin-no-comments":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.5.1_1787669986544_0.18351397648688783","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"9agent","version":"0.6.0","keywords":["9router","cli","llm","agent","claude","launcher"],"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","_id":"9agent@0.6.0","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"homepage":"https://github.com/nadimtuhin/9agent#readme","bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"bin":{"9agent":"bin/9agent.js"},"dist":{"shasum":"860c101fd505151f78288eaf0d2afd3f525a03f5","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.6.0.tgz","fileCount":54,"integrity":"sha512-13aCwS6ahLMNlA1hskpWYj2JiVpssF67W4q0GqlrbJ6cAi3qNH2Xqw4i7il3a9s2dscQG//wFeL3byTBN4fQbA==","signatures":[{"sig":"MEQCIC2CrUJvyE4h7QM3xrC8zgCdyhZL1NQjKQnPT+V2qby0AiBa8uRDYuUZP5KFjCWjk3od0V8dtOfTvH7iQXtdU9TYfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/9agent@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93691},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5add782d9359d5cb6bbe983134c91190cba46e68","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"node --test --import tsx src/adapters/__test__/*.test.ts","build":"tsc -p tsconfig.build.json","check":"bash scripts/checks.sh","deploy":"wrangler pages deploy site --project-name=9agent --branch=main","prepack":"npm run build","release":"bash scripts/release.sh","lint:fix":"eslint . --fix","predeploy":"bash scripts/stamp-version.sh","test:docker":"bash test/run-docker-tests.sh"},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"repository":{"url":"git+https://github.com/nadimtuhin/9agent.git","type":"git"},"_npmVersion":"10.9.8","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"^13.0.0","@inquirer/prompts":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.39.5","wrangler":"^4.125.0","@eslint/js":"^9.39.5","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.67.0","eslint-plugin-no-comments":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/9agent_0.6.0_1787811550168_0.02560967584344853","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"9agent","version":"0.6.1","description":"Universal 9Router agent launcher — discover models, pick agent, launch.","license":"MIT","author":{"name":"Omar Faruque Tuhin"},"homepage":"https://github.com/nadimtuhin/9agent#readme","repository":{"type":"git","url":"git+https://github.com/nadimtuhin/9agent.git"},"bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"keywords":["9router","cli","llm","agent","claude","launcher"],"main":"dist/index.js","type":"module","bin":{"9agent":"bin/9agent.js"},"scripts":{"build":"tsc -p tsconfig.build.json","predeploy":"bash scripts/stamp-version.sh","deploy":"wrangler pages deploy site --project-name=9agent --branch=main","lint":"eslint .","lint:fix":"eslint . --fix","dev":"tsx src/index.ts","test:docker":"bash test/run-docker-tests.sh","test":"node --test --import tsx src/adapters/__test__/*.test.ts","prepack":"npm run build","check":"bash scripts/checks.sh","release":"bash scripts/release.sh"},"dependencies":{"@inquirer/prompts":"^7.0.0","commander":"^13.0.0"},"devDependencies":{"@eslint/js":"^9.39.5","@types/node":"^22.0.0","eslint":"^9.39.5","eslint-plugin-no-comments":"^1.2.1","tsx":"^4.0.0","typescript":"^5.7.0","typescript-eslint":"^8.67.0","wrangler":"^4.125.0"},"engines":{"node":">=20"},"_id":"9agent@0.6.1","gitHead":"e607345349daf45410162fb3e6b730445470ec32","types":"./dist/index.d.ts","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-GQbEPts+14IZS0ZuZStYjjf+7q40N8WZJzSWQ7J2LVVHQ4qZletdJEaAvsmnDc8IcLjNc0jFe+2mRaD4ITlNqw==","shasum":"4ce3ef2ba3d44f2117dc6eab4ec7edd974d9dd7d","tarball":"https://registry.npmjs.org/9agent/-/9agent-0.6.1.tgz","fileCount":54,"unpackedSize":94302,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/9agent@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjEuv+rFPOtL19/IGvqwJabbUUW5/1KDXsgpNKPtJNkAIgeWvW+4wBv2m8VAnO4W6x8aEu2nST2nrWHfbYT2CJsy0="}]},"_npmUser":{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"},"directories":{},"maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/9agent_0.6.1_1787842193128_0.7698802077003117"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T09:03:54.767Z","modified":"2026-08-27T14:49:53.665Z","0.2.0":"2026-08-23T09:03:55.120Z","0.2.1":"2026-08-23T09:18:27.595Z","0.2.2":"2026-08-23T09:29:11.000Z","0.3.0":"2026-08-23T12:26:30.755Z","0.4.0":"2026-08-24T08:56:10.602Z","0.5.0":"2026-08-25T09:15:23.076Z","0.5.1":"2026-08-25T14:59:46.695Z","0.6.0":"2026-08-27T06:19:10.303Z","0.6.1":"2026-08-27T14:49:53.311Z"},"bugs":{"url":"https://github.com/nadimtuhin/9agent/issues"},"author":{"name":"Omar Faruque Tuhin"},"license":"MIT","homepage":"https://github.com/nadimtuhin/9agent#readme","keywords":["9router","cli","llm","agent","claude","launcher"],"repository":{"type":"git","url":"git+https://github.com/nadimtuhin/9agent.git"},"description":"Universal 9Router agent launcher — discover models, pick agent, launch.","maintainers":[{"name":"nadimtuhin","email":"nadimtuhin@gmail.com"}],"readme":"# 9agent\n\n[![npm](https://img.shields.io/npm/v/9agent?color=blue)](https://www.npmjs.com/package/9agent)\n[![CI](https://img.shields.io/github/actions/workflow/status/nadimtuhin/9agent/ci.yml?branch=main)](https://github.com/nadimtuhin/9agent/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Node](https://img.shields.io/node/v/9agent)](https://nodejs.org)\n\nOne launcher for Claude Code, Pi, and Hermes — pick a model from your gateway,\nlaunch the agent, optionally in Docker.\n\n![9agent picking an agent, searching the gateway model catalog, choosing a permission mode, then launching the agent and printing its reply](docs/demo.gif)\n\n```bash\nnpm i -g 9agent\n9agent                      # prompts: agent → model → mode\n```\n\n```bash\n9agent -a claude -m ag/gemini-3.7-flash-high --yolo            # skip the prompts\n9agent -a claude -m ag/gemini-3.7-flash-high --yes safe --sandbox   # ...and in Docker\n```\n\n## Requirements\n\n| Need | Why |\n|------|-----|\n| Node >= 20 | `fetch`, `import.meta` |\n| A gateway serving `GET /v1/models` | Where the model list comes from. Built for [9Router](https://github.com/nadimtuhin/9router); anything OpenAI-compatible works |\n| One of `claude`, `pi`, `hermes` | 9agent launches these, it doesn't bundle them |\n| Docker | Only for `--sandbox` |\n\nNo gateway? You get `Is 9Router running?` and exit 1 — never a hang.\n\n## Flags\n\n| Flag | Description | Default |\n|------|-------------|---------|\n| `-a, --agent <name>` | `claude`\\|`pi`\\|`hermes`, or alias `c`/`cc`/`p`/`h` | picker |\n| `-m, --model <id>` | Model id | searchable picker |\n| `--sandbox` | Run the agent in Docker | host |\n| `--yolo` | Skip permission prompts | safe |\n| `--yes <mode>` | Non-interactive: `safe`\\|`dangerous` | — |\n| `--gateway <url>` | Gateway base URL | `http://localhost:20128/v1` |\n| `--key <token>` | Gateway key. `sk_9router` is a local placeholder, not a credential | see below |\n| `--print-only` | Print the resolved env + argv, spawn nothing | — |\n| `-V, --version` | Print version | — |\n\nThe gateway URL comes from `--gateway`, else `NINEROUTER_URL`. The key comes\nfrom `--key`, else `NINEROUTER_KEY`, else `LOCAL_9ROUTER_KEY`, else the\n`sk_9router` placeholder. `LOCAL_9ROUTER_KEY` exists because a sandboxed agent\nreaches the gateway as a remote client, where the placeholder is rejected and a\nreal key is required.\n\nSandbox runs invoke `docker` from PATH; set `NINEAGENT_DOCKER_BIN` to route them\nthrough something else, e.g. `NINEAGENT_DOCKER_BIN=\"sudo -n docker\"` (requires\npasswordless sudo). Prefer adding yourself to the `docker` group — group\nmembership and sudo grant the same power with less ceremony.\n\nAnything after `--` goes to the agent verbatim:\n\n```bash\n9agent -a claude -m ag/gemini-3.7-flash-high --yes safe -- --verbose\n```\n\n## Agents\n\n| Agent | `--yolo` becomes | Gateway routing |\n|-------|------------------|-----------------|\n| **Claude Code** | `--dangerously-skip-permissions` | env vars |\n| **Pi** | nothing — Pi has no permission system | `~/.pi/agent/models.json` |\n| **Hermes** | `--yolo` | `9router` provider in `~/.hermes/config.yaml` |\n\nPi and Hermes have no env var for the base URL, so the gateway must already be in\ntheir config. 9agent reads those files; it never writes them.\n\nFor Hermes, `--safe-mode` is *not* the opposite of `--yolo` — it disables\ncustomizations. Safe mode is simply omitting `--yolo`.\n\n## Sandbox\n\n```bash\n9agent -a claude -m ag/gemini-3.7-flash-high --yes safe --sandbox\n```\n\nRuns the agent in Docker — a blast-radius limiter, not a security boundary\nagainst a hostile agent. Only cwd and the agent home are mounted, and anything\nyour host executes (hooks, plugins, settings) is mounted read-only. The\ncontainer keeps full network egress — reaching the gateway requires it — so it\nbounds filesystem blast radius, not exfiltration.\n\n[docs/sandbox.md](docs/sandbox.md) has the full threat model, the per-agent\ndetails, and the known limits.\n\n## Design\n\n9agent **resolves a model, execs the agent, and mirrors its exit code.** It is not\na session manager and not a config broker. Two rules follow:\n\n- **Never rewrites a config file you own** — config-driven agents get a\n  ShadowConfig copy instead.\n- **Never supervises what it starts** — no wrapping, no proxying, no restarts, so\n  exit codes and signals are the agent's own.\n\n[CONTEXT.md](CONTEXT.md) is the vocabulary.\n[ADR-0001](docs/adr/0001-launcher-not-session-manager.md) records what this trades away.\n\n## Development\n\n```bash\nnpm install\nnpm run dev          # tsx\nnpm run check        # typecheck, build, unit tests\nnpm run test:docker  # integration harness (needs Docker)\nnpm run release      # gate, build, verify the tarball, tag — CI publishes to npm\n```\n\n## Contributing\n\nIssues and pull requests welcome — see [CONTRIBUTING.md](CONTRIBUTING.md).\nRelease history is in the [changelog](CHANGELOG.md).\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}