omniroute 2.1.0 → 2.1.2

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 (246) hide show
  1. package/README.md +1 -1
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +55 -55
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_global-error.html +2 -2
  42. package/app/.next/server/app/_global-error.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  47. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/models/route.js +1 -1
  107. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  109. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/providers/route.js +1 -1
  131. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/docs/page.js +1 -1
  195. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app-paths-manifest.json +55 -55
  207. package/app/.next/server/chunks/1909.js +1 -1
  208. package/app/.next/server/chunks/8252.js +1 -1
  209. package/app/.next/server/chunks/8907.js +1 -1
  210. package/app/.next/server/pages/500.html +2 -2
  211. package/app/.next/server/server-reference-manifest.js +1 -1
  212. package/app/.next/server/server-reference-manifest.json +1 -1
  213. package/app/.next/static/chunks/{5846-2907f9dda1834c88.js → 5846-d3aa3ba9dd16fa55.js} +1 -1
  214. package/app/package.json +1 -1
  215. package/package.json +1 -1
  216. package/README.ar.md +0 -1683
  217. package/README.bg.md +0 -1691
  218. package/README.da.md +0 -1692
  219. package/README.de.md +0 -1696
  220. package/README.es.md +0 -1436
  221. package/README.fi.md +0 -1586
  222. package/README.fr.md +0 -1435
  223. package/README.he.md +0 -1586
  224. package/README.hu.md +0 -1586
  225. package/README.id.md +0 -1586
  226. package/README.in.md +0 -1225
  227. package/README.it.md +0 -1434
  228. package/README.ja.md +0 -1583
  229. package/README.ko.md +0 -1586
  230. package/README.ms.md +0 -1587
  231. package/README.nl.md +0 -1586
  232. package/README.no.md +0 -1586
  233. package/README.phi.md +0 -1587
  234. package/README.pl.md +0 -1586
  235. package/README.pt-BR.md +0 -1499
  236. package/README.pt.md +0 -1586
  237. package/README.ro.md +0 -1588
  238. package/README.ru.md +0 -1433
  239. package/README.sk.md +0 -1590
  240. package/README.sv.md +0 -1587
  241. package/README.th.md +0 -1577
  242. package/README.uk-UA.md +0 -1592
  243. package/README.vi.md +0 -1586
  244. package/README.zh-CN.md +0 -1432
  245. /package/app/.next/static/{jBXsbnBQXxbuL3eAmEO72 → xYoMYiq2lWi73ieYn-e4s}/_buildManifest.js +0 -0
  246. /package/app/.next/static/{jBXsbnBQXxbuL3eAmEO72 → xYoMYiq2lWi73ieYn-e4s}/_ssgManifest.js +0 -0
package/README.he.md DELETED
@@ -1,1586 +0,0 @@
1
- <div align="center">
2
- <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
3
-
4
- # 🚀 OmniRoute — שער הבינה המלאכותית החינמית
5
-
6
- ### לעולם אל תפסיק לקוד. ניתוב חכם לדגמי בינה מלאכותית **בחינם ובעלות נמוכה** עם חזרה אוטומטית.
7
-
8
- _שרת ה-API האוניברסלי שלך - נקודת קצה אחת, 36+ ספקים, אפס זמן השבתה._
9
-
10
- **השלמות צ'אט • הטמעות • יצירת תמונות • אודיו • דירוג מחדש • 100% TypeScript**
11
-
12
- ---
13
-
14
- ### 🚀 New in v2.0.9+ — Playground, CLI Fingerprints & ACP
15
-
16
- | Feature | What It Does |
17
- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
18
- | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing |
19
- | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** |
20
- | 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw), process spawner, `/api/acp/agents` endpoint |
21
- | 🤖 **ACP Agents Dashboard** | Debug > Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool |
22
- | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator |
23
- | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID |
24
- | 🔄 **Electron Auto-Update** | Desktop app checks for updates + auto-install on restart |
25
-
26
- ### 🤖 ספק AI בחינם עבור סוכני הקידוד המועדפים עליך
27
-
28
- _חבר כל כלי IDE או CLI המופעל על ידי AI דרך OmniRoute - שער API בחינם לקידוד בלתי מוגבל._
29
-
30
- <table>
31
- <tr>
32
- <td align="center" width="110">
33
- <a href="https://github.com/cline/cline">
34
- <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
35
- <b>OpenClaw</b>
36
- </a><br/>
37
- <sub>⭐ 205K</sub>
38
- </td>
39
- <td align="center" width="110">
40
- <a href="https://github.com/HKUDS/nanobot">
41
- <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
42
- <b>NanoBot</b>
43
- </a><br/>
44
- <sub>⭐ 20.9K</sub>
45
- </td>
46
- <td align="center" width="110">
47
- <a href="https://github.com/sipeed/picoclaw">
48
- <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
49
- <b>PicoClaw</b>
50
- </a><br/>
51
- <sub>⭐ 14.6K</sub>
52
- </td>
53
- <td align="center" width="110">
54
- <a href="https://github.com/zeroclaw-labs/zeroclaw">
55
- <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
56
- <b>ZeroClaw</b>
57
- </a><br/>
58
- <sub>⭐ 9.9K</sub>
59
- </td>
60
- <td align="center" width="110">
61
- <a href="https://github.com/nearai/ironclaw">
62
- <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
63
- <b>IronClaw</b>
64
- </a><br/>
65
- <sub>⭐ 2.1K</sub>
66
- </td>
67
- </tr>
68
- <tr>
69
- <td align="center" width="110">
70
- <a href="https://github.com/anomalyco/opencode">
71
- <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
72
- <b>OpenCode</b>
73
- </a><br/>
74
- <sub>⭐ 106K</sub>
75
- </td>
76
- <td align="center" width="110">
77
- <a href="https://github.com/openai/codex">
78
- <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
79
- <b>Codex CLI</b>
80
- </a><br/>
81
- <sub>⭐ 60.8K</sub>
82
- </td>
83
- <td align="center" width="110">
84
- <a href="https://github.com/anthropics/claude-code">
85
- <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
86
- <b>Claude Code</b>
87
- </a><br/>
88
- <sub>⭐ 67.3K</sub>
89
- </td>
90
- <td align="center" width="110">
91
- <a href="https://github.com/google-gemini/gemini-cli">
92
- <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
93
- <b>Gemini CLI</b>
94
- </a><br/>
95
- <sub>⭐ 94.7K</sub>
96
- </td>
97
- <td align="center" width="110">
98
- <a href="https://github.com/Kilo-Org/kilocode">
99
- <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
100
- <b>Kilo Code</b>
101
- </a><br/>
102
- <sub>⭐ 15.5K</sub>
103
- </td>
104
- </tr>
105
- </table>
106
-
107
- <sub>📡 כל הסוכנים מתחברים דרך <code>http://localhost:20128/v1</code> או <code>http://cloud.omniroute.online/v1 , —limited one config מכסה</sub>
108
-
109
- ---
110
-
111
- [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
112
- [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
113
- [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
114
- [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
115
- [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
116
-
117
- [🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
118
-
119
- 🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
120
-
121
- </div>
122
-
123
- ---
124
-
125
- ## 🖼️
126
-
127
- <div align="center">
128
- <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute" width="800"/>
129
- </div>
130
-
131
- ---
132
-
133
- ## 📸
134
-
135
- <details>
136
- <summary><b>...</b></summary>
137
-
138
- | # | # |
139
- | ----- | ---------------------------------------- |
140
- | **1** | ![1](docs/screenshots/01-providers.png) |
141
- | **2** | ![2](docs/screenshots/02-combos.png) |
142
- | **3** | ![3](docs/screenshots/03-analytics.png) |
143
- | **4** | ![4](docs/screenshots/04-health.png) |
144
- | **5** | ![5](docs/screenshots/05-translator.png) |
145
- | **6** | ![6](docs/screenshots/06-settings.png) |
146
- | **7** | ![7](docs/screenshots/07-cli-tools.png) |
147
- | **8** | ![8](docs/screenshots/08-usage.png) |
148
- | **9** | ![9](docs/screenshots/09-endpoint.png) |
149
-
150
- </details>
151
-
152
- ---
153
-
154
- ## 🤔 למה OmniRoute?
155
-
156
- **הפסיקו לבזבז כסף ולהגיע לגבולות:**
157
-
158
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מכסת המנויים מסתיימת ללא שימוש בכל חודש
159
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מגבלות קצב עוצרות אותך בקידוד באמצע
160
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> ממשקי API יקרים ($20-50 לחודש לכל ספק)
161
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מעבר ידני בין ספקים
162
-
163
- **OmniRoute פותר את זה:**
164
-
165
- - ✅ **מקסם מנויים** - עקוב אחר מכסת, השתמש בכל סיביות לפני האיפוס
166
- - ✅ **החזר אוטומטי** - מנוי → מפתח API → זול → חינם, אפס זמן השבתה
167
- - ✅ **ריבוי חשבונות** - סיבוב בין חשבונות לכל ספק
168
- - ✅ **אוניברסלי** - עובד עם קלוד קוד, Codex, Gemini CLI, Cursor, Cline, OpenClaw, כל כלי CLI
169
-
170
- ---
171
-
172
- ## 📧 תמיכה
173
-
174
- > 💬 **הצטרפו לקהילה שלנו!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — קבל עזרה, שתף טיפים והישאר מעודכן.
175
-
176
- - **אתר**: [omniroute.online](https://omniroute.online)
177
- - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
178
- - **בעיות**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
179
- - **וואטסאפ**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
180
- - **פרויקט מקורי**: [9router by decolua](https://github.com/decolua/9router)
181
-
182
- ---
183
-
184
- ## 🔄 איך זה עובד
185
-
186
- ```
187
- ┌─────────────┐
188
- │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
189
- │ Tool │
190
- └──────┬──────┘
191
- │ http://localhost:20128/v1
192
-
193
- ┌─────────────────────────────────────────┐
194
- │ OmniRoute (Smart Router) │
195
- │ • Format translation (OpenAI ↔ Claude) │
196
- │ • Quota tracking + Embeddings + Images │
197
- │ • Auto token refresh │
198
- └──────┬──────────────────────────────────┘
199
-
200
- ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
201
- │ ↓ quota exhausted
202
- ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
203
- │ ↓ budget limit
204
- ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
205
- │ ↓ budget limit
206
- └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited)
207
-
208
- Result: Never stop coding, minimal cost
209
- ```
210
-
211
- ---
212
-
213
- ## 🎯 מה OmniRoute פותר - 30 נקודות כאב אמיתיות ומקרי שימוש
214
-
215
- > **כל מפתח המשתמש בכלי בינה מלאכותית מתמודד עם הבעיות הללו מדי יום.** OmniRoute נבנתה כדי לפתור את כולן - החל מחריפות עלויות ועד לחסימות אזוריות, מזרימות OAuth שבורות ועד פעולות פרוטוקול וצפייה ארגונית.
216
-
217
- <details>
218
- <summary><b>💸 1. "אני משלם עבור מנוי יקר אבל עדיין מופרע על ידי גבולות" </b></summary>
219
-
220
- מפתחים משלמים $20-200 לחודש עבור Claude Pro, Codex Pro או GitHub Copilot. אפילו בתשלום, למכסה יש תקרה - 5 שעות שימוש, מגבלות שבועיות או מגבלות תעריף לדקה. סשן קידוד באמצע, הספק מפסיק להגיב והמפתח מאבד זרימה ופרודוקטיביות.
221
-
222
- **איך OmniRoute פותר את זה:**
223
-
224
- - **Smart 4-Tier Fallback** - אם מכסת המנויים נגמרת, מפנה אוטומטית למפתח API → זול → חינם עם אפס התערבות ידנית
225
- - **מעקב מכסות בזמן אמת** - מציג צריכת אסימונים בזמן אמת עם ספירה לאחור מאפס (5 שעות, יומי, שבועי)
226
- - **תמיכה בריבוי חשבונות** - מספר חשבונות לכל ספק עם סבב אוטומטי - כאשר אחד אוזל, עובר לאחר
227
- - **שילובים מותאמים אישית** - שרשראות ניתנות להתאמה אישית עם 6 אסטרטגיות איזון (מילוי ראשון, סיבוב סיבובי, P2C, אקראי, הכי פחות בשימוש, אופטימיזציה לעלות)
228
- - **Codex Business Quotas** - ניטור מכסות סביבת עבודה עסקית/צוותית ישירות בלוח המחוונים
229
-
230
- </details>
231
-
232
- <details>
233
- <summary><b>🔌 2. "אני צריך להשתמש במספר ספקים אבל לכל אחד יש API אחר" </b></summary>
234
-
235
- OpenAI משתמש בפורמט אחד, קלוד (אנתרופיק) משתמש בפורמט אחר, תאומים בנוסח אחר. אם מפתח רוצה לבחון דגמים מספקים שונים או לחלוף ביניהם, הוא צריך להגדיר מחדש SDK, לשנות נקודות קצה, להתמודד עם פורמטים לא תואמים. לספקים מותאמים אישית (FriendLI, NIM) יש נקודות קצה לא סטנדרטיות במודל.
236
-
237
- **איך OmniRoute פותר את זה:**
238
-
239
- - **נקודת קצה מאוחדת** - `http://localhost:20128/v1` יחיד משמש כ-proxy עבור כל 36+ הספקים
240
- - **תרגום פורמט** — אוטומטי ושקוף: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
241
- - **חיטוי תגובה** - מסיר שדות לא סטנדרטיים (`x_groq`, `usage_breakdown`, `service_tier`) שמפרקים את OpenAI SDK v1.83+
242
- - **נורמליזציה של תפקידים** — ממירה `developer` → `system` עבור ספקים שאינם OpenAI; `system` → `user` עבור GLM/ERNIE
243
- - **Think Tag Extraction** — מחלץ בלוקים `<think>` מדגמים כמו DeepSeek R1 לתוך `reasoning_content` הסטנדרטי
244
- - **פלט מובנה עבור מזל תאומים** — `json_schema` → `responseMimeType`/`responseSchema` המרה אוטומטית
245
- - **`stream` ברירת המחדל היא `false`** - מתיישר עם מפרט OpenAI, הימנעות SSE בלתי צפוי ב- Python/Rust/Go SDK
246
-
247
- </details>
248
-
249
- <details>
250
- <summary><b>🌐 3. "ספק הבינה המלאכותית שלי חוסם את האזור/המדינה שלי" </b></summary>
251
-
252
- ספקים כמו OpenAI/Codex חוסמים גישה מאזורים גיאוגרפיים מסוימים. משתמשים מקבלים שגיאות כמו `unsupported_country_region_territory` במהלך חיבורי OAuth ו-API. זה מתסכל במיוחד עבור מפתחים ממדינות מתפתחות.
253
-
254
- **איך OmniRoute פותר את זה:**
255
-
256
- - **תצורת פרוקסי בשלוש רמות** - פרוקסי ניתן להגדרה ב-3 רמות: גלובלית (כל התעבורה), לכל ספק (ספק אחד בלבד), ולכל חיבור/מפתח
257
- - **תגי פרוקסי מקודדים בצבע** - אינדיקטורים חזותיים: 🟢 פרוקסי גלובלי, 🟡 פרוקסי ספק, 🔵 פרוקסי חיבור, תמיד מציג את ה-IP
258
- - **החלפת אסימונים של OAuth באמצעות פרוקסי** - זרימת OAuth עוברת גם דרך ה-proxy, ופותרת את `unsupported_country_region_territory`
259
- - **בדיקות חיבור באמצעות פרוקסי** - בדיקות חיבור משתמשות בפרוקסי המוגדר (לא עוד מעקף ישיר)
260
- - **תמיכה SOCKS5** — תמיכה מלאה ב-Proxy SOCKS5 לניתוב יוצא
261
- - **זיוף טביעות אצבע TLS** - טביעת אצבע TLS דמוית דפדפן באמצעות `wreq-js` כדי לעקוף את זיהוי הבוטים
262
-
263
- </details>
264
-
265
- <details>
266
- <summary><b>🆓 4. "אני רוצה להשתמש ב-AI לקידוד אבל אין לי כסף"</b></summary>
267
-
268
- לא כולם יכולים לשלם 20-200 $ לחודש עבור מנויי AI. סטודנטים, מפתחים ממדינות מתפתחות, חובבים ופרילנסרים צריכים גישה לדגמים איכותיים בעלות אפסית.
269
-
270
- **איך OmniRoute פותר את זה:**
271
-
272
- - **ספקי שכבת חינם מובנית** - תמיכה מקורית עבור 100% ספקים בחינם: iFlow (8 דגמים ללא הגבלה), Qwen (3 דגמים ללא הגבלה), Kiro (קלוד בחינם), Gemini CLI (180K/חודש חינם)
273
- - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/<model>` prefix
274
- - **שילובים בחינם בלבד** — שרשרת `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0 לחודש עם אפס זמן השבתה
275
- - **קרדיטים חינם של NVIDIA NIM** - 1000 זיכויים חינם משולבים
276
- - **אסטרטגיית אופטימיזציה לעלות** — אסטרטגיית ניתוב שבוחרת אוטומטית את הספק הזמין הזול ביותר
277
-
278
- </details>
279
-
280
- <details>
281
- <summary><b>🔒 5. "אני צריך להגן על שער הבינה המלאכותית שלי מגישה לא מורשית" </b></summary>
282
-
283
- בעת חשיפת שער AI לרשת (LAN, VPS, Docker), כל מי שיש לו את הכתובת יכול לצרוך את האסימונים/מכסה של המפתח. ללא הגנה, ממשקי API חשופים לשימוש לרעה, הזרקה מהירה וניצול לרעה.
284
-
285
- **איך OmniRoute פותר את זה:**
286
-
287
- - **ניהול מפתחות API** - יצירה, סיבוב והיקף לכל ספק עם דף `/dashboard/api-manager` ייעודי
288
- - **הרשאות ברמת הדגם** - הגבל מפתחות API לדגמים ספציפיים (`openai/*`, דפוסי תווים כלליים), עם החלפת מצב אפשר הכל/הגבל
289
- - **הגנה על נקודות קצה של API** - דרוש מפתח עבור `/v1/models` וחסום ספקים ספציפיים מהרישום
290
- - **Auth Guard + CSRF Protection** — כל מסלולי לוח המחוונים מוגנים באמצעות תוכנת ביניים `withAuth` + אסימוני CSRF
291
- - ** מגביל קצב** - הגבלת קצב לפי IP עם חלונות הניתנים להגדרה
292
- - **סינון IP** — רשימת הרשאות/רשימת חסימות לבקרת גישה
293
- - **משמר הזרקה מהירה** - חיטוי נגד דפוסי הנחיה זדוניים
294
- - **הצפנת AES-256-GCM** - אישורים מוצפנים בזמן מנוחה
295
-
296
- </details>
297
-
298
- <details>
299
- <summary><b>🛑 6. "הספק שלי נפל ואיבדתי את זרימת הקידוד" </b></summary>
300
-
301
- ספקי בינה מלאכותית עלולים להפוך לבלתי יציבים, להחזיר שגיאות 5xx או לפגוע במגבלות קצב זמניות. אם מפתח תלוי בספק יחיד, הם מופרעים. ללא מפסקים, נסיונות חוזרים ונשנים עלולים לקרוס את האפליקציה.
302
-
303
- **איך OmniRoute פותר את זה:**
304
-
305
- - **מפסק מעגלים לכל ספק** - פתיחה/סגירה אוטומטית עם ספים ניתנים להגדרה והתקררות (סגור/פתוח/חצי פתוח)
306
- - **גיבוי אקספוננציאלי** - עיכובים מתקדמים בניסיון חוזר
307
- - **עדר נגד רעמים** - הגנה על מוטקס + סמפור מפני סופות ניסיונות חוזרות במקביל
308
- - **שרשראות משולבות Fallback** - אם הספק הראשי נכשל, נופל אוטומטית בשרשרת ללא התערבות
309
- - **מפסק משולב** - משבית אוטומטית ספקים כושלים בשרשרת משולבת
310
- - **לוח מחוונים לבריאות** - ניטור זמן פעולה, מצבי מפסק זרם, נעילות, סטטיסטיקות מטמון, זמן אחזור p50/p95/p99
311
-
312
- </details>
313
-
314
- <details>
315
- <summary><b>🔧 7. "הגדרת כל כלי בינה מלאכותית היא מייגעת וחוזרת על עצמה" </b></summary>
316
-
317
- מפתחים משתמשים ב-Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... כל כלי צריך תצורה שונה (נקודת קצה, מפתח, מודל API). הגדרה מחדש בעת החלפת ספקים או דגמים היא בזבוז זמן.
318
-
319
- **איך OmniRoute פותר את זה:**
320
-
321
- - **לוח המחוונים של CLI Tools** - דף ייעודי עם הגדרה בלחיצה אחת עבור Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
322
- - **GitHub Copilot Config Generator** — מייצר `chatLanguageModels.json` עבור קוד VS עם בחירת דגמים בכמות גדולה
323
- - **אשף ההטמעה** — הגדרה מודרכת בת 4 שלבים למשתמשים ראשונים
324
- - **נקודת קצה אחת, כל הדגמים** - הגדר את `http://localhost:20128/v1` פעם אחת, גש ל-36+ ספקים
325
-
326
- </details>
327
-
328
- <details>
329
- <summary><b>🔑 8. "ניהול אסימוני OAuth ממספר ספקים זה גיהנום" </b></summary>
330
-
331
- Claude Code, Codex, Gemini CLI, Copilot - כולם משתמשים ב-OAuth 2.0 עם אסימונים שפג תוקפם. מפתחים צריכים לבצע אימות מחדש כל הזמן, להתמודד עם `client_secret is missing`, `redirect_uri_mismatch` וכשלים בשרתים מרוחקים. OAuth ב-LAN/VPS בעייתי במיוחד.
332
-
333
- **איך OmniRoute פותר את זה:**
334
-
335
- - **רענון אסימון אוטומטי** - אסימוני OAuth מתרעננים ברקע לפני פקיעת תוקף
336
- - **OAuth 2.0 (PKCE) מובנה** - זרימה אוטומטית עבור Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
337
- - ** OAuth מרובה חשבונות** - מספר חשבונות לכל ספק באמצעות חילוץ אסימון JWT/ID
338
- - **OAuth LAN/תיקון מרחוק** - זיהוי IP פרטי עבור `redirect_uri` + מצב כתובת URL ידני עבור שרתים מרוחקים
339
- - **OAuth Behind Nginx** - משתמש ב-`window.location.origin` עבור תאימות פרוקסי הפוכה
340
- - **מדריך OAuth מרחוק** - מדריך שלב אחר שלב לאישורי Google Cloud ב-VPS/Docker
341
-
342
- </details>
343
-
344
- <details>
345
- <summary><b>📊 9. "אני לא יודע כמה אני מוציא או איפה" </b></summary>
346
-
347
- מפתחים משתמשים במספר ספקים בתשלום אך אין להם ראייה אחידה של הוצאות. לכל ספק יש לוח מחוונים משלו לחיוב, אבל אין תצוגה מאוחדת. עלויות בלתי צפויות עלולות להיערם.
348
-
349
- **איך OmniRoute פותר את זה:**
350
-
351
- - **לוח מחוונים של ניתוח עלויות** - מעקב אחר עלויות לפי אסימון וניהול תקציב לכל ספק
352
- - **מגבלות תקציב לכל שכבה** - תקרת הוצאה לכל שכבה שמפעילה נפילה אוטומטית
353
- - **תצורת תמחור לפי דגם** — מחירים הניתנים להגדרה לכל דגם
354
- - **סטטיסטיקת שימוש לכל מפתח API** - ספירת בקשות וחותמת זמן אחרונה בשימוש לכל מפתח
355
- - **לוח המחוונים של אנליטיקס** - כרטיסי סטטיסטיקה, טבלת שימוש במודל, טבלת ספקים עם אחוזי הצלחה והשהייה
356
-
357
- </details>
358
-
359
- <details>
360
- <summary><b>🐛 10. "אני לא יכול לאבחן שגיאות ובעיות בשיחות AI" </b></summary>
361
-
362
- כאשר שיחה נכשלת, ה-dev לא יודע אם זו הייתה מגבלת תעריף, אסימון שפג תוקפו, פורמט שגוי או שגיאת ספק. יומנים מפוצלים על פני מסופים שונים. ללא צפייה, איתור באגים הוא ניסוי וטעייה.
363
-
364
- **איך OmniRoute פותר את זה:**
365
-
366
- - **לוח מחוונים של יומנים מאוחדים** - 4 כרטיסיות: יומני בקשות, יומני פרוקסי, יומני ביקורת, מסוף
367
- - **מציג יומן מסוף** - מציג בזמן אמת בסגנון טרמינל עם רמות מקודדות צבע, גלילה אוטומטית, חיפוש, סינון
368
- - **SQLite Proxy Logs** - יומנים מתמשכים ששורדים אתחול מחדש של השרת
369
- - **מגרש משחקים לתרגום** - 4 מצבי ניפוי באגים: מגרש משחקים (תרגום פורמט), בודק צ'אט (הלוך ושוב), ספסל בדיקה (אצווה), צג חי (בזמן אמת)
370
- - **Request Telemetry** — חביון p50/p95/p99 + X-Request-Id מעקב
371
- - **רישום מבוסס קבצים עם סיבוב** - מיירט המסוף לוכד הכל ליומן JSON עם סיבוב מבוסס גודל
372
-
373
- </details>
374
-
375
- <details>
376
- <summary><b>🏗️ 11. "פריסה ותחזוקה של השער מורכבת" </b></summary>
377
-
378
- התקנה, הגדרה ותחזוקה של פרוקסי בינה מלאכותית בסביבות שונות (מקומי, VPS, Docker, ענן) היא עתירת עבודה. בעיות כמו נתיבים מקודדים קשיחים, `EACCES` על ספריות, התנגשויות יציאות ובנייה בין פלטפורמות מוסיפות חיכוך.
379
-
380
- **איך OmniRoute פותר את זה:**
381
-
382
- - **התקנה גלובלית npm** — `npm install -g omniroute && omniroute` — בוצעה
383
- - **Docker Multi-Platform** - מקורי AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi)
384
- - **Docker Compose Profiles** — `base` (ללא כלי CLI) ו-`cli` (עם קוד קלוד, Codex, OpenClaw)
385
- - **אפליקציית Electron Desktop** — אפליקציה מקורית עבור Windows/macOS/Linux עם מגש מערכת, הפעלה אוטומטית, מצב לא מקוון
386
- - **מצב יציאות מפוצלות** - API ולוח מחוונים ביציאות נפרדות עבור תרחישים מתקדמים (פרוקסי הפוך, רשת קונטיינר)
387
- - **Cloud Sync** - הגדרת סנכרון בין מכשירים באמצעות Cloudflare Workers
388
- - **גיבויי DB** - גיבוי, שחזור, ייצוא וייבוא אוטומטי של כל ההגדרות
389
-
390
- </details>
391
-
392
- <details>
393
- <summary><b>🌍 12. "הממשק הוא באנגלית בלבד והצוות שלי לא מדבר אנגלית"</b></summary>
394
-
395
- צוותים במדינות שאינן דוברות אנגלית, במיוחד באמריקה הלטינית, אסיה ואירופה, נאבקים עם ממשקים באנגלית בלבד. מחסומי שפה מפחיתים את האימוץ ומגדילים את שגיאות התצורה.
396
-
397
- **איך OmniRoute פותר את זה:**
398
-
399
- - **לוח המחוונים i18n — 30 שפות** — כל 500+ המקשים מתורגמים כולל ערבית, בולגרית, דנית, גרמנית, ספרדית, פינית, צרפתית, עברית, הינדית, הונגרית, אינדונזית, איטלקית, יפנית, קוריאנית, מלאית, הולנדית, נורווגית, פולנית, פורטוגזית (PT/BR), רומנית, רוסית, סלובקית, שוודית, תאילנדית, סלובקית, שוודית, סינית, סלובקית, וייטנאם
400
- - **תמיכה ב-RTL** — תמיכה מימין לשמאל לערבית ולעברית
401
- - ** README מרובים שפות** - 30 תרגומי תיעוד מלאים
402
- - **בורר שפה** - סמל גלובוס בכותרת למעבר בזמן אמת
403
-
404
- </details>
405
-
406
- <details>
407
- <summary><b>🔄 13. "אני צריך יותר מצ'אט - אני צריך הטמעות, תמונות, אודיו"</b></summary>
408
-
409
- AI זה לא רק השלמת צ'אט. מפתחים צריכים ליצור תמונות, לתמלל אודיו, ליצור הטמעות עבור RAG, לדרג מחדש מסמכים ולתת תוכן. לכל API יש נקודת קצה ופורמט שונים.
410
-
411
- **איך OmniRoute פותר את זה:**
412
-
413
- - **הטמעות** — `/v1/embeddings` עם 6 ספקים ו-9+ דגמים
414
- - **יצירת תמונות** — `/v1/images/generations` עם 10 ספקים ו-20+ דגמים (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
415
- - **טקסט לווידאו** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) ו-SD WebUI
416
- - **טקסט למוזיקה** — `/v1/music/generations` — ComfyUI (פתוח אודיו יציב, MusicGen)
417
- - **תמלול אודיו** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
418
- - **טקסט לדיבור** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, Inworld, Cartesia, PlayHT, + ספקים קיימים
419
- - **מודציות** — `/v1/moderations` — בדיקות בטיחות תוכן
420
- - **דירוג מחדש** — `/v1/rerank` — דירוג מחדש של רלוונטיות המסמך
421
- - **Responses API** — תמיכה מלאה ב-`/v1/responses` עבור Codex
422
-
423
- </details>
424
-
425
- <details>
426
- <summary><b>🧪 14. "אין לי דרך לבדוק ולהשוות איכות בין דגמים" </b></summary>
427
-
428
- מפתחים רוצים לדעת איזה דגם הוא הטוב ביותר עבור מקרה השימוש שלהם - קוד, תרגום, הנמקה - אבל ההשוואה ידנית היא איטית. לא קיימים כלי eval משולבים.
429
-
430
- **איך OmniRoute פותר את זה:**
431
-
432
- - **הערכות LLM** - בדיקת סט זהב עם 10 מקרים טעונים מראש המכסים ברכות, מתמטיקה, גיאוגרפיה, יצירת קוד, תאימות ל-JSON, תרגום, סימון, סירוב בטיחות
433
- - **4 אסטרטגיות התאמה** — `exact`, `contains`, `regex`, `custom` (פונקציית JS)
434
- - **ספסל בדיקה במגרש משחקים של מתרגם** - בדיקות אצווה עם מספר כניסות ויציאות צפויות, השוואה בין ספקים
435
- - ** בודק צ'אט** - הלוך ושוב מלא עם עיבוד תגובה ויזואלית
436
- - **מעקב חי** - זרם בזמן אמת של כל הבקשות הזורמות דרך ה-proxy
437
-
438
- </details>
439
-
440
- <details>
441
- <summary><b>📈 15. "אני צריך לשנות קנה מידה מבלי לאבד ביצועים" </b></summary>
442
-
443
- ככל שנפח הבקשות גדל, ללא שמירה במטמון, אותן שאלות מייצרות עלויות כפולות. ללא אימפוטנציה, עיבוד פסולת בקשות כפולות. יש לכבד את מגבלות התעריפים לכל ספק.
444
-
445
- **איך OmniRoute פותר את זה:**
446
-
447
- - **מטמון סמנטי** - מטמון דו-שכבתי (חתימה + סמנטי) מפחית את העלות והשהייה
448
- - **Request Idempotency** — חלון מניעת כפילויות של 5 שניות לבקשות זהות
449
- - **זיהוי מגבלת תעריף** - RPM לכל ספק, פער מינימלי ומעקב מרבי בו-זמנית
450
- - **מגבלות קצב הניתנות לעריכה** - ברירות מחדל הניתנות להגדרה בהגדרות ← חוסן עם התמדה
451
- - **מטמון מפתח API** - מטמון בן 3 שכבות לביצועי ייצור
452
- - **לוח מחוונים לבריאות עם טלמטריה** - זמן אחזור p50/p95/p99, סטטיסטיקות מטמון, זמן פעולה
453
-
454
- </details>
455
-
456
- <details>
457
- <summary><b>🤖 16. "אני רוצה לשלוט בהתנהגות המודל באופן גלובלי" </b></summary>
458
-
459
- מפתחים שרוצים את כל התגובות בשפה ספציפית, עם טון ספציפי, או רוצים להגביל את אסימוני הנמקה. הגדרה זו בכל כלי/בקשה אינה מעשית.
460
-
461
- **איך OmniRoute פותר את זה:**
462
-
463
- - **הזרקת הנחיית מערכת** - הנחיה גלובלית חלה על כל הבקשות
464
- - **אימות תקציב חשיבה** - בקרת הקצאת אסימונים בהיגיון לכל בקשה (מעבר, אוטומטי, מותאם אישית, אדפטיבי)
465
- - **6 אסטרטגיות ניתוב** - אסטרטגיות גלובליות הקובעות את אופן הפצת הבקשות
466
- - **נתב תווים כלליים** — תבניות `provider/*` מנותבות באופן דינמי לכל ספק
467
- - **הפעל/השבת שילוב של החלפה** — החלף שילובים ישירות מלוח המחוונים
468
- - **החלפת ספק** — הפעל/השבת את כל החיבורים עבור ספק בלחיצה אחת
469
- - **ספקים חסומים** — אל תכלול ספקים ספציפיים מרשימת `/v1/models`
470
-
471
- </details>
472
-
473
- <details>
474
- <summary><b>🧰 17. "אני צריך כלי MCP כיכולות מוצר מהשורה הראשונה" </b></summary>
475
-
476
- שערי AI רבים חושפים את MCP רק כפרט יישום נסתר. צוותים צריכים שכבת פעולה גלויה וניתנת לניהול.
477
-
478
- **איך OmniRoute פותר את זה:**
479
-
480
- - MCP מופיע בכרטיסיית הניווט של לוח המחוונים ופרוטוקול נקודת הקצה
481
- - דף ניהול MCP ייעודי עם תהליך, כלים, היקפים וביקורת
482
- - התחלה מהירה מובנית עבור `omniroute --mcp` וכניסה ללקוח
483
-
484
- </details>
485
-
486
- <details>
487
- <summary><b>🧠 18. "אני צריך תזמור A2A עם נתיבי משימות סינכרון + זרם" </b></summary>
488
-
489
- זרימות עבודה של סוכן זקוקות הן לתשובות ישירות והן לביצוע זרימה ארוך טווח עם בקרת מחזור חיים.
490
-
491
- **איך OmniRoute פותר את זה:**
492
-
493
- - נקודת קצה A2A JSON-RPC (`POST /a2a`) עם `message/send` ו-`message/stream`
494
- - הזרמת SSE עם הפצת מצב מסוף
495
- - ממשקי API של מחזור חיים של משימות עבור `tasks/get` ו-`tasks/cancel`
496
-
497
- </details>
498
-
499
- <details>
500
- <summary><b>🛰️ 19. "אני צריך בריאות של תהליך MCP אמיתי, מצב לא מנחש" </b></summary>
501
-
502
- צוותים תפעוליים צריכים לדעת אם MCP באמת חי, לא רק אם ניתן להגיע ל-API.
503
-
504
- **איך OmniRoute פותר את זה:**
505
-
506
- - קובץ פעימות לב בזמן ריצה עם PID, חותמות זמן, תחבורה, ספירת כלים ומצב היקף
507
- - MCP status API המשלב פעימות לב + פעילות אחרונה
508
- - כרטיסי סטטוס ממשק משתמש עבור תהליך/זמן פעולה/רעננות פעימות לב
509
-
510
- </details>
511
-
512
- <details>
513
- <summary><b>📋 20. "אני צריך ביצוע כלי MCP שניתן לביקורת" </b></summary>
514
-
515
- כאשר כלים משתנים בתצורה או מפעילים פעולות מבצעיות, הצוותים זקוקים למעקב פורנזי.
516
-
517
- **איך OmniRoute פותר את זה:**
518
-
519
- - רישום ביקורת מגובה SQLite עבור קריאות לכלי MCP
520
- - מסננים לפי כלי, הצלחה/כישלון, מפתח API ועימוד
521
- - טבלת ביקורת לוח המחוונים + נקודות קצה סטטיסטיקות לאוטומציה
522
-
523
- </details>
524
-
525
- <details>
526
- <summary><b>🔐 21. "אני צריך הרשאות MCP בטווחים לכל אינטגרציה" </b></summary>
527
-
528
- ללקוחות שונים צריכה להיות גישה בעלת הרשאות מינימליות לקטגוריות כלים.
529
-
530
- **איך OmniRoute פותר את זה:**
531
-
532
- - 9 היקפי MCP גרגירים לגישה מבוקרת לכלי
533
- - אכיפה של היקף ונראות בממשק המשתמש של ניהול MCP
534
- - תנוחת ברירת מחדל בטוחה עבור כלי עבודה תפעוליים
535
-
536
- </details>
537
-
538
- <details>
539
- <summary><b>⚙️ 22. "אני צריך בקרות תפעוליות בלי לפרוס מחדש" </b></summary>
540
-
541
- צוותים זקוקים לשינויים מהירים בזמן ריצה במהלך אירועים או אירועי עלות.
542
-
543
- **איך OmniRoute פותר את זה:**
544
-
545
- - החלף הפעלה משולבת ישירות מלוח המחוונים של MCP
546
- - החל פרופילי חוסן מחבילות מדיניות מוגדרות מראש
547
- - אפס את מצב מפסק החשמל מאותו לוח פעולות
548
-
549
- </details>
550
-
551
- <details>
552
- <summary><b>🔄 23. "אני צריך נראות וביטול של מחזור החיים של משימות A2A בשידור חי" </b></summary>
553
-
554
- ללא נראות של מחזור חיים, אירועי משימות הופכים קשים לבדיקה.
555
-
556
- **איך OmniRoute פותר את זה:**
557
-
558
- - רישום משימות/סינון לפי מצב/מיומנות עם עימוד
559
- - פירוט על מטא נתונים של משימות, אירועים וחפצים
560
- - נקודת קצה לביטול משימות ופעולת ממשק משתמש עם אישור
561
-
562
- </details>
563
-
564
- <details>
565
- <summary><b>🌊 24. "אני צריך מדדי סטרימינג פעילים עבור טעינת A2A" </b></summary>
566
-
567
- זרימות עבודה בסטרימינג דורשות תובנה תפעולית לגבי חיבורים במקביל וחיבורים חיים.
568
-
569
- **איך OmniRoute פותר את זה:**
570
-
571
- - מוני זרמים פעילים משולבים בסטטוס A2A
572
- - חותמת הזמן האחרונה של המשימה וספירות לכל מדינה
573
- - כרטיסי לוח מחוונים A2A לניטור פעולות בזמן אמת
574
-
575
- </details>
576
-
577
- <details>
578
- <summary><b>🪪 25. "אני צריך גילוי סוכן סטנדרטי עבור לקוחות" </b></summary>
579
-
580
- לקוחות חיצוניים ומתזמרים זקוקים למטא-נתונים הניתנים לקריאת מכונה לצורך הצטרפות.
581
-
582
- **איך OmniRoute פותר את זה:**
583
-
584
- - כרטיס סוכן חשוף ב-`/.well-known/agent.json`
585
- - יכולות ומיומנויות המוצגות בממשק המשתמש לניהול
586
- - API לסטטוס A2A כולל מטא נתונים של גילוי לאוטומציה
587
-
588
- </details>
589
-
590
- <details>
591
- <summary><b>🧭 26. "אני צריך גילוי פרוטוקול ב-UX של המוצר"</b></summary>
592
-
593
- אם משתמשים לא יכולים לגלות משטחי פרוטוקול, האימוץ והתמיכה יורדים.
594
-
595
- **איך OmniRoute פותר את זה:**
596
-
597
- - ערכים בסרגל הצד עבור MCP ו-A2A
598
- - כרטיסיית פרוטוקולים של דף נקודות קצה עם התחלה מהירה ומצב
599
- - קישורים מסקירה כללית ללוחות ניהול ייעודיים
600
-
601
- </details>
602
-
603
- <details>
604
- <summary><b>🧪 27. "אני צריך אימות פרוטוקול מקצה לקצה עם לקוחות אמיתיים" </b></summary>
605
-
606
- בדיקות מדומה אינן מספיקות כדי לאמת תאימות פרוטוקול לפני השחרור.
607
-
608
- **איך OmniRoute פותר את זה:**
609
-
610
- - חבילת E2E המאתחלת אפליקציה ומשתמשת בהעברת לקוח MCP SDK אמיתית
611
- - בדיקות לקוח A2A לאיתור, לשלוח, להזרים, לקבל ולבטל זרימות
612
- - צלב הצהרות מול ביקורת MCP ומשימות A2A APIs
613
-
614
- </details>
615
-
616
- <details>
617
- <summary><b>📡 28. "אני צריך צפייה מאוחדת בכל הממשקים" </b></summary>
618
-
619
- פיצול צפיות לפי פרוטוקול יוצר כתמים עיוורים ו-MTTR ארוך יותר.
620
-
621
- **איך OmniRoute פותר את זה:**
622
-
623
- - לוחות מחוונים/יומנים/ניתוח מאוחדים במוצר אחד
624
- - בריאות + ביקורת + טלמטריית בקשה על פני שכבות OpenAI, MCP ו-A2A
625
- - APIs תפעוליים לסטטוס ואוטומציה
626
-
627
- </details>
628
-
629
- <details>
630
- <summary><b>💼 29. "אני צריך זמן ריצה אחד עבור פרוקסי + כלים + תזמור סוכן"</b></summary>
631
-
632
- הפעלת שירותים נפרדים רבים מגדילה את העלות התפעולית ואת מצבי הכשל.
633
-
634
- **איך OmniRoute פותר את זה:**
635
-
636
- - פרוקסי תואם OpenAI, שרת MCP ושרת A2A בערימה אחת
637
- - אימות משותף, חוסן, מאגר נתונים וצפייה
638
- - מודל מדיניות עקבי בכל משטחי האינטראקציה
639
-
640
- </details>
641
-
642
- <details>
643
- <summary><b>🚀 30. "אני צריך לשלוח זרימות עבודה סוכניות ללא התפשטות קוד דבק" </b></summary>
644
-
645
- צוותים מאבדים מהירות בעת תפירת שירותים ותסריטים אד-הוק מרובים.
646
-
647
- **איך OmniRoute פותר את זה:**
648
-
649
- - אסטרטגיית נקודות קצה אחידה עבור לקוחות וסוכנים
650
- - ממשקי משתמש מובנים לניהול פרוטוקול ונתיבי אימות עשן
651
- - יסודות מוכנים לייצור (אבטחה, רישום, חוסן, גיבוי)
652
-
653
- </details>
654
-
655
- ### ספרי הפעלה לדוגמה (מקרי שימוש משולבים)
656
-
657
- **Playbook A: מקסום מנוי בתשלום + גיבוי זול**
658
-
659
- ```txt
660
- Combo: "maximize-claude"
661
- 1. cc/claude-opus-4-6
662
- 2. glm/glm-4.7
663
- 3. if/kimi-k2-thinking
664
-
665
- Monthly cost: $20 + small backup spend
666
- Outcome: higher quality, near-zero interruption
667
- ```
668
-
669
- **Playbook B: ערימת קידוד בעלות אפסית**
670
-
671
- ```txt
672
- Combo: "free-forever"
673
- 1. gc/gemini-3-flash
674
- 2. if/kimi-k2-thinking
675
- 3. qw/qwen3-coder-plus
676
-
677
- Monthly cost: $0
678
- Outcome: stable free coding workflow
679
- ```
680
-
681
- **Playbook C: שרשרת ניצול תמיד 24/7**
682
-
683
- ```txt
684
- Combo: "always-on"
685
- 1. cc/claude-opus-4-6
686
- 2. cx/gpt-5.2-codex
687
- 3. glm/glm-4.7
688
- 4. minimax/MiniMax-M2.1
689
- 5. if/kimi-k2-thinking
690
-
691
- Outcome: deep fallback depth for deadline-critical workloads
692
- ```
693
-
694
- **Playbook D: סוכן מבצע עם MCP + A2A**
695
-
696
- ```txt
697
- 1) Start MCP transport (`omniroute --mcp`) for tool-driven operations
698
- 2) Run A2A tasks via `message/send` and `message/stream`
699
- 3) Observe via /dashboard/mcp and /dashboard/a2a
700
- 4) Control incidents with resilience profile + task cancellation
701
- ```
702
-
703
- ---
704
-
705
- ## ⚡ התחלה מהירה
706
-
707
- **1. התקן ברחבי העולם:**
708
-
709
- ```bash
710
- npm install -g omniroute
711
- omniroute
712
- ```
713
-
714
- 🎉 לוח המחוונים נפתח ב-`http://localhost:20128`
715
-
716
- | פקודה | תיאור |
717
- | ----------------------- | --------------------------------- |
718
- | `omniroute` | התחל שרת (יציאת ברירת מחדל 20128) |
719
- | `omniroute --port 3000` | השתמש ביציאה מותאמת אישית |
720
- | `omniroute --no-open` | אל תפתח אוטומטית את הדפדפן |
721
- | `omniroute --help` | הצג עזרה |
722
-
723
- **2. חבר ספק חינמי:**
724
-
725
- לוח מחוונים ← ספקים ← התחבר **קוד קלוד** או **אנטי כבידה** ← התחברות OAuth ← בוצע!
726
-
727
- **3. השתמש בכלי ה-CLI שלך:**
728
-
729
- ```
730
- Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Settings:
731
- Endpoint: http://localhost:20128/v1
732
- API Key: [copy from dashboard]
733
- Model: if/kimi-k2-thinking
734
- ```
735
-
736
- **זהו זה!** התחל לקודד עם דגמי AI בחינם.
737
-
738
- **אלטרנטיבה - הפעל מהמקור:**
739
-
740
- ```bash
741
- cp .env.example .env
742
- npm install
743
- PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
744
- ```
745
-
746
- ---
747
-
748
- ## 🐳 דוקר
749
-
750
- OmniRoute זמין כתמונת Docker ציבורית ב-[Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
751
-
752
- **ריצה מהירה:**
753
-
754
- ```bash
755
- docker run -d \
756
- --name omniroute \
757
- --restart unless-stopped \
758
- -p 20128:20128 \
759
- -v omniroute-data:/app/data \
760
- diegosouzapw/omniroute:latest
761
- ```
762
-
763
- **עם קובץ סביבה:**
764
-
765
- ```bash
766
- # Copy and edit .env first
767
- cp .env.example .env
768
-
769
- docker run -d \
770
- --name omniroute \
771
- --restart unless-stopped \
772
- --env-file .env \
773
- -p 20128:20128 \
774
- -v omniroute-data:/app/data \
775
- diegosouzapw/omniroute:latest
776
- ```
777
-
778
- **שימוש ב-Docker Compose:**
779
-
780
- ```bash
781
- # Base profile (no CLI tools)
782
- docker compose --profile base up -d
783
-
784
- # CLI profile (Claude Code, Codex, OpenClaw built-in)
785
- docker compose --profile cli up -d
786
- ```
787
-
788
- | תמונה | תג | גודל | תיאור |
789
- | ------------------------ | -------- | ------ | ---------------------- |
790
- | `diegosouzapw/omniroute` | `latest` | ~250MB | המהדורה היציבה האחרונה |
791
- | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | גרסה נוכחית |
792
-
793
- ---
794
-
795
- ---
796
-
797
- ## 🖥️
798
-
799
- > 🆕 **NEW!** OmniRoute is now available as a **native desktop application** for Windows, macOS, and Linux.
800
-
801
- - 🖥️ **Native Window** — Dedicated app window with system tray integration
802
- - 🔄 **Auto-Start** — Launch OmniRoute on system login
803
- - 🔔 **Native Notifications** — Get alerts for quota exhaustion or provider issues
804
- - ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux)
805
- - 🌐 **Offline Mode** — Works fully offline with bundled server
806
-
807
- ```bash
808
- npm run electron:dev # Development mode
809
- npm run electron:build # Current platform
810
- npm run electron:build:win # Windows (.exe)
811
- npm run electron:build:mac # macOS (.dmg)
812
- npm run electron:build:linux # Linux (.AppImage)
813
- ```
814
-
815
- 📖 Full documentation: [`electron/README.md`](electron/README.md)
816
-
817
- ---
818
-
819
- ## 💰 תמחור במבט חטוף
820
-
821
- | שכבה | ספק | עלות | איפוס מכסה | הטוב ביותר עבור |
822
- | --------------- | ---------------- | ----------------------- | ------------------------ | ------------------------ |
823
- | **💳 מנוי** | קלוד קוד (פרו) | 20 דולר לחודש | 5 שעות + שבועי | כבר נרשמת |
824
- | | קודקס (פלוס/פרו) | $20-200 לחודש | 5 שעות + שבועי | משתמשי OpenAI |
825
- | | Gemini CLI | **חינם** | 180K/Mo + 1K/יום | כֹּל אֶחָד! |
826
- | | GitHub Copilot | $10-19 לחודש | חודשי | משתמשי GitHub |
827
- | **🔑 מפתח API** | NVIDIA NIM | **חינם** (1000 קרדיטים) | חד פעמי | בדיקת שכבות חינם |
828
- | | DeepSeek | תשלום לפי שימוש | אין | המחיר/איכות הטובים ביותר |
829
- | | גרוק | שכבה חינם + בתשלום | תעריף מוגבל | הסקה מהירה במיוחד |
830
- | | xAI (Grok) | תשלום לפי שימוש | אין | דגמי גרוק |
831
- | | מיסטרל | שכבה חינם + בתשלום | תעריף מוגבל | AI אירופאי |
832
- | | OpenRouter | תשלום לפי שימוש | אין | 100+ דגמים |
833
- | **💰 זול** | GLM-4.7 | $0.6/1 מיליון | כל יום 10:00 | גיבוי תקציבי |
834
- | | MiniMax M2.1 | $0.2/1 מיליון | גלגול של 5 שעות | האפשרות הזולה ביותר |
835
- | | קימי K2 | 9 $ לחודש דירה | 10 מיליון אסימונים לחודש | עלות צפויה |
836
- | **🆓 חינם** | iFlow | $0 | ללא הגבלה | 8 דגמים חינם |
837
- | | קוון | $0 | ללא הגבלה | 3 דגמים חינם |
838
- | | קירו | $0 | ללא הגבלה | קלוד חופשי |
839
-
840
- **💡 טיפ מקצועי:** התחל עם Gemini CLI (180K חינם/חודש) + שילוב של iFlow (ללא הגבלה בחינם) = עלות של $0!
841
-
842
- ---
843
-
844
- ## 💡 תכונות עיקריות
845
-
846
- ### 🧠 ניתוב ליבה ומודיעין
847
-
848
- | תכונה | מה זה עושה |
849
- | ----------------------------- | -------------------------------------------------------------------------------- |
850
- | 🎯 **Smart 4-tier Fallback** | מסלול אוטומטי: מנוי → מפתח API → זול → חינם |
851
- | 📊 **מעקב מכסות בזמן אמת** | ספירת אסימונים חיה + איפוס ספירה לאחור לכל ספק |
852
- | 🔄 **תרגום פורמט** | OpenAI ↔ קלוד ↔ תאומים ↔ סמן ↔ Kiro חלקה + חיטוי תגובה |
853
- | 👥 **תמיכה בריבוי חשבונות** | מספר חשבונות לכל ספק עם בחירה חכמה |
854
- | 🔄 **רענון אסימון אוטומטי** | אסימוני OAuth מתרעננים אוטומטית עם ניסיון חוזר |
855
- | 🎨 **שילובים מותאמים אישית** | 6 אסטרטגיות: מילוי ראשון, עגול רובין, p2c, אקראי, פחות בשימוש, אופטימיזציה לעלות |
856
- | 🧩 **דגמים מותאמים אישית** | הוסף כל מזהה דגם לכל ספק |
857
- | 🌐 **נתב תווים כלליים** ​​ | נתב דפוסי `provider/*` לכל ספק באופן דינמי |
858
- | 🧠 **תקציב חשיבה** | מצבי מעבר, אוטומטי, מותאמים אישית והתאמה למודלים של חשיבה |
859
- | 🔀 **Model Aliases** | Auto-forward deprecated model IDs to current replacements (built-in + custom) |
860
- | ⚡ **Background Degradation** | Auto-route background tasks (titles, summaries) to cheaper models |
861
- | 💬 **הזרקת מערכת מיידית** | הודעת מערכת גלובלית הוחלה בכל הבקשות |
862
- | 📄 **Responses API** | תמיכה מלאה של OpenAI Responses API (`/v1/responses`) עבור Codex |
863
-
864
- ### 🎵 ממשקי API רב-מודאליים
865
-
866
- | תכונה | מה זה עושה |
867
- | ------------------- | --------------------------------------------- |
868
- | 🖼️ **יצירת תמונות** | `/v1/images/generations` — 4 ספקים, 9+ דגמים |
869
- | 📐 **הטבעות** | `/v1/embeddings` — 6 ספקים, 9+ דגמים |
870
- | 🎤 **תמלול אודיו** | `/v1/audio/transcriptions` — תואם לחישה |
871
- | 🔊 **טקסט לדיבור** | `/v1/audio/speech` — סינתזת אודיו מרובה ספקים |
872
- | 🛡️ **מנחים** | `/v1/moderations` — בדיקות בטיחות תוכן |
873
- | 🔀 **דירוג מחדש** | `/v1/rerank` — דירוג מחדש של רלוונטיות המסמך |
874
-
875
- ### 🛡️ חוסן וביטחון
876
-
877
- | תכונה | מה זה עושה |
878
- | ------------------------------------ | ---------------------------------------------------------------------------- |
879
- | 🔌 **מפסק מעגלים** | פתיחה/סגירה אוטומטית לכל ספק עם ערכי סף הניתנים להגדרה |
880
- | 🛡️ **עדר נגד רעמים** | Mutex + מגבלת קצב סמפור עבור ספקי מפתח API |
881
- | 🧠 **מטמון סמנטי** | מטמון דו-שכבתי (חתימה + סמנטי) מפחית את העלות והשהייה |
882
- | ⚡ **בקש אימפוטנציה** | חלון ביטול 5s עבור בקשות כפולות |
883
- | 🔒 **זיוף טביעות אצבע TLS** | עוקף זיהוי בוט מבוסס TLS באמצעות wreq-js |
884
- | 🌐 **סינון IP** | רשימת הרשאות/רשימת חסימות עבור בקרת גישה ל-API |
885
- | 📊 **מגבלות תעריפים הניתנות לעריכה** | RPM ניתן להגדרה, פער מינימלי ומקסימום במקביל ברמת המערכת |
886
- | 💾 **Rate Limit Persistence** | Learned limits survive restarts via SQLite with 60s debounce + 24h staleness |
887
- | 🔄 **Token Refresh Resilience** | Per-provider circuit breaker (5 fails→30min) + 30s timeout per attempt |
888
- | 🛡 **הגנת נקודת קצה API** | Auth gating + חסימת ספק עבור נקודת הקצה `/models` |
889
- | 🔒 **נראות פרוקסי** | תגים מקודדים בצבע: 🟢 גלובלי, 🟡 ספק, 🔵 לכל חיבור עם תצוגת IP |
890
- | 🌐 **תצורת פרוקסי בשלוש רמות** | הגדר פרוקסי ברמה גלובלית, לכל ספק או לכל חיבור |
891
-
892
- ### 📊 יכולת תצפית וניתוח
893
-
894
- | תכונה | מה זה עושה |
895
- | ------------------------------- | ---------------------------------------------------------------------- |
896
- | 📝 **בקש רישום** | מצב ניפוי באגים עם יומני בקשות/תגובות מלאים |
897
- | 💾 **יומני פרוקסי של SQLite** | יומני פרוקסי מתמשכים שורדים אתחול מחדש של השרת |
898
- | 📊 **לוח המחוונים של אנליטיקס** | מופעל מחדש ב-Recharts: כרטיסי סטטיסטיקה, טבלת שימוש במודל, טבלת ספקים |
899
- | 📈 **מעקב התקדמות** | הצטרפות לאירועי התקדמות SSE לסטרימינג |
900
- | 🧪 **LM Evaluations** | בדיקת סט זהב עם 4 אסטרטגיות התאמה |
901
- | 🔍 **בקש טלמטריה** | צבירת זמן אחזור p50/p95/p99 + מעקב אחר X-Request-Id |
902
- | 📋 **לוח מחוונים יומני** | עמוד מאוחד בן 4 לשוניות: יומני בקשות, יומני פרוקסי, יומני ביקורת, מסוף |
903
- | 🖥️ **מציג יומן מסוף** | מציג בסגנון טרמינל בזמן אמת עם מסנן רמות, חיפוש, גלילה אוטומטית |
904
- | 📑 **רישום מבוסס קבצים** | מיירט מסוף לוכד את כל הפלט לקובץ יומן JSON עם סיבוב |
905
- | 🏥 **לוח מחוונים לבריאות** | זמן פעילות מערכת, מצבי מפסק זרם, נעילות, סטטיסטיקות מטמון |
906
- | 💰 **מעקב עלויות** | ניהול תקציב + תצורת תמחור לפי דגם |
907
-
908
- ### ☁️ פריסה וסנכרון
909
-
910
- | תכונה | מה זה עושה |
911
- | ---------------------------------- | --------------------------------------------------------------------- |
912
- | 💾 **סנכרון ענן** | סנכרון תצורה בין מכשירים באמצעות Cloudflare Workers |
913
- | 🌐 **פרוס בכל מקום** | Localhost, VPS, Docker, Cloudflare Workers |
914
- | 🔑 **ניהול מפתחות API** | צור, סובב והיקף מפתחות API לכל ספק |
915
- | 🧙 **אשף העלייה למטוס** | הגדרה מודרכת בת 4 שלבים למשתמשים חדשים |
916
- | 🔧 **לוח המחוונים של כלי CLI** | הגדר בלחיצה אחת את Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
917
- | 🔄 **גיבויים של DB** | גיבוי, שחזור, ייצוא וייבוא ​​אוטומטי עבור כל ההגדרות |
918
- | 🌐 **בינלאומיות** | i18n מלא עם next-intl — תמיכה באנגלית + פורטוגזית (ברזיל) |
919
- | 🌍 **בורר שפה** | סמל גלובוס בכותרת למעבר שפה בזמן אמת (🇺🇸/🇧🇷) |
920
- | 📂 **ספריית נתונים מותאמים אישית** | `DATA_DIR` env var כדי לעקוף את ברירת המחדל `~/.omniroute` נתיב אחסון |
921
-
922
- <details>
923
- <summary><b>📖 פרטי תכונה</b></summary>
924
-
925
- ### 🎯 4 שכבות סתירה חכמה
926
-
927
- צור שילובים עם נפילה אוטומטית:
928
-
929
- ```
930
- Combo: "my-coding-stack"
931
- 1. cc/claude-opus-4-6 (your subscription)
932
- 2. nvidia/llama-3.3-70b (free NVIDIA API)
933
- 3. glm/glm-4.7 (cheap backup, $0.6/1M)
934
- 4. if/kimi-k2-thinking (free fallback)
935
-
936
- → Auto switches when quota runs out or errors occur
937
- ```
938
-
939
- ### 📊 מעקב מכסות בזמן אמת
940
-
941
- - צריכת אסימונים לכל ספק
942
- - אפס ספירה לאחור (5 שעות, יומי, שבועי)
943
- - הערכת עלויות עבור שכבות בתשלום
944
- - דוחות הוצאות חודשיים
945
-
946
- ### 🔄 תרגום פורמט
947
-
948
- תרגום חלק בין פורמטים:
949
-
950
- - **OpenAI** ↔ **קלוד** ↔ **תאומים** ↔ **תגובות OpenAI**
951
- - כלי ה-CLI שלך שולח פורמט OpenAI → OmniRoute מתרגם → הספק מקבל פורמט מקורי
952
- - עובד עם כל כלי התומך בנקודות קצה מותאמות אישית של OpenAI
953
- - **חיטוי תגובה** - מסיר שדות לא סטנדרטיים לצורך תאימות קפדנית של OpenAI SDK
954
- - **נורמליזציה של תפקידים** — `developer` → `system` עבור לא-OpenAI; `system` → `user` עבור דגמי GLM/ERNIE
955
- - **חילוץ תג חשיבה** — `<think>` בלוקים → `reasoning_content` למודלים חושבים
956
- - **פלט מובנה** — `json_schema` → `responseMimeType`/`responseSchema` של Gemini
957
-
958
- ### 👥 תמיכה בריבוי חשבונות
959
-
960
- - הוסף מספר חשבונות לכל ספק
961
- - ניתוב סבב אוטומטי או מבוסס עדיפות
962
- - חזרה לחשבון הבא כאשר אחד מגיע למכסה
963
-
964
- ### 🔄 רענון אסימון אוטומטי
965
-
966
- - אסימוני OAuth מתרעננים אוטומטית לפני פקיעת התוקף
967
- - אין צורך באימות מחדש ידני
968
- - חוויה חלקה בכל הספקים
969
-
970
- ### 🎨 שילובים מותאמים אישית
971
-
972
- - צור שילובי דגמים ללא הגבלה
973
- - 6 אסטרטגיות: מילוי ראשון, עגול, כוח משתי בחירות, אקראי, פחות בשימוש, אופטימיזציית עלות
974
- - שתף שילובים בין מכשירים עם Cloud Sync
975
-
976
- ### 🏥 לוח מחוונים לבריאות
977
-
978
- - מצב מערכת (זמן פעילות, גרסה, שימוש בזיכרון)
979
- - מצבי מפסק לכל ספק (סגור/פתוח/חצי פתוח)
980
- - מצב מגבלת תעריף ונעילה אקטיבית
981
- - סטטיסטיקת מטמון חתימה
982
- - טלמטריית אחזור (p50/p95/p99) + מטמון פקודות
983
- - אפס מצב בריאותי בלחיצה אחת
984
-
985
- ### 🔧 מגרש משחקים למתרגמים
986
-
987
- OmniRoute כולל מגרש משחקי מתרגמים מובנה רב עוצמה עם **4 מצבים** לניפוי באגים, בדיקה וניטור תרגומי API:
988
-
989
- | מצב | תיאור |
990
- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
991
- | **💻 מגרש משחקים** | תרגום פורמט ישיר - הדבק כל גוף בקשת API וראה באופן מיידי כיצד OmniRoute מתרגם אותו בין פורמטים של ספקים (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). כולל תבניות לדוגמה וזיהוי אוטומטי של פורמטים. |
992
- | **💬 בודק צ'אט** | שלח בקשות צ'אט אמיתיות דרך OmniRoute וראה את המסלול המלא הלוך ושוב: הקלט שלך, הבקשה המתורגמת, תגובת הספק והתגובה המתורגמת חזרה. לא יסולא בפז עבור אימות ניתוב משולב. |
993
- | **🧪 ספסל מבחן** | מצב בדיקת אצווה - הגדירו מקרי בדיקה מרובים עם תשומות ותפוקות צפויות שונות, הפעל את כולם בבת אחת והשווה תוצאות בין ספקים ודגמים. |
994
- | **📱 צג חי** | ניטור בקשות בזמן אמת - צפה בבקשות נכנסות כשהן זורמות דרך OmniRoute, ראה תרגומי פורמטים המתרחשים בשידור חי וזיהוי בעיות באופן מיידי. |
995
-
996
- **גישה:** לוח מחוונים ← מתרגם (סרגל צד)
997
-
998
- ### 💾 סנכרון ענן
999
-
1000
- - סנכרון ספקים, שילובים והגדרות בין מכשירים
1001
- - סנכרון רקע אוטומטי
1002
- - אחסון מוצפן מאובטח
1003
-
1004
- </details>
1005
-
1006
- ## 🧪 הערכות (הערכות)
1007
-
1008
- OmniRoute כולל מסגרת הערכה מובנית לבדיקת איכות תגובת LLM מול סט מוזהב. גש אליו דרך **Analytics → Evals** בלוח המחוונים.
1009
-
1010
- ### סט מוזהב מובנה
1011
-
1012
- ה-"OmniRoute Golden Set" הנטען מראש מכיל 10 מקרי בדיקה המכסים:
1013
-
1014
- - ברכות, מתמטיקה, גיאוגרפיה, יצירת קוד
1015
- - תאימות לפורמט JSON, תרגום, סימון
1016
- - סירוב בטיחותי (תוכן מזיק), ספירה, היגיון בוליאני
1017
-
1018
- ### אסטרטגיות הערכה
1019
-
1020
- | אסטרטגיה | תיאור | דוגמה |
1021
- | ---------- | ------------------------------------------ | -------------------------------- |
1022
- | `exact` | הפלט חייב להתאים בדיוק | `"4"` |
1023
- | `contains` | הפלט חייב להכיל תת מחרוזת (לא תלוי רישיות) | `"Paris"` |
1024
- | `regex` | הפלט חייב להתאים לדפוס הרקס | `"1.*2.*3"` |
1025
- | `custom` | פונקציית JS מותאמת מחזירה true/false | `(output) => output.length > 10` |
1026
-
1027
- ---
1028
-
1029
- ## 📖 מדריך התקנה
1030
-
1031
- <details>
1032
- <summary><b>💳 ספקי מנויים</b></summary>
1033
-
1034
- ### קוד קלוד (פרו/מקס)
1035
-
1036
- ```bash
1037
- Dashboard → Providers → Connect Claude Code
1038
- → OAuth login → Auto token refresh
1039
- → 5-hour + weekly quota tracking
1040
-
1041
- Models:
1042
- cc/claude-opus-4-6
1043
- cc/claude-sonnet-4-5-20250929
1044
- cc/claude-haiku-4-5-20251001
1045
- ```
1046
-
1047
- **טיפ מקצוען:** השתמש ב-Opus למשימות מורכבות, בסונט למהירות. OmniRoute עוקב אחר מכסה לכל דגם!
1048
-
1049
- ### OpenAI Codex (פלוס/פרו)
1050
-
1051
- ```bash
1052
- Dashboard → Providers → Connect Codex
1053
- → OAuth login (port 1455)
1054
- → 5-hour + weekly reset
1055
-
1056
- Models:
1057
- cx/gpt-5.2-codex
1058
- cx/gpt-5.1-codex-max
1059
- ```
1060
-
1061
- ### Gemini CLI (180K בחינם לחודש!)
1062
-
1063
- ```bash
1064
- Dashboard → Providers → Connect Gemini CLI
1065
- → Google OAuth
1066
- → 180K completions/month + 1K/day
1067
-
1068
- Models:
1069
- gc/gemini-3-flash-preview
1070
- gc/gemini-2.5-pro
1071
- ```
1072
-
1073
- **הערך הטוב ביותר:** שכבת חינם ענקית! השתמש בזה לפני שכבות בתשלום.
1074
-
1075
- ### GitHub Copilot
1076
-
1077
- ```bash
1078
- Dashboard → Providers → Connect GitHub
1079
- → OAuth via GitHub
1080
- → Monthly reset (1st of month)
1081
-
1082
- Models:
1083
- gh/gpt-5
1084
- gh/claude-4.5-sonnet
1085
- gh/gemini-3-pro
1086
- ```
1087
-
1088
- </details>
1089
-
1090
- <details>
1091
- <summary><b>🔑 ספקי מפתח API</b></summary>
1092
-
1093
- ### NVIDIA NIM (1000 קרדיטים בחינם!)
1094
-
1095
- 1. הירשם: [build.nvidia.com](https://build.nvidia.com)
1096
- 2. קבל מפתח API בחינם (כולל 1000 קרדיטים להסקה)
1097
- 3. לוח מחוונים ← הוסף ספק ← NVIDIA NIM:
1098
- - מפתח API: `nvapi-your-key`
1099
-
1100
- **דגמים:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ועוד 50+
1101
-
1102
- **טיפ מקצועי:** API תואם OpenAI - עובד בצורה חלקה עם תרגום הפורמט של OmniRoute!
1103
-
1104
- ### DeepSeek
1105
-
1106
- 1. הירשם: [platform.deepseek.com](https://platform.deepseek.com)
1107
- 2. קבל מפתח API
1108
- 3. לוח מחוונים ← הוסף ספק ← DeepSeek
1109
-
1110
- **דגמים:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
1111
-
1112
- ### Groq (רמה חינם זמינה!)
1113
-
1114
- 1. הירשם: [console.groq.com](https://console.groq.com)
1115
- 2. קבל מפתח API (כלול שכבת חינם)
1116
- 3. לוח מחוונים ← הוסף ספק ← Groq
1117
-
1118
- **דגמים:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
1119
-
1120
- **טיפ מקצועי:** הסקה מהירה במיוחד - הטוב ביותר לקידוד בזמן אמת!
1121
-
1122
- ### OpenRouter (100+ דגמים)
1123
-
1124
- 1. הירשם: [openrouter.ai](https://openrouter.ai)
1125
- 2. קבל מפתח API
1126
- 3. לוח מחוונים ← הוסף ספק ← OpenRouter
1127
-
1128
- **דגמים:** גישה ל-100+ דגמים מכל הספקים הגדולים באמצעות מפתח API יחיד.
1129
-
1130
- </details>
1131
-
1132
- <details>
1133
- <summary><b>💰 ספקים זולים (גיבוי)</b></summary>
1134
-
1135
- ### GLM-4.7 (איפוס יומי, $0.6/1 מיליון)
1136
-
1137
- 1. הירשם: [Zhipu AI](https://open.bigmodel.cn/)
1138
- 2. קבל מפתח API מ-Coding Plan
1139
- 3. לוח מחוונים ← הוסף מפתח API:
1140
- - ספק: `glm`
1141
- - מפתח API: `your-key`
1142
-
1143
- **השתמש:** `glm/glm-4.7`
1144
-
1145
- **טיפ למקצוענים:** תוכנית קידוד מציעה מכסה של 3× בעלות של 1/7! איפוס כל יום 10:00 בבוקר.
1146
-
1147
- ### MiniMax M2.1 (איפוס של 5 שעות, $0.20/1 מיליון דולר)
1148
-
1149
- 1. הירשם: [MiniMax](https://www.minimax.io/)
1150
- 2. קבל מפתח API
1151
- 3. לוח מחוונים ← הוסף מפתח API
1152
-
1153
- **השתמש:** `minimax/MiniMax-M2.1`
1154
-
1155
- **טיפ מקצועי:** האפשרות הזולה ביותר להקשר ארוך (1 מיליון אסימונים)!
1156
-
1157
- ### Kimi K2 (דירה של $9 לחודש)
1158
-
1159
- 1. הירשם: [Moonshot AI](https://platform.moonshot.ai/)
1160
- 2. קבל מפתח API
1161
- 3. לוח מחוונים ← הוסף מפתח API
1162
-
1163
- **השתמש:** `kimi/kimi-latest`
1164
-
1165
- **טיפ מקצועי:** 9$ קבוע לחודש עבור 10 מיליון אסימונים = 0.90$/1 מיליון עלות אפקטיבית!
1166
-
1167
- </details>
1168
-
1169
- <details>
1170
- <summary><b>🆓 ספקים בחינם (גיבוי חירום)</b></summary>
1171
-
1172
- ### iFlow (8 דגמים בחינם)
1173
-
1174
- ```bash
1175
- Dashboard → Connect iFlow
1176
- → iFlow OAuth login
1177
- → Unlimited usage
1178
-
1179
- Models:
1180
- if/kimi-k2-thinking
1181
- if/qwen3-coder-plus
1182
- if/glm-4.7
1183
- if/minimax-m2
1184
- if/deepseek-r1
1185
- ```
1186
-
1187
- ### Qwen (3 דגמים בחינם)
1188
-
1189
- ```bash
1190
- Dashboard → Connect Qwen
1191
- → Device code authorization
1192
- → Unlimited usage
1193
-
1194
- Models:
1195
- qw/qwen3-coder-plus
1196
- qw/qwen3-coder-flash
1197
- ```
1198
-
1199
- ### קירו (קלוד בחינם)
1200
-
1201
- ```bash
1202
- Dashboard → Connect Kiro
1203
- → AWS Builder ID or Google/GitHub
1204
- → Unlimited usage
1205
-
1206
- Models:
1207
- kr/claude-sonnet-4.5
1208
- kr/claude-haiku-4.5
1209
- ```
1210
-
1211
- </details>
1212
-
1213
- <details>
1214
- <summary><b>🎨 צור שילובים</b></summary>
1215
-
1216
- ### דוגמה 1: הגדלת מנוי ← גיבוי זול
1217
-
1218
- ```
1219
- Dashboard → Combos → Create New
1220
-
1221
- Name: premium-coding
1222
- Models:
1223
- 1. cc/claude-opus-4-6 (Subscription primary)
1224
- 2. glm/glm-4.7 (Cheap backup, $0.6/1M)
1225
- 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
1226
-
1227
- Use in CLI: premium-coding
1228
- ```
1229
-
1230
- ### דוגמה 2: חינם בלבד (עלות אפס)
1231
-
1232
- ```
1233
- Name: free-combo
1234
- Models:
1235
- 1. gc/gemini-3-flash-preview (180K free/month)
1236
- 2. if/kimi-k2-thinking (unlimited)
1237
- 3. qw/qwen3-coder-plus (unlimited)
1238
-
1239
- Cost: $0 forever!
1240
- ```
1241
-
1242
- </details>
1243
-
1244
- <details>
1245
- <summary><b>🔧 שילוב CLI</b></summary>
1246
-
1247
- ### סמן IDE
1248
-
1249
- ```
1250
- Settings → Models → Advanced:
1251
- OpenAI API Base URL: http://localhost:20128/v1
1252
- OpenAI API Key: [from OmniRoute dashboard]
1253
- Model: cc/claude-opus-4-6
1254
- ```
1255
-
1256
- ### קלוד קוד
1257
-
1258
- השתמש בדף **כלי CLI** בלוח המחוונים עבור תצורה בלחיצה אחת, או ערוך את `~/.claude/settings.json` באופן ידני.
1259
-
1260
- ### Codex CLI
1261
-
1262
- ```bash
1263
- export OPENAI_BASE_URL="http://localhost:20128"
1264
- export OPENAI_API_KEY="your-omniroute-api-key"
1265
-
1266
- codex "your prompt"
1267
- ```
1268
-
1269
- ### OpenClaw
1270
-
1271
- **אפשרות 1 - לוח מחוונים (מומלץ):**
1272
-
1273
- ```
1274
- Dashboard → CLI Tools → OpenClaw → Select Model → Apply
1275
- ```
1276
-
1277
- **אפשרות 2 — ידני:** ערוך `~/.openclaw/openclaw.json`:
1278
-
1279
- ```json
1280
- {
1281
- "models": {
1282
- "providers": {
1283
- "omniroute": {
1284
- "baseUrl": "http://127.0.0.1:20128/v1",
1285
- "apiKey": "sk_omniroute",
1286
- "api": "openai-completions"
1287
- }
1288
- }
1289
- }
1290
- }
1291
- ```
1292
-
1293
- > **הערה:** OpenClaw עובד רק עם OmniRoute מקומי. השתמש ב-`127.0.0.1` במקום ב-`localhost` כדי להימנע מבעיות ברזולוציה של IPv6.
1294
-
1295
- ### Cline / Continue / RooCode
1296
-
1297
- ```
1298
- Settings → API Configuration:
1299
- Provider: OpenAI Compatible
1300
- Base URL: http://localhost:20128/v1
1301
- API Key: [from OmniRoute dashboard]
1302
- Model: if/kimi-k2-thinking
1303
- ```
1304
-
1305
- </details>
1306
-
1307
- ---
1308
-
1309
- ## 🐛 פתרון בעיות
1310
-
1311
- <details>
1312
- <summary><b>לחץ כדי להרחיב את המדריך לפתרון בעיות</b></summary>
1313
-
1314
- **"מודל השפה לא סיפק הודעות"**
1315
-
1316
- - מיצתה מכסת הספק ← בדוק את עוקב המכסות של לוח המחוונים
1317
- - פתרון: השתמש ב-combo fallback או עבור לשכבה זולה יותר
1318
-
1319
- **הגבלת תעריפים**
1320
-
1321
- - מכסת מנויים נגמרת ← Fallback ל-GLM/MiniMax
1322
- - הוסף שילוב: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
1323
-
1324
- **פג תוקפו של אסימון OAuth**
1325
-
1326
- - רענון אוטומטי על ידי OmniRoute
1327
- - אם הבעיות נמשכות: לוח מחוונים ← ספק ← התחבר מחדש
1328
-
1329
- **עלויות גבוהות**
1330
-
1331
- - בדוק סטטיסטיקת שימוש בלוח המחוונים ← עלויות
1332
- - החלף את הדגם הראשי ל-GLM/MiniMax
1333
- - השתמש בשכבה חינמית (Gemini CLI, iFlow) עבור משימות לא קריטיות
1334
-
1335
- **לוח המחוונים נפתח ביציאה שגויה**
1336
-
1337
- - הגדר `PORT=20128` ו`NEXT_PUBLIC_BASE_URL=http://localhost:20128`
1338
-
1339
- **שגיאות סנכרון בענן**
1340
-
1341
- - אמת `BASE_URL` נקודות למופע הריצה שלך
1342
- - אמת `CLOUD_URL` נקודות לנקודת הקצה הצפויה שלך בענן
1343
- - שמור על ערכי `NEXT_PUBLIC_*` מיושרים עם ערכי צד השרת
1344
-
1345
- **הכניסה הראשונה לא עובדת**
1346
-
1347
- - בדוק את `INITIAL_PASSWORD` ב-`.env`
1348
- - אם לא מוגדרת, סיסמת החלפה היא `123456`
1349
-
1350
- **ללא יומני בקשות**
1351
-
1352
- - הגדר `ENABLE_REQUEST_LOGS=true` ב-`.env`
1353
-
1354
- **בדיקת חיבור מראה "לא חוקי" עבור ספקים תואמי OpenAI**
1355
-
1356
- - ספקים רבים אינם חושפים נקודת קצה `/models`
1357
- - OmniRoute v1.0.6+ כולל אימות חוזר באמצעות השלמת צ'אט
1358
- - ודא שכתובת האתר הבסיסית כוללת את הסיומת `/v1`
1359
-
1360
- ### 🔐 OAuth
1361
-
1362
- <a name="oauth-em-servidor-remoto"></a>
1363
-
1364
- > **⚠️ חשוב עבור שימוש ב-OmniRoute עם מרחוק VPS/Docker/שרת**
1365
-
1366
- ### האם אפשר לעשות אנטי כבידה / CLI מזל תאומים על שירותים מרוחקים?
1367
-
1368
- שימוש ב-**Antigravity** ו-**Gemini CLI** בשימוש ב-**Google OAuth 2.0** עבור אוטנטיקה. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo.
1369
-
1370
- As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (לדוגמה: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com:
1371
-
1372
- ```
1373
- Error 400: redirect_uri_mismatch
1374
- ```
1375
-
1376
- ### פתרון: הגדר את התצורה של OAuth
1377
-
1378
- קרא בדיוק את **OAuth 2.0 Client ID** ללא Google Cloud Console com a URI do seu service.
1379
-
1380
- #### פסו אפס
1381
-
1382
- **1. גישה ל-Google Cloud Console**
1383
-
1384
- אברה: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
1385
-
1386
- **2. Crie um novo OAuth 2.0 מזהה לקוח**
1387
-
1388
- - לחץ על **"+ צור אישורים"** → **"זיהוי לקוח OAuth"**
1389
- - טיפו דה אפליקטיבי: **"יישום אינטרנט"**
1390
- - שם: escolha qualquer nome (לדוגמה: `OmniRoute Remote`)
1391
-
1392
- **3. Adicone ככתובות URI מורשות להפניה מחדש**
1393
-
1394
- אין קמפו **"כתובות URI מורשות להפניה מחדש"**, adicione:
1395
-
1396
- ```
1397
- https://seu-servidor.com/callback
1398
- ```
1399
-
1400
- > Substitua `seu-servidor.com` pelo domínio או IP do seu servidor (כולל א porta se necessário, למשל: `http://45.33.32.156:20128/callback`).
1401
-
1402
- **4. שמור את העותק כ-credenciais**
1403
-
1404
- אפóס קריאר, o Google mostrará o **זיהוי לקוח** או **סוד לקוח**.
1405
-
1406
- **5. הגדר כ-variáveis de ambiente**
1407
-
1408
- No seu `.env` (ou nas variáveis de ambiente do Docker):
1409
-
1410
- ```bash
1411
- # Para Antigravity:
1412
- ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1413
- ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1414
-
1415
- # Para Gemini CLI:
1416
- GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1417
- GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1418
- GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1419
- ```
1420
-
1421
- **6. Reinicie o OmniRoute**
1422
-
1423
- ```bash
1424
- # Se usando npm:
1425
- npm run dev
1426
-
1427
- # Se usando Docker:
1428
- docker restart omniroute
1429
- ```
1430
-
1431
- **7. Tente conectar novamente**
1432
-
1433
- לוח מחוונים ← ספקים ← אנטי כבידה (או Gemini CLI) ← OAuth
1434
-
1435
- Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e autenticação funcionará.
1436
-
1437
- ---
1438
-
1439
- ### זמני פתרון לעקיפת הבעיה
1440
-
1441
- Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
1442
-
1443
- 1. O OmniRoute abrirá a URL de autorização do Google
1444
- 2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto)
1445
- 3. **העתק כתובת URL מלאה** da barra de endereço do seu דפדפן (mesmo que a página não carregue)
1446
- 4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
1447
- 5. לחץ על **"התחבר"**
1448
-
1449
- > פתרון עקיפת הבעיה או קוד אוטומטי של כתובת ה-URL או עצמאית להפנות את החשבון או לא.
1450
-
1451
- </details>
1452
-
1453
- ---
1454
-
1455
- ## 🛠️
1456
-
1457
- - **זמן ריצה**: Node.js 18–22 LTS (⚠️ Node.js 24+ **לא נתמך** - `better-sqlite3` קבצים בינאריים מקוריים אינם תואמים)
1458
- - **שפה**: TypeScript 5.9 — **100% TypeScript** על פני `src/` ו`open-sse/` (v1.0.6)
1459
- - **מסגרת**: Next.js 16 + React 19 + Tailwind CSS 4
1460
- - **מסד נתונים**: LowDB (JSON) + SQLite (מצב תחום + יומני proxy)
1461
- - **סטרימינג**: אירועים שנשלחו על ידי שרת (SSE)
1462
- - **אישור**: OAuth 2.0 (PKCE) + JWT + מפתחות API
1463
- - **בדיקות**: רץ מבחן Node.js (בדיקות 368+ יחידות)
1464
- - **CI/CD**: פעולות GitHub (פרסום אוטומטי של npm + Docker Hub בשחרור)
1465
- - **אתר**: [omniroute.online](https://omniroute.online)
1466
- - **חבילה**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1467
- - **דוקר**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1468
- - **חוסן**: מפסק מעגלים, גיבוי אקספוננציאלי, עדר נגד רעמים, זיוף TLS
1469
-
1470
- ---
1471
-
1472
- ## 📖 תיעוד
1473
-
1474
- | מסמך | תיאור |
1475
- | -------------------------------------------- | ----------------------------------------- |
1476
- | [User Guide](docs/USER_GUIDE.md) | ספקים, שילובים, שילוב CLI, פריסה |
1477
- | [API Reference](docs/API_REFERENCE.md) | כל נקודות הקצה עם דוגמאות |
1478
- | [Troubleshooting](docs/TROUBLESHOOTING.md) | בעיות ופתרונות נפוצים |
1479
- | [Architecture](docs/ARCHITECTURE.md) | ארכיטקטורת מערכת ופנים |
1480
- | [Contributing](CONTRIBUTING.md) | מערך פיתוח והנחיות |
1481
- | [OpenAPI Spec](docs/openapi.yaml) | מפרט OpenAPI 3.0 |
1482
- | [Security Policy](SECURITY.md) | דיווח על פגיעות ונהלי אבטחה |
1483
- | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | מדריך שלם: הגדרות VM + nginx + Cloudflare |
1484
- | [Features Gallery](docs/FEATURES.md) | סיור חזותי בלוח המחוונים עם צילומי מסך |
1485
-
1486
- ### 📸 תצוגה מקדימה של לוח המחוונים
1487
-
1488
- <details>
1489
- <summary><b>לחץ כדי לראות צילומי מסך של לוח המחוונים</b></summary>
1490
-
1491
- | עמוד | צילום מסך |
1492
- | --------------- | ------------------------------------------------- |
1493
- | **ספקים** | ![Providers](docs/screenshots/01-providers.png) |
1494
- | **שילובים** | ![Combos](docs/screenshots/02-combos.png) |
1495
- | **אנליטיקה** | ![Analytics](docs/screenshots/03-analytics.png) |
1496
- | **בריאות** | ![Health](docs/screenshots/04-health.png) |
1497
- | **מתרגם** | ![Translator](docs/screenshots/05-translator.png) |
1498
- | **הגדרות** | ![Settings](docs/screenshots/06-settings.png) |
1499
- | **כלי CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) |
1500
- | **יומני שימוש** | ![Usage](docs/screenshots/08-usage.png) |
1501
- | **נקודת קצה** | ![Endpoint](docs/screenshots/09-endpoint.png) |
1502
-
1503
- </details>
1504
-
1505
- ---
1506
-
1507
- ## 🗺️
1508
-
1509
- ל-OmniRoute יש **210+ תכונות מתוכננות** לאורך שלבי פיתוח מרובים. להלן תחומי המפתח:
1510
-
1511
- | קטגוריה | תכונות מתוכננות | הבהרה |
1512
- | ---------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
1513
- | 🎯 **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
1514
- | 🧠 **ניתוב ומודיעין** | 25+ | ניתוב עם זמן האחזור הנמוך ביותר, ניתוב מבוסס תגים, בדיקה מוקדמת של מכסה, בחירת חשבון P2C |
1515
- | 🔒 **אבטחה ותאימות** | 20+ | הקשחת SSRF, הסוואה של אישורים, הגבלת קצב לכל נקודת קצה, היקף מפתח ניהול |
1516
- | 📊 **צפיות** | 15+ | אינטגרציה של OpenTelemetry, ניטור מכסות בזמן אמת, מעקב עלויות לכל דגם |
1517
- | 🔄 **שילובי ספקים** | 20+ | רישום מודלים דינמיים, צינון ספקים, Codex מרובה חשבונות, ניתוח מכסת Copilot |
1518
- | ⚡ **ביצועים** | 15+ | שכבת מטמון כפולה, מטמון הנחיה, מטמון תגובה, סטרימינג Keepalive, API אצווה |
1519
- | 🌐 **מערכת אקולוגית** | 10+ | WebSocket API, טעינה חוזרת של תצורה, חנות תצורה מבוזרת, מצב מסחרי |
1520
-
1521
- ### 🔜 בקרוב
1522
-
1523
- - 🔗 **שילוב OpenCode** - תמיכה בספק מקורי עבור IDE קידוד AI של OpenCode
1524
- - 🔗 **TRAE Integration** — תמיכה מלאה במסגרת הפיתוח של TRAE AI
1525
- - 📦 **אצווה API** - עיבוד אצווה אסינכרוני עבור בקשות בכמות גדולה
1526
- - 🎯 **ניתוב מבוסס תגים** — בקשות ניתוב המבוססות על תגים ומטא נתונים מותאמים אישית
1527
- - 💰 **אסטרטגיית העלות הנמוכה ביותר** — בחר אוטומטית את הספק הזמין הזול ביותר
1528
-
1529
- > 📝 מפרטי תכונה מלאים זמינים ב-[link](docs/new-features/) (217 מפרטים מפורטים)
1530
-
1531
- ---
1532
-
1533
- ## 👥 תורמים
1534
-
1535
- [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
1536
-
1537
- ### כיצד לתרום
1538
-
1539
- 1. מזלג את המאגר
1540
- 2. צור את ענף התכונה שלך (`git checkout -b feature/amazing-feature`)
1541
- 3. בצע את השינויים שלך (`git commit -m 'Add amazing feature'`)
1542
- 4. דחף לסניף (`git push origin feature/amazing-feature`)
1543
- 5. פתחו בקשת משיכה
1544
-
1545
- ראה [CONTRIBUTING.md](CONTRIBUTING.md) להנחיות מפורטות.
1546
-
1547
- ### שחרור גרסה חדשה
1548
-
1549
- ```bash
1550
- # Create a release — npm publish happens automatically
1551
- gh release create v1.0.6 --title "v1.0.6" --generate-notes
1552
- ```
1553
-
1554
- ---
1555
-
1556
- ## 📊 היסטוריית כוכבים
1557
-
1558
- <a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
1559
- <picture>
1560
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
1561
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1562
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1563
- </picture>
1564
- </a>
1565
-
1566
- ---
1567
-
1568
- ## 🙏 תודות
1569
-
1570
- תודה מיוחדת ל**[9router](https://github.com/decolua/9router)** מאת **[decolua](https://github.com/decolua)** - הפרויקט המקורי שהיווה השראה למזלג הזה. OmniRoute בונה על הבסיס המדהים הזה עם תכונות נוספות, ממשקי API רב-מודאליים ושכתוב מלא של TypeScript.
1571
-
1572
- תודה מיוחדת ל**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - היישום המקורי של Go שימש השראה ליציאת JavaScript הזו.
1573
-
1574
- ---
1575
-
1576
- ## 📄 רישיון
1577
-
1578
- רישיון MIT - ראה [LICENSE](LICENSE) לפרטים.
1579
-
1580
- ---
1581
-
1582
- <div align="center">
1583
- <sub>נבנה עם ❤️ למפתחים שמקודדים 24/7</sub>
1584
- <br/>
1585
- <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1586
- </div>