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.nl.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 — De gratis AI-gateway
5
-
6
- ### Stop nooit met coderen. Slimme routering naar **GRATIS en voordelige AI-modellen** met automatische terugval.
7
-
8
- _Uw universele API-proxy: één eindpunt, meer dan 36 providers, geen downtime._
9
-
10
- **Chatvoltooiingen • Insluitingen • Afbeelding genereren • Audio • Herrangschikking • 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
- ### 🤖 Gratis AI-provider voor uw favoriete codeeragenten
27
-
28
- _Verbind elke AI-aangedreven IDE- of CLI-tool via OmniRoute: gratis API-gateway voor onbeperkte codering._
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>📡 Alle agenten maken verbinding via <code>http://localhost:20128/v1</code> of <code>http://cloud.omniroute.online/v1</code> — één configuratie, onbeperkte modellen en quota</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
- ## 🤔 Waarom OmniRoute?
155
-
156
- **Stop met het verspillen van geld en het bereiken van grenzen:**
157
-
158
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Het abonnementsquotum verloopt elke maand ongebruikt
159
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Snelheidslimieten voorkomen dat u halverwege codeert
160
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Dure API's ($20-50/maand per provider)
161
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Handmatig schakelen tussen providers
162
-
163
- **OmniRoute lost dit op:**
164
-
165
- - ✅ **Maximaliseer abonnementen** - Houd quota bij, gebruik elk bit voordat u het opnieuw instelt
166
- - ✅ **Automatische fallback** - Abonnement → API-sleutel → Goedkoop → Gratis, geen downtime
167
- - ✅ **Multi-account** - Round-robin tussen accounts per provider
168
- - ✅ **Universeel** - Werkt met Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, elke CLI-tool
169
-
170
- ---
171
-
172
- ## 📧 Ondersteuning
173
-
174
- > 💬 **Word lid van onze community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Krijg hulp, deel tips en blijf op de hoogte.
175
-
176
- - **Website**: [omniroute.online](https://omniroute.online)
177
- - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
178
- - **Problemen**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
179
- - **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
180
- - **Origineel project**: [9router by decolua](https://github.com/decolua/9router)
181
-
182
- ---
183
-
184
- ## 🔄 Hoe het werkt
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
- ## 🎯 Wat OmniRoute oplost — 30 echte pijnpunten en gebruiksscenario's
214
-
215
- > **Elke ontwikkelaar die AI-tools gebruikt, wordt dagelijks met deze problemen geconfronteerd.** OmniRoute is gebouwd om ze allemaal op te lossen: van kostenoverschrijdingen tot regionale blokkades, van kapotte OAuth-stromen tot protocolbewerkingen en bedrijfsobservatie.
216
-
217
- <details>
218
- <summary><b>💸 1. "Ik betaal voor een duur abonnement, maar word nog steeds onderbroken door limieten"</b></summary>
219
-
220
- Ontwikkelaars betalen $20-200/maand voor Claude Pro, Codex Pro of GitHub Copilot. Zelfs als je betaalt, heeft het quotum een ​​plafond: 5 uur gebruik, wekelijkse limieten of tarieflimieten per minuut. Halverwege de codeersessie reageert de provider niet meer en verliest de ontwikkelaar flow en productiviteit.
221
-
222
- **Hoe OmniRoute het oplost:**
223
-
224
- - **Smart 4-Tier Fallback** — Als het abonnementsquotum opraakt, wordt automatisch doorgestuurd naar API Key → Goedkoop → Gratis zonder handmatige tussenkomst
225
- - **Realtime bijhouden van quota** — Toont het tokenverbruik in realtime met aftellen van de reset (5 uur, dagelijks, wekelijks)
226
- - **Ondersteuning voor meerdere accounts** — Meerdere accounts per provider met automatische round-robin — als de ene op is, wordt er overgeschakeld naar de volgende
227
- - **Aangepaste combo's** — Aanpasbare fallback-ketens met 6 balanceringsstrategieën (fill-first, round-robin, P2C, willekeurig, minst gebruikt, kostengeoptimaliseerd)
228
- - **Codex Business Quota** — Quotabewaking van zakelijke/teamwerkruimte rechtstreeks in het dashboard
229
-
230
- </details>
231
-
232
- <details>
233
- <summary><b>🔌 2. "Ik moet meerdere providers gebruiken, maar elk heeft een andere API"</b></summary>
234
-
235
- OpenAI gebruikt het ene formaat, Claude (Anthropic) gebruikt een ander, Gemini nog een ander. Als een ontwikkelaar modellen van verschillende providers wil testen of terug wil vallen tussen deze providers, moet hij SDK's opnieuw configureren, eindpunten wijzigen en omgaan met incompatibele formaten. Aangepaste providers (FriendLI, NIM) hebben niet-standaard modeleindpunten.
236
-
237
- **Hoe OmniRoute het oplost:**
238
-
239
- - **Unified Endpoint** — Eén enkele `http://localhost:20128/v1` dient als proxy voor alle 36+ providers
240
- - **Formatvertaling** — Automatisch en transparant: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
241
- - **Response Sanitization** — Verwijdert niet-standaardvelden (`x_groq`, `usage_breakdown`, `service_tier`) die OpenAI SDK v1.83+ breken
242
- - **Rolnormalisatie** — Converteert `developer` → `system` voor niet-OpenAI-providers; `system` → `user` voor GLM/ERNIE
243
- - **Think Tag Extraction** — Extraheert `<think>`-blokken uit modellen zoals DeepSeek R1 naar gestandaardiseerde `reasoning_content`
244
- - **Gestructureerde uitvoer voor Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatische conversie
245
- - **`stream` is standaard ingesteld op `false`** — Sluit aan bij de OpenAI-specificaties en vermijdt onverwachte SSE in Python/Rust/Go SDK's
246
-
247
- </details>
248
-
249
- <details>
250
- <summary><b>🌐 3. "Mijn AI-provider blokkeert mijn regio/land"</b></summary>
251
-
252
- Providers zoals OpenAI/Codex blokkeren de toegang vanuit bepaalde geografische regio's. Gebruikers krijgen fouten zoals `unsupported_country_region_territory` tijdens OAuth- en API-verbindingen. Dit is vooral frustrerend voor ontwikkelaars uit ontwikkelingslanden.
253
-
254
- **Hoe OmniRoute het oplost:**
255
-
256
- - **Proxyconfiguratie op 3 niveaus** — Configureerbare proxy op 3 niveaus: globaal (al het verkeer), per provider (slechts één provider) en per verbinding/sleutel
257
- - **Kleurgecodeerde proxybadges** — Visuele indicatoren: 🟢 globale proxy, 🟡 providerproxy, 🔵verbindingsproxy, waarbij altijd het IP-adres wordt weergegeven
258
- - **OAuth-tokenuitwisseling via proxy**: de OAuth-stroom verloopt ook via de proxy, waardoor `unsupported_country_region_territory` wordt opgelost
259
- - **Verbindingstests via proxy** — Verbindingstests gebruiken de geconfigureerde proxy (geen directe bypass meer)
260
- - **SOCKS5-ondersteuning** — Volledige SOCKS5-proxyondersteuning voor uitgaande routering
261
- - **TLS Fingerprint Spoofing** — Browserachtige TLS-vingerafdruk via `wreq-js` om botdetectie te omzeilen
262
-
263
- </details>
264
-
265
- <details>
266
- <summary><b>🆓 4. "Ik wil AI gebruiken voor codering, maar ik heb geen geld"</b></summary>
267
-
268
- Niet iedereen kan $ 20-200 per maand betalen voor AI-abonnementen. Studenten, ontwikkelaars uit opkomende landen, hobbyisten en freelancers hebben kosteloos toegang nodig tot kwaliteitsmodellen.
269
-
270
- **Hoe OmniRoute het oplost:**
271
-
272
- - **Free Tier Providers ingebouwd** — Native ondersteuning voor 100% gratis providers: iFlow (8 onbeperkte modellen), Qwen (3 onbeperkte modellen), Kiro (Claude gratis), Gemini CLI (180K/maand gratis)
273
- - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/<model>` prefix
274
- - **Alleen gratis combo's** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $ 0/maand zonder downtime
275
- - **NVIDIA NIM Free Credits** — 1000 gratis credits geïntegreerd
276
- - **Kostengeoptimaliseerde strategie** — Routingstrategie die automatisch de goedkoopste beschikbare provider kiest
277
-
278
- </details>
279
-
280
- <details>
281
- <summary><b>🔒 5. "Ik moet mijn AI-gateway beschermen tegen ongeoorloofde toegang"</b></summary>
282
-
283
- Bij het blootstellen van een AI-gateway aan het netwerk (LAN, VPS, Docker) kan iedereen met het adres de tokens/quota van de ontwikkelaar gebruiken. Zonder bescherming zijn API's kwetsbaar voor misbruik, snelle injectie en misbruik.
284
-
285
- **Hoe OmniRoute het oplost:**
286
-
287
- - **API Key Management** — Generatie, rotatie en bereik per provider met een speciale `/dashboard/api-manager`-pagina
288
- - **Machtigingen op modelniveau** — Beperk API-sleutels tot specifieke modellen (`openai/*`, jokertekenpatronen), met de schakelaar Alles toestaan/Beperken
289
- - **API Endpoint Protection** — Vereist een sleutel voor `/v1/models` en blokkeer specifieke providers uit de lijst
290
- - **Auth Guard + CSRF-bescherming** — Alle dashboardroutes beschermd met `withAuth` middleware + CSRF-tokens
291
- - **Rate Limiter** — Per-IP-snelheidslimiet met configureerbare vensters
292
- - **IP-filtering** — Toelatingslijst/blokkeerlijst voor toegangscontrole
293
- - **Prompt Injection Guard** — Sanering tegen kwaadaardige promptpatronen
294
- - **AES-256-GCM-codering** — Inloggegevens gecodeerd in rust
295
-
296
- </details>
297
-
298
- <details>
299
- <summary><b>🛑 6. "Mijn provider is uitgevallen en ik ben mijn codeerstroom kwijt"</b></summary>
300
-
301
- AI-aanbieders kunnen instabiel worden, 5xx-fouten retourneren of tijdelijke tarieflimieten bereiken. Als een ontwikkelaar afhankelijk is van één enkele provider, worden deze onderbroken. Zonder stroomonderbrekers kunnen herhaalde pogingen de toepassing laten crashen.
302
-
303
- **Hoe OmniRoute het oplost:**
304
-
305
- - **Stroomonderbreker per provider** — Automatisch openen/sluiten met configureerbare drempels en cooldown (gesloten/open/halfopen)
306
- - **Exponentiële uitstel** — Progressieve vertragingen bij nieuwe pogingen
307
- - **Anti-Thundering Herd** — Mutex + semafoorbescherming tegen gelijktijdige nieuwe stormen
308
- - **Combo Fallback Chains** — Als de primaire provider faalt, valt deze automatisch zonder tussenkomst door de keten
309
- - **Combo-stroomonderbreker** — Schakelt falende providers binnen een combo-keten automatisch uit
310
- - **Gezondheidsdashboard** — Uptime-monitoring, status van stroomonderbrekers, uitsluitingen, cachestatistieken, p50/p95/p99-latentie
311
-
312
- </details>
313
-
314
- <details>
315
- <summary><b>🔧 7. "Het configureren van elke AI-tool is vervelend en repetitief"</b></summary>
316
-
317
- Ontwikkelaars gebruiken Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Elke tool heeft een andere configuratie nodig (API-eindpunt, sleutel, model). Opnieuw configureren bij het wisselen van provider of model is tijdverspilling.
318
-
319
- **Hoe OmniRoute het oplost:**
320
-
321
- - **CLI Tools Dashboard** — Speciale pagina met installatie met één klik voor Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
322
- - **GitHub Copilot Config Generator** — Genereert `chatLanguageModels.json` voor VS-code met bulkmodelselectie
323
- - **Onboarding Wizard** — Begeleide installatie in 4 stappen voor nieuwe gebruikers
324
- - **Eén eindpunt, alle modellen** — Configureer `http://localhost:20128/v1` één keer, krijg toegang tot meer dan 36 providers
325
-
326
- </details>
327
-
328
- <details>
329
- <summary><b>🔑 8. "Het beheren van OAuth-tokens van meerdere providers is een hel"</b></summary>
330
-
331
- Claude Code, Codex, Gemini CLI, Copilot: ze gebruiken allemaal OAuth 2.0 met aflopende tokens. Ontwikkelaars moeten zich voortdurend opnieuw authenticeren en omgaan met `client_secret is missing`, `redirect_uri_mismatch` en storingen op externe servers. OAuth op LAN/VPS is bijzonder problematisch.
332
-
333
- **Hoe OmniRoute het oplost:**
334
-
335
- - **Automatische tokenvernieuwing**: OAuth-tokens worden op de achtergrond vernieuwd voordat ze verlopen
336
- - **OAuth 2.0 (PKCE) ingebouwd** — Automatische stroom voor Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
337
- - **Multi-Account OAuth** — Meerdere accounts per provider via JWT/ID-tokenextractie
338
- - **OAuth LAN/Remote Fix** — Privé-IP-detectie voor `redirect_uri` + handmatige URL-modus voor externe servers
339
- - **OAuth achter Nginx** — gebruikt `window.location.origin` voor reverse proxy-compatibiliteit
340
- - **Remote OAuth-handleiding** — Stapsgewijze handleiding voor Google Cloud-inloggegevens op VPS/Docker
341
-
342
- </details>
343
-
344
- <details>
345
- <summary><b>📊 9. "Ik weet niet hoeveel ik uitgeef of waar"</b></summary>
346
-
347
- Ontwikkelaars gebruiken meerdere betaalde providers, maar hebben geen uniform beeld van de uitgaven. Elke provider heeft zijn eigen factureringsdashboard, maar er is geen geconsolideerd overzicht. Onverwachte kosten kunnen zich opstapelen.
348
-
349
- **Hoe OmniRoute het oplost:**
350
-
351
- - **Cost Analytics Dashboard** — Kostenregistratie per token en budgetbeheer per provider
352
- - **Budgetlimieten per niveau** — Uitgavenplafond per niveau dat automatische terugval activeert
353
- - **Prijsconfiguratie per model** — Configureerbare prijzen per model
354
- - **Gebruiksstatistieken per API-sleutel** — Verzoekaantal en laatst gebruikte tijdstempel per sleutel
355
- - **Analytics Dashboard** — Statistiekkaarten, modelgebruiksgrafiek, providertabel met succespercentages en latentie
356
-
357
- </details>
358
-
359
- <details>
360
- <summary><b>🐛 10. "Ik kan geen fouten en problemen in AI-oproepen diagnosticeren"</b></summary>
361
-
362
- Wanneer een oproep mislukt, weet de ontwikkelaar niet of het een snelheidslimiet, een verlopen token, een verkeerd formaat of een providerfout is. Gefragmenteerde logboeken over verschillende terminals. Zonder waarneembaarheid is debuggen een kwestie van vallen en opstaan.
363
-
364
- **Hoe OmniRoute het oplost:**
365
-
366
- - **Unified Logs Dashboard** — 4 tabbladen: aanvraaglogboeken, proxylogboeken, auditlogboeken, console
367
- - **Consolelogviewer** — Realtime viewer in terminalstijl met kleurgecodeerde niveaus, automatisch scrollen, zoeken, filteren
368
- - **SQLite Proxy Logs** — Persistente logs die het opnieuw opstarten van de server overleven
369
- - **Translator Playground** — 4 foutopsporingsmodi: Playground (formaatvertaling), Chat Tester (retour), Testbank (batch), Live Monitor (realtime)
370
- - **Request Telemetry** — p50/p95/p99 latentie + X-Request-Id-tracering
371
- - **Op bestanden gebaseerde logboekregistratie met rotatie** — Console-interceptor legt alles vast in JSON-logboek met op grootte gebaseerde rotatie
372
-
373
- </details>
374
-
375
- <details>
376
- <summary><b>🏗️ 11. "Het implementeren en onderhouden van de gateway is complex"</b></summary>
377
-
378
- Het installeren, configureren en onderhouden van een AI-proxy in verschillende omgevingen (lokaal, VPS, Docker, cloud) is arbeidsintensief. Problemen zoals hardgecodeerde paden, `EACCES` in mappen, poortconflicten en platformonafhankelijke builds zorgen voor wrijving.
379
-
380
- **Hoe OmniRoute het oplost:**
381
-
382
- - **npm globale installatie** — `npm install -g omniroute && omniroute` — klaar
383
- - **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
384
- - **Docker Compose Profiles** — `base` (geen CLI-tools) en `cli` (met Claude Code, Codex, OpenClaw)
385
- - **Electron Desktop App** — Native app voor Windows/macOS/Linux met systeemvak, automatisch starten, offlinemodus
386
- - **Split-Port-modus** — API en Dashboard op afzonderlijke poorten voor geavanceerde scenario's (reverse proxy, containernetwerken)
387
- - **Cloud Sync** — Configureer synchronisatie tussen apparaten via Cloudflare Workers
388
- - **DB-back-ups** — Automatische back-up, herstel, export en import van alle instellingen
389
-
390
- </details>
391
-
392
- <details>
393
- <summary><b>🌍 12. "De interface is alleen in het Engels en mijn team spreekt geen Engels"</b></summary>
394
-
395
- Teams in niet-Engelssprekende landen, vooral in Latijns-Amerika, Azië en Europa, worstelen met interfaces die alleen in het Engels beschikbaar zijn. Taalbarrières verminderen de adoptie en vergroten de configuratiefouten.
396
-
397
- **Hoe OmniRoute het oplost:**
398
-
399
- - **Dashboard i18n — 30 talen** — Alle 500+ toetsen vertaald, waaronder Arabisch, Bulgaars, Deens, Duits, Spaans, Fins, Frans, Hebreeuws, Hindi, Hongaars, Indonesisch, Italiaans, Japans, Koreaans, Maleis, Nederlands, Noors, Pools, Portugees (PT/BR), Roemeens, Russisch, Slowaaks, Zweeds, Thais, Oekraïens, Vietnamees, Chinees, Filipijns, Engels
400
- - **RTL-ondersteuning** — Ondersteuning van rechts naar links voor Arabisch en Hebreeuws
401
- - **Meertalige README's** — 30 volledige documentatievertalingen
402
- - **Taalkiezer** — Wereldbolpictogram in de koptekst voor realtime schakelen
403
-
404
- </details>
405
-
406
- <details>
407
- <summary><b>🔄 13. "Ik heb meer nodig dan chatten - ik heb insluitingen, afbeeldingen en audio nodig"</b></summary>
408
-
409
- AI is niet alleen het voltooien van chats. Ontwikkelaars moeten afbeeldingen genereren, audio transcriberen, insluitingen voor RAG maken, documenten opnieuw rangschikken en inhoud modereren. Elke API heeft een ander eindpunt en formaat.
410
-
411
- **Hoe OmniRoute het oplost:**
412
-
413
- - **Inbedding** — `/v1/embeddings` met 6 providers en 9+ modellen
414
- - **Beeldgeneratie** — `/v1/images/generations` met 10 providers en 20+ modellen (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
415
- - **Tekst-naar-video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) en SD WebUI
416
- - **Tekst-naar-muziek** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
417
- - **Audiotranscriptie** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
418
- - **Tekst-naar-spraak** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, Inworld, Cartesia, PlayHT, + bestaande providers
419
- - **Moderaties** — `/v1/moderations` — Veiligheidscontroles van inhoud
420
- - **Herschikking** — `/v1/rerank` — Herschikking van de relevantie van documenten
421
- - **Responses API** — Volledige `/v1/responses`-ondersteuning voor Codex
422
-
423
- </details>
424
-
425
- <details>
426
- <summary><b>🧪 14. "Ik heb geen manier om de kwaliteit van verschillende modellen te testen en te vergelijken"</b></summary>
427
-
428
- Ontwikkelaars willen weten welk model het beste is voor hun gebruiksscenario (code, vertaling, redenering), maar handmatig vergelijken gaat traag. Er bestaan ​​geen geïntegreerde evaluatietools.
429
-
430
- **Hoe OmniRoute het oplost:**
431
-
432
- - **LLM-evaluaties** — Golden set-tests met 10 vooraf geladen cases over begroetingen, wiskunde, aardrijkskunde, codegeneratie, JSON-compliance, vertaling, prijsverlaging, veiligheidsweigering
433
- - **4 Matchstrategieën** — `exact`, `contains`, `regex`, `custom` (JS-functie)
434
- - **Translator Playground Test Bench** — Batchtests met meerdere inputs en verwachte outputs, vergelijking tussen providers
435
- - **Chat Tester** — Volledige rondreis met visuele responsweergave
436
- - **Live Monitor** — Realtime stream van alle verzoeken die door de proxy stromen
437
-
438
- </details>
439
-
440
- <details>
441
- <summary><b>📈 15. "Ik moet schalen zonder prestatieverlies"</b></summary>
442
-
443
- Naarmate het verzoekvolume groeit, genereren dezelfde vragen dubbele kosten als dezelfde vragen niet in de cache worden opgeslagen. Zonder idempotentie verspillen dubbele aanvragen de verwerking. Tarieflimieten per aanbieder moeten worden gerespecteerd.
444
-
445
- **Hoe OmniRoute het oplost:**
446
-
447
- - **Semantische cache** — Cache met twee lagen (handtekening + semantisch) verlaagt de kosten en de latentie
448
- - **Request Idempotency** — 5s deduplicatievenster voor identieke verzoeken
449
- - **Detectie van tarieflimiet** — RPM per provider, minimale tussenruimte en maximale gelijktijdige tracking
450
- - **Bewerkbare snelheidslimieten** — Configureerbare standaardinstellingen in Instellingen → Veerkracht met doorzettingsvermogen
451
- - **API Key Validation Cache** — 3-tier cache voor productieprestaties
452
- - **Gezondheidsdashboard met telemetrie** — p50/p95/p99-latentie, cachestatistieken, uptime
453
-
454
- </details>
455
-
456
- <details>
457
- <summary><b>🤖 16. "Ik wil het modelgedrag wereldwijd controleren"</b></summary>
458
-
459
- Ontwikkelaars die alle antwoorden in een specifieke taal willen, met een specifieke toon, of redeneringstokens willen beperken. Het is onpraktisch om dit in elke tool/verzoek te configureren.
460
-
461
- **Hoe OmniRoute het oplost:**
462
-
463
- - **Systeempromptinjectie**: algemene prompt toegepast op alle verzoeken
464
- - **Thinking Budget Validation** — Redenering van tokentoewijzingscontrole per verzoek (passthrough, automatisch, aangepast, adaptief)
465
- - **6 Routingstrategieën** — Globale strategieën die bepalen hoe verzoeken worden gedistribueerd
466
- - **Wildcard Router** — `provider/*`-patronen routeren dynamisch naar elke provider
467
- - **Combo in-/uitschakelen schakelen** — Schakel combo's rechtstreeks vanuit het dashboard in
468
- - **Provider wisselen** — Schakel alle verbindingen voor een provider met één klik in/uit
469
- - **Geblokkeerde providers**: sluit specifieke providers uit van de `/v1/models`-lijst
470
-
471
- </details>
472
-
473
- <details>
474
- <summary><b>🧰 17. "Ik heb MCP-tools nodig als eersteklas productmogelijkheden"</b></summary>
475
-
476
- Veel AI-gateways stellen MCP alleen bloot als een verborgen implementatiedetail. Teams hebben een zichtbare, beheersbare operationele laag nodig.
477
-
478
- **Hoe OmniRoute het oplost:**
479
-
480
- - MCP verschijnt op het dashboardnavigatie- en eindpuntprotocoltabblad
481
- - Speciale MCP-beheerpagina met proces, tools, scopes en audit
482
- - Ingebouwde snelstart voor `omniroute --mcp` en onboarding van klanten
483
-
484
- </details>
485
-
486
- <details>
487
- <summary><b>🧠 18. "Ik heb A2A-orkestratie nodig met synchronisatie- en streamtaakpaden"</b></summary>
488
-
489
- Agentworkflows hebben zowel directe antwoorden nodig als langdurige gestreamde uitvoering met levenscycluscontrole.
490
-
491
- **Hoe OmniRoute het oplost:**
492
-
493
- - A2A JSON-RPC-eindpunt (`POST /a2a`) met `message/send` en `message/stream`
494
- - SSE-streaming met voortplanting van de terminalstatus
495
- - Taaklevenscyclus-API's voor `tasks/get` en `tasks/cancel`
496
-
497
- </details>
498
-
499
- <details>
500
- <summary><b>🛰️ 19. "Ik heb echte MCP-processtatus nodig, geen geraden status"</b></summary>
501
-
502
- Operationele teams moeten weten of MCP daadwerkelijk leeft, en niet alleen of een API bereikbaar is.
503
-
504
- **Hoe OmniRoute het oplost:**
505
-
506
- - Runtime-hartslagbestand met PID, tijdstempels, transport, aantal gereedschappen en scope-modus
507
- - MCP-status-API die hartslag + recente activiteit combineert
508
- - UI-statuskaarten voor proces/uptime/hartslagversheid
509
-
510
- </details>
511
-
512
- <details>
513
- <summary><b>📋 20. "Ik heb controleerbare MCP-tooluitvoering nodig"</b></summary>
514
-
515
- Wanneer tools de configuratie muteren of operationele acties activeren, hebben teams forensische traceerbaarheid nodig.
516
-
517
- **Hoe OmniRoute het oplost:**
518
-
519
- - SQLite-ondersteunde auditregistratie voor MCP-toolaanroepen
520
- - Filters op tool, succes/mislukking, API-sleutel en paginering
521
- - Dashboard-audittabel + statistiekeneindpunten voor automatisering
522
-
523
- </details>
524
-
525
- <details>
526
- <summary><b>🔐 21. "Ik heb MCP-rechten per integratie nodig"</b></summary>
527
-
528
- Verschillende clients moeten toegang tot de toolcategorieën met de minste bevoegdheden hebben.
529
-
530
- **Hoe OmniRoute het oplost:**
531
-
532
- - 9 gedetailleerde MCP-scopes voor gecontroleerde toegang tot tools
533
- - Scopehandhaving en zichtbaarheid in de MCP-beheerinterface
534
- - Veilige standaardhouding voor operationeel gereedschap
535
-
536
- </details>
537
-
538
- <details>
539
- <summary><b>⚙️ 22. "Ik heb operationele controles nodig zonder opnieuw te implementeren"</b></summary>
540
-
541
- Teams hebben snelle runtimewijzigingen nodig tijdens incidenten of kostengebeurtenissen.
542
-
543
- **Hoe OmniRoute het oplost:**
544
-
545
- - Schakel combo-activering rechtstreeks vanuit het MCP-dashboard
546
- - Pas veerkrachtprofielen toe uit vooraf gedefinieerde beleidspakketten
547
- - Reset de status van de stroomonderbreker vanaf hetzelfde bedieningspaneel
548
-
549
- </details>
550
-
551
- <details>
552
- <summary><b>🔄 23. "Ik heb live zichtbaarheid en annulering van de levenscyclus van A2A-taken nodig"</b></summary>
553
-
554
- Zonder inzicht in de levenscyclus worden taakincidenten moeilijk te beoordelen.
555
-
556
- **Hoe OmniRoute het oplost:**
557
-
558
- - Takenlijst/filteren op staat/vaardigheid met paginering
559
- - Inzoomen op taakmetagegevens, gebeurtenissen en artefacten
560
- - Eindpunt voor het annuleren van taken en UI-actie met bevestiging
561
-
562
- </details>
563
-
564
- <details>
565
- <summary><b>🌊 24. "Ik heb actieve streamstatistieken nodig voor A2A-belasting"</b></summary>
566
-
567
- Streamingworkflows vereisen operationeel inzicht in gelijktijdigheid en liveverbindingen.
568
-
569
- **Hoe OmniRoute het oplost:**
570
-
571
- - Actieve streamtellers geïntegreerd in de A2A-status
572
- - Tijdstempel van de laatste taak en tellingen per staat
573
- - A2A-dashboardkaarten voor real-time operationele monitoring
574
-
575
- </details>
576
-
577
- <details>
578
- <summary><b>🪪 25. "Ik heb standaard agentdetectie nodig voor klanten"</b></summary>
579
-
580
- Externe klanten en orkestrators hebben machinaal leesbare metagegevens nodig voor onboarding.
581
-
582
- **Hoe OmniRoute het oplost:**
583
-
584
- - Agentkaart zichtbaar op `/.well-known/agent.json`
585
- - Mogelijkheden en vaardigheden weergegeven in de management-UI
586
- - A2A-status-API bevat ontdekkingsmetagegevens voor automatisering
587
-
588
- </details>
589
-
590
- <details>
591
- <summary><b>🧭 26. "Ik heb protocolvindbaarheid nodig in de product-UX"</b></summary>
592
-
593
- Als gebruikers protocoloppervlakken niet kunnen ontdekken, neemt de acceptatie- en ondersteuningskwaliteit af.
594
-
595
- **Hoe OmniRoute het oplost:**
596
-
597
- - Zijbalkinvoer voor MCP en A2A
598
- - Eindpuntpagina Tabblad Protocollen met snelstart en status
599
- - Koppelingen van overzicht naar speciale managementdashboards
600
-
601
- </details>
602
-
603
- <details>
604
- <summary><b>🧪 27. "Ik heb end-to-end protocolvalidatie nodig met echte clients"</b></summary>
605
-
606
- Mock-tests zijn niet voldoende om de protocolcompatibiliteit vóór de release te valideren.
607
-
608
- **Hoe OmniRoute het oplost:**
609
-
610
- - E2E-suite die de app opstart en echt MCP SDK-clienttransport gebruikt
611
- - A2A-clienttests voor het ontdekken, verzenden, streamen, ophalen en annuleren van stromen
612
- - Controleer beweringen aan de hand van MCP-audit- en A2A-taken-API's
613
-
614
- </details>
615
-
616
- <details>
617
- <summary><b>📡 28. "Ik heb uniforme observatie nodig over alle interfaces heen"</b></summary>
618
-
619
- Het opsplitsen van de waarneembaarheid per protocol creëert blinde vlekken en een langere MTTR.
620
-
621
- **Hoe OmniRoute het oplost:**
622
-
623
- - Uniforme dashboards/logboeken/analyses in één product
624
- - Gezondheid + audit + verzoektelemetrie over OpenAI-, MCP- en A2A-lagen
625
- - Operationele API's voor status en automatisering
626
-
627
- </details>
628
-
629
- <details>
630
- <summary><b>💼 29. "Ik heb één runtime nodig voor proxy + tools + agentorkestratie"</b></summary>
631
-
632
- Het uitvoeren van veel afzonderlijke services verhoogt de operationele kosten en faalwijzen.
633
-
634
- **Hoe OmniRoute het oplost:**
635
-
636
- - OpenAI-compatibele proxy, MCP-server en A2A-server in één stapel
637
- - Gedeelde authenticatie, veerkracht, gegevensopslag en waarneembaarheid
638
- - Consistent beleidsmodel op alle interactieoppervlakken
639
-
640
- </details>
641
-
642
- <details>
643
- <summary><b>🚀 30. "Ik moet agentische workflows verzenden zonder wildgroei van lijmcodes"</b></summary>
644
-
645
- Teams verliezen snelheid bij het samenvoegen van meerdere ad-hocservices en scripts.
646
-
647
- **Hoe OmniRoute het oplost:**
648
-
649
- - Uniforme eindpuntstrategie voor klanten en agenten
650
- - Ingebouwde gebruikersinterfaces voor protocolbeheer en rookvalidatiepaden
651
- - Productieklare fundamenten (beveiliging, loggen, veerkracht, back-up)
652
-
653
- </details>
654
-
655
- ### Voorbeeld-playbooks (geïntegreerde gebruiksscenario's)
656
-
657
- **Playbook A: Maximaliseer betaald abonnement + goedkope back-up**
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: Codeerstapel zonder kosten**
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, altijd actieve fallback-keten**
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: Agentoperaties met 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
- ## ⚡ Snelle start
706
-
707
- **1. Wereldwijd installeren:**
708
-
709
- ```bash
710
- npm install -g omniroute
711
- omniroute
712
- ```
713
-
714
- 🎉 Dashboard wordt geopend op `http://localhost:20128`
715
-
716
- | Commando | Beschrijving |
717
- | ----------------------- | ---------------------------------- |
718
- | `omniroute` | Startserver (standaardpoort 20128) |
719
- | `omniroute --port 3000` | Gebruik aangepaste poort |
720
- | `omniroute --no-open` | Browser niet automatisch openen |
721
- | `omniroute --help` | Hulp tonen |
722
-
723
- **2. Sluit een GRATIS provider aan:**
724
-
725
- Dashboard → Providers → **Claude Code** of **Antigravity** verbinden → OAuth-aanmelding → Klaar!
726
-
727
- **3. Gebruik in uw CLI-tool:**
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
- **Dat is alles!** Begin met coderen met GRATIS AI-modellen.
737
-
738
- **Alternatief — uitvoeren vanaf bron:**
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
- ## 🐳 Docker
749
-
750
- OmniRoute is beschikbaar als openbare Docker-image op [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
751
-
752
- **Snelle uitvoering:**
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
- **Met omgevingsbestand:**
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 gebruiken:**
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
- | Afbeelding | Label | Maat | Beschrijving |
789
- | ------------------------ | -------- | ------ | ------------------------- |
790
- | `diegosouzapw/omniroute` | `latest` | ~250MB | Nieuwste stabiele release |
791
- | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Huidige versie |
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
- ## 💰 Prijzen in één oogopslag
820
-
821
- | Niveau | Aanbieder | Kosten | Quotum opnieuw instellen | Beste voor |
822
- | ------------------ | ----------------- | ------------------------- | ------------------------ | -------------------------- |
823
- | **💳 ABONNEMENT** | Claude Code (Pro) | $ 20/maand | 5u + wekelijks | Al geabonneerd |
824
- | | Codex (Plus/Pro) | $ 20-200/maand | 5u + wekelijks | OpenAI-gebruikers |
825
- | | Tweeling CLI | **GRATIS** | 180K/maand + 1K/dag | Iedereen! |
826
- | | GitHub-copiloot | $ 10-19/maand | Maandelijks | GitHub-gebruikers |
827
- | **🔑 API-SLEUTEL** | NVIDIA NIM | **GRATIS** (1000 credits) | Eenmalig | Gratis niveautesten |
828
- | | DeepSeek | Betalen per gebruik | Geen | Beste prijs/kwaliteit |
829
- | | Groq | Gratis niveau + betaald | Tarief beperkt | Ultrasnelle gevolgtrekking |
830
- | | xAI (Grok) | Betalen per gebruik | Geen | Grok-modellen |
831
- | | Mistral | Gratis niveau + betaald | Tarief beperkt | Europese AI |
832
- | | OpenRouter | Betalen per gebruik | Geen | 100+ modellen |
833
- | **💰GOEDKOOP** | GLM-4.7 | $ 0,6/1 miljoen | Dagelijks 10.00 uur | Budgetback-up |
834
- | | MiniMax M2.1 | $ 0,2/1 miljoen | 5-uurs rollen | Goedkoopste optie |
835
- | | Kimi K2 | $ 9/maand plat | 10 miljoen tokens/maand | Voorspelbare kosten |
836
- | **🆓 GRATIS** | iFlow | $0 | Onbeperkt | 8 modellen gratis |
837
- | | Qwen | $0 | Onbeperkt | 3 modellen gratis |
838
- | | Kiro | $0 | Onbeperkt | Claude vrij |
839
-
840
- **💡 Pro-tip:** Begin met Gemini CLI (180K gratis/maand) + iFlow (onbeperkt gratis) combo = $ 0 kosten!
841
-
842
- ---
843
-
844
- ## 💡 Belangrijkste kenmerken
845
-
846
- ### 🧠 Kernroutering en intelligentie
847
-
848
- | Kenmerk | Wat het doet |
849
- | ------------------------------------------- | ------------------------------------------------------------------------------------------------- |
850
- | 🎯 **Slimme terugval op 4 niveaus** | Autoroute: Abonnement → API-sleutel → Goedkoop → Gratis |
851
- | 📊 **Realtime quota bijhouden** | Live tokentelling + reset-aftelling per provider |
852
- | 🔄 **Formaatvertaling** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro naadloos + responsopschoning |
853
- | 👥 **Ondersteuning voor meerdere accounts** | Meerdere accounts per aanbieder met intelligente selectie |
854
- | 🔄 **Automatische tokenvernieuwing** | OAuth-tokens worden automatisch vernieuwd bij nieuwe poging |
855
- | 🎨 **Aangepaste combo's** | 6 strategieën: eerst vullen, round-robin, p2c, willekeurig, minst gebruikt, kostengeoptimaliseerd |
856
- | 🧩 **Aangepaste modellen** | Voeg elke model-ID toe aan elke provider |
857
- | 🌐 **Wildcard-router** | Stuur `provider/*` patronen dynamisch naar elke provider |
858
- | 🧠 **Denkbudget** | Passthrough-, automatische, aangepaste en adaptieve modi voor redeneermodellen |
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
- | 💬 **Systeempromptinjectie** | Algemene systeemprompt toegepast op alle verzoeken |
862
- | 📄 **Reacties-API** | Volledige OpenAI Responses API (`/v1/responses`) ondersteuning voor Codex |
863
-
864
- ### 🎵 Multimodale API's
865
-
866
- | Kenmerk | Wat het doet |
867
- | ------------------------ | --------------------------------------------------------- |
868
- | 🖼️ **Beeldgeneratie** | `/v1/images/generations` — 4 providers, 9+ modellen |
869
- | 📐 **Insluitingen** | `/v1/embeddings` — 6 providers, 9+ modellen |
870
- | 🎤 **Audiotranscriptie** | `/v1/audio/transcriptions` — Whisper-compatibel |
871
- | 🔊 **Tekst-naar-spraak** | `/v1/audio/speech` — Audiosynthese van meerdere providers |
872
- | 🛡️ **Moderaties** | `/v1/moderations` — Veiligheidscontroles van inhoud |
873
- | 🔀 **Herschikking** | `/v1/rerank` — Herschikking van documentrelevantie |
874
-
875
- ### 🛡️ Veerkracht en veiligheid
876
-
877
- | Kenmerk | Wat het doet |
878
- | ------------------------------------- | ---------------------------------------------------------------------------------------- |
879
- | 🔌 **Stroomonderbreker** | Automatisch openen/sluiten per provider met configureerbare drempels |
880
- | 🛡️ **Anti-donderende kudde** | Mutex + semafoorsnelheidslimiet voor API-sleutelproviders |
881
- | 🧠 **Semantische cache** | Tweelaagse cache (handtekening + semantisch) verlaagt de kosten en latentie |
882
- | ⚡ **Idempotentie aanvragen** | 5s ontdubbelingsvenster voor dubbele verzoeken |
883
- | 🔒 **TLS-vingerafdrukspoofing** | Omzeil TLS-gebaseerde botdetectie via wreq-js |
884
- | 🌐 **IP-filtering** | Toelatingslijst/blokkeerlijst voor API-toegangscontrole |
885
- | 📊 **Bewerkbare tarieflimieten** | Configureerbare RPM, minimale tussenruimte en maximale gelijktijdigheid op systeemniveau |
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-eindpuntbescherming** | Auth-gating + providerblokkering voor het `/models` eindpunt |
889
- | 🔒 **Proxyzichtbaarheid** | Kleurgecodeerde badges: 🟢 wereldwijd, 🟡 provider, 🔵 per verbinding met IP-display |
890
- | 🌐 **Proxyconfiguratie op 3 niveaus** | Configureer proxy's op globaal, per provider of per verbindingsniveau |
891
-
892
- ### 📊 Waarneembaarheid en analyse
893
-
894
- | Kenmerk | Wat het doet |
895
- | ------------------------------------------------- | ------------------------------------------------------------------------------------------- |
896
- | 📝 **Logboekregistratie aanvragen** | Foutopsporingsmodus met volledige aanvraag-/antwoordlogboeken |
897
- | 💾 **SQLite Proxy-logboeken** | Aanhoudende proxylogboeken overleven het opnieuw opstarten van de server |
898
- | 📊 **Analytics-dashboard** | Recharts-aangedreven: statistische kaarten, modelgebruiksgrafiek, providertabel |
899
- | 📈 **Voortgang bijhouden** | SSE-voortgangsgebeurtenissen aanmelden voor streaming |
900
- | 🧪 **LLM-evaluaties** | Gouden settesten met 4 wedstrijdstrategieën |
901
- | 🔍 **Telemetrie aanvragen** | p50/p95/p99 latentie-aggregatie + X-Request-Id-tracering |
902
- | 📋 **Logdashboard** | Uniforme pagina met 4 tabbladen: aanvraaglogboeken, proxylogboeken, auditlogboeken, console |
903
- | 🖥️ **Consolelogviewer** | Realtime viewer in terminalstijl met niveaufilter, zoeken, automatisch scrollen |
904
- | 📑 **Op bestanden gebaseerde logboekregistratie** | Console-interceptor legt alle uitvoer vast naar JSON-logbestand met rotatie |
905
- | 🏥 **Gezondheidsdashboard** | Systeemuptime, status van stroomonderbrekers, uitsluitingen, cachestatistieken |
906
- | 💰 **Kosten bijhouden** | Budgetbeheer + prijsconfiguratie per model |
907
-
908
- ### ☁️ Implementatie en synchronisatie
909
-
910
- | Kenmerk | Wat het doet |
911
- | ----------------------------- | ------------------------------------------------------------------------------- |
912
- | 💾 **Cloudsynchronisatie** | Synchroniseer de configuratie op verschillende apparaten via Cloudflare Workers |
913
- | 🌐 **Overal implementeren** | Localhost, VPS, Docker, Cloudflare Workers |
914
- | 🔑 **API-sleutelbeheer** | Genereer, roteer en bereik API-sleutels per provider |
915
- | 🧙 **Onboarding-wizard** | Begeleide installatie in 4 stappen voor nieuwe gebruikers |
916
- | 🔧 **CLI Tools-dashboard** | Configureer met één klik Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
917
- | 🔄 **DB-back-ups** | Automatische back-up, herstel, export en import voor alle instellingen |
918
- | 🌐 **Internationalisering** | Volledige i18n met next-intl — Engels + Portugees (Brazilië) ondersteuning |
919
- | 🌍 **Taalkiezer** | Wereldbolpictogram in koptekst voor realtime taalwisseling (🇺🇸/🇧🇷) |
920
- | 📂 **Aangepaste gegevensmap** | `DATA_DIR` env var om standaard `~/.omniroute` opslagpad te overschrijven |
921
-
922
- <details>
923
- <summary><b>📖 Functiedetails</b></summary>
924
-
925
- ### 🎯 Slimme terugval op 4 niveaus
926
-
927
- Creëer combo's met automatische terugval:
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
- ### 📊 Realtime quota bijhouden
940
-
941
- - Tokenverbruik per aanbieder
942
- - Aftellen resetten (5 uur, dagelijks, wekelijks)
943
- - Kostenraming voor betaalde niveaus
944
- - Maandelijkse uitgavenrapporten
945
-
946
- ### 🔄 Formaatvertaling
947
-
948
- Naadloze vertaling tussen formaten:
949
-
950
- - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI-reacties**
951
- - Uw CLI-tool verzendt OpenAI-formaat → OmniRoute vertaalt → Provider ontvangt native formaat
952
- - Werkt met elke tool die aangepaste OpenAI-eindpunten ondersteunt
953
- - **Reactieopschoning** — Verwijdert niet-standaardvelden voor strikte OpenAI SDK-compatibiliteit
954
- - **Rolnormalisatie** — `developer` → `system` voor niet-OpenAI; `system` → `user` voor GLM/ERNIE-modellen
955
- - **Extractie van Think-tags** — `<think>` blokken → `reasoning_content` voor denkmodellen
956
- - **Gestructureerde uitvoer** — `json_schema` → Gemini's `responseMimeType`/`responseSchema`
957
-
958
- ### 👥 Ondersteuning voor meerdere accounts
959
-
960
- - Voeg meerdere accounts per aanbieder toe
961
- - Automatische round-robin of op prioriteit gebaseerde routering
962
- - Terugval naar het volgende account wanneer één het quotum bereikt
963
-
964
- ### 🔄 Automatische tokenvernieuwing
965
-
966
- - OAuth-tokens worden automatisch vernieuwd voordat ze verlopen
967
- - Geen handmatige herauthenticatie nodig
968
- - Naadloze ervaring bij alle providers
969
-
970
- ### 🎨 Aangepaste combo's
971
-
972
- - Creëer onbeperkte modelcombinaties
973
- - 6 strategieën: eerst vullen, round-robin, macht van twee keuzes, willekeurig, minst gebruikt, kostengeoptimaliseerd
974
- - Deel combo's op verschillende apparaten met Cloud Sync
975
-
976
- ### 🏥 Gezondheidsdashboard
977
-
978
- - Systeemstatus (uptime, versie, geheugengebruik)
979
- - Status van de stroomonderbrekers per provider (Gesloten/Open/Half-Open)
980
- - Tarieflimietstatus en actieve uitsluitingen
981
- - Kenmerkende cachestatistieken
982
- - Latency-telemetrie (p50/p95/p99) + promptcache
983
- - Reset de gezondheidsstatus met één klik
984
-
985
- ### 🔧 Vertalerspeeltuin
986
-
987
- OmniRoute bevat een krachtige ingebouwde Translator Playground met **4 modi** voor het debuggen, testen en monitoren van API-vertalingen:
988
-
989
- | Modus | Beschrijving |
990
- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
991
- | **💻 Speeltuin** | Directe formaatvertaling: plak de hoofdtekst van een API-verzoek en zie direct hoe OmniRoute deze vertaalt tussen providerformaten (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Bevat voorbeeldsjablonen en automatische detectie van formaten. |
992
- | **💬 Chattester** | Stuur echte chatverzoeken via OmniRoute en bekijk het volledige overzicht: uw invoer, het vertaalde verzoek, het antwoord van de provider en het vertaalde antwoord terug. Van onschatbare waarde voor het valideren van combo-routering. |
993
- | **🧪 Proefbank** | Batchtestmodus: definieer meerdere testgevallen met verschillende inputs en verwachte outputs, voer ze allemaal tegelijk uit en vergelijk de resultaten van verschillende providers en modellen. |
994
- | **📱Livemonitor** | Real-time monitoring van verzoeken: bekijk binnenkomende verzoeken terwijl ze door OmniRoute stromen, bekijk de formaatvertalingen live en identificeer problemen direct. |
995
-
996
- **Toegang:** Dashboard → Vertaler (zijbalk)
997
-
998
- ### 💾Cloudsynchronisatie
999
-
1000
- - Synchroniseer providers, combo's en instellingen op verschillende apparaten
1001
- - Automatische achtergrondsynchronisatie
1002
- - Veilige gecodeerde opslag
1003
-
1004
- </details>
1005
-
1006
- ## 🧪 Evaluaties (Evals)
1007
-
1008
- OmniRoute bevat een ingebouwd evaluatieframework om de LLM-responskwaliteit te testen aan de hand van een gouden set. U kunt deze openen via **Analytics → Evaluaties** in het dashboard.
1009
-
1010
- ### Ingebouwde gouden set
1011
-
1012
- De vooraf geladen "OmniRoute Golden Set" bevat 10 testcases die betrekking hebben op:
1013
-
1014
- - Groeten, wiskunde, aardrijkskunde, codegeneratie
1015
- - Naleving van JSON-formaat, vertaling, prijsverlaging
1016
- - Veiligheidsweigering (schadelijke inhoud), tellen, booleaanse logica
1017
-
1018
- ### Evaluatiestrategieën
1019
-
1020
- | Strategie | Beschrijving | Voorbeeld |
1021
- | ---------- | --------------------------------------------------------------------- | -------------------------------- |
1022
- | `exact` | De uitvoer moet exact overeenkomen met | `"4"` |
1023
- | `contains` | De uitvoer moet een subtekenreeks bevatten (niet hoofdlettergevoelig) | `"Paris"` |
1024
- | `regex` | Uitvoer moet overeenkomen met regex-patroon | `"1.*2.*3"` |
1025
- | `custom` | Aangepaste JS-functie retourneert waar/onwaar | `(output) => output.length > 10` |
1026
-
1027
- ---
1028
-
1029
- ## 📖 Installatiehandleiding
1030
-
1031
- <details>
1032
- <summary><b>💳 Abonnementaanbieders</b></summary>
1033
-
1034
- ### Claude-code (Pro/Max)
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
- **Pro-tip:** Gebruik Opus voor complexe taken, Sonnet voor snelheid. OmniRoute houdt quota bij per model!
1048
-
1049
- ### OpenAI-codex (Plus/Pro)
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 (GRATIS 180K/maand!)
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
- **Beste waarde:** Enorm gratis niveau! Gebruik dit vóór betaalde niveaus.
1074
-
1075
- ### GitHub-copiloot
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-sleutelproviders</b></summary>
1092
-
1093
- ### NVIDIA NIM (GRATIS 1000 credits!)
1094
-
1095
- 1. Aanmelden: [build.nvidia.com](https://build.nvidia.com)
1096
- 2. Ontvang een gratis API-sleutel (inclusief 1000 inferentiecredits)
1097
- 3. Dashboard → Provider toevoegen → NVIDIA NIM:
1098
- - API-sleutel: `nvapi-your-key`
1099
-
1100
- **Modellen:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` en nog meer dan 50
1101
-
1102
- **Pro-tip:** OpenAI-compatibele API — werkt naadloos samen met de formaatvertaling van OmniRoute!
1103
-
1104
- ### Diepzoeken
1105
-
1106
- 1. Aanmelden: [platform.deepseek.com](https://platform.deepseek.com)
1107
- 2. Haal de API-sleutel op
1108
- 3. Dashboard → Provider toevoegen → DeepSeek
1109
-
1110
- **Modellen:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
1111
-
1112
- ### Groq (gratis niveau beschikbaar!)
1113
-
1114
- 1. Aanmelden: [console.groq.com](https://console.groq.com)
1115
- 2. Ontvang een API-sleutel (inclusief gratis laag)
1116
- 3. Dashboard → Provider toevoegen → Groq
1117
-
1118
- **Modellen:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
1119
-
1120
- **Pro-tip:** Ultrasnelle gevolgtrekking — het beste voor realtime coderen!
1121
-
1122
- ### OpenRouter (meer dan 100 modellen)
1123
-
1124
- 1. Aanmelden: [openrouter.ai](https://openrouter.ai)
1125
- 2. Haal de API-sleutel op
1126
- 3. Dashboard → Provider toevoegen → OpenRouter
1127
-
1128
- **Modellen:** Krijg toegang tot meer dan 100 modellen van alle grote providers via één API-sleutel.
1129
-
1130
- </details>
1131
-
1132
- <details>
1133
- <summary><b>💰 Goedkope providers (back-up)</b></summary>
1134
-
1135
- ### GLM-4.7 (dagelijkse reset, $0,6/1 miljoen)
1136
-
1137
- 1. Aanmelden: [Zhipu AI](https://open.bigmodel.cn/)
1138
- 2. Haal de API-sleutel op uit het Coderingsplan
1139
- 3. Dashboard → API-sleutel toevoegen:
1140
- - Aanbieder: `glm`
1141
- - API-sleutel: `your-key`
1142
-
1143
- **Gebruik:** `glm/glm-4.7`
1144
-
1145
- **Pro-tip:** Coderingsplan biedt 3× quotum tegen 1/7 kosten! Dagelijks resetten om 10:00 uur.
1146
-
1147
- ### MiniMax M2.1 (5 uur resetten, $0,20/1M)
1148
-
1149
- 1. Aanmelden: [MiniMax](https://www.minimax.io/)
1150
- 2. Haal de API-sleutel op
1151
- 3. Dashboard → API-sleutel toevoegen
1152
-
1153
- **Gebruik:** `minimax/MiniMax-M2.1`
1154
-
1155
- **Pro-tip:** Goedkoopste optie voor lange context (1 miljoen tokens)!
1156
-
1157
- ### Kimi K2 ($9/maand vast)
1158
-
1159
- 1. Abonneer je: [Moonshot AI](https://platform.moonshot.ai/)
1160
- 2. Haal de API-sleutel op
1161
- 3. Dashboard → API-sleutel toevoegen
1162
-
1163
- **Gebruik:** `kimi/kimi-latest`
1164
-
1165
- **Pro-tip:** Vaste $ 9/maand voor 10 miljoen tokens = $ 0,90/1 miljoen effectieve kosten!
1166
-
1167
- </details>
1168
-
1169
- <details>
1170
- <summary><b>🆓 GRATIS providers (noodback-up)</b></summary>
1171
-
1172
- ### iFlow (8 GRATIS modellen)
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 GRATIS modellen)
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
- ### Kiro (Claude GRATIS)
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>🎨 Combo's maken</b></summary>
1215
-
1216
- ### Voorbeeld 1: Maximaliseer abonnement → Goedkope back-up
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
- ### Voorbeeld 2: Alleen gratis (geen kosten)
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-integratie</b></summary>
1246
-
1247
- ### Cursor-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
- ### Claude-code
1257
-
1258
- Gebruik de pagina **CLI Tools** in het dashboard voor configuratie met één klik, of bewerk `~/.claude/settings.json` handmatig.
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
- ### Open Klauw
1270
-
1271
- **Optie 1 — Dashboard (aanbevolen):**
1272
-
1273
- ```
1274
- Dashboard → CLI Tools → OpenClaw → Select Model → Apply
1275
- ```
1276
-
1277
- **Optie 2 — Handmatig:** Bewerk `~/.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
- > **Opmerking:** OpenClaw werkt alleen met lokale OmniRoute. Gebruik `127.0.0.1` in plaats van `localhost` om IPv6-resolutieproblemen te voorkomen.
1294
-
1295
- ### Cline / Doorgaan / 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
- ## 🐛 Problemen oplossen
1310
-
1311
- <details>
1312
- <summary><b>Klik om de probleemoplossingsgids uit te vouwen</b></summary>
1313
-
1314
- **"Taalmodel heeft geen berichten verstrekt"**
1315
-
1316
- - Providerquotum opgebruikt → Controleer dashboardquotumtracker
1317
- - Oplossing: gebruik combo-fallback of schakel over naar een goedkoper niveau
1318
-
1319
- **Snelheidslimiet**
1320
-
1321
- - Abonnementquotum op → Terugval op GLM/MiniMax
1322
- - Combinatie toevoegen: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
1323
-
1324
- **OAuth-token verlopen**
1325
-
1326
- - Automatisch vernieuwd door OmniRoute
1327
- - Als de problemen aanhouden: Dashboard → Provider → Opnieuw verbinding maken
1328
-
1329
- **Hoge kosten**
1330
-
1331
- - Controleer gebruiksstatistieken in Dashboard → Kosten
1332
- - Schakel het primaire model over naar GLM/MiniMax
1333
- - Gebruik de gratis laag (Gemini CLI, iFlow) voor niet-kritieke taken
1334
-
1335
- **Dashboard opent op verkeerde poort**
1336
-
1337
- - Stel `PORT=20128` en `NEXT_PUBLIC_BASE_URL=http://localhost:20128` in
1338
-
1339
- **Cloudsynchronisatiefouten**
1340
-
1341
- - Controleer of `BASE_URL` verwijst naar uw actieve exemplaar
1342
- - Controleer of `CLOUD_URL` verwijst naar uw verwachte cloudeindpunt
1343
- - Houd `NEXT_PUBLIC_*` waarden afgestemd op de waarden op de server
1344
-
1345
- **Eerste login werkt niet**
1346
-
1347
- - Controleer `INITIAL_PASSWORD` in `.env`
1348
- - Indien niet ingesteld, is het reservewachtwoord `123456`
1349
-
1350
- **Geen verzoeklogboeken**
1351
-
1352
- - Stel `ENABLE_REQUEST_LOGS=true` in in `.env`
1353
-
1354
- **Verbindingstest toont "Ongeldig" voor OpenAI-compatibele providers**
1355
-
1356
- - Veel providers stellen geen `/models` eindpunt beschikbaar
1357
- - OmniRoute v1.0.6+ omvat fallback-validatie via chat-voltooiingen
1358
- - Zorg ervoor dat de basis-URL het achtervoegsel `/v1` bevat
1359
-
1360
- ### 🔐 OAuth
1361
-
1362
- <a name="oauth-em-servidor-remoto"></a>
1363
-
1364
- > **⚠️ BELANGRIJK voor gebruik met OmniRoute op VPS/Docker/server op afstand**
1365
-
1366
- ### OAuth
1367
-
1368
- Deze bewijzen **Antigravity** en **Gemini CLI** gebruiken **Google OAuth 2.0** voor authenticatie. O Google vraagt ​​dat `redirect_uri` geen OAuth-stroom gebruikt **exatamente** een van de URI's vóór de kadaster zonder toepassing van Google Cloud Console.
1369
-
1370
- Omdat OAuth geen OmniRoute heeft geregistreerd, is dit **apenas para `localhost`**. Wanneer u OmniRoute op een externe server opent (bijvoorbeeld: `https://omniroute.meuservidor.com`), of Google een authenticatie aanvraagt:
1371
-
1372
- ```
1373
- Error 400: redirect_uri_mismatch
1374
- ```
1375
-
1376
- ### Oplossing: Configureer uw eigen OAuth-credenciais
1377
-
1378
- U kunt precies zien hoe **OAuth 2.0 Client ID** geen Google Cloud Console heeft met een URI van zijn server.
1379
-
1380
- #### Passo een passo
1381
-
1382
- **1. Toegang tot Google Cloud Console**
1383
-
1384
- Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
1385
-
1386
- **2. Nieuwe OAuth 2.0 client-ID**
1387
-
1388
- - Klik op **"+ Credentials aanmaken"** → **"OAuth-client-ID"**
1389
- - Applicatietip: **"Webapplicatie"**
1390
- - Nome: escolha qualquer nome (bijvoorbeeld: `OmniRoute Remote`)
1391
-
1392
- **3. Adicione als geautoriseerde omleidings-URI's**
1393
-
1394
- Geen campagne **"Geautoriseerde omleidings-URI's"**, aanbevolen:
1395
-
1396
- ```
1397
- https://seu-servidor.com/callback
1398
- ```
1399
-
1400
- > Vervang `seu-servidor.com` door de domicilie of het IP-adres van uw server (inclusief een noodzakelijke poort, bijvoorbeeld: `http://45.33.32.156:20128/callback`).
1401
-
1402
- **4. Bewaar en kopieer als credenciais**
1403
-
1404
- U kunt ook op Google klikken op **Client-ID** en **Clientgeheim**.
1405
-
1406
- **5. Configureer als variáveis de ambiente**
1407
-
1408
- Geen `.env` (of de verschillende omgevingen van 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 van 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. Nieuwe verbinding**
1432
-
1433
- Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth
1434
-
1435
- Nadat Google de juiste verwijzing naar `https://seu-servidor.com/callback` heeft gemaakt, is deze autenticaal functioneel geworden.
1436
-
1437
- ---
1438
-
1439
- ### Tijdelijke tijdelijke oplossing (sem credenciais próprias configureren)
1440
-
1441
- Als u geen geloofwaardige geloofwaardigheid meer heeft, is het mogelijk om de stroom **handleiding van de URL** te gebruiken:
1442
-
1443
- 1. OmniRoute gebruikt een autorisatie-URL van Google
1444
- 2. Als u de autorisatie heeft gegeven, zal Google de doorverwijzing naar `localhost` uitvoeren (die geen externe service biedt)
1445
- 3. **Kopieer een volledige URL** door de browser van uw browser (het bericht dat de pagina niet verder gaat)
1446
- 4. Cole essa URL is niet beschikbaar op de verbindingswijze van OmniRoute
1447
- 5. Klik op **"Verbinden"**
1448
-
1449
- > Deze tijdelijke oplossing werkt door de autorisatiecode van de URL en is onafhankelijk van het omleiden naar uw autorisatie of niet.
1450
-
1451
- </details>
1452
-
1453
- ---
1454
-
1455
- ## 🛠️Technische stapel
1456
-
1457
- - **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ wordt **niet ondersteund** — `better-sqlite3` native binaire bestanden zijn incompatibel)
1458
- - **Taal**: TypeScript 5.9 — **100% TypeScript** voor `src/` en `open-sse/` (v1.0.6)
1459
- - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
1460
- - **Database**: LowDB (JSON) + SQLite (domeinstatus + proxylogboeken)
1461
- - **Streaming**: door de server verzonden gebeurtenissen (SSE)
1462
- - **Auth**: OAuth 2.0 (PKCE) + JWT + API-sleutels
1463
- - **Testen**: Node.js-testloper (368+ unit-tests)
1464
- - **CI/CD**: GitHub-acties (automatische npm-publicatie + Docker Hub bij release)
1465
- - **Website**: [omniroute.online](https://omniroute.online)
1466
- - **Pakket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1467
- - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1468
- - **Veerkracht**: stroomonderbreker, exponentieel uitstel, anti-donderkudde, TLS-spoofing
1469
-
1470
- ---
1471
-
1472
- ## 📖 Documentatie
1473
-
1474
- | Document | Beschrijving |
1475
- | -------------------------------------------- | --------------------------------------------------- |
1476
- | [User Guide](docs/USER_GUIDE.md) | Providers, combo's, CLI-integratie, implementatie |
1477
- | [API Reference](docs/API_REFERENCE.md) | Alle eindpunten met voorbeelden |
1478
- | [Troubleshooting](docs/TROUBLESHOOTING.md) | Veelvoorkomende problemen en oplossingen |
1479
- | [Architecture](docs/ARCHITECTURE.md) | Systeemarchitectuur en internals |
1480
- | [Contributing](CONTRIBUTING.md) | Ontwikkelingsopstelling en richtlijnen |
1481
- | [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specificatie |
1482
- | [Security Policy](SECURITY.md) | Kwetsbaarheidsrapportage en beveiligingspraktijken |
1483
- | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Volledige gids: VM + nginx + Cloudflare-installatie |
1484
- | [Features Gallery](docs/FEATURES.md) | Visuele dashboardrondleiding met screenshots |
1485
-
1486
- ### 📸 Dashboardvoorbeeld
1487
-
1488
- <details>
1489
- <summary><b>Klik om dashboardscreenshots te bekijken</b></summary>
1490
-
1491
- | Pagina | Schermafbeelding |
1492
- | --------------------- | ------------------------------------------------- |
1493
- | **Aanbieders** | ![Providers](docs/screenshots/01-providers.png) |
1494
- | **Combo's** | ![Combos](docs/screenshots/02-combos.png) |
1495
- | **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) |
1496
- | **Gezondheid** | ![Health](docs/screenshots/04-health.png) |
1497
- | **Vertaler** | ![Translator](docs/screenshots/05-translator.png) |
1498
- | **Instellingen** | ![Settings](docs/screenshots/06-settings.png) |
1499
- | **CLI-hulpmiddelen** | ![CLI Tools](docs/screenshots/07-cli-tools.png) |
1500
- | **Gebruikslogboeken** | ![Usage](docs/screenshots/08-usage.png) |
1501
- | **Eindpunt** | ![Endpoint](docs/screenshots/09-endpoint.png) |
1502
-
1503
- </details>
1504
-
1505
- ---
1506
-
1507
- ## 🗺️
1508
-
1509
- OmniRoute heeft **210+ functies gepland** over meerdere ontwikkelingsfasen. Dit zijn de belangrijkste gebieden:
1510
-
1511
- | Categorie | Geplande functies | Hoogtepunten |
1512
- | ------------------------------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
1513
- | 🎯 **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
1514
- | 🧠 **Routing en intelligentie** | 25+ | Routering met de laagste latentie, op tags gebaseerde routering, quota-preflight, P2C-accountselectie |
1515
- | 🔒 **Beveiliging en naleving** | 20+ | SSRF-verharding, cloaking van inloggegevens, snelheidslimiet per eindpunt, scoping van beheersleutels |
1516
- | 📊 **Waarneembaarheid** | 15+ | OpenTelemetry-integratie, realtime quotabewaking, kostenregistratie per model |
1517
- | 🔄 **Provider-integraties** | 20+ | Dynamisch modelregister, cooldowns van providers, Codex met meerdere accounts, parseren van Copilot-quota |
1518
- | ⚡ **Prestaties** | 15+ | Dubbele cachelaag, promptcache, responscache, streaming keepalive, batch-API |
1519
- | 🌐 **Ecosysteem** | 10+ | WebSocket API, configuratie hot-reload, gedistribueerde configuratieopslag, commerciële modus |
1520
-
1521
- ### 🔜 Binnenkort beschikbaar
1522
-
1523
- - 🔗 **OpenCode-integratie** — Native providerondersteuning voor de OpenCode AI-coderings-IDE
1524
- - 🔗 **TRAE-integratie** — Volledige ondersteuning voor het TRAE AI-ontwikkelingsframework
1525
- - 📦 **Batch API** — Asynchrone batchverwerking voor bulkaanvragen
1526
- - 🎯 **Op tags gebaseerde routering** — Routeer verzoeken op basis van aangepaste tags en metagegevens
1527
- - 💰 **Laagste kostenstrategie** — Selecteer automatisch de goedkoopste beschikbare provider
1528
-
1529
- > 📝 Volledige functiespecificaties beschikbaar in [link](docs/new-features/) (217 gedetailleerde specificaties)
1530
-
1531
- ---
1532
-
1533
- ## 👥 Bijdragers
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
- ### Hoe u kunt bijdragen
1538
-
1539
- 1. Fork de repository
1540
- 2. Maak uw feature branch (`git checkout -b feature/amazing-feature`)
1541
- 3. Leg uw wijzigingen vast (`git commit -m 'Add amazing feature'`)
1542
- 4. Duw naar het filiaal (`git push origin feature/amazing-feature`)
1543
- 5. Open een Pull Request
1544
-
1545
- Zie [CONTRIBUTING.md](CONTRIBUTING.md) voor gedetailleerde richtlijnen.
1546
-
1547
- ### Er wordt een nieuwe versie uitgebracht
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
- ## 📊 Sterrengeschiedenis
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
- ## 🙏 Dankbetuigingen
1569
-
1570
- Speciale dank aan **[9router](https://github.com/decolua/9router)** door **[decolua](https://github.com/decolua)** — het originele project dat deze vork inspireerde. OmniRoute bouwt voort op die ongelooflijke basis met extra functies, multimodale API's en een volledige TypeScript-herschrijving.
1571
-
1572
- Speciale dank aan **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — de originele Go-implementatie die deze JavaScript-port inspireerde.
1573
-
1574
- ---
1575
-
1576
- ## 📄 Licentie
1577
-
1578
- MIT-licentie - zie [LICENSE](LICENSE) voor details.
1579
-
1580
- ---
1581
-
1582
- <div align="center">
1583
- <sub>Gebouwd met ❤️ voor ontwikkelaars die 24/7 coderen</sub>
1584
- <br/>
1585
- <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1586
- </div>