67router 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/README.md +139 -190
  2. package/app/.next-cli-build/BUILD_ID +1 -1
  3. package/app/.next-cli-build/app-path-routes-manifest.json +2 -2
  4. package/app/.next-cli-build/build-manifest.json +3 -3
  5. package/app/.next-cli-build/react-loadable-manifest.json +20 -29
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  63. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  64. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  65. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  66. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  67. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  254. package/app/.next-cli-build/server/app/callback.html +1 -1
  255. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  256. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  257. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  258. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  259. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +4 -4
  261. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +4 -4
  262. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +4 -4
  263. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  264. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +4 -4
  266. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +4 -4
  267. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  268. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  269. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/combos.rsc +4 -4
  271. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  272. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  273. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  274. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +4 -4
  276. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +4 -4
  277. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  278. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  279. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +4 -4
  281. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
  282. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +4 -4
  283. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  284. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +4 -4
  286. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +4 -4
  287. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +4 -4
  288. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  289. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  291. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  292. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  293. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  294. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +4 -4
  296. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  297. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  298. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
  301. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  302. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  303. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  304. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  305. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +4 -4
  306. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  307. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +4 -4
  308. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +4 -4
  311. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +4 -4
  312. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +4 -4
  313. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  314. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/quota.rsc +4 -4
  316. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  317. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
  318. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  319. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  323. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  324. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  325. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  326. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
  328. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
  329. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
  330. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  331. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +4 -4
  333. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +4 -4
  334. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +4 -4
  335. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  336. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/translator.rsc +4 -4
  338. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  339. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  340. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  341. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  343. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
  344. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  345. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  346. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  347. package/app/.next-cli-build/server/app/dashboard.rsc +4 -4
  348. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +4 -4
  349. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +4 -4
  350. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  351. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/index.html +1 -1
  353. package/app/.next-cli-build/server/app/index.rsc +4 -4
  354. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  355. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  356. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  357. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  359. package/app/.next-cli-build/server/app/landing.html +1 -1
  360. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  361. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  362. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  364. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  366. package/app/.next-cli-build/server/app/login.html +1 -1
  367. package/app/.next-cli-build/server/app/login.rsc +4 -4
  368. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  369. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  371. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  374. package/app/.next-cli-build/server/app-paths-manifest.json +2 -2
  375. package/app/.next-cli-build/server/chunks/3449.js +1 -1
  376. package/app/.next-cli-build/server/chunks/412.js +1 -1
  377. package/app/.next-cli-build/server/chunks/4190.js +1 -1
  378. package/app/.next-cli-build/server/chunks/4254.js +1 -0
  379. package/app/.next-cli-build/server/chunks/6540.js +1 -1
  380. package/app/.next-cli-build/server/chunks/7037.js +1 -1
  381. package/app/.next-cli-build/server/chunks/7066.js +1 -1
  382. package/app/.next-cli-build/server/chunks/827.js +1 -1
  383. package/app/.next-cli-build/server/chunks/869.js +1 -1
  384. package/app/.next-cli-build/server/chunks/9604.js +1 -1
  385. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  387. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  388. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/pages/404.html +1 -1
  390. package/app/.next-cli-build/server/pages/500.html +1 -1
  391. package/app/.next-cli-build/static/chunks/124.c1b5af11afe50408.js +1 -0
  392. package/app/.next-cli-build/static/chunks/{1321-a966036b7e3ae8c3.js → 1321-6630b5aa23e3ec0e.js} +1 -1
  393. package/app/.next-cli-build/static/chunks/2435.73c540d31dae9ecf.js +1 -0
  394. package/app/.next-cli-build/static/chunks/3521.f0ac0c88103b9f6c.js +1 -0
  395. package/app/.next-cli-build/static/chunks/5497-1681f72f0e82b863.js +7 -0
  396. package/app/.next-cli-build/static/chunks/5524.fca1db6352c39218.js +1 -0
  397. package/app/.next-cli-build/static/chunks/6808-b6550a28721e71e1.js +1 -0
  398. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-1f79ed13b16582ef.js → page-be90b4d4a94a121d.js} +1 -1
  399. package/app/.next-cli-build/static/chunks/webpack-396894770603fee1.js +1 -0
  400. package/app/.next-cli-build/static/css/2388dd0fafaf8266.css +1 -0
  401. package/app/cli/.build-home/AppData/Roaming/67router/db/data.sqlite-shm +0 -0
  402. package/app/cli/.build-home/AppData/Roaming/67router/db/data.sqlite-wal +0 -0
  403. package/app/package.json +1 -1
  404. package/cli.js +54 -54
  405. package/package.json +1 -1
  406. package/src/cli/tray/tray.ps1 +64 -10
  407. package/src/cli/tray/trayWin.js +38 -15
  408. package/app/.next-cli-build/server/chunks/6708.js +0 -1
  409. package/app/.next-cli-build/server/chunks/7121.js +0 -1
  410. package/app/.next-cli-build/static/chunks/124.c092990b4bdb9713.js +0 -1
  411. package/app/.next-cli-build/static/chunks/2435.8a5a02e626c780d0.js +0 -1
  412. package/app/.next-cli-build/static/chunks/3521.a9e2daf685420cc7.js +0 -1
  413. package/app/.next-cli-build/static/chunks/5497-3cf29976f188352b.js +0 -7
  414. package/app/.next-cli-build/static/chunks/6808-9540d7ac65c3e6a0.js +0 -1
  415. package/app/.next-cli-build/static/chunks/webpack-97b250ee703d0d92.js +0 -1
  416. package/app/.next-cli-build/static/css/d9ba36d87937fec6.css +0 -1
  417. /package/app/.next-cli-build/static/{RC_KHxUynSqU7uk0euJap → ZSFfwWCBng6VPk2-0itNU}/_buildManifest.js +0 -0
  418. /package/app/.next-cli-build/static/{RC_KHxUynSqU7uk0euJap → ZSFfwWCBng6VPk2-0itNU}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,190 +1,139 @@
1
- # 67Router - FREE AI Router & Token Saver
2
-
3
- **Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**
4
-
5
- **Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**
6
-
7
- [![npm](https://img.shields.io/npm/v/67router.svg)](https://www.npmjs.com/package/67router)
8
- [![Downloads](https://img.shields.io/npm/dm/67router.svg)](https://www.npmjs.com/package/67router)
9
- [![License](https://img.shields.io/npm/l/67router.svg)](https://github.com/decolua/9router/blob/main/LICENSE)
10
-
11
- ---
12
-
13
- ## ⚡ Quick Start
14
-
15
- **Option 1 — npm (recommended for desktop):**
16
-
17
- ```bash
18
- npm install -g 67router
19
- 67router
20
-
21
- # Or run directly with npx
22
- npx 67router
23
- ```
24
-
25
- **Option 2 — Docker (server/VPS):**
26
-
27
- ```bash
28
- docker run -d --name 9router -p 20128:20128 \
29
- -v "$HOME/.9router:/app/data" -e DATA_DIR=/app/data \
30
- decolua/9router:latest
31
- ```
32
-
33
- Published images: [Docker Hub](https://hub.docker.com/r/decolua/9router) • [GHCR](https://github.com/decolua/9router/pkgs/container/9router) (multi-platform amd64/arm64).
34
-
35
- 🎉 Dashboard opens at `http://localhost:20128`
36
-
37
- **2. Connect a FREE provider (no signup needed):**
38
-
39
- Dashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!
40
-
41
- **3. Use in your CLI tool:**
42
-
43
- ```
44
- Claude Code/Codex/OpenClaw/Cursor/Cline Settings:
45
- Endpoint: http://localhost:20128/v1
46
- API Key: [copy from dashboard]
47
- Model: kr/claude-sonnet-4.5
48
- ```
49
-
50
- That's it! Start coding with FREE AI models.
51
-
52
- ---
53
-
54
- ## 🚀 CLI Options
55
-
56
- ```bash
57
- 9router # Start with default settings
58
- 9router --port 8080 # Custom port
59
- 9router --no-browser # Don't open browser
60
- 9router --skip-update # Skip auto-update check
61
- 9router --help # Show all options
62
- ```
63
-
64
- **Dashboard**: `http://localhost:20128/dashboard`
65
-
66
- ---
67
-
68
- ## 🔌 Connect to a Remote 9Router
69
-
70
- Already running 9Router on another machine (e.g. a team server on your LAN)? Point this machine's CLI tools at it — no local server is started:
71
-
72
- ```bash
73
- npx 9router connect http://<server-host>:20128 # pick tools interactively
74
- npx 9router connect http://<server-host>:20128 --tools claude,codex # or choose up front
75
- npx 9router connect --reset --tools claude,codex # undo
76
- ```
77
-
78
- It logs in with the dashboard password (hidden prompt), reuses or creates an API key named `cli-<hostname>`, and writes each tool's config (backing up the original once as `*.bak-9router`).
79
-
80
- Supported tools: `claude`, `codex`, `opencode`, `droid`, `crush`, `kilo`, `cline`, `pi`, `omp`, or `all`.
81
-
82
- ### Models
83
-
84
- Models come from the **server's own CLI-tools configuration**, so a client gets whatever the operator already picked on the dashboard. Nothing is hardcoded.
85
-
86
- | Tool | Model taken from (first match wins) |
87
- |---|---|
88
- | `claude` | tier flag (`--opus` …) → server's Claude tier → *left unset* (Claude Code's own default) |
89
- | others | `--model` → that tool's own model on the server → server's OpenCode model → *tool skipped* |
90
-
91
- `kilo` has no readable model on the server, so it always uses `--model` or the OpenCode model. `omp` (Oh My Pi) needs no model: it uses proxy discovery, so every server model appears under `9router` in `/model`. A Claude tier the server doesn't set is removed from your config rather than kept from an earlier run. A skipped tool makes the command exit `1`.
92
-
93
- ### Overriding the server's models
94
-
95
- ```bash
96
- # One Claude tier; the other tiers still come from the server
97
- npx 9router connect http://<server-host>:20128 --tools claude --sonnet cc/claude-sonnet-5-5
98
-
99
- # Every Claude tier
100
- npx 9router connect http://<server-host>:20128 --tools claude \
101
- --fable cc/claude-fable-5-1 --opus cc/claude-opus-5-5 \
102
- --sonnet cc/claude-sonnet-5-5 --haiku cc/claude-haiku-4-5-20251001
103
-
104
- # All non-Claude tools at once
105
- npx 9router connect http://<server-host>:20128 --tools codex,opencode,kilo --model ocg/deepseek-flash
106
-
107
- # Claude and other tools in one run
108
- npx 9router connect http://<server-host>:20128 --tools claude,codex --opus cc/claude-opus-5-5 --model gpt-6
109
-
110
- # A different model per tool: --model covers every non-Claude tool in a run, so run once per tool
111
- npx 9router connect http://<server-host>:20128 --tools codex --model gpt-6
112
- npx 9router connect http://<server-host>:20128 --tools opencode --model ocg/glm-5.3
113
- ```
114
-
115
- A model the server doesn't list is still written, with a `not listed by server` warning. To see the ids it serves: `curl http://<server-host>:20128/v1/models -H "Authorization: Bearer <your key>"`.
116
-
117
- ### Checking the current config
118
-
119
- `9router show` prints what each CLI tool on this machine is currently set to — base URL, masked API key and models. It only reads local files and never contacts a server.
120
-
121
- ```bash
122
- npx 9router show # every supported tool
123
- npx 9router show claude # one tool
124
- npx 9router show claude codex # several
125
- npx 9router show claude --json # machine-readable (key still masked)
126
- ```
127
-
128
- ```
129
- ✅ Claude Code
130
- File: ~/.claude/settings.json
131
- Base URL: http://<server-host>:20128/v1
132
- API key: sk-a1b…9f3c
133
- Models:
134
- fable cc/claude-fable-5-1
135
- opus cc/claude-opus-5-5
136
- sonnet cc/claude-sonnet-5-5
137
- ```
138
-
139
- Tools not pointed at 9router are listed as `not configured`. For Codex, OpenCode and Cline it also warns when a 9router entry exists but another provider is the active one.
140
-
141
- ### Other options
142
-
143
- | Option | Purpose |
144
- |---|---|
145
- | `--password <pw>` | Dashboard password (or `NINE_ROUTER_PASSWORD`); prompted if omitted — preferred, keeps it out of shell history |
146
- | `--save` | After a successful login, save the password for this server to `~/.9router/connect.env` (plain text, mode 600) so later runs skip the prompt. Delete the file to forget it |
147
- | `--api-key <key>` | Use this key and skip login. The server's models can't be read without a login, so pass model flags |
148
- | `--key-name <name>` | API key name to reuse/create (default `cli-<hostname>`) |
149
- | `--print-env` | Also print `OPENAI_BASE_URL` / `OPENAI_API_KEY` for other CLIs |
150
- | `--reset` | Remove the 9router settings from the selected tools |
151
-
152
- See `9router connect --help` for the full list.
153
-
154
- > ⚠️ Over plain `http://` the password and API key are sent unencrypted — use a trusted LAN/VPN or put HTTPS in front. The API key is stored in each tool's config file.
155
-
156
- ---
157
-
158
- ## 🛠️ Supported CLI Tools
159
-
160
- Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider
161
-
162
- Any tool supporting OpenAI/Claude-compatible API works.
163
-
164
- ---
165
-
166
- ## 💾 Data Location
167
-
168
- - **macOS/Linux**: `~/.9router/db/data.sqlite`
169
- - **Windows**: `%APPDATA%/9router/db/data.sqlite`
170
- - **Docker**: `/app/data/db/data.sqlite` (mount `$HOME/.9router` to persist)
171
-
172
- ---
173
-
174
- ## 📚 Documentation
175
-
176
- Full docs, advanced setup, video tutorials & development guide:
177
-
178
- - **GitHub**: https://github.com/decolua/9router
179
- - **Full README**: https://github.com/decolua/9router/blob/master/README.md
180
- - **Website**: https://9router.com
181
-
182
- ---
183
-
184
- ## 🙏 Acknowledgments
185
-
186
- - **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - Original Go implementation
187
-
188
- ## 📄 License
189
-
190
- MIT License - see [LICENSE](LICENSE) for details.
1
+ <div align="center">
2
+ <img src="https://raw.githubusercontent.com/Badroel07/9router/master/images/9router.png?1" alt="67Router Dashboard" width="800"/>
3
+
4
+ # 67Router - High-Performance AI Router, Token Saver & Agent Skills Hub
5
+
6
+ **Enhanced & Hardened Fork of 9Router • Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**
7
+
8
+ **Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**
9
+
10
+ [![npm](https://img.shields.io/npm/v/67router.svg)](https://www.npmjs.com/package/67router)
11
+ [![Downloads](https://img.shields.io/npm/dm/67router.svg)](https://www.npmjs.com/package/67router)
12
+ [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/Badroel07/9router/blob/master/LICENSE)
13
+ [![GitHub Repository](https://img.shields.io/badge/GitHub-Badroel07%2F9router-orange?logo=github)](https://github.com/Badroel07/9router)
14
+ [![Upstream](https://img.shields.io/badge/Upstream-decolua%2F9router-lightgrey?logo=github)](https://github.com/decolua/9router)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ ## ⚡ Quick Start
21
+
22
+ ### 1. Install & Run CLI (Recommended for Desktop)
23
+
24
+ ```bash
25
+ # Install globally
26
+ npm install -g 67router
27
+
28
+ # Launch 67Router
29
+ 67router
30
+
31
+ # Or run directly without permanent install
32
+ npx 67router
33
+ ```
34
+ *(Note: `9router` is provided as an alias command for seamless backwards compatibility)*
35
+
36
+ 🎉 Dashboard opens at `http://localhost:20128/dashboard`
37
+
38
+ ---
39
+
40
+ ### 2. Connect a FREE Provider (No Signup Needed)
41
+
42
+ 1. Open **Dashboard** → **Providers**
43
+ 2. Click **Connect Kiro AI** (unlimited Claude) or **OpenCode Free** (no auth required) → Done!
44
+
45
+ ---
46
+
47
+ ### 3. Use in Your AI Coding Tools
48
+
49
+ ```text
50
+ Claude Code / Codex / OpenClaw / Cursor / Cline / Antigravity Settings:
51
+ Endpoint: http://localhost:20128/v1
52
+ API Key: [copy from dashboard]
53
+ Model: kr/claude-sonnet-4.5
54
+ ```
55
+
56
+ That's it! Start coding with FREE AI models with zero token waste.
57
+
58
+ ---
59
+
60
+ ## 🔍 Key Highlights & Upgrades in 67Router
61
+
62
+ - 🛡️ **Zero-Vulnerability Security Architecture**:
63
+ Completely purged legacy `node-forge` vulnerability (GHSA-86w9-cpqp-85rv). Built on modern `selfsigned` and Node.js native `crypto.X509Certificate` with asynchronous SNI queue promise memoization. `npm audit` yields **0 vulnerabilities**.
64
+ - 🚀 **RTK Token Saver**:
65
+ Compresses tool results (`git diff`, `grep`, test outputs) automatically to slash prompt token usage by 20–40% per request.
66
+ - 🤖 **Agent Skills Hub & `@antislop-code` Comment Hygiene**:
67
+ Eliminates repetitive and low-value AI comment slop (decorative headers, step narration) while retaining vital architectural rationale and security considerations.
68
+ - 🔄 **Automated OpenCode Full Model Discovery**:
69
+ One-click fetching of all models, automatically detecting context windows, maximum output limits, and multimodal vision parameters into compliant schemas.
70
+ - 💎 **Monolithic Luxury Design System**:
71
+ Refined high-contrast dark theme with Momo Trust Sans typography, champagne bronze accents, and pixel-perfect `h-[69px]` header and sidebar alignment.
72
+ - 🪟 **Resilient Windows System Tray & Background Recovery**:
73
+ Non-blocking background IPC with zero UI-thread freeze and universal crash recovery in system tray mode.
74
+
75
+ ---
76
+
77
+ ## 🚀 CLI Options
78
+
79
+ ```bash
80
+ 67router # Start with default settings (port 20128)
81
+ 67router --port 8080 # Custom port
82
+ 67router --host 127.0.0.1 # Bind to local loopback only
83
+ 67router --no-browser # Don't open browser automatically
84
+ 67router --log # Show server logs in console
85
+ 67router --tray # Run directly in system tray mode
86
+ 67router --skip-update # Skip auto-update check
87
+ 67router --help # Show all options
88
+ ```
89
+
90
+ ---
91
+
92
+ ## 🔌 Connect to a Remote 67Router
93
+
94
+ Already running 67Router on another machine (e.g. VPS or LAN server)? Point this machine's CLI tools to it without starting a local server:
95
+
96
+ ```bash
97
+ npx 67router connect http://<server-host>:20128 # interactive tool picker
98
+ npx 67router connect http://<server-host>:20128 --tools claude,codex # specify tools directly
99
+ npx 67router connect --reset --tools claude,codex # revert configuration
100
+ ```
101
+
102
+ Supported tools: `claude`, `codex`, `opencode`, `droid`, `crush`, `kilo`, `cline`, `pi`, `omp`, or `all`.
103
+
104
+ ### Check Active CLI Tool Configuration
105
+
106
+ ```bash
107
+ npx 67router show # inspect all configured tools
108
+ npx 67router show claude # inspect single tool
109
+ npx 67router show claude --json # output JSON format
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 🛠️ Supported AI Coding Tools
115
+
116
+ Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider
117
+
118
+ Any client supporting standard OpenAI or Anthropic Claude API endpoints works seamlessly.
119
+
120
+ ---
121
+
122
+ ## 💾 Data & Configuration Location
123
+
124
+ - **macOS / Linux**: `~/.67router/db/data.sqlite` (fallback: `~/.9router/`)
125
+ - **Windows**: `%APPDATA%\67router\db\data.sqlite` (fallback: `%APPDATA%\9router\`)
126
+
127
+ ---
128
+
129
+ ## 📚 Resources & Documentation
130
+
131
+ - **GitHub Repository**: [https://github.com/Badroel07/9router](https://github.com/Badroel07/9router)
132
+ - **Upstream Repository**: [https://github.com/decolua/9router](https://github.com/decolua/9router)
133
+ - **Original Go Implementation**: [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)
134
+
135
+ ---
136
+
137
+ ## 📄 License
138
+
139
+ MIT License — see [LICENSE](https://github.com/Badroel07/9router/blob/master/LICENSE) for details.
@@ -1 +1 @@
1
- RC_KHxUynSqU7uk0euJap
1
+ ZSFfwWCBng6VPk2-0itNU
@@ -145,8 +145,8 @@
145
145
  "/api/provider-nodes/route": "/api/provider-nodes",
146
146
  "/api/providers/[id]/overrides/route": "/api/providers/[id]/overrides",
147
147
  "/api/providers/[id]/route": "/api/providers/[id]",
148
- "/api/providers/client/route": "/api/providers/client",
149
148
  "/api/providers/[id]/models/route": "/api/providers/[id]/models",
149
+ "/api/providers/client/route": "/api/providers/client",
150
150
  "/api/providers/suggested-models/route": "/api/providers/suggested-models",
151
151
  "/api/providers/route": "/api/providers",
152
152
  "/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]",
@@ -155,8 +155,8 @@
155
155
  "/api/proxy-pools/deno-deploy/route": "/api/proxy-pools/deno-deploy",
156
156
  "/api/proxy-pools/netlify-deploy/route": "/api/proxy-pools/netlify-deploy",
157
157
  "/api/proxy-pools/route": "/api/proxy-pools",
158
- "/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
159
158
  "/api/pxpipe/health/route": "/api/pxpipe/health",
159
+ "/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
160
160
  "/api/pxpipe/install/route": "/api/pxpipe/install",
161
161
  "/api/pxpipe/logs/route": "/api/pxpipe/logs",
162
162
  "/api/pxpipe/restart/route": "/api/pxpipe/restart",
@@ -4,11 +4,11 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/RC_KHxUynSqU7uk0euJap/_buildManifest.js",
8
- "static/RC_KHxUynSqU7uk0euJap/_ssgManifest.js"
7
+ "static/ZSFfwWCBng6VPk2-0itNU/_buildManifest.js",
8
+ "static/ZSFfwWCBng6VPk2-0itNU/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
- "static/chunks/webpack-97b250ee703d0d92.js",
11
+ "static/chunks/webpack-396894770603fee1.js",
12
12
  "static/chunks/4bd1b696-8cd12253b448cc13.js",
13
13
  "static/chunks/3794-ba54cbd6a46cf18d.js",
14
14
  "static/chunks/main-app-b0bdce9040f7d6b7.js"
@@ -17,38 +17,32 @@
17
17
  "static/chunks/8202.69dace5daa86686d.js"
18
18
  ]
19
19
  },
20
+ "app\\(dashboard)\\dashboard\\usage\\components\\ModelFlowRouting.js -> ./ProviderTopology": {
21
+ "id": 63521,
22
+ "files": [
23
+ "static/css/e07f2bf4fa519943.css",
24
+ "static/chunks/1a258343.290297ea7c7f28c0.js",
25
+ "static/chunks/3842-cc4f39fa50ab8b93.js",
26
+ "static/chunks/6357.99dc54a064c984c0.js",
27
+ "static/chunks/3521.f0ac0c88103b9f6c.js"
28
+ ]
29
+ },
20
30
  "shared\\components\\ChangelogModal.js -> marked": {
21
31
  "id": 9233,
22
32
  "files": [
23
33
  "static/chunks/9233.e0ace25b5b543835.js"
24
34
  ]
25
35
  },
26
- "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ProviderBarChart": {
27
- "id": 82435,
36
+ "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ModelFlowRouting": {
37
+ "id": 15524,
28
38
  "files": [
29
- "static/chunks/3842-cc4f39fa50ab8b93.js",
30
- "static/chunks/5815-2eb6990de66e825b.js",
31
- "static/chunks/8569.df0d706176dc1f57.js",
32
- "static/chunks/2435.8a5a02e626c780d0.js"
39
+ "static/chunks/5524.fca1db6352c39218.js"
33
40
  ]
34
41
  },
35
- "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ProviderTopology": {
36
- "id": 63521,
37
- "files": [
38
- "static/css/e07f2bf4fa519943.css",
39
- "static/chunks/1a258343.290297ea7c7f28c0.js",
40
- "static/chunks/3842-cc4f39fa50ab8b93.js",
41
- "static/chunks/6357.99dc54a064c984c0.js",
42
- "static/chunks/3521.a9e2daf685420cc7.js"
43
- ]
44
- },
45
- "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/TopModelsChart": {
46
- "id": 65462,
42
+ "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ProviderBarChart": {
43
+ "id": 82435,
47
44
  "files": [
48
- "static/chunks/3842-cc4f39fa50ab8b93.js",
49
- "static/chunks/5815-2eb6990de66e825b.js",
50
- "static/chunks/8569.df0d706176dc1f57.js",
51
- "static/chunks/5462.c82c64c26a864ec0.js"
45
+ "static/chunks/2435.73c540d31dae9ecf.js"
52
46
  ]
53
47
  },
54
48
  "shared\\components\\UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/UsageChart": {
@@ -57,16 +51,13 @@
57
51
  "static/chunks/3842-cc4f39fa50ab8b93.js",
58
52
  "static/chunks/5815-2eb6990de66e825b.js",
59
53
  "static/chunks/1649-772a31b7f3a65900.js",
60
- "static/chunks/124.c092990b4bdb9713.js"
54
+ "static/chunks/124.c1b5af11afe50408.js"
61
55
  ]
62
56
  },
63
57
  "shared\\components\\layouts\\DashboardLayout.js -> @/app/(dashboard)/dashboard/usage/components/ProviderBarChart": {
64
58
  "id": 82435,
65
59
  "files": [
66
- "static/chunks/3842-cc4f39fa50ab8b93.js",
67
- "static/chunks/5815-2eb6990de66e825b.js",
68
- "static/chunks/8569.df0d706176dc1f57.js",
69
- "static/chunks/2435.8a5a02e626c780d0.js"
60
+ "static/chunks/2435.73c540d31dae9ecf.js"
70
61
  ]
71
62
  },
72
63
  "shared\\components\\layouts\\DashboardLayout.js -> @/app/(dashboard)/dashboard/usage/components/TopModelsChart": {
@@ -84,13 +75,13 @@
84
75
  "static/chunks/3842-cc4f39fa50ab8b93.js",
85
76
  "static/chunks/5815-2eb6990de66e825b.js",
86
77
  "static/chunks/1649-772a31b7f3a65900.js",
87
- "static/chunks/124.c092990b4bdb9713.js"
78
+ "static/chunks/124.c1b5af11afe50408.js"
88
79
  ]
89
80
  },
90
81
  "shared\\components\\layouts\\DashboardLayout.js -> @/shared/components/UsageStats": {
91
82
  "id": 6808,
92
83
  "files": [
93
- "static/chunks/6808-9540d7ac65c3e6a0.js"
84
+ "static/chunks/6808-b6550a28721e71e1.js"
94
85
  ]
95
86
  }
96
87
  }