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.de.md DELETED
@@ -1,1696 +0,0 @@
1
- # 🚀 OmniRoute – Das kostenlose KI-Gateway
2
-
3
- ### Hören Sie nie auf zu programmieren. Intelligentes Routing zu **KOSTENLOSEN und kostengünstigen KI-Modellen** mit automatischem Fallback.
4
-
5
- _Ihr universeller API-Proxy – ein Endpunkt, mehr als 36 Anbieter, keine Ausfallzeiten. Jetzt mit **MCP & A2A** Agenten-Orchestrierung._
6
-
7
- **Chat-Abschlüsse • Einbettungen • Bildgenerierung • Video • Musik • Audio • Reranking • MCP-Server • A2A-Protokoll • 100 % TypeScript**
8
-
9
- ---
10
-
11
- <div align="center">
12
-
13
- [![npm-Version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
14
- [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
15
- [![Lizenz](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
16
- [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
17
- [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
18
-
19
- [🌐 Website](https://omniroute.online) • [🚀 Schnellstart](#-quick-start) • [💡 Funktionen](#-key-features) • [📖 Dokumente](#-documentation) • [💰 Preise](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
20
-
21
- </div>
22
-
23
- 🌐 **Verfügbar in:** 🇺🇸 [Englisch](README.md) | 🇧🇷 [Português (Brasilien)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italienisch](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) | 🇩🇰 [Dänisch](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) | 🇳🇱 [Niederlande](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) | 🇵🇭 [Philippinisch](README.phi.md)
24
-
25
- ---
26
-
27
- ## 🖼️ Haupt-Dashboard
28
-
29
- <div align="center">
30
- <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
31
- </div>
32
-
33
- ---
34
-
35
- ## 📸 Dashboard-Vorschau
36
-
37
- <details>
38
- <summary><b>Klicken Sie hier, um Dashboard-Screenshots anzuzeigen</b></summary>
39
-
40
- | Seite | Screenshot |
41
- | ---------------------- | -------------------------------------------------- |
42
- | **Anbieter** | ![Anbieter](docs/screenshots/01-providers.png) |
43
- | **Kombinationen** | ![Combos](docs/screenshots/02-combos.png) |
44
- | **Analytik** | ![Analytics](docs/screenshots/03-analytics.png) |
45
- | **Gesundheit** | ![Gesundheit](docs/screenshots/04-health.png) |
46
- | **Übersetzer** | ![Übersetzer](docs/screenshots/05-translator.png) |
47
- | **Einstellungen** | ![Einstellungen](docs/screenshots/06-settings.png) |
48
- | **CLI-Tools** | ![CLI-Tools](docs/screenshots/07-cli-tools.png) |
49
- | **Nutzungsprotokolle** | ![Verwendung](docs/screenshots/08-usage.png) |
50
- | **Endpunkt** | ![Endpunkt](docs/screenshots/09-endpoint.png) |
51
-
52
- </details>
53
-
54
- ---
55
-
56
- ### 🤖 Kostenloser KI-Anbieter für Ihre bevorzugten Programmieragenten
57
-
58
- _Verbinden Sie jedes KI-gestützte IDE- oder CLI-Tool über OmniRoute – kostenloses API-Gateway für unbegrenzte Codierung._
59
-
60
- <table>
61
- <tr>
62
- <td align="center" width="110">
63
- <a href="https://github.com/openclaw/openclaw">
64
- <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
65
- <b>OpenClaw</b>
66
- </a><br/><sub>⭐ 205K</sub>
67
- </td>
68
- <td align="center" width="110">
69
- <a href="https://github.com/HKUDS/nanobot">
70
- <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
71
- <b>NanoBot</b>
72
- </a><br/>
73
- <sub>⭐ 20.9K</sub>
74
- </td>
75
- <td align="center" width="110">
76
- <a href="https://github.com/sipeed/picoclaw">
77
- <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
78
- <b>PicoClaw</b>
79
- </a><br/>
80
- <sub>⭐ 14.6K</sub>
81
- </td>
82
- <td align="center" width="110">
83
- <a href="https://github.com/zeroclaw-labs/zeroclaw">
84
- <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
85
- <b>ZeroClaw</b>
86
- </a><br/>
87
- <sub>⭐ 9.9K</sub>
88
- </td>
89
- <td align="center" width="110">
90
- <a href="https://github.com/nearai/ironclaw">
91
- <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
92
- <b>IronClaw</b>
93
- </a><br/>
94
- <sub>⭐ 2.1K</sub>
95
- </td>
96
- </tr>
97
- <tr>
98
- <td align="center" width="110">
99
- <a href="https://github.com/anomalyco/opencode">
100
- <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
101
- <b>OpenCode</b>
102
- </a><br/>
103
- <sub>⭐ 106K</sub>
104
- </td>
105
- <td align="center" width="110">
106
- <a href="https://github.com/openai/codex">
107
- <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
108
- <b>Codex CLI</b>
109
- </a><br/>
110
- <sub>⭐ 60.8K</sub>
111
- </td>
112
- <td align="center" width="110">
113
- <a href="https://github.com/anthropics/claude-code">
114
- <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
115
- <b>Claude Code</b>
116
- </a><br/>
117
- <sub>⭐ 67.3K</sub>
118
- </td>
119
- <td align="center" width="110">
120
- <a href="https://github.com/google-gemini/gemini-cli">
121
- <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
122
- <b>Gemini CLI</b>
123
- </a><br/>
124
- <sub>⭐ 94.7K</sub>
125
- </td>
126
- <td align="center" width="110">
127
- <a href="https://github.com/Kilo-Org/kilocode">
128
- <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
129
- <b>Kilo-Code</b>
130
- </a><br/>
131
- <sub>⭐ 15.5K</sub>
132
- </td>
133
- </tr>
134
- </table>
135
-
136
- <sub>📡 Alle Agenten verbinden sich über <code>http://localhost:20128/v1</code> oder quote</sub>
137
-
138
- ---
139
-
140
- ## 🤔 Warum OmniRoute?
141
-
142
- **Hören Sie auf, Geld zu verschwenden und an Grenzen zu stoßen:**
143
-
144
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Das Abonnementkontingent läuft jeden Monat ungenutzt ab
145
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ratenbegrenzungen verhindern, dass Sie mitten in der Codierung sind
146
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Teure APIs (20–50 $/Monat pro Anbieter)
147
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manueller Wechsel zwischen Anbietern
148
-
149
- **OmniRoute löst dieses Problem:**
150
-
151
- - ✅ **Abonnements maximieren** - Verfolgen Sie das Kontingent, nutzen Sie jedes Bit vor dem Zurücksetzen
152
- - ✅ **Auto-Fallback** – Abonnement → API-Schlüssel → Günstig → Kostenlos, keine Ausfallzeiten
153
- - ✅ **Mehrere Konten** – Round-Robin zwischen Konten pro Anbieter
154
- - ✅ **Universell** – Funktioniert mit Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw und jedem CLI-Tool
155
-
156
- ---
157
-
158
- ## 📧 Unterstützung> 💬 **Treten Sie unserer Community bei!** [WhatsApp-Gruppe](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) – Holen Sie sich Hilfe, tauschen Sie Tipps aus und bleiben Sie auf dem Laufenden.
159
-
160
- - **Website**: [omniroute.online](https://omniroute.online)
161
- - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
162
- - **Probleme**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
163
- - **WhatsApp**: [Community-Gruppe](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
164
- - **Mitwirken**: Siehe [CONTRIBUTING.md](CONTRIBUTING.md), öffnen Sie eine PR oder wählen Sie eine `good first issue` aus
165
- - **Originalprojekt**: [9router von decolua](https://github.com/decolua/9router)
166
-
167
- ---
168
-
169
- ## 🔄 Wie es funktioniert
170
-
171
- ```
172
- ┌─────────────┐
173
- │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
174
- │ Tool │
175
- └──────┬──────┘
176
- │ http://localhost:20128/v1
177
-
178
- ┌─────────────────────────────────────────┐
179
- │ OmniRoute (Smart Router) │
180
- │ • Format translation (OpenAI ↔ Claude) │
181
- │ • Quota tracking + Embeddings + Images │
182
- │ • Auto token refresh │
183
- └──────┬──────────────────────────────────┘
184
-
185
- ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
186
- │ ↓ quota exhausted
187
- ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
188
- │ ↓ budget limit
189
- ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
190
- │ ↓ budget limit
191
- └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited)
192
-
193
- Result: Never stop coding, minimal cost
194
- ```
195
-
196
- ---
197
-
198
- ## 🎯 Was OmniRoute löst – 30 echte Problempunkte und Anwendungsfälle
199
-
200
- > **Jeder Entwickler, der KI-Tools verwendet, ist täglich mit diesen Problemen konfrontiert.** OmniRoute wurde entwickelt, um sie alle zu lösen – von Kostenüberschreitungen bis hin zu regionalen Blockaden, von unterbrochenen OAuth-Flüssen bis hin zu Protokollvorgängen und Unternehmensbeobachtbarkeit.
201
-
202
- <details>
203
- <summary><b>💸 1. „Ich bezahle ein teures Abonnement, werde aber trotzdem durch Limits unterbrochen“</b></summary>
204
-
205
- Entwickler zahlen 20–200 US-Dollar/Monat für Claude Pro, Codex Pro oder GitHub Copilot. Auch wenn das Kontingent bezahlt wird, gibt es eine Obergrenze – 5 Stunden Nutzung, wöchentliche Limits oder Tariflimits pro Minute. Während der Codierungssitzung reagiert der Anbieter nicht mehr und der Entwickler verliert an Fluss und Produktivität.
206
-
207
- **So löst OmniRoute das Problem:**
208
-
209
- - **Intelligenter 4-Stufen-Fallback** – Wenn das Abonnementkontingent aufgebraucht ist, wird automatisch zu API Key → Günstig → Kostenlos weitergeleitet, ohne dass ein manueller Eingriff erforderlich ist
210
- - **Kontingentverfolgung in Echtzeit** – Zeigt den Token-Verbrauch in Echtzeit mit Reset-Countdown an (5 Stunden, täglich, wöchentlich)
211
- - **Unterstützung mehrerer Konten** – Mehrere Konten pro Anbieter mit automatischem Round-Robin – wenn eines aufgebraucht ist, wird zum nächsten gewechselt
212
- - **Benutzerdefinierte Kombinationen** – Anpassbare Fallback-Ketten mit 6 Ausgleichsstrategien (Fill-First, Round-Robin, P2C, Random, Least-Used, Kostenoptimiert)
213
- - **Codex Business Quotas** – Überwachung der Geschäfts-/Team-Arbeitsbereichskontingente direkt im Dashboard
214
-
215
- </details>
216
-
217
- <details>
218
- <summary><b>🔌 2. „Ich muss mehrere Anbieter verwenden, aber jeder hat eine andere API“</b></summary>
219
-
220
- OpenAI verwendet ein Format, Claude (Anthropic) verwendet ein anderes, Gemini noch ein anderes. Wenn ein Entwickler Modelle verschiedener Anbieter testen oder zwischen ihnen wechseln möchte, muss er SDKs neu konfigurieren, Endpunkte ändern und mit inkompatiblen Formaten umgehen. Benutzerdefinierte Anbieter (FriendLI, NIM) verfügen über nicht standardmäßige Modellendpunkte.
221
-
222
- **So löst OmniRoute das Problem:**
223
-
224
- - **Einheitlicher Endpunkt** – Ein einzelner `http://localhost:20128/v1` dient als Proxy für alle über 36 Anbieter
225
- - **Formatübersetzung** – Automatisch und transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
226
- - **Antwortbereinigung** – Entfernt nicht standardmäßige Felder (`x_groq`, `usage_breakdown`, `service_tier`), die OpenAI SDK v1.83+ beschädigen
227
- - **Rollennormalisierung** – Konvertiert `developer` → `system` für Nicht-OpenAI-Anbieter; `system` → `user` für GLM/ERNIE
228
- - **Think Tag Extraction** – Extrahiert `<think>`-Blöcke aus Modellen wie DeepSeek R1 in das standardisierte `reasoning_content`
229
- - **Strukturierte Ausgabe für Gemini** – `json_schema` → `responseMimeType`/`responseSchema` automatische Konvertierung
230
- - **`stream` ist standardmäßig `false`** – Entspricht der OpenAI-Spezifikation und vermeidet unerwartetes SSE in Python/Rust/Go-SDKs</details>
231
-
232
- <details>
233
- <summary><b>🌐 3. „Mein KI-Anbieter blockiert meine Region/mein Land“</b></summary>
234
-
235
- Anbieter wie OpenAI/Codex blockieren den Zugriff aus bestimmten geografischen Regionen. Benutzer erhalten bei OAuth- und API-Verbindungen Fehler wie `unsupported_country_region_territory`. Dies ist besonders frustrierend für Entwickler aus Entwicklungsländern.
236
-
237
- **So löst OmniRoute das Problem:**
238
-
239
- - **3-Level-Proxy-Konfiguration** – Konfigurierbarer Proxy auf 3 Ebenen: global (gesamter Datenverkehr), pro Anbieter (nur ein Anbieter) und pro Verbindung/Schlüssel
240
- - **Farbcodierte Proxy-Abzeichen** – Visuelle Indikatoren: 🟢 globaler Proxy, 🟡 Anbieter-Proxy, 🔵 Verbindungs-Proxy, immer mit IP-Adresse
241
- - **OAuth-Token-Austausch über Proxy** – Der OAuth-Fluss läuft auch über den Proxy und löst `unsupported_country_region_territory`
242
- - **Verbindungstests über Proxy** – Verbindungstests verwenden den konfigurierten Proxy (keine direkte Umgehung mehr)
243
- - **SOCKS5-Unterstützung** – Vollständige SOCKS5-Proxy-Unterstützung für ausgehendes Routing
244
- - **TLS-Fingerabdruck-Spoofing** – Browserähnlicher TLS-Fingerabdruck über `wreq-js` zur Umgehung der Bot-Erkennung
245
-
246
- </details>
247
-
248
- <details>
249
- <summary><b>🆓 4. „Ich möchte KI zum Codieren verwenden, habe aber kein Geld“</b></summary>
250
-
251
- Nicht jeder kann 20–200 $/Monat für KI-Abonnements bezahlen. Studenten, Entwickler aus Schwellenländern, Bastler und Freiberufler benötigen Zugang zu hochwertigen Modellen zum Nulltarif.
252
-
253
- **So löst OmniRoute das Problem:**
254
-
255
- - **Integrierte kostenlose Anbieter** – Native Unterstützung für 100 % kostenlose Anbieter: iFlow (8 unbegrenzte Modelle), Qwen (3 unbegrenzte Modelle), Kiro (Claude kostenlos), Gemini CLI (180.000/Monat kostenlos)
256
- - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/<model>` prefix
257
- - **Nur kostenlose Combos** – Kette `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 $/Monat ohne Ausfallzeit
258
- - **NVIDIA NIM Free Credits** – 1000 kostenlose Credits integriert
259
- - **Kostenoptimierte Strategie** – Routing-Strategie, die automatisch den günstigsten verfügbaren Anbieter auswählt
260
-
261
- </details>
262
-
263
- <details>
264
- <summary><b>🔒 5. „Ich muss mein KI-Gateway vor unbefugtem Zugriff schützen“</b></summary>
265
-
266
- Wenn ein KI-Gateway dem Netzwerk (LAN, VPS, Docker) zugänglich gemacht wird, kann jeder mit der Adresse die Token/Kontingente des Entwicklers verbrauchen. Ohne Schutz sind APIs anfällig für Missbrauch, sofortige Injektion und Missbrauch.
267
-
268
- **So löst OmniRoute das Problem:**
269
-
270
- - **API-Schlüsselverwaltung** – Generierung, Rotation und Scoping pro Anbieter mit einer dedizierten `/dashboard/api-manager`-Seite
271
- - **Berechtigungen auf Modellebene** – Beschränken Sie API-Schlüssel auf bestimmte Modelle (`openai/*`, Platzhaltermuster) mit der Umschaltfunktion „Alle zulassen/Einschränken“.
272
- - **API Endpoint Protection** – Fordern Sie einen Schlüssel für `/v1/models` an und blockieren Sie bestimmte Anbieter aus der Liste
273
- - **Auth Guard + CSRF-Schutz** – Alle Dashboard-Routen sind mit `withAuth`-Middleware + CSRF-Tokens geschützt
274
- - **Ratenbegrenzer** – Ratenbegrenzung pro IP mit konfigurierbaren Fenstern
275
- - **IP-Filterung** – Zulassungs-/Blockierungsliste für die Zugriffskontrolle
276
- - **Prompt Injection Guard** – Bereinigung gegen bösartige Eingabeaufforderungsmuster
277
- - **AES-256-GCM-Verschlüsselung** – Anmeldeinformationen im Ruhezustand verschlüsselt
278
-
279
- </details>
280
-
281
- <details>
282
- <summary><b>🛑 6. „Mein Provider ist ausgefallen und ich habe meinen Codierungsfluss verloren“</b></summary>KI-Anbieter können instabil werden, 5xx-Fehler zurückgeben oder vorübergehende Ratengrenzen erreichen. Wenn ein Entwickler von einem einzelnen Anbieter abhängig ist, wird er unterbrochen. Ohne Schutzschalter können wiederholte Versuche zum Absturz der Anwendung führen.
283
-
284
- **So löst OmniRoute das Problem:**
285
-
286
- - **Leistungsschalter pro Anbieter** – Automatisches Öffnen/Schließen mit konfigurierbaren Schwellenwerten und Abklingzeit (geschlossen/offen/halb offen)
287
- - **Exponentielles Backoff** – Progressive Wiederholungsverzögerungen
288
- - **Anti-Thundering Herd** – Mutex + Semaphor-Schutz gegen gleichzeitige Wiederholungsstürme
289
- - **Combo-Fallback-Ketten** – Wenn der primäre Anbieter ausfällt, fällt er automatisch durch die Kette, ohne dass ein Eingreifen erforderlich ist
290
- - **Combo Circuit Breaker** – Deaktiviert automatisch ausgefallene Anbieter innerhalb einer Combo-Kette
291
- | 🎯 **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
292
- - **Gesundheits-Dashboard** – Betriebszeitüberwachung, Leistungsschalterzustände, Sperren, Cache-Statistiken, p50/p95/p99-Latenz
293
-
294
- </details>
295
-
296
- <details>
297
- <summary><b>🔧 7. „Die Konfiguration jedes KI-Tools ist mühsam und repetitiv“</b></summary>
298
-
299
- Entwickler verwenden Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code ... Jedes Tool benötigt eine andere Konfiguration (API-Endpunkt, Schlüssel, Modell). Eine Neukonfiguration bei einem Anbieter- oder Modellwechsel ist Zeitverschwendung.
300
-
301
- **So löst OmniRoute das Problem:**
302
-
303
- - **CLI Tools Dashboard** – Spezielle Seite mit Ein-Klick-Einrichtung für Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
304
- - **GitHub Copilot Config Generator** – Generiert `chatLanguageModels.json` für VS-Code mit Massenmodellauswahl
305
- - **Onboarding-Assistent** – Geführte Einrichtung in 4 Schritten für Erstbenutzer
306
- - **Ein Endpunkt, alle Modelle** – Konfigurieren Sie `http://localhost:20128/v1` einmal und greifen Sie auf über 36 Anbieter zu
307
-
308
- </details>
309
-
310
- <details>
311
- <summary><b>🔑 8. „OAuth-Tokens von mehreren Anbietern zu verwalten ist die Hölle“</b></summary>
312
-
313
- Claude Code, Codex, Gemini CLI, Copilot – alle verwenden OAuth 2.0 mit ablaufenden Token. Entwickler müssen sich ständig neu authentifizieren, sich mit `client_secret is missing`, `redirect_uri_mismatch` und Fehlern auf Remote-Servern auseinandersetzen. Besonders problematisch ist OAuth auf LAN/VPS.
314
-
315
- **So löst OmniRoute das Problem:**
316
-
317
- - **Automatische Token-Aktualisierung** – OAuth-Tokens werden vor Ablauf im Hintergrund aktualisiert
318
- - **OAuth 2.0 (PKCE) integriert** – Automatischer Ablauf für Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
319
- - **Multi-Account OAuth** – Mehrere Konten pro Anbieter über JWT/ID-Token-Extraktion
320
- - **OAuth LAN/Remote Fix** – Private IP-Erkennung für `redirect_uri` + manueller URL-Modus für Remote-Server
321
- - **OAuth Behind Nginx** – Verwendet `window.location.origin` für Reverse-Proxy-Kompatibilität
322
- - **Remote OAuth Guide** – Schritt-für-Schritt-Anleitung für Google Cloud-Anmeldeinformationen auf VPS/Docker
323
-
324
- </details>
325
-
326
- <details>
327
- <summary><b>📊 9. „Ich weiß nicht, wie viel ich ausgebe oder wo“</b></summary>
328
-
329
- Entwickler nutzen mehrere kostenpflichtige Anbieter, haben jedoch keine einheitliche Sicht auf die Ausgaben. Jeder Anbieter verfügt über ein eigenes Abrechnungs-Dashboard, es gibt jedoch keine konsolidierte Ansicht. Unerwartete Kosten können sich häufen.
330
-
331
- **So löst OmniRoute das Problem:**
332
-
333
- - **Kostenanalyse-Dashboard** – Kostenverfolgung pro Token und Budgetverwaltung pro Anbieter
334
- - **Budgetgrenzen pro Stufe** – Ausgabenobergrenze pro Stufe, die einen automatischen Fallback auslöst
335
- - **Preiskonfiguration pro Modell** – Konfigurierbare Preise pro Modell- **Nutzungsstatistiken pro API-Schlüssel** – Anzahl der Anfragen und zuletzt verwendeter Zeitstempel pro Schlüssel
336
- - **Analytics-Dashboard** – Statistikkarten, Modellnutzungsdiagramm, Anbietertabelle mit Erfolgsraten und Latenz
337
-
338
- </details>
339
-
340
- <details>
341
- <summary><b>🐛 10. „Ich kann Fehler und Probleme bei KI-Anrufen nicht diagnostizieren“</b></summary>
342
-
343
- Wenn ein Anruf fehlschlägt, weiß der Entwickler nicht, ob es sich um eine Ratenbegrenzung, ein abgelaufenes Token, ein falsches Format oder einen Anbieterfehler handelt. Fragmentierte Protokolle über verschiedene Terminals hinweg. Ohne Beobachtbarkeit ist das Debuggen ein Versuch und Irrtum.
344
-
345
- **So löst OmniRoute das Problem:**
346
-
347
- - **Unified Logs Dashboard** – 4 Registerkarten: Anforderungsprotokolle, Proxy-Protokolle, Audit-Protokolle, Konsole
348
- - **Console Log Viewer** – Echtzeit-Viewer im Terminal-Stil mit farbcodierten Ebenen, automatischem Scrollen, Suche und Filter
349
- - **SQLite-Proxy-Protokolle** – Persistente Protokolle, die Serverneustarts überdauern
350
- - **Translator Playground** – 4 Debugging-Modi: Playground (Formatübersetzung), Chat Tester (Round-Trip), Test Bench (Batch), Live Monitor (Echtzeit)
351
- - **Telemetrie anfordern** – p50/p95/p99-Latenz + X-Request-Id-Ablaufverfolgung
352
- - **Dateibasierte Protokollierung mit Rotation** – Der Konsolen-Interceptor erfasst alles im JSON-Protokoll mit größenbasierter Rotation
353
-
354
- </details>
355
-
356
- <details>
357
- <summary><b>🏗️ 11. „Die Bereitstellung und Wartung des Gateways ist komplex“</b></summary>
358
-
359
- Die Installation, Konfiguration und Wartung eines KI-Proxys in verschiedenen Umgebungen (lokal, VPS, Docker, Cloud) ist arbeitsintensiv. Probleme wie hartcodierte Pfade, `EACCES` in Verzeichnissen, Portkonflikte und plattformübergreifende Builds sorgen für zusätzliche Reibung.
360
-
361
- **So löst OmniRoute das Problem:**
362
-
363
- - **npm globale Installation** – `npm install -g omniroute && omniroute` – fertig
364
- - **Docker Multi-Platform** – AMD64 + ARM64 nativ (Apple Silicon, AWS Graviton, Raspberry Pi)
365
- - **Docker Compose-Profile** – `base` (keine CLI-Tools) und `cli` (mit Claude Code, Codex, OpenClaw)
366
- - **Electron Desktop App** – Native App für Windows/macOS/Linux mit Taskleiste, Autostart, Offline-Modus
367
- - **Split-Port-Modus** – API und Dashboard auf separaten Ports für erweiterte Szenarien (Reverse-Proxy, Container-Netzwerk)
368
- - **Cloud Sync** – Konfigurieren Sie die geräteübergreifende Synchronisierung über Cloudflare Workers
369
- - **DB-Backups** – Automatische Sicherung, Wiederherstellung, Export und Import aller Einstellungen
370
-
371
- </details>
372
-
373
- <details>
374
- <summary><b>🌍 12. „Die Benutzeroberfläche ist nur auf Englisch verfügbar und mein Team spricht kein Englisch“</b></summary>
375
-
376
- Teams in nicht englischsprachigen Ländern, insbesondere in Lateinamerika, Asien und Europa, haben Probleme mit rein englischsprachigen Benutzeroberflächen. Sprachbarrieren verringern die Akzeptanz und erhöhen die Zahl von Konfigurationsfehlern.
377
-
378
- **So löst OmniRoute das Problem:**
379
-
380
- - **Dashboard i18n – 30 Sprachen** – Alle über 500 Tasten übersetzt, einschließlich Arabisch, Bulgarisch, Dänisch, Deutsch, Spanisch, Finnisch, Französisch, Hebräisch, Hindi, Ungarisch, Indonesisch, Italienisch, Japanisch, Koreanisch, Malaiisch, Niederländisch, Norwegisch, Polnisch, Portugiesisch (PT/BR), Rumänisch, Russisch, Slowakisch, Schwedisch, Thailändisch, Ukrainisch, Vietnamesisch, Chinesisch, Philippinisch, Englisch
381
- - **RTL-Unterstützung** – Rechts-nach-links-Unterstützung für Arabisch und Hebräisch
382
- - **Mehrsprachige READMEs** – 30 vollständige Dokumentationsübersetzungen
383
- - **Sprachauswahl** – Globussymbol in der Kopfzeile zum Umschalten in Echtzeit</details>
384
-
385
- <details>
386
- <summary><b>🔄 13. „Ich brauche mehr als nur Chat – ich brauche Einbettungen, Bilder, Audio“</b></summary>
387
-
388
- KI ist nicht nur der Abschluss eines Chats. Entwickler müssen Bilder generieren, Audio transkribieren, Einbettungen für RAG erstellen, Dokumente neu einordnen und Inhalte moderieren. Jede API hat einen anderen Endpunkt und ein anderes Format.
389
-
390
- **So löst OmniRoute das Problem:**
391
-
392
- - **Einbettungen** – `/v1/embeddings` mit 6 Anbietern und 9+ Modellen
393
- - **Bildgenerierung** – `/v1/images/generations` mit 10 Anbietern und über 20 Modellen (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
394
- - **Text-zu-Video** – `/v1/videos/generations` – ComfyUI (AnimateDiff, SVD) und SD WebUI
395
- - **Text-zu-Musik** – `/v1/music/generations` – ComfyUI (Stable Audio Open, MusicGen)
396
- - **Audiotranskription** – `/v1/audio/transcriptions` – Whisper + Nvidia NIM, HuggingFace, Qwen3
397
- - **Text-to-Speech** – `/v1/audio/speech` – ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, Inworld, Cartesia, PlayHT, + bestehende Anbieter
398
- - **Moderationen** – `/v1/moderations` – Überprüfung der Inhaltssicherheit
399
- - **Neueinstufung** – `/v1/rerank` – Neueinstufung der Dokumentenrelevanz
400
- - **Antwort-API** – Vollständige `/v1/responses`-Unterstützung für Codex
401
-
402
- </details>
403
-
404
- <details>
405
- <summary><b>🧪 14. „Ich habe keine Möglichkeit, die Qualität verschiedener Modelle zu testen und zu vergleichen“</b></summary>
406
-
407
- Entwickler möchten wissen, welches Modell für ihren Anwendungsfall am besten geeignet ist – Code, Übersetzung, Argumentation –, aber ein manueller Vergleich ist langsam. Es sind keine integrierten Evaluierungstools vorhanden.
408
-
409
- **So löst OmniRoute das Problem:**
410
-
411
- - **LLM-Bewertungen** – Golden-Set-Test mit 10 vorinstallierten Fällen zu Begrüßungen, Mathematik, Geografie, Codegenerierung, JSON-Konformität, Übersetzung, Markdown und Sicherheitsverweigerung
412
- - **4 Match-Strategien** – `exact`, `contains`, `regex`, `custom` (JS-Funktion)
413
- - **Translator Playground Test Bench** – Batch-Tests mit mehreren Eingaben und erwarteten Ausgaben, anbieterübergreifender Vergleich
414
- - **Chat-Tester** – Vollständiger Roundtrip mit visueller Antwortwiedergabe
415
- - **Live-Monitor** – Echtzeit-Stream aller Anfragen, die über den Proxy fließen
416
-
417
- </details>
418
-
419
- <details>
420
- <summary><b>📈 15. „Ich muss skalieren, ohne an Leistung einzubüßen“</b></summary>
421
-
422
- Wenn das Anfragevolumen wächst, verursachen dieselben Fragen ohne Zwischenspeicherung doppelte Kosten. Ohne Idempotenz verschwenden doppelte Anfragen die Verarbeitung. Die Tarifbegrenzungen pro Anbieter müssen eingehalten werden.
423
-
424
- **So löst OmniRoute das Problem:**
425
-
426
- - **Semantischer Cache** – Zweistufiger Cache (Signatur + Semantik) reduziert Kosten und Latenz
427
- - **Request Idempotency** – 5-Sekunden-Deduplizierungsfenster für identische Anfragen
428
- - **Ratenbegrenzungserkennung** – Provider-RPM, minimale Lücke und maximale gleichzeitige Verfolgung
429
- - **Bearbeitbare Ratengrenzen** – Konfigurierbare Standardeinstellungen unter Einstellungen → Ausfallsicherheit mit Persistenz
430
- - **API Key Validation Cache** – 3-stufiger Cache für Produktionsleistung
431
- - **Gesundheits-Dashboard mit Telemetrie** – p50/p95/p99-Latenz, Cache-Statistiken, Betriebszeit
432
-
433
- </details>
434
-
435
- <details>
436
- <summary><b>🤖 16. „Ich möchte das Modellverhalten global steuern“</b></summary>Entwickler, die alle Antworten in einer bestimmten Sprache oder mit einem bestimmten Ton wünschen oder die Argumentationstoken einschränken möchten. Dies in jedem Tool/jeder Anfrage zu konfigurieren, ist unpraktisch.
437
-
438
- **So löst OmniRoute das Problem:**
439
-
440
- - **System Prompt Injection** – Globale Eingabeaufforderung, die auf alle Anfragen angewendet wird
441
- - **Thinking Budget Validation** – Reasoning-Token-Zuteilungskontrolle pro Anfrage (Passthrough, automatisch, benutzerdefiniert, adaptiv)
442
- - **6 Routing-Strategien** – Globale Strategien, die bestimmen, wie Anfragen verteilt werden
443
- - **Wildcard-Router** – `provider/*`-Muster leiten dynamisch an jeden Anbieter weiter
444
- - **Combo-Aktivierung/Deaktivierung umschalten** – Combos direkt über das Dashboard umschalten
445
- - **Provider Toggle** – Alle Verbindungen für einen Anbieter mit einem Klick aktivieren/deaktivieren
446
- - **Blockierte Anbieter** – Bestimmte Anbieter aus der `/v1/models`-Liste ausschließen
447
-
448
- </details>
449
-
450
- <details>
451
- <summary><b>🧰 17. „Ich brauche MCP-Tools als erstklassige Produktfunktionen“</b></summary>
452
-
453
- Viele KI-Gateways stellen MCP nur als verstecktes Implementierungsdetail zur Verfügung. Teams benötigen eine sichtbare, überschaubare Betriebsebene.
454
-
455
- **So löst OmniRoute das Problem:**
456
-
457
- – MCP wird in der Dashboard-Navigation und auf der Registerkarte „Endpunktprotokoll“ angezeigt
458
-
459
- - Dedizierte MCP-Verwaltungsseite mit Prozess, Tools, Bereichen und Audit
460
- – Integrierter Schnellstart für `omniroute --mcp` und Kunden-Onboarding
461
-
462
- </details>
463
-
464
- <details>
465
- <summary><b>🧠 18. „Ich benötige A2A-Orchestrierung mit Synchronisierungs- und Stream-Aufgabenpfaden“</b></summary>
466
-
467
- Agenten-Workflows erfordern sowohl direkte Antworten als auch eine lang andauernde gestreamte Ausführung mit Lebenszykluskontrolle.
468
-
469
- **So löst OmniRoute das Problem:**
470
-
471
- – A2A JSON-RPC-Endpunkt (`POST /a2a`) mit `message/send` und `message/stream`
472
-
473
- - SSE-Streaming mit Terminal-State-Propagation
474
- – Task-Lebenszyklus-APIs für `tasks/get` und `tasks/cancel`
475
-
476
- </details>
477
-
478
- <details>
479
- <summary><b>🛰️ 19. „Ich benötige den echten Zustand des MCP-Prozesses, keinen erratenen Status“</b></summary>
480
-
481
- Betriebsteams müssen wissen, ob MCP tatsächlich aktiv ist, und nicht nur, ob eine API erreichbar ist.
482
-
483
- **So löst OmniRoute das Problem:**
484
-
485
- – Laufzeit-Heartbeat-Datei mit PID, Zeitstempeln, Transport, Werkzeuganzahl und Oszilloskopmodus
486
-
487
- - MCP-Status-API, die Heartbeat + aktuelle Aktivität kombiniert
488
- - UI-Statuskarten für Prozess-/Verfügbarkeits-/Heartbeat-Aktualität
489
-
490
- </details>
491
-
492
- <details>
493
- <summary><b>📋 20. „Ich benötige eine überprüfbare MCP-Tool-Ausführung“</b></summary>
494
-
495
- Wenn Tools die Konfiguration verändern oder operative Aktionen auslösen, benötigen Teams forensische Rückverfolgbarkeit.
496
-
497
- **So löst OmniRoute das Problem:**
498
-
499
- – SQLite-gestützte Audit-Protokollierung für MCP-Tool-Aufrufe
500
-
501
- - Filtert nach Tool, Erfolg/Misserfolg, API-Schlüssel und Paginierung
502
- - Dashboard-Audit-Tabelle + Statistik-Endpunkte für die Automatisierung
503
-
504
- </details>
505
-
506
- <details>
507
- <summary><b>🔐 21. „Ich benötige bereichsweise MCP-Berechtigungen pro Integration“</b></summary>
508
-
509
- Verschiedene Clients sollten Zugriff auf die Werkzeugkategorien mit den geringsten Rechten haben.
510
-
511
- **So löst OmniRoute das Problem:**
512
-
513
- - 9 granulare MCP-Bereiche für kontrollierten Werkzeugzugriff
514
- - Geltungsbereichsdurchsetzung und Sichtbarkeit in der MCP-Management-Benutzeroberfläche
515
- - Sichere Standardhaltung für Betriebswerkzeuge
516
-
517
- </details>
518
-
519
- <details><summary><b>⚙️ 22. „Ich benötige Betriebskontrollen ohne erneute Bereitstellung“</b></summary>
520
-
521
- Teams benötigen bei Vorfällen oder Kostenereignissen schnelle Laufzeitänderungen.
522
-
523
- **So löst OmniRoute das Problem:**
524
-
525
- - Schalten Sie die Combo-Aktivierung direkt über das MCP-Dashboard um
526
- - Wenden Sie Ausfallsicherheitsprofile aus vordefinierten Richtlinienpaketen an
527
- - Setzen Sie den Leistungsschalterstatus über dasselbe Bedienfeld zurück
528
-
529
- </details>
530
-
531
- <details>
532
- <summary><b>🔄 23. „Ich benötige Live-Sichtbarkeit und Abbruch des A2A-Aufgabenlebenszyklus“</b></summary>
533
-
534
- Ohne Sichtbarkeit des Lebenszyklus wird es schwierig, Aufgabenvorfälle zu selektieren.
535
-
536
- **So löst OmniRoute das Problem:**
537
-
538
- - Aufgabenliste/Filterung nach Bundesland/Fähigkeit mit Paginierung
539
- - Drilldown zu Aufgabenmetadaten, Ereignissen und Artefakten
540
- - Endpunkt zum Abbrechen von Aufgaben und UI-Aktion mit Bestätigung
541
-
542
- </details>
543
-
544
- <details>
545
- <summary><b>🌊 24. „Ich benötige aktive Stream-Metriken für die A2A-Last“</b></summary>
546
-
547
- Streaming-Workflows erfordern betriebliche Einblicke in Parallelität und Live-Verbindungen.
548
-
549
- **So löst OmniRoute das Problem:**
550
-
551
- - Aktive Stream-Zähler im A2A-Status integriert
552
- - Zeitstempel der letzten Aufgabe und Anzahl pro Status
553
- - A2A-Dashboard-Karten für die Echtzeit-Betriebsüberwachung
554
-
555
- </details>
556
-
557
- <details>
558
- <summary><b>🪪 25. „Ich benötige Standard-Agent-Erkennung für Clients“</b></summary>
559
-
560
- Externe Kunden und Orchestratoren benötigen für das Onboarding maschinenlesbare Metadaten.
561
-
562
- **So löst OmniRoute das Problem:**
563
-
564
- – Agentenkarte unter `/.well-known/agent.json` ausgestellt
565
-
566
- - Fähigkeiten und Fertigkeiten werden in der Management-Benutzeroberfläche angezeigt
567
- – Die A2A-Status-API enthält Erkennungsmetadaten für die Automatisierung
568
-
569
- </details>
570
-
571
- <details>
572
- <summary><b>🧭 26. „Ich benötige Protokollauffindbarkeit in der Produkt-UX“</b></summary>
573
-
574
- Wenn Benutzer Protokolloberflächen nicht entdecken können, sinken Akzeptanz und Supportqualität.
575
-
576
- **So löst OmniRoute das Problem:**
577
-
578
- - Seitenleisteneinträge für MCP und A2A
579
- - Registerkarte „Protokolle“ auf der Endpunktseite mit Schnellstart und Status
580
- - Links von der Übersicht zu speziellen Management-Dashboards
581
-
582
- </details>
583
-
584
- <details>
585
- <summary><b>🧪 27. „Ich benötige eine End-to-End-Protokollvalidierung mit echten Clients“</b></summary>
586
-
587
- Probetests reichen nicht aus, um die Protokollkompatibilität vor der Veröffentlichung zu überprüfen.
588
-
589
- **So löst OmniRoute das Problem:**
590
-
591
- – E2E-Suite, die die App startet und echten MCP SDK-Client-Transport verwendet
592
-
593
- - A2A-Clienttests für Erkennungs-, Sende-, Stream-, Get- und Abbruchflüsse
594
- - Vergleichen Sie Behauptungen mit MCP-Audit- und A2A-Aufgaben-APIs
595
-
596
- </details>
597
-
598
- <details>
599
- <summary><b>📡 28. „Ich brauche eine einheitliche Beobachtbarkeit über alle Schnittstellen hinweg“</b></summary>
600
-
601
- Die Aufteilung der Beobachtbarkeit nach Protokoll führt zu blinden Flecken und einer längeren MTTR.
602
-
603
- **So löst OmniRoute das Problem:**
604
-
605
- - Einheitliche Dashboards/Protokolle/Analysen in einem Produkt
606
- - Gesundheits-, Audit- und Anforderungstelemetrie über OpenAI-, MCP- und A2A-Ebenen hinweg
607
- - Operative APIs für Status und Automatisierung
608
-
609
- </details>
610
-
611
- <details>
612
- <summary><b>💼 29. „Ich benötige eine Laufzeit für Proxy + Tools + Agent-Orchestrierung“</b></summary>
613
-
614
- Die Ausführung vieler separater Dienste erhöht die Betriebskosten und erhöht die Fehlerhäufigkeit.
615
-
616
- **So löst OmniRoute das Problem:**- OpenAI-kompatibler Proxy, MCP-Server und A2A-Server in einem Stack
617
- – Gemeinsame Authentifizierung, Ausfallsicherheit, Datenspeicher und Beobachtbarkeit
618
-
619
- - Konsistentes Richtlinienmodell über alle Interaktionsoberflächen hinweg
620
-
621
- </details>
622
-
623
- <details>
624
- <summary><b>🚀 30. „Ich muss Agenten-Workflows ohne Glue-Code-Ausbreitung versenden“</b></summary>
625
-
626
- Teams verlieren an Geschwindigkeit, wenn sie mehrere Ad-hoc-Dienste und -Skripte zusammenfügen.
627
-
628
- **So löst OmniRoute das Problem:**
629
-
630
- - Einheitliche Endpunktstrategie für Kunden und Agenten
631
- - Integrierte Protokollverwaltungs-Benutzeroberflächen und Rauchvalidierungspfade
632
- - Produktionsreife Grundlagen (Sicherheit, Protokollierung, Ausfallsicherheit, Backup)
633
-
634
- </details>
635
-
636
- ### Beispiel-Playbooks (Integrierte Anwendungsfälle)
637
-
638
- **Playbook A: Bezahltes Abonnement maximieren + günstiges Backup**
639
-
640
- ```txt
641
- Combo: "maximize-claude"
642
- 1. cc/claude-opus-4-6
643
- 2. glm/glm-4.7
644
- 3. if/kimi-k2-thinking
645
-
646
- Monthly cost: $20 + small backup spend
647
- Outcome: higher quality, near-zero interruption
648
- ```
649
-
650
- **Playbook B: Kostenfreier Codierungsstack**
651
-
652
- ```txt
653
- Combo: "free-forever"
654
- 1. gc/gemini-3-flash
655
- 2. if/kimi-k2-thinking
656
- 3. qw/qwen3-coder-plus
657
-
658
- Monthly cost: $0
659
- Outcome: stable free coding workflow
660
- ```
661
-
662
- **Playbook C: 24/7 Always-On-Fallback-Kette**
663
-
664
- ```txt
665
- Combo: "always-on"
666
- 1. cc/claude-opus-4-6
667
- 2. cx/gpt-5.2-codex
668
- 3. glm/glm-4.7
669
- 4. minimax/MiniMax-M2.1
670
- 5. if/kimi-k2-thinking
671
-
672
- Outcome: deep fallback depth for deadline-critical workloads
673
- ```
674
-
675
- **Playbook D: Agentenoperationen mit MCP + A2A**
676
-
677
- ```txt
678
- 1) Start MCP transport (`omniroute --mcp`) for tool-driven operations
679
- 2) Run A2A tasks via `message/send` and `message/stream`
680
- 3) Observe via /dashboard/mcp and /dashboard/a2a
681
- 4) Control incidents with resilience profile + task cancellation
682
- ```
683
-
684
- ---
685
-
686
- ## ⚡ Schnellstart
687
-
688
- ### 1) Installieren und ausführen
689
-
690
- ```bash
691
- npm install -g omniroute
692
- omniroute
693
- ```
694
-
695
- Das Dashboard wird unter `http://localhost:20128` geöffnet und die API-Basis-URL lautet `http://localhost:20128/v1`.
696
-
697
- | Befehl | Beschreibung |
698
- | ----------------------- | ------------------------------------------------------------------- |
699
- | `omniroute` | Server starten (`PORT=20128`, API und Dashboard auf demselben Port) |
700
- | `omniroute --port 3000` | Setzen Sie den kanonischen/API-Port auf 3000 |
701
- | `omniroute --mcp` | Starten Sie den MCP-Server (STDIO-Transport) |
702
- | `omniroute --no-open` | Browser nicht automatisch öffnen |
703
- | `omniroute --help` | Hilfe anzeigen |
704
-
705
- Optionaler Split-Port-Modus:
706
-
707
- ```bash
708
- PORT=20128 DASHBOARD_PORT=20129 omniroute
709
- # API: http://localhost:20128/v1
710
- # Dashboard: http://localhost:20129
711
- ```
712
-
713
- ### 2) Verbinden Sie Anbieter und erstellen Sie Ihren API-Schlüssel
714
-
715
- 1. Öffnen Sie Dashboard → `Providers` und verbinden Sie mindestens einen Anbieter (OAuth oder API-Schlüssel).
716
- 2. Öffnen Sie Dashboard → `Endpoint` und erstellen Sie einen API-Schlüssel.
717
- 3. (Optional) Öffnen Sie Dashboard → `Combos` und legen Sie Ihre Fallback-Kette fest.
718
-
719
- ### 3) Richten Sie Ihr Codierungstool auf OmniRoute
720
-
721
- ```txt
722
- Base URL: http://localhost:20128/v1
723
- API Key: [copy from Endpoint page]
724
- Model: if/kimi-k2-thinking (or any provider/model prefix)
725
- ```
726
-
727
- Funktioniert mit Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode und OpenAI-kompatiblen SDKs.
728
-
729
- ### 4) Protokolle aktivieren und validieren (v2.0)
730
-
731
- **MCP (für werkzeuggesteuerte Vorgänge):**
732
-
733
- ```bash
734
- omniroute --mcp
735
- ```
736
-
737
- Verbinden Sie dann Ihren MCP-Client über `stdio` und testen Sie Tools wie:
738
-
739
- - `omniroute_get_health`
740
- - `omniroute_list_combos`
741
-
742
- **A2A (für Agent-zu-Agent-Workflows):**
743
-
744
- ```bash
745
- curl http://localhost:20128/.well-known/agent.json
746
- ```
747
-
748
- ```bash
749
- curl -X POST http://localhost:20128/a2a \
750
- -H 'content-type: application/json' \
751
- -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
752
- ```
753
-
754
- ### 5) Alles durchgängig validieren (empfohlen)
755
-
756
- ```bash
757
- npm run test:protocols:e2e
758
- ```
759
-
760
- Diese Suite validiert echte MCP- und A2A-Client-Flows anhand einer laufenden App.
761
-
762
- ### Alternative: Von der Quelle ausführen
763
-
764
- ```bash
765
- cp .env.example .env
766
- npm install
767
- PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
768
- ```
769
-
770
- ---
771
-
772
- ## 🐳 Docker
773
-
774
- OmniRoute ist als öffentliches Docker-Image auf [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) verfügbar.
775
-
776
- **Schneller Lauf:**
777
-
778
- ```bash
779
- docker run -d \
780
- --name omniroute \
781
- --restart unless-stopped \
782
- -p 20128:20128 \
783
- -v omniroute-data:/app/data \
784
- diegosouzapw/omniroute:latest
785
- ```
786
-
787
- **Mit Umgebungsdatei:**
788
-
789
- ```bash
790
- # Copy and edit .env first
791
- cp .env.example .env
792
-
793
- docker run -d \
794
- --name omniroute \
795
- --restart unless-stopped \
796
- --env-file .env \
797
- -p 20128:20128 \
798
- -v omniroute-data:/app/data \
799
- diegosouzapw/omniroute:latest
800
- ```
801
-
802
- **Verwendung von Docker Compose:**
803
-
804
- ```bash
805
- # Base profile (no CLI tools)
806
- docker compose --profile base up -d
807
-
808
- # CLI profile (Claude Code, Codex, OpenClaw built-in)
809
- docker compose --profile cli up -d
810
- ```
811
-
812
- | Bild | Tag | Größe | Beschreibung |
813
- | ------------------------ | -------- | ------- | ----------------------- |
814
- | `diegosouzapw/omniroute` | `latest` | ~250 MB | Neueste stabile Version |
815
- | `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Aktuelle Version |
816
-
817
- ---
818
-
819
- ## 🖥️
820
-
821
- Führen Sie OmniRoute als eigenständige Desktop-App aus – kein Terminal, kein Browser, keine Internetverbindung für lokale Modelle erforderlich. Die Electron-basierte App umfasst:
822
-
823
- - 🖥️ **Natives Fenster** – Spezielles App-Fenster mit Integration in die Taskleiste
824
- - 🔄 **Auto-Start** – OmniRoute bei der Systemanmeldung starten
825
- - 🔔 **Native Benachrichtigungen** – Erhalten Sie Benachrichtigungen bei Kontingentausschöpfung oder Anbieterproblemen
826
- - ⚡ **One-Click-Installation** – NSIS (Windows), DMG (macOS), AppImage (Linux)
827
- - 🌐 **Offline-Modus** – Funktioniert vollständig offline mit dem gebündelten Server
828
-
829
- ### Schnellstart
830
-
831
- ```bash
832
- # Development mode
833
- npm run electron:dev
834
-
835
- # Build for your platform
836
- npm run electron:build # Current platform
837
- npm run electron:build:win # Windows (.exe)
838
- npm run electron:build:mac # macOS (.dmg) — x64 & arm64
839
- npm run electron:build:linux # Linux (.AppImage)
840
- ```
841
-
842
- ### Systemablage
843
-
844
- Wenn OmniRoute minimiert ist, befindet es sich mit schnellen Aktionen in Ihrer Taskleiste:
845
-
846
- - Dashboard öffnen
847
- - Server-Port ändern
848
- - Anwendung beenden
849
-
850
- 📖 Vollständige Dokumentation: [`electron/README.md`](electron/README.md)
851
-
852
- ---
853
-
854
- ## 💰 Preise im Überblick
855
-
856
- | Stufe | Anbieter | Kosten | Kontingent zurücksetzen | Am besten für |
857
- | -------------------- | ----------------- | ---------------------------------------- | ------------------------- | ---------------------- |
858
- | **💳 ABO** | Claude Code (Pro) | 20 $/Monat | 5h + wöchentlich | Bereits abonniert |
859
- | | Codex (Plus/Pro) | 20–200 $/Monat | 5h + wöchentlich | OpenAI-Benutzer |
860
- | | Gemini CLI | **KOSTENLOS** | 180.000/Monat + 1.000/Tag | Alle! |
861
- | | GitHub-Copilot | 10–19 $/Monat | Monatlich | GitHub-Benutzer |
862
- | **🔑 API-SCHLÜSSEL** | NVIDIA NIM | **KOSTENLOS** (1000 Credits) | Einmalig | Kostenlose Tier-Tests |
863
- | | DeepSeek | Pay-per-Use | Keine | Bestes Preis/Qualität |
864
- | | Groq | Kostenloses Kontingent + kostenpflichtig | Tarif begrenzt | Ultraschnelle Inferenz |
865
- | | xAI (Grok) | Pay-per-Use | Keine | Grok-Modelle |
866
- | | Mistral | Kostenloses Kontingent + kostenpflichtig | Tarif begrenzt | Europäische KI |
867
- | | OpenRouter | Pay-per-Use | Keine | Über 100 Modelle |
868
- | **💰 GÜNSTIG** | GLM-4.7 | 0,6 $/1 Mio. | Täglich 10 Uhr | Budgetsicherung |
869
- | | MiniMax M2.1 | 0,2 $/1 Mio. | 5-Stunden-Rollen | Günstigste Option |
870
- | | Kimi K2 | $9/Monat pauschal | 10 Millionen Token/Monat | Vorhersehbare Kosten |
871
- | **🆓 KOSTENLOS** | iFlow | $0 | Unbegrenzt | 8 Modelle kostenlos |
872
- | | Qwen | $0 | Unbegrenzt | 3 Modelle kostenlos |
873
- | | Kiro | $0 | Unbegrenzt | Claude frei |
874
-
875
- **💡 Profi-Tipp:** Beginnen Sie mit der Kombination Gemini CLI (180.000 kostenlos/Monat) + iFlow (unbegrenzt kostenlos) = 0 $ Kosten!
876
-
877
- ---
878
-
879
- ## 💡 Hauptfunktionen
880
-
881
- OmniRoute v2.0 ist als Betriebsplattform konzipiert und nicht nur als Relay-Proxy.
882
-
883
- ### 🚀 New in v2.0.9+ — Playground, CLI Fingerprints & ACP
884
-
885
- | Feature | What It Does |
886
- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
887
- | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing |
888
- | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** |
889
- | 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw), process spawner, `/api/acp/agents` endpoint |
890
- | 🤖 **ACP Agents Dashboard** | Debug > Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool |
891
- | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator |
892
- | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID |
893
- | 🔄 **Electron Auto-Update** | Desktop app checks for updates + auto-install on restart |
894
-
895
- ### 🤖 Agenten- und Protokolloperationen (v2.0)| Funktion | Was es tut |
896
-
897
- | ------------------------------------ | -------------------------------------------------------------------------------- |
898
- | 🔧 **MCP-Server (16 Tools)** | IDE-/Agent-Tools steuern Routing, Zustand, Kombinationen, Grenzwerte und Vorgänge | IDE/agent tools via 3 transports: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`)
899
- | 🤝 **A2A-Server (JSON-RPC + SSE)** | Ausführung von Agent-zu-Agent-Aufgaben mit Synchronisierungs- und Streaming-Flows |
900
- | 🧭 **Consolidated Endpoints Page** | Dedizierte Verwaltungsseiten (`/dashboard/mcp`, `/dashboard/a2a`) |
901
- | 🎚️ **Service Enable/Disable Toggles** | ON/OFF switches for MCP and A2A with settings persistence (default: OFF) |
902
- | 🛰️ **MCP Runtime Heartbeat** | Echter Prozessstatus (PID, Betriebszeit, Heartbeat-Alter, Transport, Scope-Modus) |
903
- | 📋 **MCP Audit Trail** | Filterbare Audit-Protokolle mit Erfolg/Misserfolg und Schlüsselzuordnung |
904
- | 🔐 **Durchsetzung des MCP-Geltungsbereichs** | 9 granulare Umfangsberechtigungen für kontrollierten Werkzeugzugriff |
905
- | 📡 **A2A Task Lifecycle Management** | Aufgaben auflisten/filtern, Ereignisse/Artefakte prüfen, laufende Aufgaben abbrechen |
906
- | 📋 **Agentenkartenerkennung** | `/.well-known/agent.json` für die automatische Client-Erkennung |
907
- | 🧪 **Protokoll-E2E-Testkabel** | Echtes MCP SDK + A2A-Client fließt in `test:protocols:e2e` |
908
- | ⚙️ **Betriebskontrollen** | Schaltkombination, Anwenden von Resilienzprofilen, Zurücksetzen von Leistungsschaltern über eine Bedienoberfläche |
909
-
910
- ### 🧠 Routing und Intelligenz
911
-
912
- | Funktion | Was es tut |
913
- | ---------------------------------------- | ------------------------------------------------------------------------------------- |
914
- | 🎯 **Intelligenter 4-Stufen-Fallback** | Automatische Route: Abonnement → API-Schlüssel → Günstig → Kostenlos |
915
- | 📊 **Kontingentverfolgung in Echtzeit** | Live-Token-Zählung + Reset-Countdown pro Anbieter |
916
- | 🔄 **Formatübersetzung** | OpenAI ↔ Claude ↔ Gemini ↔ Antworten mit schemasicheren Konvertierungen |
917
- | 👥 **Unterstützung mehrerer Konten** | Mehrere Konten pro Anbieter mit intelligenter Auswahl |
918
- | 🔄 **Automatische Token-Aktualisierung** | OAuth-Token werden bei Wiederholung automatisch aktualisiert |
919
- | 🎨 **Benutzerdefinierte Kombinationen** | 6 Ausgleichsstrategien + Fallback-Kettenkontrolle |
920
- | 🌐 **Wildcard-Router** | `provider/*` dynamisches Routing |
921
- | 🧠 **Budgetkontrollen denken** | Passthrough-, automatische, benutzerdefinierte und adaptive Reasoning-Grenzwerte |
922
- | 🔀 **Modell-Aliase** | Integrierte + benutzerdefinierte Modell-Aliasing- und Migrationssicherheit |
923
- | ⚡ **Hintergrundverschlechterung** | Hintergrundaufgaben mit niedriger Priorität an günstigere Modelle weiterleiten |
924
- | 💬 **System-Prompt-Injektion** | Globale Verhaltenskontrollen werden konsequent angewendet |
925
- | 📄 **Antwort-API-Kompatibilität** | Vollständige `/v1/responses`-Unterstützung für Codex und erweiterte Agenten-Workflows |
926
-
927
- ### 🎵 Multimodale APIs
928
-
929
- | Funktion | Was es tut || -------------------------- | ------------------------------------------------------------- |
930
- | 🖼️ **Bilderzeugung** | `/v1/images/generations` mit Cloud- und lokalen Backends |
931
- | 📐 **Einbettungen** | `/v1/embeddings` für Such- und RAG-Pipelines |
932
- | 🎤 **Audio-Transkription** | `/v1/audio/transcriptions` (Whisper und zusätzliche Anbieter) |
933
- | 🔊 **Text-to-Speech** | `/v1/audio/speech` (mehrere Engines/Anbieter) |
934
- | 🎬 **Videogenerierung** | `/v1/videos/generations` (ComfyUI + SD WebUI-Workflows) |
935
- | 🎵 **Musikgeneration** | `/v1/music/generations` (ComfyUI-Workflows) |
936
- | 🛡️ **Moderationen** | `/v1/moderations` Sicherheitsprüfungen |
937
- | 🔀 **Neueinstufung** | `/v1/rerank` für Relevanzbewertung |
938
-
939
- ### 🛡️ Resilienz, Sicherheit und Governance
940
-
941
- | Funktion | Was es tut |
942
- | ---------------------------------------- | ------------------------------------------------------------------------------ |
943
- | 🔌 **Leistungsschalter** | Auslösung/Wiederherstellung auf Anbieterebene mit Schwellenwertkontrollen |
944
- | 🛡️ **Anti-Donnerende Herde** | Mutex- und Semaphorschutz bei Wiederholungs-/Ratenereignissen |
945
- | 🧠 **Semantik + Signatur-Cache** | Kosten-/Latenzreduzierung mit zwei Cache-Schichten |
946
- | ⚡ **Idempotenz anfordern** | Doppeltes Schutzfenster |
947
- | 🔒 **TLS-Fingerabdruck-Spoofing** | Bessere Kompatibilität mit Anti-Bot-gefilterten Anbietern |
948
- | 🌐 **IP-Filterung** | Zulassungs-/Blocklistenkontrolle für exponierte Bereitstellungen |
949
- | 📊 **Bearbeitbare Ratenlimits** | Konfigurierbare globale/Provider-Level-Limits mit Persistenz |
950
- | 🔑 **API-Schlüsselverwaltung + Scoping** | Sichere Schlüsselausgabe/-rotation und Modell-/Anbieterkontrollen |
951
- | 🛡️ **Geschützt `/models`** | Optionales Authentifizierungs-Gating und Provider-Ausblenden für Modellkatalog |
952
-
953
- ### 📊 Beobachtbarkeit und Analyse
954
-
955
- | Funktion | Was es tut |
956
- | ---------------------------------------- | ------------------------------------------------------------------- |
957
- | 📝 **Anfrage + Proxy-Protokollierung** | Vollständige Anfrage/Antwort- und Proxy-Protokollierung |
958
- | 📋 **Einheitliches Protokoll-Dashboard** | Anforderungs-, Proxy-, Audit- und Konsolenansichten auf einer Seite |
959
- | 🔍 **Telemetrie anfordern** | p50/p95/p99-Latenz und Anforderungsverfolgung |
960
- | 🏥 **Gesundheits-Dashboard** | Betriebszeit, Breaker-Zustände, Sperrungen, Cache-Statistiken |
961
- | 💰 **Kostenverfolgung** | Budgetkontrolle und Preistransparenz pro Modell |
962
- | 📈 **Analysevisualisierungen** | Einblicke in die Modell-/Anbieternutzung und Trendansichten |
963
- | 🧪 **Bewertungsrahmen** | Golden-Set-Test mit konfigurierbaren Match-Strategien |
964
-
965
- ### ☁️ Bereitstellung und Plattform
966
-
967
- | Funktion | Was es tut |
968
- | ------------------------------------------- | ------------------------------------------------------------------------------ | --- | ----------------------------- | ------------------------------------------------ |
969
- | 🌐 **Überall bereitstellen** | Localhost, VPS, Docker, Cloud-Umgebungen | | 💾 **Cloud-Synchronisierung** | Konfigurationssynchronisierung über Cloud Worker |
970
- | 🔄 **Sichern/Wiederherstellen** | Export-/Import- und Disaster-Recovery-Abläufe |
971
- | 🧙 **Onboarding-Assistent** | Erstmaliges geführtes Setup |
972
- | 🔧 **CLI-Tools-Dashboard** | Ein-Klick-Setup für beliebte Codierungstools |
973
- | 🌐 **i18n (30 Sprachen)** | Vollständige Sprachunterstützung für Dashboard und Dokumente mit RTL-Abdeckung |
974
- | 📂 **Benutzerdefiniertes Datenverzeichnis** | `DATA_DIR`-Überschreibung für Speicherort |
975
-
976
- ### Feature Deep Dive
977
-
978
- #### Smarter Fallback mit praktischer Kostenkontrolle
979
-
980
- ```txt
981
- Combo: "my-coding-stack"
982
- 1. cc/claude-opus-4-6
983
- 2. nvidia/llama-3.3-70b
984
- 3. glm/glm-4.7
985
- 4. if/kimi-k2-thinking
986
- ```
987
-
988
- Wenn Kontingent, Rate oder Integrität fehlschlagen, wechselt OmniRoute automatisch zum nächsten Kandidaten, ohne dass ein manueller Wechsel erforderlich ist.
989
-
990
- #### Protokollverwaltung, die sichtbar und bedienbar ist
991
-
992
- - MCP + A2A sind in der Benutzeroberfläche und in den Dokumenten erkennbar (nicht ausgeblendet)
993
- – Protokollstatus-APIs stellen Live-Betriebsdaten bereit (`/api/mcp/*`, `/api/a2a/*`)
994
- - Dashboards umfassen Aktionen für Tag-2-Operationen (Kombinationsumschaltung, Zurücksetzen von Leistungsschaltern, Aufgabenabbruch).
995
-
996
- #### Übersetzer- und Validierungsworkflow
997
-
998
- Der Übersetzerbereich umfasst:
999
-
1000
- - **Spielplatz**: Transformationsprüfungen anfordern
1001
- - **Chat-Tester**: vollständiger Anfrage-/Antwort-Roundtrip
1002
- - **Prüfstand**: mehrere Fälle in einem Durchgang
1003
- - **Live Monitor**: Echtzeit-Verkehrsansicht
1004
-
1005
- Plus Protokollvalidierung mit echten Clients über `npm run test:protocols:e2e`.
1006
-
1007
- > 📖 **[MCP Server README](open-sse/mcp-server/README.md)** – Tool-Referenz, IDE-Konfigurationen und Client-Beispiele
1008
- >
1009
- > 📖 **[A2A Server README](src/lib/a2a/README.md)** – Fähigkeiten, JSON-RPC-Methoden, Streaming und Aufgabenlebenszyklus
1010
-
1011
- ## 🧪 Bewertungen (Evals)
1012
-
1013
- OmniRoute umfasst ein integriertes Bewertungsframework zum Testen der LLM-Antwortqualität anhand eines Golden Sets. Greifen Sie darauf über **Analytics → Evals** im Dashboard zu.
1014
-
1015
- ### Eingebautes goldenes Set
1016
-
1017
- Das vorinstallierte „OmniRoute Golden Set“ enthält Testfälle für:
1018
-
1019
- - Grüße, Mathematik, Geographie, Codegenerierung
1020
- - Einhaltung des JSON-Formats, Übersetzung, Markdown-Generierung
1021
- - Sicherheitsverweigerung (schädlicher Inhalt), Zählung, boolesche Logik
1022
-
1023
- ### Bewertungsstrategien
1024
-
1025
- | Strategie | Beschreibung | Beispiel |
1026
- | ---------- | -------------------------------------------------------------------------------------------- | --------------------------------------- |
1027
- | `exact` | Die Ausgabe muss genau mit | übereinstimmen `"4"` |
1028
- | `contains` | Die Ausgabe muss eine Teilzeichenfolge enthalten (Groß-/Kleinschreibung wird nicht beachtet) | `"Paris"` |
1029
- | `regex` | Die Ausgabe muss mit dem Regex-Muster | übereinstimmen `"1.*2.*3"` |
1030
- | `custom` | Benutzerdefinierte JS-Funktion gibt true/false | zurück `(output) => output.length > 10` |
1031
-
1032
- ---
1033
-
1034
- ## 📖 Einrichtungsanleitung
1035
-
1036
- ### Protokoll-Setup (MCP + A2A)
1037
-
1038
- <details>
1039
- <summary><b>🧩 MCP-Setup (Modellkontextprotokoll)</b></summary>
1040
-
1041
- Starten Sie den MCP-Transport im Standardmodus:
1042
-
1043
- ```bash
1044
- omniroute --mcp
1045
- ```
1046
-
1047
- Empfohlener Validierungsablauf:
1048
-
1049
- 1. Verbinden Sie Ihren MCP-Client über stdio.
1050
- 2. Führen Sie `omniroute_get_health` aus.
1051
- 3. Führen Sie `omniroute_list_combos` aus.
1052
- 4. Öffnen Sie `/dashboard/mcp`, um Heartbeat, Aktivität und Audit zu bestätigen.
1053
-
1054
- Nützliche APIs für die Automatisierung:
1055
-
1056
- - `GET /api/mcp/status`
1057
- - `GET /api/mcp/tools`
1058
- - `GET /api/mcp/audit`
1059
- - `GET /api/mcp/audit/stats`
1060
-
1061
- </details>
1062
-
1063
- <details><summary><b>🤝 A2A-Setup (Agent2Agent)</b></summary>
1064
-
1065
- Entdecken Sie den Agenten:
1066
-
1067
- ```bash
1068
- curl http://localhost:20128/.well-known/agent.json
1069
- ```
1070
-
1071
- Senden Sie eine Aufgabe:
1072
-
1073
- ```bash
1074
- curl -X POST http://localhost:20128/a2a \
1075
- -H 'content-type: application/json' \
1076
- -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
1077
- ```
1078
-
1079
- Lebenszyklus verwalten:
1080
-
1081
- - `GET /api/a2a/status`
1082
- - `GET /api/a2a/tasks`
1083
- - `GET /api/a2a/tasks/:id`
1084
- - `POST /api/a2a/tasks/:id/cancel`
1085
-
1086
- Operative Benutzeroberfläche:
1087
-
1088
- - `/dashboard/a2a` für Task-/Status-/Stream-Beobachtbarkeit und Smoke-Aktionen
1089
-
1090
- </details>
1091
-
1092
- <details>
1093
- <summary><b>🧪 End-to-End-Protokollvalidierung</b></summary>
1094
-
1095
- Validieren Sie beide Protokolle mit echten Clients:
1096
-
1097
- ```bash
1098
- npm run test:protocols:e2e
1099
- ```
1100
-
1101
- Dies bestätigt:
1102
-
1103
- - MCP SDK-Client-Verbindung/Liste/Anruf
1104
- - A2A-Erkennung/Senden/Streamen/Get/Abbrechen
1105
- - Vergleichen Sie die Daten in MCP-Audit- und A2A-Aufgabenverwaltungs-APIs
1106
-
1107
- </details>
1108
-
1109
- <details>
1110
- <summary><b>💳 Abonnementanbieter</b></summary>
1111
-
1112
- ### Claude Code (Pro/Max)
1113
-
1114
- ```bash
1115
- Dashboard → Providers → Connect Claude Code
1116
- → OAuth login → Auto token refresh
1117
- → 5-hour + weekly quota tracking
1118
-
1119
- Models:
1120
- cc/claude-opus-4-6
1121
- cc/claude-sonnet-4-5-20250929
1122
- cc/claude-haiku-4-5-20251001
1123
- ```
1124
-
1125
- **Profi-Tipp:** Verwenden Sie Opus für komplexe Aufgaben, Sonnet für Geschwindigkeit. OmniRoute verfolgt das Kontingent pro Modell!
1126
-
1127
- ### OpenAI Codex (Plus/Pro)
1128
-
1129
- ```bash
1130
- Dashboard → Providers → Connect Codex
1131
- → OAuth login (port 1455)
1132
- → 5-hour + weekly reset
1133
-
1134
- Models:
1135
- cx/gpt-5.2-codex
1136
- cx/gpt-5.1-codex-max
1137
- ```
1138
-
1139
- ### Gemini CLI (KOSTENLOS 180.000/Monat!)
1140
-
1141
- ```bash
1142
- Dashboard → Providers → Connect Gemini CLI
1143
- → Google OAuth
1144
- → 180K completions/month + 1K/day
1145
-
1146
- Models:
1147
- gc/gemini-3-flash-preview
1148
- gc/gemini-2.5-pro
1149
- ```
1150
-
1151
- **Bester Wert:** Riesiges kostenloses Kontingent! Verwenden Sie dies vor kostenpflichtigen Stufen.
1152
-
1153
- ### GitHub-Copilot
1154
-
1155
- ```bash
1156
- Dashboard → Providers → Connect GitHub
1157
- → OAuth via GitHub
1158
- → Monthly reset (1st of month)
1159
-
1160
- Models:
1161
- gh/gpt-5
1162
- gh/claude-4.5-sonnet
1163
- gh/gemini-3-pro
1164
- ```
1165
-
1166
- </details>
1167
-
1168
- <details>
1169
- <summary><b>🔑 API-Schlüsselanbieter</b></summary>
1170
-
1171
- ### NVIDIA NIM (KOSTENLOSE 1000 Credits!)
1172
-
1173
- 1. Registrieren Sie sich: [build.nvidia.com](https://build.nvidia.com)
1174
- 2. Holen Sie sich einen kostenlosen API-Schlüssel (1000 Inferenz-Credits inbegriffen)
1175
- 3. Dashboard → Anbieter hinzufügen → NVIDIA NIM:
1176
- - API-Schlüssel: `nvapi-your-key`
1177
-
1178
- **Modelle:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` und über 50 weitere
1179
-
1180
- **Profi-Tipp:** OpenAI-kompatible API – funktioniert nahtlos mit der Formatübersetzung von OmniRoute!
1181
-
1182
- ### DeepSeek
1183
-
1184
- 1. Registrieren Sie sich: [platform.deepseek.com](https://platform.deepseek.com)
1185
- 2. Holen Sie sich den API-Schlüssel
1186
- 3. Dashboard → Anbieter hinzufügen → DeepSeek
1187
-
1188
- **Modelle:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
1189
-
1190
- ### Groq (Kostenloses Kontingent verfügbar!)
1191
-
1192
- 1. Registrieren Sie sich: [console.groq.com](https://console.groq.com)
1193
- 2. Holen Sie sich den API-Schlüssel (kostenloses Kontingent inbegriffen)
1194
- 3. Dashboard → Anbieter hinzufügen → Groq
1195
-
1196
- **Modelle:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
1197
-
1198
- **Profi-Tipp:** Ultraschnelle Inferenz – am besten für Echtzeit-Codierung!
1199
-
1200
- ### OpenRouter (über 100 Modelle)
1201
-
1202
- 1. Registrieren Sie sich: [openrouter.ai](https://openrouter.ai)
1203
- 2. Holen Sie sich den API-Schlüssel
1204
- 3. Dashboard → Anbieter hinzufügen → OpenRouter
1205
-
1206
- **Modelle:** Greifen Sie über einen einzigen API-Schlüssel auf über 100 Modelle aller großen Anbieter zu.
1207
-
1208
- </details>
1209
-
1210
- <details>
1211
- <summary><b>💰 Günstige Anbieter (Backup)</b></summary>
1212
-
1213
- ### GLM-4.7 (Täglicher Reset, 0,6 $/1 Mio.)
1214
-
1215
- 1. Registrieren: [Zhipu AI](https://open.bigmodel.cn/)
1216
- 2. Holen Sie sich den API-Schlüssel vom Coding Plan
1217
- 3. Dashboard → API-Schlüssel hinzufügen:
1218
- - Anbieter: `glm`
1219
- - API-Schlüssel: `your-key`
1220
-
1221
- **Verwendung:** `glm/glm-4.7`
1222
-
1223
- **Profi-Tipp:** Coding Plan bietet 3× Kontingent zu 1/7 Kosten! Täglich um 10:00 Uhr zurückgesetzt.
1224
-
1225
- ### MiniMax M2.1 (5 Stunden Zurücksetzen, 0,20 $/1 Mio.)
1226
-
1227
- 1. Registrieren: [MiniMax](https://www.minimax.io/)
1228
- 2. Holen Sie sich den API-Schlüssel
1229
- 3. Dashboard → API-Schlüssel hinzufügen
1230
-
1231
- **Verwendung:** `minimax/MiniMax-M2.1`
1232
-
1233
- **Profi-Tipp:** Günstigste Option für langen Kontext (1 Mio. Token)!
1234
-
1235
- ### Kimi K2 (9 $/Monat pauschal)
1236
-
1237
- 1. Abonnieren: [Moonshot AI](https://platform.moonshot.ai/)
1238
- 2. Holen Sie sich den API-Schlüssel
1239
- 3. Dashboard → API-Schlüssel hinzufügen
1240
-
1241
- **Verwendung:** `kimi/kimi-latest`
1242
-
1243
- **Profi-Tipp:** Feste 9 $/Monat für 10 Mio. Token = 0,90 $/1 Mio. effektive Kosten!
1244
-
1245
- </details>
1246
-
1247
- <details>
1248
- <summary><b>🆓 KOSTENLOSE Anbieter (Notfall-Backup)</b></summary>
1249
-
1250
- ### iFlow (8 KOSTENLOSE Modelle)```bash
1251
-
1252
- Dashboard → Connect iFlow
1253
- → iFlow OAuth login
1254
- → Unlimited usage
1255
-
1256
- Models:
1257
- if/kimi-k2-thinking
1258
- if/qwen3-coder-plus
1259
- if/glm-4.7
1260
- if/minimax-m2
1261
- if/deepseek-r1
1262
-
1263
- ````
1264
-
1265
- ### Qwen (3 KOSTENLOSE Modelle)
1266
-
1267
- ```bash
1268
- Dashboard → Connect Qwen
1269
- → Device code authorization
1270
- → Unlimited usage
1271
-
1272
- Models:
1273
- qw/qwen3-coder-plus
1274
- qw/qwen3-coder-flash
1275
- ````
1276
-
1277
- ### Kiro (Claude KOSTENLOS)
1278
-
1279
- ```bash
1280
- Dashboard → Connect Kiro
1281
- → AWS Builder ID or Google/GitHub
1282
- → Unlimited usage
1283
-
1284
- Models:
1285
- kr/claude-sonnet-4.5
1286
- kr/claude-haiku-4.5
1287
- ```
1288
-
1289
- </details>
1290
-
1291
- <details>
1292
- <summary><b>🎨 Combos erstellen</b></summary>
1293
-
1294
- ### Beispiel 1: Abonnement maximieren → Günstiges Backup
1295
-
1296
- ```
1297
- Dashboard → Combos → Create New
1298
-
1299
- Name: premium-coding
1300
- Models:
1301
- 1. cc/claude-opus-4-6 (Subscription primary)
1302
- 2. glm/glm-4.7 (Cheap backup, $0.6/1M)
1303
- 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
1304
-
1305
- Use in CLI: premium-coding
1306
- ```
1307
-
1308
- ### Beispiel 2: Nur kostenlos (kostenlos)
1309
-
1310
- ```
1311
- Name: free-combo
1312
- Models:
1313
- 1. gc/gemini-3-flash-preview (180K free/month)
1314
- 2. if/kimi-k2-thinking (unlimited)
1315
- 3. qw/qwen3-coder-plus (unlimited)
1316
-
1317
- Cost: $0 forever!
1318
- ```
1319
-
1320
- </details>
1321
-
1322
- <details>
1323
- <summary><b>🔧 CLI-Integration</b></summary>
1324
-
1325
- ### Cursor-IDE
1326
-
1327
- ```
1328
- Settings → Models → Advanced:
1329
- OpenAI API Base URL: http://localhost:20128/v1
1330
- OpenAI API Key: [from OmniRoute dashboard]
1331
- Model: cc/claude-opus-4-6
1332
- ```
1333
-
1334
- ### Claude Code
1335
-
1336
- Verwenden Sie die Seite **CLI-Tools** im Dashboard für die Ein-Klick-Konfiguration oder bearbeiten Sie `~/.claude/settings.json` manuell.
1337
-
1338
- ### Codex-CLI
1339
-
1340
- ```bash
1341
- export OPENAI_BASE_URL="http://localhost:20128"
1342
- export OPENAI_API_KEY="your-omniroute-api-key"
1343
-
1344
- codex "your prompt"
1345
- ```
1346
-
1347
- ### OpenClaw
1348
-
1349
- **Option 1 – Dashboard (empfohlen):**
1350
-
1351
- ```
1352
- Dashboard → CLI Tools → OpenClaw → Select Model → Apply
1353
- ```
1354
-
1355
- **Option 2 – Manuell:** Bearbeiten `~/.openclaw/openclaw.json`:
1356
-
1357
- ```json
1358
- {
1359
- "models": {
1360
- "providers": {
1361
- "omniroute": {
1362
- "baseUrl": "http://127.0.0.1:20128/v1",
1363
- "apiKey": "sk_omniroute",
1364
- "api": "openai-completions"
1365
- }
1366
- }
1367
- }
1368
- }
1369
- ```
1370
-
1371
- > **Hinweis:** OpenClaw funktioniert nur mit lokaler OmniRoute. Verwenden Sie `127.0.0.1` anstelle von `localhost`, um Probleme mit der IPv6-Auflösung zu vermeiden.
1372
-
1373
- ### Cline / Weiter / RooCode
1374
-
1375
- ```
1376
- Settings → API Configuration:
1377
- Provider: OpenAI Compatible
1378
- Base URL: http://localhost:20128/v1
1379
- API Key: [from OmniRoute dashboard]
1380
- Model: if/kimi-k2-thinking
1381
- ```
1382
-
1383
- ### OpenCode
1384
-
1385
- **Schritt 1:** OmniRoute als benutzerdefinierten Anbieter hinzufügen:
1386
-
1387
- ```bash
1388
- opencode
1389
- /connect
1390
- # Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
1391
- ```
1392
-
1393
- **Schritt 2:** Erstellen/bearbeiten Sie `opencode.json` in Ihrem Projektstamm:
1394
-
1395
- ```json
1396
- {
1397
- "$schema": "https://opencode.ai/config.json",
1398
- "provider": {
1399
- "omniroute": {
1400
- "npm": "@ai-sdk/openai-compatible",
1401
- "name": "OmniRoute",
1402
- "options": {
1403
- "baseURL": "http://localhost:20128/v1"
1404
- },
1405
- "models": {
1406
- "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
1407
- "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
1408
- "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
1409
- }
1410
- }
1411
- }
1412
- }
1413
- ```
1414
-
1415
- **Schritt 3:** Wählen Sie das Modell in OpenCode aus:
1416
-
1417
- ```bash
1418
- /models
1419
- # Select any OmniRoute model from the list
1420
- ```
1421
-
1422
- > **Tipp:** Fügen Sie alle in Ihrem OmniRoute `/v1/models`-Endpunkt verfügbaren Modelle zum Abschnitt `models` hinzu. Verwenden Sie das Format `provider/model-id` aus Ihrem OmniRoute-Dashboard.
1423
-
1424
- </details>
1425
-
1426
- ---
1427
-
1428
- ## 🐛 Fehlerbehebung
1429
-
1430
- <details>
1431
- <summary><b>Klicken Sie hier, um den Leitfaden zur Fehlerbehebung zu erweitern</b></summary>
1432
-
1433
- **„Sprachmodell hat keine Nachrichten bereitgestellt“**
1434
-
1435
- - Anbieterkontingent erschöpft → Überprüfen Sie den Dashboard-Kontingent-Tracker
1436
- - Lösung: Combo-Fallback verwenden oder auf günstigere Stufe wechseln
1437
-
1438
- **Ratenbegrenzung**
1439
-
1440
- - Abonnementkontingent aufgebraucht → Fallback auf GLM/MiniMax
1441
- - Kombination hinzufügen: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
1442
-
1443
- **OAuth-Token abgelaufen**
1444
-
1445
- - Automatische Aktualisierung durch OmniRoute
1446
- - Wenn die Probleme weiterhin bestehen: Dashboard → Anbieter → Verbindung wiederherstellen
1447
-
1448
- **Hohe Kosten**
1449
-
1450
- - Überprüfen Sie die Nutzungsstatistiken im Dashboard → Kosten
1451
- - Primärmodell auf GLM/MiniMax umstellen
1452
- - Nutzen Sie das kostenlose Kontingent (Gemini CLI, iFlow) für unkritische Aufgaben
1453
-
1454
- **Dashboard-/API-Ports sind falsch**
1455
-
1456
- - `PORT` ist der kanonische Basisport (und standardmäßig API-Port)
1457
- – `API_PORT` überschreibt nur OpenAI-kompatible API-Listener
1458
- – `DASHBOARD_PORT` überschreibt nur Dashboard/Next.js-Listener
1459
- - Setzen Sie `NEXT_PUBLIC_BASE_URL` auf Ihr Dashboard/öffentliche URL (für OAuth-Rückrufe).
1460
-
1461
- **Cloud-Synchronisierungsfehler**
1462
-
1463
- – Überprüfen Sie, ob `BASE_URL` auf Ihre laufende Instanz verweist
1464
- – Überprüfen Sie, ob `CLOUD_URL` auf Ihren erwarteten Cloud-Endpunkt verweist
1465
- – Halten Sie die `NEXT_PUBLIC_*`-Werte an den serverseitigen Werten ausgerichtet
1466
-
1467
- **Erste Anmeldung funktioniert nicht**
1468
-
1469
- - Überprüfen Sie `INITIAL_PASSWORD` in `.env`
1470
- – Wenn nicht festgelegt, lautet das Fallback-Passwort `123456`
1471
-
1472
- **Keine Anfrageprotokolle**
1473
-
1474
- - Setzen Sie `ENABLE_REQUEST_LOGS=true` in `.env`
1475
-
1476
- **Verbindungstest zeigt „Ungültig“ für OpenAI-kompatible Anbieter**
1477
-
1478
- – Viele Anbieter stellen keinen `/models`-Endpunkt bereit
1479
- – OmniRoute v1.0.6+ beinhaltet eine Fallback-Validierung über Chat-Abschlüsse
1480
- – Stellen Sie sicher, dass die Basis-URL das Suffix `/v1` enthält
1481
-
1482
- ### 🔐 OAuth auf Server Remoto
1483
-
1484
- <a name="oauth-em-servidor-remoto"></a>
1485
-
1486
- > **⚠️ WICHTIG für den Einsatz von OmniRoute auf VPS/Docker/Remote-Servern**
1487
-
1488
- #### OAuth
1489
-
1490
- Als OAuth-Anmeldeinformationen wurde OmniRoute nicht in die Liste eingetragen. **Zugelassen für `localhost`**. Wenn Sie OmniRoute auf einem Remote-Server (z. B.
1491
-
1492
- ```
1493
- Error 400: redirect_uri_mismatch
1494
- ```
1495
-
1496
- #### Lösung: Konfigurieren Sie Ihre eigenen OAuth-Anmeldeinformationen
1497
-
1498
- Sie schreiben bitte eine **OAuth 2.0-Client-ID** in der Google Cloud Console mit einem URI für Ihren Server.
1499
-
1500
- #### Passo a Passo
1501
-
1502
- **1. Zugriff auf die Google Cloud Console**
1503
-
1504
- Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
1505
-
1506
- **2. Rufen Sie eine neue OAuth 2.0-Client-ID auf**
1507
-
1508
- - Klicken Sie auf **"+ Anmeldeinformationen erstellen"** → **"OAuth-Client-ID"**
1509
- - Anwendungstyp: **„Webanwendung“**
1510
- - Name: Escolha qualquer nome (z. B. `OmniRoute Remote`)
1511
-
1512
- **3. Adicione als autorisierte Weiterleitungs-URIs**
1513
-
1514
- Nein, **"Autorisierte Weiterleitungs-URIs"**, Zusatz:
1515
-
1516
- ```
1517
- https://seu-servidor.com/callback
1518
- ```
1519
-
1520
- > Ersetzen Sie `seu-servidor.com` durch die Domain oder die IP Ihres Servers (einschließlich eines Ports, der unbedingt erforderlich ist, z. B.: `http://45.33.32.156:20128/callback`).
1521
-
1522
- **4. Als Anmeldedaten speichern und kopieren**
1523
-
1524
- Anschließend hat Google die **Client-ID** und das **Client-Geheimnis** angezeigt.
1525
-
1526
- **5. Als Umgebungsvariationen konfigurieren**
1527
-
1528
- Kein `.env` (oder mehrere Docker-Umgebungsvarianten):
1529
-
1530
- ```bash
1531
- # Para Antigravity:
1532
- ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1533
- ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1534
-
1535
- # Para Gemini CLI:
1536
- GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1537
- GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1538
- GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1539
- ```
1540
-
1541
- **6. Neuzugang zu OmniRoute**
1542
-
1543
- ```bash
1544
- # Se usando npm:
1545
- npm run dev
1546
-
1547
- # Se usando Docker:
1548
- docker restart omniroute
1549
- ```
1550
-
1551
- **7. Tente conectar novamente**
1552
-
1553
- Dashboard → Anbieter → Antigravity (oder Gemini CLI) → OAuth
1554
-
1555
- Jetzt hat Google die Nachricht an `https://seu-servidor.com/callback` weitergeleitet und eine Authentifizierungsfunktion durchgeführt.
1556
-
1557
- ---
1558
-
1559
- #### Workaround vorübergehend (nicht vorab konfiguriert)
1560
-
1561
- Wenn Sie vorab keine Berechtigung erhalten möchten, besteht die Möglichkeit, das **URL-Handbuch** zu verwenden:
1562
-
1563
- 1. OmniRoute ruft eine von Google autorisierte URL auf
1564
- 2. Nachdem Sie den Autor autorisiert haben, sendet Google eine Weiterleitung an `localhost` (diese wird jedoch nicht vom Server weitergeleitet).
1565
- 3. **Kopieren Sie eine vollständige URL**, um sie in Ihren Browser zu laden (bitte beachten Sie, dass die Seite noch nicht abgeschlossen ist).
1566
- 4. Geben Sie die URL ein, die nicht zur Verbindung mit OmniRoute verwendet werden soll
1567
- 5. Klicken Sie auf **„Verbinden“**
1568
-
1569
- > Diese Problemumgehung funktioniert aufgrund des Autorisierungscodes auf der URL und ist unabhängig von der Weiterleitung oder Nicht-Weiterleitung gültig.
1570
-
1571
- </details>
1572
-
1573
- ---
1574
-
1575
- ## 🛠️
1576
-
1577
- <details>
1578
- <summary><b>Klicken Sie hier, um die Tech-Stack-Details zu erweitern</b></summary>
1579
-
1580
- - **Laufzeit**: Node.js 18–22 LTS (⚠️ Node.js 24+ wird **nicht unterstützt** – native Binärdateien von `better-sqlite3` sind inkompatibel)
1581
- - **Sprache**: TypeScript 5.9 – **100 % TypeScript** für `src/` und `open-sse/` (null `any` in Kernmodulen seit Version 2.0)
1582
- - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
1583
- - **Datenbank**: LowDB (JSON) + SQLite (Domänenstatus + Proxy-Protokolle + MCP-Prüfung + Routing-Entscheidungen)
1584
- - **Schemas**: Zod (MCP-Tool-I/O-Validierung, API-Verträge)
1585
- - **Protokolle**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
1586
- - **Streaming**: Vom Server gesendete Ereignisse (SSE)
1587
- - **Auth**: OAuth 2.0 (PKCE) + JWT + API-Schlüssel + MCP-bezogene Autorisierung
1588
- - **Testen**: Node.js-Testläufer + Vitest (über 900 Tests einschließlich Einheit, Integration, E2E)- **CI/CD**: GitHub-Aktionen (automatische NPM-Veröffentlichung + Docker Hub bei Veröffentlichung)
1589
- - **Website**: [omniroute.online](https://omniroute.online)
1590
- - **Paket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1591
- - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1592
- - **Resilienz**: Leistungsschalter, exponentielles Backoff, Anti-Donner-Herde, TLS-Spoofing, automatische Kombinations-Selbstheilung
1593
-
1594
- </details>
1595
-
1596
- ---
1597
-
1598
- ## 📖 Dokumentation
1599
-
1600
- | Dokument | Beschreibung |
1601
- | ------------------------------------------------ | ------------------------------------------------------------------ |
1602
- | [Benutzerhandbuch](docs/USER_GUIDE.md) | Anbieter, Kombinationen, CLI-Integration, Bereitstellung |
1603
- | [API-Referenz](docs/API_REFERENCE.md) | Alle Endpunkte mit Beispielen |
1604
- | [MCP-Server](open-sse/mcp-server/README.md) | 16 MCP-Tools, IDE-Konfigurationen, Python/TS/Go-Clients |
1605
- | [A2A-Server](src/lib/a2a/README.md) | JSON-RPC 2.0-Protokoll, Fähigkeiten, Streaming, Aufgabenverwaltung |
1606
- | [Auto-Combo-Engine](docs/auto-combo.md) | 6-Faktor-Bewertung, Moduspakete, Selbstheilung |
1607
- | [Fehlerbehebung](docs/TROUBLESHOOTING.md) | Häufige Probleme und Lösungen |
1608
- | [Architektur](docs/ARCHITECTURE.md) | Systemarchitektur und Interna |
1609
- | [Beitrag](CONTRIBUTING.md) | Entwicklungsaufbau und Richtlinien |
1610
- | [OpenAPI-Spezifikation](docs/openapi.yaml) | OpenAPI 3.0-Spezifikation |
1611
- | [Sicherheitsrichtlinie](SECURITY.md) | Schwachstellenmeldung und Sicherheitspraktiken |
1612
- | [VM-Bereitstellung](docs/VM_DEPLOYMENT_GUIDE.md) | Vollständige Anleitung: VM + Nginx + Cloudflare-Setup |
1613
- | [Features-Galerie](docs/FEATURES.md) | Visuelle Dashboard-Tour mit Screenshots |
1614
- | [Release-Checkliste](docs/RELEASE_CHECKLIST.md) | Validierungsschritte vor der Veröffentlichung |
1615
-
1616
- ---
1617
-
1618
- ## 🗺️
1619
-
1620
- Für OmniRoute sind **210+ Funktionen** in mehreren Entwicklungsphasen geplant. Hier sind die Schlüsselbereiche:
1621
-
1622
- | Kategorie | Geplante Funktionen | Höhepunkte |
1623
- | ------------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------ |
1624
- | 🧠 **Routing & Intelligenz** | 25+ | Routing mit der niedrigsten Latenz, Tag-basiertes Routing, Quoten-Preflight, P2C-Kontoauswahl |
1625
- | 🔒 **Sicherheit & Compliance** | 20+ | SSRF-Härtung, Credential-Cloaking, Ratenbegrenzung pro Endpunkt, Verwaltungsschlüssel-Scoping |
1626
- | 📊 **Beobachtbarkeit** | 15+ | OpenTelemetry-Integration, Echtzeit-Kontingentüberwachung, Kostenverfolgung pro Modell |
1627
- | 🔄 **Anbieterintegrationen** | 20+ | Dynamische Modellregistrierung, Anbieter-Abklingzeiten, Multi-Account-Codex, Copilot-Kontingentanalyse |
1628
- | ⚡ **Leistung** | 15+ | Duale Cache-Schicht, Prompt-Cache, Antwort-Cache, Streaming-Keepalive, Batch-API |
1629
- | 🌐 **Ökosystem** | 10+ | WebSocket-API, Hot-Reload der Konfiguration, verteilter Konfigurationsspeicher, kommerzieller Modus |
1630
-
1631
- ### 🔜 Bald erhältlich- 🔗 **OpenCode-Integration** – Native Anbieterunterstützung für die OpenCode AI-Codierungs-IDE
1632
-
1633
- - 🔗 **TRAE-Integration** – Volle Unterstützung für das TRAE AI-Entwicklungsframework
1634
- - 📦 **Batch-API** – Asynchrone Stapelverarbeitung für Massenanfragen
1635
- - 🎯 **Tag-basiertes Routing** – Leiten Sie Anfragen basierend auf benutzerdefinierten Tags und Metadaten weiter
1636
- - 💰 **Niedrigste Kostenstrategie** – Wählen Sie automatisch den günstigsten verfügbaren Anbieter aus
1637
-
1638
- > 📝 Vollständige Funktionsspezifikationen verfügbar in [`docs/new-features/`](docs/new-features/) (217 detaillierte Spezifikationen)
1639
-
1640
- ---
1641
-
1642
- ## 👥 Mitwirkende
1643
-
1644
- [![Mitwirkende](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
1645
-
1646
- ### So leisten Sie einen Beitrag
1647
-
1648
- 1. Forken Sie das Repository
1649
- 2. Erstellen Sie Ihren Feature-Zweig (`git checkout -b feature/amazing-feature`)
1650
- 3. Übernehmen Sie Ihre Änderungen (`git commit -m 'Add amazing feature'`)
1651
- 4. Push zum Zweig (`git push origin feature/amazing-feature`)
1652
- 5. Öffnen Sie eine Pull-Anfrage
1653
-
1654
- Detaillierte Richtlinien finden Sie unter [CONTRIBUTING.md](CONTRIBUTING.md).
1655
-
1656
- ### Veröffentlichung einer neuen Version
1657
-
1658
- ```bash
1659
- # Create a release — npm publish happens automatically
1660
- gh release create v2.0.0 --title "v2.0.0" --generate-notes
1661
- ```
1662
-
1663
- ---
1664
-
1665
- ## 📊 Sterngeschichte
1666
-
1667
- <a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
1668
- <picture>
1669
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
1670
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1671
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1672
- </picture>
1673
- </a>
1674
-
1675
- ---
1676
-
1677
- ## 🙏 Danksagungen
1678
-
1679
- Besonderer Dank geht an **[9router](https://github.com/decolua/9router)** von **[decolua](https://github.com/decolua)** – das ursprüngliche Projekt, das diesen Fork inspiriert hat. OmniRoute baut auf dieser unglaublichen Grundlage mit zusätzlichen Funktionen, multimodalen APIs und einer vollständigen Neufassung von TypeScript auf.
1680
-
1681
- Besonderer Dank geht an **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** – die ursprüngliche Go-Implementierung, die diese JavaScript-Portierung inspiriert hat.
1682
-
1683
- ---
1684
-
1685
- ## 📄 Lizenz
1686
-
1687
- MIT-Lizenz – Einzelheiten finden Sie unter [LIZENZ](LICENSE).
1688
-
1689
- ---
1690
-
1691
- <div align="center">
1692
- <sub>BErstellt mit ❤️ für Entwickler, die rund um die Uhr programmieren</sub>
1693
- <br/>
1694
- <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1695
- </div>
1696
- <!-- GitHub Discussions enabled for community Q&A -->