{"_id":"9router-lite","_rev":"9-0e148a61f7bc9649c818165e6b6c07cc","name":"9router-lite","dist-tags":{"latest":"0.4.75"},"versions":{"0.4.66":{"name":"9router-lite","version":"0.4.66","_id":"9router-lite@0.4.66","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"dist":{"shasum":"7e3cadf97e067e1048ae79f07421b721b67aec2d","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.66.tgz","fileCount":3626,"integrity":"sha512-gPA1nj65vxepfiKIiSyX414igWAe7SoQCdUlbkelvTYTbLVvjcsr9sakmb8DDPoNfi4o1PoxQ2naBmSePTE7Jg==","signatures":[{"sig":"MEUCIQD/ZaLWzaag0dAOW9goDTjLNYJxzFNqr/Thw01/9sXFAAIgeDRF08Px5PPaUuqUNvqaDP+ZZX/PvCIH/0haFoVRq60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84748020},"gitHead":"cce8a50cac501d97c49e563d2a37c3d6ec4da991","scripts":{"dev":"next dev --webpack --port 20128","build":"next build --webpack","start":"next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js"},"_npmUser":{"name":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"11.13.0","description":"9Router web dashboard","directories":{},"_nodeVersion":"24.16.0","dependencies":{"fs":"^0.0.1-security","ora":"^9.1.0","jose":"^6.1.3","next":"^16.1.6","open":"^11.0.0","uuid":"^13.0.0","react":"19.2.4","marked":"^18.0.1","sql.js":"^1.14.1","undici":"^7.19.2","confbox":"^0.2.4","express":"^5.2.1","zustand":"^5.0.10","bcryptjs":"^3.0.3","react-is":"^16.13.1","recharts":"^3.7.0","react-dom":"19.2.4","node-forge":"^1.3.3","selfsigned":"^5.5.0","@dnd-kit/core":"^6.3.1","@xyflow/react":"^12.10.1","monaco-editor":"^0.55.1","node-machine-id":"^1.1.12","material-symbols":"^0.44.6","@dnd-kit/sortable":"^10.0.0","socks-proxy-agent":"^8.0.5","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","postcss":"^8.5.6","tailwindcss":"^4","eslint-config-next":"16.1.6","@tailwindcss/postcss":"^4.1.18"},"optionalDependencies":{"better-sqlite3":"^12.6.2"},"comment_better_sqlite3":"kept in optionalDependencies so npm install doesn't fail on systems without build tools — sql.js is used as fallback at runtime","_npmOperationalInternal":{"tmp":"tmp/9router-lite_0.4.66_1780547293998_0.9043321310440753","host":"s3://npm-registry-packages-npm-production"}},"0.4.67":{"name":"9router-lite","version":"0.4.67","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.67","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router":"cli.js","9router-lite":"cli.js"},"dist":{"shasum":"1d06758bc5a0a2fad0efa10c5e518719d990738d","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.67.tgz","fileCount":3023,"integrity":"sha512-lC+wW3IJs79zcRP74xQDK1ccf0mzrAPSNxvh4yRCg5DAJ0MLcipGtDggmE+4hbWcGV6DccSSp/H3OeNz7O5LBA==","signatures":[{"sig":"MEYCIQCNxPYV8z8XfGIeD0b1NY4rFdG0zs67yakE77hIxU+4SQIhALM/0mHD9GeSdmSeiQtGaJcjnJxJmRxTytC+KP5DtqeQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46063051},"engines":{"node":">=18.0.0"},"gitHead":"cce8a50cac501d97c49e563d2a37c3d6ec4da991","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"11.13.0","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"24.16.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-lite_0.4.67_1780549034532_0.1790057533769973","host":"s3://npm-registry-packages-npm-production"}},"0.4.68":{"name":"9router-lite","version":"0.4.68","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.68","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router":"cli.js","9router-lite":"cli.js"},"dist":{"shasum":"aea7976db5f3783a8747203fc070d0e64242b8d4","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.68.tgz","fileCount":3103,"integrity":"sha512-Bafghhm/giMjQXLEGCxgjFS1EnuJPgyedMjn8KSTn+erzsapBLrS8XLuWRANMkUYZrezopU/rUgowVbWAMNPKg==","signatures":[{"sig":"MEYCIQCFW+S+PgKIO7GHLvFZbrNoDUg7lPPUf8hPSB3ik4HjpAIhAMYcG0VpymCO4lIMyO10vrdevg5J3yKntc++zibEfmQQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46441196},"engines":{"node":">=18.0.0"},"gitHead":"69583419b3eb0e036a0ccc5e2c1205cfe57a1f69","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.18.1","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.68_1780710507827_0.6524410985067297","host":"s3://npm-registry-packages-npm-production"}},"0.4.69":{"name":"9router-lite","version":"0.4.69","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.69","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router":"cli.js","9router-lite":"cli.js"},"dist":{"shasum":"5c37f88e87b4efc9d08e34feca9f379c9de34d3e","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.69.tgz","fileCount":3168,"integrity":"sha512-El4KIN51DzLeukdY4BXo8H8ff/lpJfomfQ/UUyqUDgmzeVJRaOjgz2t1ieNarKdKKKC1x5gihIn5xOtT77WzDQ==","signatures":[{"sig":"MEUCIHg+M5JV1cGTaumbLggd5NGadIKjq3TLfwjVLln3hWkuAiEAt5t5QcMHR1UgriG1KKv1CNGErf9k9+EFhIg79/wKtcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47118428},"engines":{"node":">=18.0.0"},"gitHead":"1bd4a4f7319574ac347ccea75c394eefa0e2fb9c","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.20.2","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.69_1780777332374_0.5461904973026444","host":"s3://npm-registry-packages-npm-production"}},"0.4.70":{"name":"9router-lite","version":"0.4.70","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.70","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router":"cli.js","9router-lite":"cli.js"},"dist":{"shasum":"b94e4d37a816f6944d90acaaf454eb14c88cb0d7","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.70.tgz","fileCount":3168,"integrity":"sha512-ot+ikJNSl7rJ90AKYlS32k4PYBT+zLIKh09LZBI7k/1aNLP1KkVlTNqWnQNgAG/xzURWP9fJOGPgbjTJCimDTw==","signatures":[{"sig":"MEYCIQDDCR+eXGtUCPczRjULNGKjylCajm89aqAlkP1JubuIoAIhAJGmZ5yaeKiDRY9wXBE4iiDeejTF4IgND+BQiUPyy5cF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47118746},"engines":{"node":">=18.0.0"},"gitHead":"36c3a4d1367b32800e4385da83b41eeee74009a0","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.20.2","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.70_1780789312071_0.4074983826469518","host":"s3://npm-registry-packages-npm-production"}},"0.4.72":{"name":"9router-lite","version":"0.4.72","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.72","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router":"cli.js","9router-lite":"cli.js"},"dist":{"shasum":"9513fb0366b3151114f9efcfdd1b5500dbead1d0","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.72.tgz","fileCount":3168,"integrity":"sha512-D3aqHx0AGGKvEWpgbGbudZz+7Brs5RsZCtWBsMhRRpMbBVg2MphuzckscuXf7KSRFcghsSEU56NfUZj/MYHF5w==","signatures":[{"sig":"MEUCIEmFTMoa03WKNN+pdqp7OE4dExrUhIyhTAZknqBTDeO+AiEAn0T/vLjlgUG0ipveJQNsKYsO8h1K9PN+vNujuu/iVoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47118691},"engines":{"node":">=18.0.0"},"gitHead":"d886fca8402b48f2e1d190618c155e8408113fed","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.20.2","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.72_1780794061454_0.40115710596817244","host":"s3://npm-registry-packages-npm-production"}},"0.4.73":{"name":"9router-lite","version":"0.4.73","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.73","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router-lite":"cli.js"},"dist":{"shasum":"4eaedab61fb98826185e068c3f56df386c291f0e","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.73.tgz","fileCount":3337,"integrity":"sha512-fOZXGWgB8Jom0BQEx5TnuCbDy5x5f8so5INXY25MVPBEe5KyBEBrobN5OVK8vd3OUxZMxDnz7gILDXher5m7xA==","signatures":[{"sig":"MEUCIQCT99iKqMoWkU1Yi52IUORGiVzNPAAfd5jw34gZi1CWvgIgJHtL64U5+UlI1PlAdYseQMEC0xJvjwmump0ZdPo4cpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49365291},"engines":{"node":">=18.0.0"},"gitHead":"fa55acbb0c112b54df96d789606572b3ee9fcc47","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.20.2","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.73_1781073979135_0.8103343425746188","host":"s3://npm-registry-packages-npm-production"}},"0.4.74":{"name":"9router-lite","version":"0.4.74","keywords":["9router","cli","proxy","ai","api"],"license":"MIT","_id":"9router-lite@0.4.74","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"bin":{"9router-lite":"cli.js"},"dist":{"shasum":"f77636cd50ab28134320d09186253dd4556b33e8","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.74.tgz","fileCount":3333,"integrity":"sha512-pNjQPkvLdK5FSPLTS5WXdBiGX6Al9X6YJiMqwTlIn7DIgDpvr6s8ZO2IbhoHdZFDzu97O15AVlBXHBlLn005IQ==","signatures":[{"sig":"MEQCIAbzlgV2gGOxrkRkM8Wmi8yFyPOd2naEFF3r1PLHtsiaAiBeUpUycrLE7a85jCMk+8NdcR2Oyj8/RyGXINGk3iufBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49086279},"engines":{"node":">=18.0.0"},"gitHead":"a3fa88921e15ff27eff003c7751823a70e9cdfc0","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":"zcus","email":"zcusgt@gmail.com"},"_npmVersion":"10.8.2","description":"9Router CLI - Start and manage 9Router server","directories":{},"_nodeVersion":"20.20.2","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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-lite_0.4.74_1781092737468_0.6301612173115996","host":"s3://npm-registry-packages-npm-production"}},"0.4.75":{"name":"9router-lite","version":"0.4.75","bin":{"9router-lite":"cli.js"},"description":"9Router CLI - Start and manage 9Router server","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 is bundled in the app, and the CLI no longer auto-installs better-sqlite3 by default. Optional native better-sqlite3 can be enabled with 9ROUTER_INSTALL_BETTER_SQLITE3=1 if desired.","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","cli","proxy","ai","api"],"license":"MIT","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_id":"9router-lite@0.4.75","gitHead":"19a36f596ba6fe5abe90a9eb25fa14b956b1b3e7","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-iF86jQYqYGFAD4J/0+oGKe1K0g/IwKaaixCxAoNxkcWdtJhtbGXQAfN3MMjerzsD6/jr7qrza60Hjz7mHLxRlw==","shasum":"9af3e7b71dc3c283c6dc479f8a33ddede1c7dfd7","tarball":"https://registry.npmjs.org/9router-lite/-/9router-lite-0.4.75.tgz","fileCount":3333,"unpackedSize":49091557,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCeLrp2LcnhpOkrm7IFIo8UvHfQYeo1n6HNx3eoXpKd3QIgCjHCf6CfJgQyLeKm7OcjxuFyZQdpsWpP7iFImHlPdnk="}]},"_npmUser":{"name":"zcus","email":"zcusgt@gmail.com"},"directories":{},"maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/9router-lite_0.4.75_1781104027129_0.18942716038888996"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-04T04:28:13.601Z","modified":"2026-06-10T15:07:07.731Z","0.4.66":"2026-06-04T04:28:14.526Z","0.4.67":"2026-06-04T04:57:15.035Z","0.4.68":"2026-06-06T01:48:28.316Z","0.4.69":"2026-06-06T20:22:12.786Z","0.4.70":"2026-06-06T23:41:52.412Z","0.4.72":"2026-06-07T01:01:01.816Z","0.4.73":"2026-06-10T06:46:19.655Z","0.4.74":"2026-06-10T11:58:57.872Z","0.4.75":"2026-06-10T15:07:07.607Z"},"license":"MIT","keywords":["9router","cli","proxy","ai","api"],"description":"9Router CLI - Start and manage 9Router server","maintainers":[{"name":"zcus","email":"zcusgt@gmail.com"}],"readme":"# 9Router Lite\n\n[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)\n\n---\n\n## English\n\n**9Router Lite** is a rebuilt, lightweight edition of the original 9Router. This package is maintained as the author's own lite rebuild of the original project, designed to be lighter, more flexible, and support custom database configurations.\n\n**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**\n\n**Connect AI code tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to many AI providers and models.**\n\n[![npm](https://img.shields.io/npm/v/9router-lite.svg)](https://www.npmjs.com/package/9router-lite)\n[![Downloads](https://img.shields.io/npm/dm/9router-lite.svg)](https://www.npmjs.com/package/9router-lite)\n[![License](https://img.shields.io/npm/l/9router-lite.svg)](./LICENSE)\n\n---\n\n### 🤔 Why 9Router Lite?\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 Lite 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- ✅ **Lite rebuild** - Reworked and packaged as `9router-lite`\n- ✅ **DB Selectable** - Choose between SQL.js (local), PostgreSQL, or CockroachDB\n\n---\n\n### ⚡ Quick Start\n\n#### Option 1 — npm (recommended for desktop):\n\n```bash\nnpm install -g 9router-lite\n9router-lite\n\n# Or run directly with npx\nnpx 9router-lite\n```\n\nThe package also keeps a compatibility alias:\n\n```bash\n9router\n```\n\n🎉 Dashboard opens at `http://localhost:20129`\n\n#### Option 2 — Docker (server/VPS):\n\n```bash\ndocker run -d --name 9router-lite -p 20129:20129 \\\n  -v \"$HOME/.9router-lite:/app/data\" -e DATA_DIR=/app/data \\\n  ghcr.io/YOUR_GITHUB_USERNAME/9router-lite:latest\n```\n\nReplace `YOUR_GITHUB_USERNAME` with the GitHub owner that publishes this fork.\n\n---\n\n### 🚀 CLI Options\n\n```bash\n9router-lite                    # Start with default settings\n9router-lite --port 8080        # Custom port\n9router-lite --no-browser       # Don't open browser\n9router-lite --skip-update      # Skip auto-update check\n9router-lite --help             # Show all options\n```\n\n**Dashboard**: `http://localhost:20129/dashboard`\n\n---\n\n### 💾 Data Location\n\n- **macOS/Linux**: `~/.9router-lite/`\n- **Windows**: `%APPDATA%/9router-lite/`\n- **Docker**: `/app/data` (mount `$HOME/.9router-lite` to persist)\n\n---\n\n## Bahasa Indonesia\n\n**9Router Lite** adalah rebuild ringan dari 9Router original yang gue susun ulang supaya lebih simpel, lebih enteng dipakai, dan lebih fleksibel untuk kebutuhan sendiri maupun orang lain.\n\n**Jangan pernah berhenti coding. Hemat 20-40% token dengan RTK + auto-fallback ke model AI GRATIS & murah.**\n\n**Hubungkan tool AI coding (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) ke berbagai provider dan model AI.**\n\n---\n\n### 🤔 Kenapa 9Router Lite?\n\n**Stop buang-buang uang, token, dan terkena rate limit:**\n\n- ❌ Kuota langganan hangus sia-sia setiap bulan\n- ❌ Rate limit menghentikan lo di tengah-tengah coding\n- ❌ Output tool (git diff, grep, ls...) membakar token dengan cepat\n- ❌ API mahal ($20-50/bulan per provider)\n\n**9Router Lite menyelesaikan ini:**\n\n- ✅ **RTK Token Saver** - Kompres otomatis tool_result, hemat 20-40% token\n- ✅ **Maksimalkan langganan** - Lacak kuota, gunakan setiap bit sebelum reset\n- ✅ **Auto fallback** - Langganan → Murah → Gratis, tanpa downtime\n- ✅ **Multi-account** - Round-robin antar akun per provider\n- ✅ **Universal** - Bekerja dengan CLI apa pun yang kompatibel dengan OpenAI/Claude\n- ✅ **Lite rebuild** - Dibuat ulang dan dikemas sebagai `9router-lite`\n- ✅ **Pilihan Database** - Pilih antara SQL.js (lokal), PostgreSQL, atau CockroachDB\n\n---\n\n### ⚡ Quick Start\n\n#### Opsi 1 — npm (direkomendasikan untuk desktop):\n\n```bash\nnpm install -g 9router-lite\n9router-lite\n\n# Atau jalankan langsung dengan npx\nnpx 9router-lite\n```\n\nPackage ini juga menyediakan alias kompatibilitas:\n\n```bash\n9router\n```\n\n🎉 Dashboard terbuka di `http://localhost:20129`\n\n#### Opsi 2 — Docker (server/VPS):\n\n```bash\ndocker run -d --name 9router-lite -p 20129:20129 \\\n  -v \"$HOME/.9router-lite:/app/data\" -e DATA_DIR=/app/data \\\n  ghcr.io/YOUR_GITHUB_USERNAME/9router-lite:latest\n```\n\nGanti `YOUR_GITHUB_USERNAME` dengan username GitHub lo.\n\n---\n\n### 🚀 Opsi CLI\n\n```bash\n9router-lite                    # Mulai dengan pengaturan default\n9router-lite --port 8080        # Port kustom\n9router-lite --no-browser       # Jangan buka browser otomatis\n9router-lite --skip-update      # Lewati pemeriksaan pembaruan otomatis\n9router-lite --help             # Tampilkan semua opsi\n```\n\n**Dashboard**: `http://localhost:20129/dashboard`\n\n---\n\n### 💾 Lokasi Data\n\n- **macOS/Linux**: `~/.9router-lite/`\n- **Windows**: `%APPDATA%/9router-lite/`\n- **Docker**: `/app/data` (mount `$HOME/.9router-lite` untuk persistensi)\n\n---\n\n## Tentang Project Ini / About This Project\n\nProject ini bukan mirror biasa. Ini adalah hasil karya rebuild yang gue bikin dari 9Router original dengan tujuan:\n- bikin versi yang lebih ringan\n- tetap nyaman dipakai sehari-hari\n- lebih enak buat maintain dan publish sendiri\n- lebih fleksibel untuk pemilihan database dan runtime packaging\n\nThis project is not a simple mirror. It is a custom rebuild of the original 9Router with the goal of providing a lighter, more maintainable, and database-flexible gateway for personal and community use.\n\n---\n\n## Publish ke npm via GitHub Actions\n\nRepo ini sudah disiapkan supaya publish npm jalan dari GitHub Actions pakai secret `NPM_TOKEN`.\n\nFlow-nya:\n- push ke branch utama (`main`)\n\n---\n\n## Acknowledgments\n\n- Rebuilt from the original 9Router idea and ecosystem\n- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - Original Go implementation inspiration\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}