{"_id":"9routerchi","_rev":"8-adc36cdac36eeede9724d04a0d2bde7f","name":"9routerchi","dist-tags":{"latest":"0.5.69"},"versions":{"0.5.45":{"name":"9routerchi","version":"0.5.45","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.45","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"da30d8ff983c8ab0233bc7682004d56b8b269b77","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.45.tgz","fileCount":3219,"integrity":"sha512-j60pk7+zUngxC7YJsN/NRALq19xGsykg4TyP7uTX4GyrNDmyH2ZokQQBLe4TiQdPQ0NAQ0nHzYKzp0UbjpCnDQ==","signatures":[{"sig":"MEQCIEqb9PC+SbUw7+bshy0ULdUc2u4xYkl7Ul6L+ufegJZ7AiBUsFGAnOIsCVHKSwvAeyMLtI6NMr59QqvnRFc1+Snq5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47962460},"_from":"file:D:/C#/9router/9routerchi-0.5.45.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.45.tgz","_integrity":"sha512-j60pk7+zUngxC7YJsN/NRALq19xGsykg4TyP7uTX4GyrNDmyH2ZokQQBLe4TiQdPQ0NAQ0nHzYKzp0UbjpCnDQ==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.45_1785666802914_0.6345909747851004","host":"s3://npm-registry-packages-npm-production"}},"0.5.46":{"name":"9routerchi","version":"0.5.46","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.46","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"d2c53ce3a4262f1df706b7a4fb0a71f650ef2ff5","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.46.tgz","fileCount":3227,"integrity":"sha512-HAKAxlQx8S6KwNlg0Mc2SrnGpTN5UilSHf/F515MMSPGr9KuklkwidVesaosZffHKkRbV0mEd2mEfSM5q+zMPg==","signatures":[{"sig":"MEQCIF2krGIEwm0+0SCRAo47L5cUpeXu8gqOl5cd3BTAzmH3AiBWOhQAJ2wihgA++0SYbFvA6tI0MheVYqjbT2/IToazNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48292772},"_from":"file:D:/C#/9router/9routerchi-0.5.46.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.46.tgz","_integrity":"sha512-HAKAxlQx8S6KwNlg0Mc2SrnGpTN5UilSHf/F515MMSPGr9KuklkwidVesaosZffHKkRbV0mEd2mEfSM5q+zMPg==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.46_1785746209040_0.19928349535322054","host":"s3://npm-registry-packages-npm-production"}},"0.5.47":{"name":"9routerchi","version":"0.5.47","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.47","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"24335751f009b1a77e7c2c968df486750e80ffec","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.47.tgz","fileCount":3227,"integrity":"sha512-pqwY7pbrRouCI0mqXWxD+WOCLs1JqD5m3PPceeGJz80/Jtb+J3/qPOsZKgZCR3UK0+oA9SXco06GuC7YjdrixA==","signatures":[{"sig":"MEQCIBr4MVeV1rf4AWIZS8os0nLU4hpg4eGUMe/Mnboo8l2xAiASZOuq7p2A9IrKEmU0fHlZ1icncS6CZ3Zhq89LgXgpLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48297904},"_from":"file:D:/C#/9router/9routerchi-0.5.47.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.47.tgz","_integrity":"sha512-pqwY7pbrRouCI0mqXWxD+WOCLs1JqD5m3PPceeGJz80/Jtb+J3/qPOsZKgZCR3UK0+oA9SXco06GuC7YjdrixA==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.47_1785747125735_0.20923376177336972","host":"s3://npm-registry-packages-npm-production"}},"0.5.48":{"name":"9routerchi","version":"0.5.48","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.48","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"b9c5c00f7b944467968c1075741d735c19cc50bf","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.48.tgz","fileCount":3227,"integrity":"sha512-GZfsKDCwzambbJo7X5GDJzw+LfEJgY4OslUp/QjHEao4Hzv5GEz9YbCcLYunhhkHE8KjJ6c/hfJE7FB8CF6zvg==","signatures":[{"sig":"MEQCIG8+6al+t31KBQYDJRFR5kA3SVfD4uzP7K0c73bR9XtnAiAmW+a48W7pS2VO6OpTz+vFwdB2BmyE5b1TUZvLYjNTMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48302127},"_from":"file:D:/C#/9router/9routerchi-0.5.48.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.48.tgz","_integrity":"sha512-GZfsKDCwzambbJo7X5GDJzw+LfEJgY4OslUp/QjHEao4Hzv5GEz9YbCcLYunhhkHE8KjJ6c/hfJE7FB8CF6zvg==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.48_1785747607140_0.0033615568796971917","host":"s3://npm-registry-packages-npm-production"}},"0.5.49":{"name":"9routerchi","version":"0.5.49","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.49","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"50d40449fd73c307ae636cfc8252728e6df73fe1","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.49.tgz","fileCount":3227,"integrity":"sha512-YrQWszptEccnIDwQG4V1rQJDSjk6mTG6rWhIucsQuY+15+Z/1lD6WaNpfNZBx8zVBvxrfPiauSzRh9eexQnNOg==","signatures":[{"sig":"MEUCIQDh1s9WluWb0grqvJSbkYPXk4aRsqVlailSAxrN1m55/wIgK0mnccRucY2soEnYxpu5XByWEQ7madyA/07XDYk//Zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48257993},"_from":"file:D:/C#/9router/9routerchi-0.5.49.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.49.tgz","_integrity":"sha512-YrQWszptEccnIDwQG4V1rQJDSjk6mTG6rWhIucsQuY+15+Z/1lD6WaNpfNZBx8zVBvxrfPiauSzRh9eexQnNOg==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.49_1788092404792_0.8729953153469827","host":"s3://npm-registry-packages-npm-production"}},"0.5.50":{"name":"9routerchi","version":"0.5.50","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.50","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"9728455ab9f8af96e7b1f8dbcc69dd2706f220fc","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.50.tgz","fileCount":3221,"integrity":"sha512-VroeN3BioCz1daPmupMtBUWhigcGpk7PRHeysmrKhpJ0fNlDklobd4uXFItUamEh0AG7txkqthUf2acW0p2sRw==","signatures":[{"sig":"MEYCIQDzj2K6yjKaGAQ9MxrD8Iv4UZ0J1M7QgqyUbrjYt5EuwQIhAMvROvWya8HWjYaaktmTa3PrMBX8d+otphqV/trroa27","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47995560},"_from":"file:D:/C#/9router/9routerchi-0.5.50.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.50.tgz","_integrity":"sha512-VroeN3BioCz1daPmupMtBUWhigcGpk7PRHeysmrKhpJ0fNlDklobd4uXFItUamEh0AG7txkqthUf2acW0p2sRw==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.50_1788093820585_0.8849769935658365","host":"s3://npm-registry-packages-npm-production"}},"0.5.51":{"name":"9routerchi","version":"0.5.51","keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"license":"MIT","_id":"9routerchi@0.5.51","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"bin":{"9routerChi":"cli.js","9routerchi":"cli.js"},"dist":{"shasum":"5ca26ee9183b1c22d1ffaa1373120f4d375402d2","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.51.tgz","fileCount":3221,"integrity":"sha512-BoNEeyDSD5SKWOrTQPUAxjtncOFiXus8Dp4gQUVUZA6caWamPU/W8SfWvokojIbKALeqPfEkblR6DdnQBhU01Q==","signatures":[{"sig":"MEUCIQD8lKea/MzysQfqFhJJ0xCEPtHXxr7zP7rbI5hrCD98sAIgTHy6nXv0GCbOt1UZuhBCzD3IsksknYqEJkq5r+gPhb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47979354},"_from":"file:D:/C#/9router/9routerchi-0.5.51.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":"ducchi","email":"ducchi11345678@gmail.com"},"_resolved":"D:\\C#\\9router\\9routerchi-0.5.51.tgz","_integrity":"sha512-BoNEeyDSD5SKWOrTQPUAxjtncOFiXus8Dp4gQUVUZA6caWamPU/W8SfWvokojIbKALeqPfEkblR6DdnQBhU01Q==","repository":{"url":"git+https://github.com/chinene123/9router.git","type":"git"},"_npmVersion":"11.18.0","description":"9RouterChi CLI - Start and manage the customized 9Router server","directories":{},"_nodeVersion":"24.14.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/9routerchi_0.5.51_1788095114564_0.9651471498063167","host":"s3://npm-registry-packages-npm-production"}},"0.5.69":{"name":"9routerchi","version":"0.5.69","description":"9RouterChi CLI - Start and manage the customized 9Router server","bin":{"9routerchi":"cli.js","9routerChi":"cli.js"},"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 ..","publish:cli":"npm run build && npm publish","postinstall":"node hooks/postinstall.js","prepublishOnly":"npm run build"},"dependencies":{"enquirer":"^2.4.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12","react":"19.2.1","react-dom":"19.2.1"},"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.","engines":{"node":">=18.0.0"},"keywords":["9router","9routerchi","cli","proxy","ai","api"],"author":{"name":"chinene123"},"repository":{"type":"git","url":"git+https://github.com/chinene123/9router.git"},"homepage":"https://github.com/chinene123/9router#readme","bugs":{"url":"https://github.com/chinene123/9router/issues"},"license":"MIT","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_id":"9routerchi@0.5.69","_integrity":"sha512-u8NpDSIDp6224V+gQffOJL1xf+R6PVGk22G8mcDp8yhE34A45p0AWEwS5GENVP/xeLDVH1SlLv74+cOfpjxlDA==","_resolved":"D:\\C#\\9router\\9routerchi-0.5.69.tgz","_from":"file:D:/C#/9router/9routerchi-0.5.69.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-u8NpDSIDp6224V+gQffOJL1xf+R6PVGk22G8mcDp8yhE34A45p0AWEwS5GENVP/xeLDVH1SlLv74+cOfpjxlDA==","shasum":"26c756363742152e9216589f50415d6d99228edb","tarball":"https://registry.npmjs.org/9routerchi/-/9routerchi-0.5.69.tgz","fileCount":3295,"unpackedSize":49264226,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB/zvFbktyV8v6nziUtW5XN6n/3910ZYfT7Mq7tgrfEgAiB0daJwdXP8oLEAftdbvYW6TFPDIT48glu2mr7D0OB8HA=="}]},"_npmUser":{"name":"ducchi","email":"ducchi11345678@gmail.com"},"directories":{},"maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/9routerchi_0.5.69_1788698781416_0.8900543332116013"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-02T10:33:22.790Z","modified":"2026-09-06T12:46:21.947Z","0.5.45":"2026-08-02T10:33:23.293Z","0.5.46":"2026-08-03T08:36:49.375Z","0.5.47":"2026-08-03T08:52:06.118Z","0.5.48":"2026-08-03T09:00:07.497Z","0.5.49":"2026-08-30T12:20:05.136Z","0.5.50":"2026-08-30T12:43:40.924Z","0.5.51":"2026-08-30T13:05:14.912Z","0.5.69":"2026-09-06T12:46:21.797Z"},"bugs":{"url":"https://github.com/chinene123/9router/issues"},"author":{"name":"chinene123"},"license":"MIT","homepage":"https://github.com/chinene123/9router#readme","keywords":["9router","9routerchi","cli","proxy","ai","api"],"repository":{"type":"git","url":"git+https://github.com/chinene123/9router.git"},"description":"9RouterChi CLI - Start and manage the customized 9Router server","maintainers":[{"name":"ducchi","email":"ducchi11345678@gmail.com"}],"readme":"# 9Router - FREE AI Router & Token Saver\r\n\r\n**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**\r\n\r\n**Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**\r\n\r\n[![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router)\r\n[![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router)\r\n[![Docker Pulls](https://img.shields.io/docker/pulls/decolua/9router.svg?logo=docker&label=Docker%20pulls)](https://hub.docker.com/r/decolua/9router)\r\n[![GHCR](https://img.shields.io/badge/GHCR-decolua%2F9router-blue?logo=github)](https://github.com/decolua/9router/pkgs/container/9router)\r\n[![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE)\r\n\r\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>\r\n\r\n[🌐 Website](https://9router.com) • [📖 Full Docs](https://github.com/decolua/9router)\r\n\r\n---\r\n\r\n## 🤔 Why 9Router?\r\n\r\n**Stop wasting money, tokens and hitting limits:**\r\n\r\n- ❌ Subscription quota expires unused every month\r\n- ❌ Rate limits stop you mid-coding\r\n- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast\r\n- ❌ Expensive APIs ($20-50/month per provider)\r\n\r\n**9Router solves this:**\r\n\r\n- ✅ **RTK Token Saver** - Auto-compress tool_result, save 20-40% tokens\r\n- ✅ **Maximize subscriptions** - Track quota, use every bit before reset\r\n- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime\r\n- ✅ **Multi-account** - Round-robin between accounts per provider\r\n- ✅ **Universal** - Works with any OpenAI/Claude-compatible CLI\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n**Option 1 — npm (recommended for desktop):**\r\n\r\n```bash\r\nnpm install -g 9routerchi\r\n9routerchi\r\n\r\n# Or run directly with npx\r\nnpx 9routerchi\r\n```\r\n\r\n**Option 2 — Docker (server/VPS):**\r\n\r\n```bash\r\ndocker run -d --name 9router -p 20128:20128 \\\r\n  -v \"$HOME/.9router:/app/data\" -e DATA_DIR=/app/data \\\r\n  decolua/9router:latest\r\n```\r\n\r\nPublished images: [Docker Hub](https://hub.docker.com/r/decolua/9router) • [GHCR](https://github.com/decolua/9router/pkgs/container/9router) (multi-platform amd64/arm64).\r\n\r\n🎉 Dashboard opens at `http://localhost:20128`\r\n\r\n**2. Connect a FREE provider (no signup needed):**\r\n\r\nDashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!\r\n\r\n**3. Use in your CLI tool:**\r\n\r\n```\r\nClaude Code/Codex/OpenClaw/Cursor/Cline Settings:\r\n  Endpoint: http://localhost:20128/v1\r\n  API Key:  [copy from dashboard]\r\n  Model:    kr/claude-sonnet-4.5\r\n```\r\n\r\nThat's it! Start coding with FREE AI models.\r\n\r\n---\r\n\r\n## 🚀 CLI Options\r\n\r\n```bash\r\n9router                    # Start with default settings\r\n9router --port 8080        # Custom port\r\n9router --no-browser       # Don't open browser\r\n9router --skip-update      # Skip auto-update check\r\n9router --help             # Show all options\r\n```\r\n\r\n**Dashboard**: `http://localhost:20128/dashboard`\r\n\r\n---\r\n\r\n## 🛠️ Supported CLI Tools\r\n\r\nClaude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider\r\n\r\nAny tool supporting OpenAI/Claude-compatible API works.\r\n\r\n---\r\n\r\n## 💾 Data Location\r\n\r\n- **macOS/Linux**: `~/.9router/db/data.sqlite`\r\n- **Windows**: `%APPDATA%/9router/db/data.sqlite`\r\n- **Docker**: `/app/data/db/data.sqlite` (mount `$HOME/.9router` to persist)\r\n\r\n---\r\n\r\n## 📚 Documentation\r\n\r\nFull docs, advanced setup, video tutorials & development guide:\r\n\r\n- **GitHub**: https://github.com/decolua/9router\r\n- **Full README**: https://github.com/decolua/9router/blob/main/app/README.md\r\n- **Website**: https://9router.com\r\n\r\n---\r\n\r\n## 🙏 Acknowledgments\r\n\r\n- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - Original Go implementation\r\n\r\n## 📄 License\r\n\r\nMIT License - see [LICENSE](LICENSE) for details.\r\n","readmeFilename":"README.md"}