{"_id":"1router","_rev":"5-e3a55e614ebc41d1eaf4bcb8ce286f14","name":"1router","dist-tags":{"latest":"1.0.2"},"versions":{"0.3.96":{"name":"1router","version":"0.3.96","_id":"1router@0.3.96","maintainers":[{"name":"seagrass","email":"hmhytt03@gmail.com"}],"bin":{"1router":"cli.js"},"dist":{"shasum":"0b68c4ebaf3f8b6e32e272b0ba55131e60fe4be1","tarball":"https://registry.npmjs.org/1router/-/1router-0.3.96.tgz","fileCount":2861,"integrity":"sha512-8WtWGFbKw5psRNStw0DPJ2VDCfK6C75y8HzGyYxqIA9K3J4NjGl3TUyN+YWbgLp5ydYXABNMRI4GiLPbNpNMeg==","signatures":[{"sig":"MEUCIQCOROpOHDGpNdVZpPX2nL1IXfTg/qEu9+MrSgaw6pFXFgIgZ0MA7c+a5VGpxtmwRNg9RPeKDpUAOHNhjXhxW/FJ8d0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60606551},"_from":"file:C:/Users/Admin/AppData/Local/Temp/1router-pack/1router-0.3.96.tgz","engines":{"node":">=20"},"private":false,"scripts":{"dev":"next dev --webpack --port 20128","build":"cross-env NODE_ENV=production next build --webpack","start":"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","package:audit":"node scripts/audit-npm-package.js","prepublishOnly":"npm run build && npm run package:prepare && npm run package:audit","package:dry-run":"npm run build && npm run package:prepare && npm run package:audit","package:prepare":"node scripts/prepare-npm-package.js","start:standalone":"node ./.next/standalone/server.js"},"_npmUser":{"name":"seagrass","email":"hmhytt03@gmail.com"},"_resolved":"C:\\Users\\Admin\\AppData\\Local\\Temp\\1router-pack\\1router-0.3.96.tgz","_integrity":"sha512-8WtWGFbKw5psRNStw0DPJ2VDCfK6C75y8HzGyYxqIA9K3J4NjGl3TUyN+YWbgLp5ydYXABNMRI4GiLPbNpNMeg==","_npmVersion":"11.11.0","description":"9Router mod with Windsurf provider support","directories":{},"_nodeVersion":"24.14.1","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","lowdb":"^7.0.1","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","@xyflow/react":"^12.10.1","monaco-editor":"^0.55.1","node-machine-id":"^1.1.12","proper-lockfile":"^4.1.2","socks-proxy-agent":"^8.0.5","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","vitest":"^4.1.5","postcss":"^8.5.6","cross-env":"^7.0.3","tailwindcss":"^4","eslint-config-next":"16.1.6","@tailwindcss/postcss":"^4.1.18"},"optionalDependencies":{"better-sqlite3":"^12.6.2"},"_npmOperationalInternal":{"tmp":"tmp/1router_0.3.96_1776909634211_0.45445850173935276","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.0":{"name":"1router","version":"1.0.0","_id":"1router@1.0.0","maintainers":[{"name":"seagrass","email":"hmhytt03@gmail.com"}],"bin":{"1router":"cli.js"},"dist":{"shasum":"a68195a8cc0dd67dccec9454654aa235d9e359e1","tarball":"https://registry.npmjs.org/1router/-/1router-1.0.0.tgz","fileCount":2879,"integrity":"sha512-4CZPC3/ZiqF8wOE1X2/Y+jEM/7BjS5+5ST+JJ/HXZ5bh8kny9IlRReVhKwx1N3JI7Sgx6bgs4g4pxNfXFHW7Rw==","signatures":[{"sig":"MEUCIQD0fwtUvMcAqt9x6iKJUWtwLyR6tCPQ+A/kdXakXB23RAIgdETlgynh8XAJLlOBVLbw3jjh0R4wZX+Izo66w+8Sch8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60705942},"engines":{"node":">=20"},"gitHead":"befb2bc3d5533eebce6a49487faab2df7758860e","private":false,"scripts":{"dev":"next dev --webpack --port 20128","build":"cross-env NODE_ENV=production next build --webpack","start":"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","package:audit":"node scripts/audit-npm-package.js","prepublishOnly":"npm run build && npm run package:prepare && npm run package:audit","package:dry-run":"npm run build && npm run package:prepare && npm run package:audit","package:prepare":"node scripts/prepare-npm-package.js","start:standalone":"node ./.next/standalone/server.js"},"_npmUser":{"name":"seagrass","email":"hmhytt03@gmail.com"},"_npmVersion":"11.11.0","description":"1Router AI router with Windsurf provider support","directories":{},"_nodeVersion":"24.14.1","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","lowdb":"^7.0.1","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","systray":"^1.0.5","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","@xyflow/react":"^12.10.1","monaco-editor":"^0.55.1","node-machine-id":"^1.1.12","proper-lockfile":"^4.1.2","socks-proxy-agent":"^8.0.5","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","vitest":"^4.1.5","postcss":"^8.5.6","cross-env":"^7.0.3","tailwindcss":"^4","eslint-config-next":"16.1.6","@tailwindcss/postcss":"^4.1.18"},"optionalDependencies":{"better-sqlite3":"^12.6.2"},"_npmOperationalInternal":{"tmp":"tmp/1router_1.0.0_1776912640745_0.9613008358125956","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"1router","version":"1.0.1","_id":"1router@1.0.1","maintainers":[{"name":"seagrass","email":"hmhytt03@gmail.com"}],"bin":{"1router":"cli.js"},"dist":{"shasum":"bbb13e058244c69ef3a4c3aae0a27233f8b321fe","tarball":"https://registry.npmjs.org/1router/-/1router-1.0.1.tgz","fileCount":2879,"integrity":"sha512-LiyR32hhNucGFepj72Cvt8YYcE2qxjj5bQryheeqlDwPefK0f+TwTcQsJ7Vx51PQP98exHkpMfKMHOSRvqgVqA==","signatures":[{"sig":"MEUCIQCi/G5w4ab9RTvmbOpiK0ApsNI3YuOSMP//SIADAmbsOQIgL/TkmEJYX6or7m46dWuM6KZx15l5Qf+LYk2XnWMb40c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60705993},"engines":{"node":">=20"},"gitHead":"befb2bc3d5533eebce6a49487faab2df7758860e","private":false,"scripts":{"dev":"next dev --webpack --port 20128","build":"cross-env NODE_ENV=production next build --webpack","start":"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","package:audit":"node scripts/audit-npm-package.js","prepublishOnly":"npm run build && npm run package:prepare && npm run package:audit","package:dry-run":"npm run build && npm run package:prepare && npm run package:audit","package:prepare":"node scripts/prepare-npm-package.js","start:standalone":"node ./.next/standalone/server.js"},"_npmUser":{"name":"seagrass","email":"hmhytt03@gmail.com"},"_npmVersion":"11.11.0","description":"1Router AI router with Windsurf provider support","directories":{},"_nodeVersion":"24.14.1","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","lowdb":"^7.0.1","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","systray":"^1.0.5","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","@xyflow/react":"^12.10.1","monaco-editor":"^0.55.1","node-machine-id":"^1.1.12","proper-lockfile":"^4.1.2","socks-proxy-agent":"^8.0.5","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","vitest":"^4.1.5","postcss":"^8.5.6","cross-env":"^7.0.3","tailwindcss":"^4","eslint-config-next":"16.1.6","@tailwindcss/postcss":"^4.1.18"},"optionalDependencies":{"better-sqlite3":"^12.6.2"},"_npmOperationalInternal":{"tmp":"tmp/1router_1.0.1_1776913293521_0.810354528198473","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.2":{"name":"1router","version":"1.0.2","_id":"1router@1.0.2","maintainers":[{"name":"seagrass","email":"hmhytt03@gmail.com"}],"bin":{"1router":"cli.js"},"dist":{"shasum":"b7e4a405e2ab7701b7d6c15938b5f0667cd0762f","tarball":"https://registry.npmjs.org/1router/-/1router-1.0.2.tgz","fileCount":2879,"integrity":"sha512-M+L8muoDiIn6gAwgbDqJh96hZ0c9rZSEv/Ijl+NjXwpkmO923IcVJtzHupuXvcZyVd4EP5dyZ3wlGRVpJWRM8A==","signatures":[{"sig":"MEUCIQCoNHGXlkwgscttEGobX1Fx3p53FJ1CfhEwzhvWKBVYQgIgYcpRg73VxyIRXMVZ5iK+WSqFzIlwM/5DDdODm5lPLqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60714602},"engines":{"node":">=20"},"gitHead":"befb2bc3d5533eebce6a49487faab2df7758860e","private":false,"scripts":{"dev":"next dev --webpack --port 20128","build":"cross-env NODE_ENV=production next build --webpack","start":"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","package:audit":"node scripts/audit-npm-package.js","prepublishOnly":"npm run build && npm run package:prepare && npm run package:audit","package:dry-run":"npm run build && npm run package:prepare && npm run package:audit","package:prepare":"node scripts/prepare-npm-package.js","start:standalone":"node ./.next/standalone/server.js"},"_npmUser":{"name":"seagrass","email":"hmhytt03@gmail.com"},"_npmVersion":"11.11.0","description":"1Router AI router with Windsurf provider support","directories":{},"_nodeVersion":"24.14.1","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","lowdb":"^7.0.1","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","systray":"^1.0.5","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","@xyflow/react":"^12.10.1","monaco-editor":"^0.55.1","node-machine-id":"^1.1.12","proper-lockfile":"^4.1.2","socks-proxy-agent":"^8.0.5","@monaco-editor/react":"^4.7.0","http-proxy-middleware":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","vitest":"^4.1.5","postcss":"^8.5.6","cross-env":"^7.0.3","tailwindcss":"^4","eslint-config-next":"16.1.6","@tailwindcss/postcss":"^4.1.18"},"optionalDependencies":{"better-sqlite3":"^12.6.2"},"_npmOperationalInternal":{"tmp":"tmp/1router_1.0.2_1777023508864_0.25509735597995875","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-04-23T02:00:34.066Z","modified":"2026-04-26T03:12:27.619Z","0.3.96":"2026-04-23T02:00:34.905Z","1.0.0":"2026-04-23T02:50:41.401Z","1.0.1":"2026-04-23T03:01:34.197Z","1.0.2":"2026-04-24T09:38:29.544Z"},"description":"1Router AI router with Windsurf provider support","maintainers":[{"name":"seagrass","email":"hmhytt03@gmail.com"}],"readme":"# 1Router\n\n1Router is a local AI routing gateway with a dashboard, OpenAI-compatible endpoints, and Windsurf provider support.\n\n## Install\n\n```bash\nnpm install -g 1router\n1router\n```\n\nThe dashboard starts at:\n\n```text\nhttp://localhost:20128/dashboard\n```\n\nDefault local runtime data is stored in:\n\n```text\n~/.1router/data\n```\n\nOn Windows this still respects `DATA_DIR` if you set it explicitly.\n\n## CLI\n\nThe `1router` command opens an interactive launcher similar to the original router CLI:\n\n```text\nWeb UI (Open in Browser)\nTerminal UI (Interactive CLI)\nHide to Tray (Background)\nExit\n```\n\nUseful flags:\n\n```bash\n1router --port 20128\n1router --host 0.0.0.0\n1router --tray\n1router --skip-update\n1router --log\n```\n\nUpdate checks read from the npm package `1router`.\n\n## Windsurf\n\nWindsurf support uses the local Windsurf installation/session on the machine where 1Router is running. The npm package does not include private account tokens, `.env` files, local databases, or Windsurf session state.\n\nPrimary Windsurf model ids currently exposed by the mod:\n\n```text\nws/claude-sonnet-4.6\nws/claude-opus-4.6\nws/claude-haiku-4.5\nws/gpt-5.4\n```\n\n## Environment\n\n```bash\nPORT=20128 DATA_DIR=/path/to/data INITIAL_PASSWORD=your-password 1router\n```\n\nRuntime secrets are generated locally on first launch under `~/.1router/runtime-secrets.json`.\n\n## OpenAI-Compatible Endpoint\n\n```text\nBase URL: http://localhost:20128/v1\nAPI key: use a key from the dashboard, or the local default shown by the app\n```\n","readmeFilename":"README.md"}