{"_id":"9router-plinian","_rev":"11-18f2c9782da3832a606c0c245fe358d2","name":"9router-plinian","dist-tags":{"latest":"0.5.94"},"versions":{"0.5.55":{"name":"9router-plinian","version":"0.5.55","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.55","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"ead8328fab39bd479109e88ece6336aee2db21f1","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.55.tgz","fileCount":3239,"integrity":"sha512-xNrpeuQ/D4U6fFOtpESHdC1gwfB7fMo+0MsWZpa94peiqYyV2yjRdirMdkoayQ4qAVziJLMUhQVlVKVmMK7bIA==","signatures":[{"sig":"MEUCIQC9Z43Zad46xT3eHunEd8ywIM02gPnEJxRTQ0GC7QVwogIgeLLyQrzz4AVOaKGVfEYoq10SrCn0Bb/SnMPSnzOY/JM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50033388},"_from":"file:/mnt/data_d/Projects/9router-plinian-0.5.55.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router-plinian-0.5.55.tgz","_integrity":"sha512-xNrpeuQ/D4U6fFOtpESHdC1gwfB7fMo+0MsWZpa94peiqYyV2yjRdirMdkoayQ4qAVziJLMUhQVlVKVmMK7bIA==","_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.55_1788012234907_0.9863448896956077","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.56":{"name":"9router-plinian","version":"0.5.56","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.56","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"575dc6804695ac140b1e73b6f96f29f49856cea1","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.56.tgz","fileCount":3239,"integrity":"sha512-s2O4DDD/cCvBubfNA9JB3nLCiheAjkc/7C8/8ZQWobVQBi0aHkBPP4xw9itxFT4WJEissGqr3yEbZOKR/JAypw==","signatures":[{"sig":"MEUCIH5gUBvwWpGaoKWAlmPndeNMjDw4+/w9EBp1JeNWHxdxAiEAxuKG8ccBwY7FGd3bBxI/QwxOA3H22ewna6YMU9VihQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50033165},"_from":"file:/mnt/data_d/Projects/9router-plinian-0.5.56.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router-plinian-0.5.56.tgz","_integrity":"sha512-s2O4DDD/cCvBubfNA9JB3nLCiheAjkc/7C8/8ZQWobVQBi0aHkBPP4xw9itxFT4WJEissGqr3yEbZOKR/JAypw==","_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.56_1788014276921_0.5588676890698479","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.57":{"name":"9router-plinian","version":"0.5.57","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.57","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"3ea577ed89a6dd1a253dc05cf6c25f878f346907","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.57.tgz","fileCount":3239,"integrity":"sha512-8eeJ+AutJtqD9IOaMArabg+ZwZg/rJhIlG5c/8e+CDlo0zR7krBbIsTVxby06VxCBajWL0vPP887rYLTgD6MDQ==","signatures":[{"sig":"MEUCIQDjkLQjq9GPcYMKf0Whr9kGMLzmXEX5bnYAANxinvlapgIgWQ6mK6APXyHjokpECu0+VVzSXHVAw5+2Uev5g0mTlOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50032867},"_from":"file:/mnt/data_d/Projects/9router-plinian-0.5.57.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router-plinian-0.5.57.tgz","_integrity":"sha512-8eeJ+AutJtqD9IOaMArabg+ZwZg/rJhIlG5c/8e+CDlo0zR7krBbIsTVxby06VxCBajWL0vPP887rYLTgD6MDQ==","_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.57_1788015075287_0.7366285811525626","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.58":{"name":"9router-plinian","version":"0.5.58","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.58","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"f1b19e3a370d900907893ae092105ef20ba29004","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.58.tgz","fileCount":3239,"integrity":"sha512-8M/I2mVT20X0CeEeQ9Dk+Nl90N2lb3tUeT9W/kPKa9RegtgrblgCMk9Lr5Y6BIiMwxbvywawJuF+L2lpQOGf1A==","signatures":[{"sig":"MEUCIQDk82nSunrQicIROwGRr9PeEbpFXBNfDCk3fjnTjB3HoAIgCzDpg3I+g1nWhgdYtPcZEdPcZLeEsW/OYw9Sdo/DA98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50033035},"_from":"file:/mnt/data_d/Projects/9router-plinian-0.5.58.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router-plinian-0.5.58.tgz","_integrity":"sha512-8M/I2mVT20X0CeEeQ9Dk+Nl90N2lb3tUeT9W/kPKa9RegtgrblgCMk9Lr5Y6BIiMwxbvywawJuF+L2lpQOGf1A==","_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.58_1788188029504_0.9540924905844252","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.59":{"name":"9router-plinian","version":"0.5.59","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.59","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"239629488f1b2ae41ce9967674658b62dd91bf28","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.59.tgz","fileCount":3239,"integrity":"sha512-4Znvt3q/bvqZU0xNxhABnbAF+mGSLYCL/hcMuQ7KMVet8dULwmSM3qhgFHlw6aaATFZNYfmo4ZMjgkE0Tr/5jQ==","signatures":[{"sig":"MEQCIE0EFNcXRMuIIit/UOwfWh/MLGRnW3tjei7vZbCQIKImAiA6K3z+jLuGccB9ecCO+RXeWdW6cN7KlBHNZfTJtjCHQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50037673},"_from":"file:/mnt/data_d/Projects/9router-plinian-0.5.59.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router-plinian-0.5.59.tgz","_integrity":"sha512-4Znvt3q/bvqZU0xNxhABnbAF+mGSLYCL/hcMuQ7KMVet8dULwmSM3qhgFHlw6aaATFZNYfmo4ZMjgkE0Tr/5jQ==","_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.59_1788222261139_0.7610036500105422","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.60":{"name":"9router-plinian","version":"0.5.60","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.60","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"8989b956263427129b57f208a77d8c8acca6fccb","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.60.tgz","fileCount":3259,"integrity":"sha512-1ymyUOMG+7eiuJ7/PGHuR4fUoe2F5TRraVS5yN3raOF4TYmUtSb5G5m79t/fSITupYyr9UT1zfgK3cAy5cnsBA==","signatures":[{"sig":"MEUCIGmyRsZUaPkt09dFB1kwJEZ/2u0aHhLI3R9XmRsqRQJFAiEAr26eOWdOVs8ICBQ8nt6E+5/MCUyn3GTEK5/uq2t1UVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50354827},"_from":"file:9router-plinian-0.5.60.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_resolved":"/mnt/data_d/Projects/9router/9router-plinian-0.5.60.tgz","_integrity":"sha512-1ymyUOMG+7eiuJ7/PGHuR4fUoe2F5TRraVS5yN3raOF4TYmUtSb5G5m79t/fSITupYyr9UT1zfgK3cAy5cnsBA==","_npmVersion":"11.16.0","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.60_1788935004838_0.27606392898625765","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.75":{"name":"9router-plinian","version":"0.5.75","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.75","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"48eb9c220703164905c9d168f003a8d5867d9db9","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.75.tgz","fileCount":3270,"integrity":"sha512-UkSdRaAgYP+2lEJGusSgFlI+UuAcJcad+GZ14dbSi9xatfzZSbDRuY0mdUA4rmEWu4V7E/urnLlQAsw1D/e0RA==","signatures":[{"sig":"MEQCICg3lhWMtfSwVK8y/uQLtNVTplG1PrjQOfBiPAuwQdpFAiBInGEuHSlkWbb/8M+7anxbuxb1vYEeixImR7OaMrnMlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDX20yhZjda699Ldpgp1DazmCJA1qJMi3K8nTICVNIUXwIgQBcUInFbaZm6s7DDlaZBlVHWLl0QC4ON7KgoUOOkKPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50540766},"engines":{"node":">=18.0.0"},"gitHead":"5488668a14ea06d9697a8d752fc93a273b08e944","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_npmVersion":"11.16.0","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.75_1789489359008_0.41077789255829567","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.92":{"name":"9router-plinian","version":"0.5.92","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.92","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"7ee4c725301ec38585d6730cfda9f56cc358a780","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.92.tgz","fileCount":3390,"integrity":"sha512-Pt0pEG/jT+n084KHSg+PmE7hkHn4hOV0SVK27LXbuuYbfZWh/FzqsMb5Ckj6XuACQb0w3EgK9+3ASKijxhd+Xg==","signatures":[{"sig":"MEUCIFE4Ri+AVpxrmFF1H1BrNyn/XKqPvxrQ/WygKrBu7QFXAiEA2DnTjirVHUMb3/FRc2VoY8dzC17I+27+X+Pj83JhkIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEyCnINYNtSoE/8DPr3ynUEI7+nlO+f3kruCSQbr3Z5rAiAUXgtdIm1Qzp0Wzr047BODgVzj6NOC1IvsOJveaPTTig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53317753},"engines":{"node":">=18.0.0"},"gitHead":"0f60f8815ab60a05b8e0a11579702e50698bb13d","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build","build:tray-arm64":"node scripts/buildTrayArm64.js"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_npmVersion":"12.0.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"26.7.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails to load on modern macOS dyld. Neither package ships an arm64 macOS binary, so on Apple Silicon hooks/trayRuntime.js overlays our own arm64 build from the tray-binaries GitHub release; without it the tray requires Rosetta 2.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"comment_tray_arm64":"tray_darwin_arm64 is built by scripts/buildTrayArm64.js (npm run build:tray-arm64) from felixhao28/systray-portable — the same source systray2's binary comes from — and uploaded to the pinned 'tray-binaries' GitHub release. Its sha256 is pinned as ARM64_TRAY_SHA256 in hooks/trayRuntime.js and verified after every download; rebuild and update both together. .github/workflows/tray-binaries.yml builds the same artifact in CI but refuses to publish when the sha diverges from the pin.","_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.92_1790482843317_0.22195337568273454","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.93":{"name":"9router-plinian","version":"0.5.93","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.93","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"47e969f77b791946e9cdb9993c2f24ffcaebaaa6","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.93.tgz","fileCount":12112,"integrity":"sha512-1dFC32kn6WSZA+tB9mYrvhJAK20ovG1dvX7YFlL7XGD8eILH9p0TFK555Q1N5HnAXgydqTNj+U0ASWvMpKmWXA==","signatures":[{"sig":"MEYCIQDeNb6iE8e94V/D24E8Rh/BCRiZQvr3ceoPr0GR/b9U4QIhAP6dNArHpQUy7EM6ttjpKvZHrbND26JWFGbQ47gRs60Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEWsyUnFhyFGLxdNE/RY/KcnkVxszScsoMH8zxkCgMZjAiEAo/S+GnIbx+A19YA8O26nxNjtKDJct2GnPchLH5OaC8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107707790},"engines":{"node":">=18.0.0"},"gitHead":"4b0a54356346e8a2398277a8f8fcf47bf1cb5914","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build","build:tray-arm64":"node scripts/buildTrayArm64.js"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_npmVersion":"12.1.0","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","readmeFilename":"README.md","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails to load on modern macOS dyld. Neither package ships an arm64 macOS binary, so on Apple Silicon hooks/trayRuntime.js overlays our own arm64 build from the tray-binaries GitHub release; without it the tray requires Rosetta 2.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"comment_tray_arm64":"tray_darwin_arm64 is built by scripts/buildTrayArm64.js (npm run build:tray-arm64) from felixhao28/systray-portable — the same source systray2's binary comes from — and uploaded to the pinned 'tray-binaries' GitHub release. Its sha256 is pinned as ARM64_TRAY_SHA256 in hooks/trayRuntime.js and verified after every download; rebuild and update both together. .github/workflows/tray-binaries.yml builds the same artifact in CI but refuses to publish when the sha diverges from the pin.","_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.93_1790707314460_0.9004866727818275","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.94":{"name":"9router-plinian","version":"0.5.94","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-plinian@0.5.94","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"bin":{"9router-plinian":"cli.js"},"dist":{"shasum":"f0f0a91ca1f71c343e114a32bb274ff788a4e620","tarball":"https://registry.npmjs.org/9router-plinian/-/9router-plinian-0.5.94.tgz","fileCount":12112,"integrity":"sha512-hZkWxIiQPhKljOaaP1ae5CIzwfhJTtt39DjyAAJzbgoakx7uOnaSR5nXgIG4QNS9YJyXG8INPLa3C83G27ClTg==","signatures":[{"sig":"MEUCIQCAg+PFCxczscADuuAKVjPUomLwtdhLk2F1/0rrYmVN2wIgT5bdL6zVvEwoygismQRn47JNH51qXd7NA7vnAxk0X/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGVRREEDfZTLMj0/4y2l/PJew9ryUGGmrMP0nhvsrUo2AiBbazdexYs9CCZBvH9cyGQD6tD6Z9Hc9ZopzJJCaMJIow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107707790},"engines":{"node":">=18.0.0"},"gitHead":"4b0a54356346e8a2398277a8f8fcf47bf1cb5914","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build","build:tray-arm64":"node scripts/buildTrayArm64.js"},"_npmUser":{"name":"azhar457","email":"azharsss457@gmail.com"},"_npmVersion":"12.1.0","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.9router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.9router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails to load on modern macOS dyld. Neither package ships an arm64 macOS binary, so on Apple Silicon hooks/trayRuntime.js overlays our own arm64 build from the tray-binaries GitHub release; without it the tray requires Rosetta 2.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"comment_tray_arm64":"tray_darwin_arm64 is built by scripts/buildTrayArm64.js (npm run build:tray-arm64) from felixhao28/systray-portable — the same source systray2's binary comes from — and uploaded to the pinned 'tray-binaries' GitHub release. Its sha256 is pinned as ARM64_TRAY_SHA256 in hooks/trayRuntime.js and verified after every download; rebuild and update both together. .github/workflows/tray-binaries.yml builds the same artifact in CI but refuses to publish when the sha diverges from the pin.","_npmOperationalInternal":{"tmp":"tmp/9router-plinian_0.5.94_1790707798203_0.2455430298095067","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-08-29T14:03:54.846Z","modified":"2026-10-01T03:03:21.440Z","0.5.55":"2026-08-29T14:03:55.389Z","0.5.56":"2026-08-29T14:37:57.410Z","0.5.57":"2026-08-29T14:51:15.681Z","0.5.58":"2026-08-31T14:53:49.873Z","0.5.59":"2026-09-01T00:24:21.479Z","0.5.60":"2026-09-09T06:23:25.251Z","0.5.75":"2026-09-15T16:22:39.277Z","0.5.92":"2026-09-27T04:20:43.754Z","0.5.93":"2026-09-29T18:41:54.975Z","0.5.94":"2026-09-29T18:49:58.791Z"},"license":"MIT","keywords":["9router","cli","proxy","ai","api"],"description":"9Router CLI - Start and manage 9Router server","maintainers":[{"name":"azhar457","email":"azharsss457@gmail.com"}],"readme":"# 9Router - FREE AI Router & Token Saver\n\n**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**\n\n**Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**\n\n[![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router)\n[![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router)\n[![Docker Pulls](https://img.shields.io/docker/pulls/decolua/9router.svg?logo=docker&label=Docker%20pulls)](https://hub.docker.com/r/decolua/9router)\n[![GHCR](https://img.shields.io/badge/GHCR-decolua%2F9router-blue?logo=github)](https://github.com/decolua/9router/pkgs/container/9router)\n[![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE)\n\n<a href=\"https://trendshift.io/repositories/22628\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/22628\" alt=\"decolua%2F9router | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n\n[🌐 Website](https://9router.com) • [📖 Full Docs](https://github.com/decolua/9router)\n\n---\n\n## 🤔 Why 9Router?\n\n**Stop wasting money, tokens and hitting limits:**\n\n- ❌ Subscription quota expires unused every month\n- ❌ Rate limits stop you mid-coding\n- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast\n- ❌ Expensive APIs ($20-50/month per provider)\n\n**9Router solves this:**\n\n- ✅ **RTK Token Saver** - Auto-compress tool_result, save 20-40% tokens\n- ✅ **Maximize subscriptions** - Track quota, use every bit before reset\n- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime\n- ✅ **Multi-account** - Round-robin between accounts per provider\n- ✅ **Universal** - Works with any OpenAI/Claude-compatible CLI\n\n---\n\n## ⚡ Quick Start\n\n**Option 1 — npm (recommended for desktop):**\n\n```bash\nnpm install -g 9router\n9router\n\n# Or run directly with npx\nnpx 9router\n```\n\n**Option 2 — Docker (server/VPS):**\n\n```bash\ndocker run -d --name 9router -p 20128:20128 \\\n  -v \"$HOME/.9router:/app/data\" -e DATA_DIR=/app/data \\\n  decolua/9router:latest\n```\n\nPublished images: [Docker Hub](https://hub.docker.com/r/decolua/9router) • [GHCR](https://github.com/decolua/9router/pkgs/container/9router) (multi-platform amd64/arm64).\n\n🎉 Dashboard opens at `http://localhost:20128`\n\n**2. Connect a FREE provider (no signup needed):**\n\nDashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!\n\n**3. Use in your CLI tool:**\n\n```\nClaude Code/Codex/OpenClaw/Cursor/Cline Settings:\n  Endpoint: http://localhost:20128/v1\n  API Key:  [copy from dashboard]\n  Model:    kr/claude-sonnet-4.5\n```\n\nThat's it! Start coding with FREE AI models.\n\n---\n\n## 🚀 CLI Options\n\n```bash\n9router                    # Start with default settings\n9router --port 8080        # Custom port\n9router --no-browser       # Don't open browser\n9router --skip-update      # Skip auto-update check\n9router --help             # Show all options\n```\n\n**Dashboard**: `http://localhost:20128/dashboard`\n\n---\n\n## 🛠️ Supported CLI Tools\n\nClaude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider\n\nAny tool supporting OpenAI/Claude-compatible API works.\n\n---\n\n## 💾 Data Location\n\n- **macOS/Linux**: `~/.9router/db/data.sqlite`\n- **Windows**: `%APPDATA%/9router/db/data.sqlite`\n- **Docker**: `/app/data/db/data.sqlite` (mount `$HOME/.9router` to persist)\n\n---\n\n## 📚 Documentation\n\nFull docs, advanced setup, video tutorials & development guide:\n\n- **GitHub**: https://github.com/decolua/9router\n- **Full README**: https://github.com/decolua/9router/blob/master/README.md\n- **Website**: https://9router.com\n\n---\n\n## 🙏 Acknowledgments\n\n- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - Original Go implementation\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}