omniroute 1.0.2 → 1.0.3
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.
- package/README.de.md +4 -4
- package/README.es.md +4 -4
- package/README.fr.md +4 -4
- package/README.it.md +4 -4
- package/README.md +17 -15
- package/README.pt-BR.md +4 -4
- package/README.ru.md +4 -4
- package/README.zh-CN.md +4 -4
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +33 -31
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +27 -3
- package/app/.next/routes-manifest.json +12 -0
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -0
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route.js +1 -0
- package/app/.next/server/app/api/logs/console/route.js.nft.json +1 -0
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.html +2 -2
- package/app/.next/server/app/dashboard/analytics.rsc +5 -5
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/audit-log.html +1 -1
- package/app/.next/server/app/dashboard/audit-log.rsc +4 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.html +1 -1
- package/app/.next/server/app/dashboard/costs.rsc +5 -5
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.html +1 -1
- package/app/.next/server/app/dashboard/health.rsc +5 -5
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.html +2 -2
- package/app/.next/server/app/dashboard/limits.rsc +5 -5
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/logs.html +1 -0
- package/app/.next/server/app/dashboard/logs.meta +17 -0
- package/app/.next/server/app/dashboard/logs.rsc +25 -0
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +9 -0
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +4 -0
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +25 -0
- package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +10 -0
- package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/onboarding.html +1 -1
- package/app/.next/server/app/dashboard/onboarding.rsc +4 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +2 -2
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +2 -2
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.html +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.html +2 -2
- package/app/.next/server/app/dashboard/settings.rsc +5 -5
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.html +2 -2
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/docs/page.js +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs.html +1 -1
- package/app/.next/server/app/docs.rsc +3 -3
- package/app/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden.html +1 -1
- package/app/.next/server/app/forbidden.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/forbidden.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password.html +1 -1
- package/app/.next/server/app/forgot-password.rsc +4 -4
- package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy.html +1 -1
- package/app/.next/server/app/privacy.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms.html +1 -1
- package/app/.next/server/app/terms.rsc +3 -3
- package/app/.next/server/app/terms.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
- package/app/.next/server/app-paths-manifest.json +33 -31
- package/app/.next/server/chunks/2180.js +258 -0
- package/app/.next/server/chunks/2767.js +1 -1
- package/app/.next/server/chunks/2852.js +2 -0
- package/app/.next/server/chunks/73.js +1 -1
- package/app/.next/server/chunks/9824.js +1 -1
- package/app/.next/server/chunks/9979.js +1 -1
- package/app/.next/server/instrumentation.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/PyPKu8KUmFFVZNhlykJuq/_buildManifest.js +1 -0
- package/app/.next/static/chunks/{5846-69e259486db2f6f8.js → 5846-cd6a545a34f64728.js} +1 -1
- package/app/.next/static/chunks/993-7146218952a45b4b.js +21 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-88e667cb7ae99420.js +1 -0
- package/app/.next/static/chunks/app/{_not-found/page-2e6b2c37e502d893.js → (dashboard)/dashboard/profile/page-58a4e7114d200844.js} +1 -1
- package/app/.next/static/chunks/app/{api/auth/login/route-2e6b2c37e502d893.js → _global-error/page-58a4e7114d200844.js} +1 -1
- package/app/.next/static/chunks/app/{(dashboard)/dashboard/profile/page-2e6b2c37e502d893.js → _not-found/page-58a4e7114d200844.js} +1 -1
- package/app/.next/static/chunks/app/{_global-error/page-2e6b2c37e502d893.js → api/auth/login/route-58a4e7114d200844.js} +1 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cache/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cache/stats/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/status/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/combos/metrics/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/combos/test/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/export/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/exportAll/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/import/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/evals/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/fallback/chains/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/logs/console/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/monitoring/health/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/policies/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/defaults/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/provider-metrics/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/provider-models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limit/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limits/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/reset/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/restart/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/sessions/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/storage/health/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/sync/cloud/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/sync/initialize/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/telemetry/summary/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/token-health/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/detect/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/history/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/analytics/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/budget/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/moderations/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/rerank/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/app/page-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-58a4e7114d200844.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-58a4e7114d200844.js +1 -0
- package/app/.next/static/css/c5b80d2d58d2e417.css +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/993-5102e3fd1db64935.js +0 -21
- package/app/.next/static/chunks/app/api/auth/logout/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cache/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cache/stats/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/status/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/combos/metrics/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/combos/test/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/export/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/exportAll/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/import/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/evals/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/fallback/chains/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/models/catalog/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/monitoring/health/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/policies/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/defaults/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/provider-metrics/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/provider-models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limit/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limits/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/reset/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/restart/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/sessions/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/storage/health/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/sync/cloud/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/sync/initialize/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/telemetry/summary/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/token-health/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/detect/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/history/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/analytics/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/budget/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/moderations/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/rerank/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/app/page-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2e6b2c37e502d893.js +0 -1
- package/app/.next/static/css/039e32048ea8e51e.css +0 -1
- package/app/.next/static/kMztjIo6CDmStqcKcXLeh/_buildManifest.js +0 -1
- /package/app/.next/static/{kMztjIo6CDmStqcKcXLeh → PyPKu8KUmFFVZNhlykJuq}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--kMztjIo6CDmStqcKcXLeh--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/039e32048ea8e51e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/9751-3a35163d337d54ea.js" async=""></script><script src="/_next/static/chunks/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/1149-fefe7f95f0e9842f.js" async=""></script><script src="/_next/static/chunks/5846-69e259486db2f6f8.js" async=""></script><script src="/_next/static/chunks/993-5102e3fd1db64935.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js" async=""></script><script src="/_next/static/chunks/app/error-0d59fc4efafbc38c.js" async=""></script><script src="/_next/static/chunks/app/not-found-38123f3e1e5abc33.js" async=""></script><script src="/_next/static/chunks/app/docs/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-41eef2a698918fc1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>OmniRoute — AI Gateway for Multi-Provider LLMs</title><meta name="description" content="OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg">Skip to content</a><div class="min-h-screen bg-bg text-text-main"><div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8"><header class="rounded-2xl border border-border bg-bg-subtle p-6 md:p-8"><div class="flex flex-col gap-4 md:flex-row md:items-center md:justify-between"><div><p class="text-xs uppercase tracking-wider text-text-muted">Documentation — v<!-- -->1.0.2</p><h1 class="text-3xl md:text-4xl font-bold mt-1">OmniRoute<!-- --> Docs</h1><p class="text-sm md:text-base text-text-muted mt-2 max-w-3xl">AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor, and 20+ more providers.</p></div><div class="flex flex-wrap gap-2"><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard">Open Dashboard</a><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/endpoint">Endpoint Page</a><a href="https://github.com/diegosouzapw/OmniRoute" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1">GitHub <span class="material-symbols-outlined text-[14px]">open_in_new</span></a><a href="https://github.com/diegosouzapw/OmniRoute/issues" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors">Report Issue</a></div></div></header><nav class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-sm font-semibold uppercase tracking-wider text-text-muted mb-3">On this page</h2><div class="grid grid-cols-2 md:grid-cols-4 gap-2 text-sm"><a href="#quick-start" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Quick Start</a><a href="#features" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Features</a><a href="#supported-providers" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Providers</a><a href="#use-cases" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Use Cases</a><a href="#client-compatibility" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Client Compatibility</a><a href="#api-reference" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>API Reference</a><a href="#model-prefixes" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Model Prefixes</a><a href="#troubleshooting" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Troubleshooting</a></div></nav><section id="quick-start" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Quick Start</h2><ol class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">1. Install & run</span><p class="text-text-muted mt-1"><code class="px-1 rounded bg-bg-subtle">npx omniroute</code> or clone from GitHub and run <code class="px-1 rounded bg-bg-subtle">npm start</code>.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">2. Create API key</span><p class="text-text-muted mt-1">Go to Endpoint → Registered Keys. Generate one key per environment.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">3. Connect providers</span><p class="text-text-muted mt-1">Add provider accounts via OAuth login, API key, or free-tier auto-connect.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">4. Set client base URL</span><p class="text-text-muted mt-1">Point your IDE or API client to<!-- --> <code class="px-1 rounded bg-bg-subtle">https://<host>/v1</code>. Use provider prefix, e.g.<!-- --> <code class="px-1 rounded bg-bg-subtle">gh/gpt-5.1-codex</code>.</p></li></ol></section><section id="features" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Features</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3"><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">hub</span><div><h3 class="font-semibold text-sm">Multi-Provider Routing</h3><p class="text-sm text-text-muted mt-1">Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">layers</span><div><h3 class="font-semibold text-sm">Combos & Balancing</h3><p class="text-sm text-text-muted mt-1">Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">bar_chart</span><div><h3 class="font-semibold text-sm">Usage & Cost Tracking</h3><p class="text-sm text-text-muted mt-1">Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">analytics</span><div><h3 class="font-semibold text-sm">Analytics Dashboard</h3><p class="text-sm text-text-muted mt-1">Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">health_and_safety</span><div><h3 class="font-semibold text-sm">Health Monitoring</h3><p class="text-sm text-text-muted mt-1">Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">terminal</span><div><h3 class="font-semibold text-sm">CLI Tools</h3><p class="text-sm text-text-muted mt-1">Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">shield</span><div><h3 class="font-semibold text-sm">Security & Policies</h3><p class="text-sm text-text-muted mt-1">API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">cloud_sync</span><div><h3 class="font-semibold text-sm">Cloud Sync</h3><p class="text-sm text-text-muted mt-1">Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.</p></div></article></div></section><section id="supported-providers" class="rounded-2xl border border-border bg-bg-subtle p-6"><div class="flex items-center justify-between mb-4"><div><h2 class="text-xl font-semibold">Supported Providers</h2><p class="text-sm text-text-muted mt-1">36<!-- --> <!-- -->providers across three connection types.</p></div><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/providers">Manage Providers</a></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-3"><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-green-500"></span><h3 class="font-semibold">Free Tier</h3><span class="text-xs text-text-muted ml-auto">4<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">iFlow AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">if<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Qwen Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">qw<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Gemini CLI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kiro AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kr<!-- -->/</code></div></div></div><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-blue-500"></span><h3 class="font-semibold">OAuth</h3><span class="text-xs text-text-muted ml-auto">8<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Claude Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Antigravity</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">ag<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenAI Codex</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cx<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">GitHub Copilot</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gh<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cursor IDE</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cu<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kimi Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kmc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kilo Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cline</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cl<!-- -->/</code></div></div></div><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-amber-500"></span><h3 class="font-semibold">API Key</h3><span class="text-xs text-text-muted ml-auto">24<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenRouter</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">openrouter<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">GLM Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">glm<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kimi</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kimi<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Minimax Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">minimax<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Minimax (China)</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">minimax-cn<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenAI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">openai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Anthropic</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">anthropic<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Gemini</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gemini<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">DeepSeek</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">ds<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Groq</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">groq<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">xAI (Grok)</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">xai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Mistral</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">mistral<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Perplexity</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">pplx<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Together AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">together<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Fireworks AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">fireworks<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cerebras</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cerebras<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cohere</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cohere<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">NVIDIA NIM</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nvidia<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Nebius AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nebius<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">SiliconFlow</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">siliconflow<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Hyperbolic</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">hyp<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Deepgram</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">dg<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">AssemblyAI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">aai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">NanoBanana</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nb<!-- -->/</code></div></div></div></div></section><section id="use-cases" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Common Use Cases</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-3"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Single endpoint for many providers</h3><p class="text-sm text-text-muted mt-2">Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Fallback and model switching with combos</h3><p class="text-sm text-text-muted mt-2">Create combo models in Dashboard and keep client config stable while providers rotate internally.</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Usage, cost and debug visibility</h3><p class="text-sm text-text-muted mt-2">Track tokens/cost by provider, account and API key in Usage + Analytics tabs.</p></article></div></section><section id="client-compatibility" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Client Compatibility</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cherry Studio</h3><ul class="mt-2 text-text-muted space-y-1"><li>Base URL:<!-- --> <code class="px-1 rounded bg-bg-subtle">https://<host>/v1</code></li><li>Chat endpoint:<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code></li><li>Model recommendation: explicit prefix (<code class="px-1 rounded bg-bg-subtle">gh/...</code>,<!-- --> <code class="px-1 rounded bg-bg-subtle">cc/...</code>)</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Codex / GitHub Copilot Models</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use model IDs with <code class="px-1 rounded bg-bg-subtle">gh/</code> prefix.</li><li>Codex-family models auto-route to<!-- --> <code class="px-1 rounded bg-bg-subtle">/responses</code>.</li><li>Non-Codex models continue on<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code>.</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cursor IDE</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use <code class="px-1 rounded bg-bg-subtle">cu/</code> prefix for Cursor models.</li><li>OAuth connection — login from the Providers page.</li><li>Supports both chat and responses endpoints.</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Claude Code / Antigravity</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use <code class="px-1 rounded bg-bg-subtle">cc/</code> (Claude) or<!-- --> <code class="px-1 rounded bg-bg-subtle">ag/</code> (Antigravity) prefix.</li><li>OAuth connection with automatic token refresh.</li><li>Full streaming support for all models.</li></ul></article></div></section><section id="api-reference" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">API Reference</h2><div class="mt-4 overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Method</th><th class="text-left py-2 pr-4">Path</th><th class="text-left py-2">Notes</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/chat/completions</td><td class="py-2 text-text-muted">OpenAI-compatible chat endpoint (default).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/responses</td><td class="py-2 text-text-muted">Responses API endpoint (Codex, o-series).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">GET</code></td><td class="py-2 pr-4 font-mono">/v1/models</td><td class="py-2 text-text-muted">Model catalog for all connected providers.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/audio/transcriptions</td><td class="py-2 text-text-muted">Audio transcription (Deepgram, AssemblyAI).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/images/generations</td><td class="py-2 text-text-muted">Image generation (NanoBanana).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/chat/completions</td><td class="py-2 text-text-muted">Rewrite helper for clients without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/responses</td><td class="py-2 text-text-muted">Rewrite helper for Responses without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">GET</code></td><td class="py-2 pr-4 font-mono">/models</td><td class="py-2 text-text-muted">Rewrite helper for model discovery without /v1.</td></tr></tbody></table></div></section><section id="model-prefixes" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Model Prefixes</h2><p class="text-sm text-text-muted mt-2 mb-4">Use the provider prefix before the model name to route to a specific provider. Example:<!-- --> <code class="px-1 rounded bg-bg">gh/gpt-5.1-codex</code> routes to GitHub Copilot.</p><div class="overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Prefix</th><th class="text-left py-2 pr-4">Provider</th><th class="text-left py-2">Type</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">if<!-- -->/</code></td><td class="py-2 pr-4">iFlow AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">qw<!-- -->/</code></td><td class="py-2 pr-4">Qwen Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gc<!-- -->/</code></td><td class="py-2 pr-4">Gemini CLI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kr<!-- -->/</code></td><td class="py-2 pr-4">Kiro AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cc<!-- -->/</code></td><td class="py-2 pr-4">Claude Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">ag<!-- -->/</code></td><td class="py-2 pr-4">Antigravity</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cx<!-- -->/</code></td><td class="py-2 pr-4">OpenAI Codex</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gh<!-- -->/</code></td><td class="py-2 pr-4">GitHub Copilot</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cu<!-- -->/</code></td><td class="py-2 pr-4">Cursor IDE</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kmc<!-- -->/</code></td><td class="py-2 pr-4">Kimi Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kc<!-- -->/</code></td><td class="py-2 pr-4">Kilo Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cl<!-- -->/</code></td><td class="py-2 pr-4">Cline</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">openrouter<!-- -->/</code></td><td class="py-2 pr-4">OpenRouter</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">glm<!-- -->/</code></td><td class="py-2 pr-4">GLM Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kimi<!-- -->/</code></td><td class="py-2 pr-4">Kimi</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">minimax<!-- -->/</code></td><td class="py-2 pr-4">Minimax Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">minimax-cn<!-- -->/</code></td><td class="py-2 pr-4">Minimax (China)</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">openai<!-- -->/</code></td><td class="py-2 pr-4">OpenAI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">anthropic<!-- -->/</code></td><td class="py-2 pr-4">Anthropic</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gemini<!-- -->/</code></td><td class="py-2 pr-4">Gemini</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">ds<!-- -->/</code></td><td class="py-2 pr-4">DeepSeek</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">groq<!-- -->/</code></td><td class="py-2 pr-4">Groq</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">xai<!-- -->/</code></td><td class="py-2 pr-4">xAI (Grok)</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">mistral<!-- -->/</code></td><td class="py-2 pr-4">Mistral</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">pplx<!-- -->/</code></td><td class="py-2 pr-4">Perplexity</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">together<!-- -->/</code></td><td class="py-2 pr-4">Together AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">fireworks<!-- -->/</code></td><td class="py-2 pr-4">Fireworks AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cerebras<!-- -->/</code></td><td class="py-2 pr-4">Cerebras</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cohere<!-- -->/</code></td><td class="py-2 pr-4">Cohere</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nvidia<!-- -->/</code></td><td class="py-2 pr-4">NVIDIA NIM</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nebius<!-- -->/</code></td><td class="py-2 pr-4">Nebius AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">siliconflow<!-- -->/</code></td><td class="py-2 pr-4">SiliconFlow</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">hyp<!-- -->/</code></td><td class="py-2 pr-4">Hyperbolic</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">dg<!-- -->/</code></td><td class="py-2 pr-4">Deepgram</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">aai<!-- -->/</code></td><td class="py-2 pr-4">AssemblyAI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nb<!-- -->/</code></td><td class="py-2 pr-4">NanoBanana</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr></tbody></table></div></section><section id="troubleshooting" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Troubleshooting</h2><ul class="mt-4 list-disc list-inside text-sm text-text-muted space-y-2"><li>If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).</li><li>If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.</li><li>For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.</li><li>Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.</li><li>If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.</li><li>For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.</li></ul></section></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[55846,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"1149\",\"static/chunks/1149-fefe7f95f0e9842f.js\",\"5846\",\"static/chunks/5846-69e259486db2f6f8.js\",\"993\",\"static/chunks/993-5102e3fd1db64935.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[17267,[\"8039\",\"static/chunks/app/error-0d59fc4efafbc38c.js\"],\"default\"]\n5:I[74581,[],\"\"]\n6:I[37145,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-38123f3e1e5abc33.js\"],\"default\"]\n7:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9040\",\"static/chunks/app/docs/page-8f74097544a61b9d.js\"],\"\"]\n1a:I[26719,[\"4219\",\"static/chunks/app/global-error-41eef2a698918fc1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/039e32048ea8e51e.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"kMztjIo6CDmStqcKcXLeh\",\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/039e32048ea8e51e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg\",\"children\":\"Skip to content\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs uppercase tracking-wider text-text-muted\",\"children\":[\"Documentation — v\",\"1.0.2\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl md:text-4xl font-bold mt-1\",\"children\":[\"OmniRoute\",\" Docs\"]}],[\"$\",\"p\",null,{\"className\":\"text-sm md:text-base text-text-muted mt-2 max-w-3xl\",\"children\":\"AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor, and 20+ more providers.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/dashboard\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Open Dashboard\"}],[\"$\",\"$L7\",null,{\"href\":\"/dashboard/endpoint\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Endpoint Page\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1\",\"children\":[\"GitHub \",[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px]\",\"children\":\"open_in_new\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute/issues\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Report Issue\"}]]}]]}]}],[\"$\",\"nav\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-text-muted mb-3\",\"children\":\"On this page\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 md:grid-cols-4 gap-2 text-sm\",\"children\":[[\"$\",\"a\",\"#quick-start\",{\"href\":\"#quick-start\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[\"$L8\",\"Quick Start\"]}],\"$L9\",\"$La\",\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\"]}]]}],\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]}],null,\"$L18\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$L19\",false]],\"m\":\"$undefined\",\"G\":[\"$1a\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"3e:I[90484,[],\"OutletBoundary\"]\n3f:\"$Sreact.suspense\"\n41:I[90484,[],\"ViewportBoundary\"]\n43:I[90484,[],\"MetadataBoundary\"]\n8:[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}]\n9:[\"$\",\"a\",\"#features\",{\"href\":\"#features\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Features\"]}]\na:[\"$\",\"a\",\"#supported-providers\",{\"href\":\"#supported-providers\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Providers\"]}]\nb:[\"$\",\"a\",\"#use-cases\",{\"href\":\"#use-cases\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Use Cases\"]}]\nc:[\"$\",\"a\",\"#client-compatibility\",{\"href\":\"#client-compatibility\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Client Compatibility\"]}]\nd:[\"$\",\"a\",\"#api-reference\",{\"href\":\"#api-reference\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"API Reference\"]}]\ne:[\"$\",\"a\",\"#model-prefixes\",{\"href\":\"#model-prefixes\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Model Prefixes\"]}]\nf:[\"$\",\"a\",\"#troubleshooting\",{\"href\":\"#troubleshooting\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Troubleshooting\"]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"section\",null,{\"id\":\"quick-start\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Quick Start\"}],[\"$\",\"ol\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"1. Install \u0026 run\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"npx omniroute\"}],\" or clone from GitHub and run \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"npm start\"}],\".\"]}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"2. Create API key\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Go to Endpoint → Registered Keys. Generate one key per environment.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"3. Connect providers\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Add provider accounts via OAuth login, API key, or free-tier auto-connect.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"4. Set client base URL\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Point your IDE or API client to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}],\". Use provider prefix, e.g.\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/gpt-5.1-codex\"}],\".\"]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"section\",null,{\"id\":\"features\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Features\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3\",\"children\":[[\"$\",\"article\",\"Multi-Provider Routing\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"hub\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Multi-Provider Routing\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.\"}]]}]]}],[\"$\",\"article\",\"Combos \u0026 Balancing\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"layers\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Combos \u0026 Balancing\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.\"}]]}]]}],[\"$\",\"article\",\"Usage \u0026 Cost Tracking\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"bar_chart\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Usage \u0026 Cost Tracking\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.\"}]]}]]}],[\"$\",\"article\",\"Analytics Dashboard\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"analytics\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Analytics Dashboard\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.\"}]]}]]}],[\"$\",\"article\",\"Health Monitoring\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"health_and_safety\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Health Monitoring\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.\"}]]}]]}],[\"$\",\"article\",\"CLI Tools\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"terminal\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"CLI Tools\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.\"}]]}]]}],[\"$\",\"article\",\"Security \u0026 Policies\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"shield\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Security \u0026 Policies\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.\"}]]}]]}],\"$L1b\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"section\",null,{\"id\":\"supported-providers\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between mb-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Supported Providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":[36,\" \",\"providers across three connection types.\"]}]]}],[\"$\",\"$L7\",null,{\"href\":\"/dashboard/providers\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Manage Providers\"}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-3 gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-green-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Free Tier\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[4,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"iflow\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"iFlow AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"if\",\"/\"]}]]}],[\"$\",\"div\",\"qwen\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Qwen Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"qw\",\"/\"]}]]}],[\"$\",\"div\",\"gemini-cli\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Gemini CLI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gc\",\"/\"]}]]}],[\"$\",\"div\",\"kiro\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kiro AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kr\",\"/\"]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-blue-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"OAuth\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[8,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"claude\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Claude Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cc\",\"/\"]}]]}],[\"$\",\"div\",\"antigravity\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Antigravity\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"ag\",\"/\"]}]]}],[\"$\",\"div\",\"codex\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenAI Codex\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cx\",\"/\"]}]]}],[\"$\",\"div\",\"github\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"GitHub Copilot\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gh\",\"/\"]}]]}],\"$L1c\",\"$L1d\",\"$L1e\",\"$L1f\"]}]]}],\"$L20\"]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"id\":\"use-cases\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Common Use Cases\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"article\",\"Single endpoint for many providers\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Single endpoint for many providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).\"}]]}],[\"$\",\"article\",\"Fallback and model switching with combos\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Fallback and model switching with combos\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Create combo models in Dashboard and keep client config stable while providers rotate internally.\"}]]}],[\"$\",\"article\",\"Usage, cost and debug visibility\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Usage, cost and debug visibility\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Track tokens/cost by provider, account and API key in Usage + Analytics tabs.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"id\":\"client-compatibility\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Client Compatibility\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cherry Studio\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Base URL:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Chat endpoint:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Model recommendation: explicit prefix (\",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/...\"}],\",\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/...\"}],\")\"]}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Codex / GitHub Copilot Models\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use model IDs with \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/\"}],\" prefix.\"]}],[\"$\",\"li\",null,{\"children\":[\"Codex-family models auto-route to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/responses\"}],\".\"]}],[\"$\",\"li\",null,{\"children\":[\"Non-Codex models continue on\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}],\".\"]}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cursor IDE\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cu/\"}],\" prefix for Cursor models.\"]}],[\"$\",\"li\",null,{\"children\":\"OAuth connection — login from the Providers page.\"}],[\"$\",\"li\",null,{\"children\":\"Supports both chat and responses endpoints.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Claude Code / Antigravity\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/\"}],\" (Claude) or\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"ag/\"}],\" (Antigravity) prefix.\"]}],[\"$\",\"li\",null,{\"children\":\"OAuth connection with automatic token refresh.\"}],[\"$\",\"li\",null,{\"children\":\"Full streaming support for all models.\"}]]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"id\":\"api-reference\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"API Reference\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Method\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Path\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Notes\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"/v1/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"OpenAI-compatible chat endpoint (default).\"}]]}],[\"$\",\"tr\",\"/v1/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Responses API endpoint (Codex, o-series).\"}]]}],[\"$\",\"tr\",\"/v1/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"GET\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Model catalog for all connected providers.\"}]]}],[\"$\",\"tr\",\"/v1/audio/transcriptions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/audio/transcriptions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Audio transcription (Deepgram, AssemblyAI).\"}]]}],[\"$\",\"tr\",\"/v1/images/generations\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/images/generations\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Image generation (NanoBanana).\"}]]}],[\"$\",\"tr\",\"/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for clients without /v1.\"}]]}],[\"$\",\"tr\",\"/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for Responses without /v1.\"}]]}],[\"$\",\"tr\",\"/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"GET\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for model discovery without /v1.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"id\":\"model-prefixes\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Model Prefixes\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2 mb-4\",\"children\":[\"Use the provider prefix before the model name to route to a specific provider. Example:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg\",\"children\":\"gh/gpt-5.1-codex\"}],\" routes to GitHub Copilot.\"]}],[\"$\",\"div\",null,{\"className\":\"overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Prefix\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Provider\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Type\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"iflow\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"if\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"iFlow AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"qwen\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"qw\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Qwen Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"gemini-cli\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Gemini CLI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"kiro\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kr\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kiro AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"claude\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Claude Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],[\"$\",\"tr\",\"antigravity\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"ag\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Antigravity\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],[\"$\",\"tr\",\"codex\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cx\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenAI Codex\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],\"$L21\",\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\"]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"id\":\"troubleshooting\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Troubleshooting\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 list-disc list-inside text-sm text-text-muted space-y-2\",\"children\":[[\"$\",\"li\",\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\",{\"children\":\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\"}],[\"$\",\"li\",\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\",{\"children\":\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\"}],[\"$\",\"li\",\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\",{\"children\":\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\"}],[\"$\",\"li\",\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\",{\"children\":\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\"}],[\"$\",\"li\",\"If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.\",{\"children\":\"If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.\"}],[\"$\",\"li\",\"For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.\",{\"children\":\"For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"$L3e\",null,{\"children\":[\"$\",\"$3f\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@40\"}]}]\n19:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L41\",null,{\"children\":\"$L42\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L43\",null,{\"children\":[\"$\",\"$3f\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L44\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"article\",\"Cloud Sync\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"cloud_sync\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Cloud Sync\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.\"}]]}]]}]\n1c:[\"$\",\"div\",\"cursor\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cursor IDE\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cu\",\"/\"]}]]}]\n1d:[\"$\",\"div\",\"kimi-coding\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kimi Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kmc\",\"/\"]}]]}]\n1e:[\"$\",\"div\",\"kilocode\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kilo Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kc\",\"/\"]}]]}]\n1f:[\"$\",\"div\",\"cline\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cline\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cl\",\"/\"]}]]}]\n"])</script><script>self.__next_f.push([1,"20:[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-amber-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"API Key\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[24,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"openrouter\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenRouter\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"openrouter\",\"/\"]}]]}],[\"$\",\"div\",\"glm\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"GLM Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"glm\",\"/\"]}]]}],[\"$\",\"div\",\"kimi\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kimi\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kimi\",\"/\"]}]]}],[\"$\",\"div\",\"minimax\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Minimax Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"minimax\",\"/\"]}]]}],[\"$\",\"div\",\"minimax-cn\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Minimax (China)\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"minimax-cn\",\"/\"]}]]}],[\"$\",\"div\",\"openai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenAI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"openai\",\"/\"]}]]}],[\"$\",\"div\",\"anthropic\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Anthropic\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"anthropic\",\"/\"]}]]}],[\"$\",\"div\",\"gemini\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Gemini\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gemini\",\"/\"]}]]}],[\"$\",\"div\",\"deepseek\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"DeepSeek\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"ds\",\"/\"]}]]}],[\"$\",\"div\",\"groq\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Groq\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"groq\",\"/\"]}]]}],[\"$\",\"div\",\"xai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"xAI (Grok)\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"xai\",\"/\"]}]]}],[\"$\",\"div\",\"mistral\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[\"$L45\",\"$L46\"]}],\"$L47\",\"$L48\",\"$L49\",\"$L4a\",\"$L4b\",\"$L4c\",\"$L4d\",\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\"]}]]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"tr\",\"github\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gh\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"GitHub Copilot\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n22:[\"$\",\"tr\",\"cursor\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cu\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cursor IDE\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n23:[\"$\",\"tr\",\"kimi-coding\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kmc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kimi Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n24:[\"$\",\"tr\",\"kilocode\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kilo Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n25:[\"$\",\"tr\",\"cline\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cl\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cline\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n26:[\"$\",\"tr\",\"openrouter\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"openrouter\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenRouter\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n27:[\"$\",\"tr\",\"glm\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"glm\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"GLM Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n28:[\"$\",\"tr\",\"kimi\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kimi\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kimi\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 r"])</script><script>self.__next_f.push([1,"ounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n29:[\"$\",\"tr\",\"minimax\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"minimax\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Minimax Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2a:[\"$\",\"tr\",\"minimax-cn\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"minimax-cn\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Minimax (China)\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2b:[\"$\",\"tr\",\"openai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"openai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenAI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2c:[\"$\",\"tr\",\"anthropic\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"anthropic\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Anthropic\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2d:[\"$\",\"tr\",\"gemini\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gemini\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Gemini\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2e:[\"$\",\"tr\",\"deepseek\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"ds\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"DeepSeek\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2f:[\"$\",\"tr\",\"groq\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"groq\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Groq\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n30:[\"$\",\"tr\",\"xai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"xai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"xAI (Grok)\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center"])</script><script>self.__next_f.push([1," gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n31:[\"$\",\"tr\",\"mistral\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"mistral\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Mistral\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n32:[\"$\",\"tr\",\"perplexity\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"pplx\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Perplexity\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n33:[\"$\",\"tr\",\"together\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"together\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Together AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n34:[\"$\",\"tr\",\"fireworks\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"fireworks\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Fireworks AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n35:[\"$\",\"tr\",\"cerebras\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cerebras\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cerebras\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n36:[\"$\",\"tr\",\"cohere\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cohere\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cohere\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n37:[\"$\",\"tr\",\"nvidia\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nvidia\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"NVIDIA NIM\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n38:[\"$\",\"tr\",\"nebius\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nebius\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Nebius AI\"}],[\""])</script><script>self.__next_f.push([1,"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n39:[\"$\",\"tr\",\"siliconflow\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"siliconflow\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"SiliconFlow\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3a:[\"$\",\"tr\",\"hyperbolic\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"hyp\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Hyperbolic\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3b:[\"$\",\"tr\",\"deepgram\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"dg\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Deepgram\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3c:[\"$\",\"tr\",\"assemblyai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"aai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"AssemblyAI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3d:[\"$\",\"tr\",\"nanobanana\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nb\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"NanoBanana\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n"])</script><script>self.__next_f.push([1,"45:[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Mistral\"}]\n46:[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"mistral\",\"/\"]}]\n47:[\"$\",\"div\",\"perplexity\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Perplexity\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"pplx\",\"/\"]}]]}]\n48:[\"$\",\"div\",\"together\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Together AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"together\",\"/\"]}]]}]\n49:[\"$\",\"div\",\"fireworks\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Fireworks AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"fireworks\",\"/\"]}]]}]\n4a:[\"$\",\"div\",\"cerebras\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cerebras\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cerebras\",\"/\"]}]]}]\n4b:[\"$\",\"div\",\"cohere\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cohere\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cohere\",\"/\"]}]]}]\n4c:[\"$\",\"div\",\"nvidia\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"NVIDIA NIM\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nvidia\",\"/\"]}]]}]\n4d:[\"$\",\"div\",\"nebius\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Nebius AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nebius\",\"/\"]}]]}]\n4e:[\"$\",\"div\",\"siliconflow\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"SiliconFlow\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"siliconflow\",\"/\"]}]]}]\n4f:[\"$\",\"div\",\"hyperbolic\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Hyperbolic\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"hyp\",\"/\"]}]]}]\n50:[\"$\",\"div\",\"deepgram\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Deepgram\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"dg\",\"/\"]}]]}]\n51:[\"$\",\"div\",\"assemblyai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"AssemblyAI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"aai\",\"/\"]}]]}]\n52:[\"$\",\"div\",\"nanobanana\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"NanoBanana\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nb\",\"/\"]}]]}]\n"])</script><script>self.__next_f.push([1,"42:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"53:I[86869,[],\"IconMark\"]\n40:null\n44:[[\"$\",\"title\",\"0\",{\"children\":\"OmniRoute — AI Gateway for Multi-Provider LLMs\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L53\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--PyPKu8KUmFFVZNhlykJuq--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c5b80d2d58d2e417.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/9751-3a35163d337d54ea.js" async=""></script><script src="/_next/static/chunks/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/1149-fefe7f95f0e9842f.js" async=""></script><script src="/_next/static/chunks/5846-cd6a545a34f64728.js" async=""></script><script src="/_next/static/chunks/993-7146218952a45b4b.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js" async=""></script><script src="/_next/static/chunks/app/error-0d59fc4efafbc38c.js" async=""></script><script src="/_next/static/chunks/app/not-found-38123f3e1e5abc33.js" async=""></script><script src="/_next/static/chunks/app/docs/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-41eef2a698918fc1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>OmniRoute — AI Gateway for Multi-Provider LLMs</title><meta name="description" content="OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg">Skip to content</a><div class="min-h-screen bg-bg text-text-main"><div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8"><header class="rounded-2xl border border-border bg-bg-subtle p-6 md:p-8"><div class="flex flex-col gap-4 md:flex-row md:items-center md:justify-between"><div><p class="text-xs uppercase tracking-wider text-text-muted">Documentation — v<!-- -->1.0.3</p><h1 class="text-3xl md:text-4xl font-bold mt-1">OmniRoute<!-- --> Docs</h1><p class="text-sm md:text-base text-text-muted mt-2 max-w-3xl">AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor, and 20+ more providers.</p></div><div class="flex flex-wrap gap-2"><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard">Open Dashboard</a><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/endpoint">Endpoint Page</a><a href="https://github.com/diegosouzapw/OmniRoute" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1">GitHub <span class="material-symbols-outlined text-[14px]">open_in_new</span></a><a href="https://github.com/diegosouzapw/OmniRoute/issues" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors">Report Issue</a></div></div></header><nav class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-sm font-semibold uppercase tracking-wider text-text-muted mb-3">On this page</h2><div class="grid grid-cols-2 md:grid-cols-4 gap-2 text-sm"><a href="#quick-start" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Quick Start</a><a href="#features" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Features</a><a href="#supported-providers" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Providers</a><a href="#use-cases" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Use Cases</a><a href="#client-compatibility" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Client Compatibility</a><a href="#api-reference" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>API Reference</a><a href="#model-prefixes" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Model Prefixes</a><a href="#troubleshooting" class="flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors"><span class="material-symbols-outlined text-[14px] text-text-muted">tag</span>Troubleshooting</a></div></nav><section id="quick-start" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Quick Start</h2><ol class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">1. Install & run</span><p class="text-text-muted mt-1"><code class="px-1 rounded bg-bg-subtle">npx omniroute</code> or clone from GitHub and run <code class="px-1 rounded bg-bg-subtle">npm start</code>.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">2. Create API key</span><p class="text-text-muted mt-1">Go to Endpoint → Registered Keys. Generate one key per environment.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">3. Connect providers</span><p class="text-text-muted mt-1">Add provider accounts via OAuth login, API key, or free-tier auto-connect.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">4. Set client base URL</span><p class="text-text-muted mt-1">Point your IDE or API client to<!-- --> <code class="px-1 rounded bg-bg-subtle">https://<host>/v1</code>. Use provider prefix, e.g.<!-- --> <code class="px-1 rounded bg-bg-subtle">gh/gpt-5.1-codex</code>.</p></li></ol></section><section id="features" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Features</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3"><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">hub</span><div><h3 class="font-semibold text-sm">Multi-Provider Routing</h3><p class="text-sm text-text-muted mt-1">Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">layers</span><div><h3 class="font-semibold text-sm">Combos & Balancing</h3><p class="text-sm text-text-muted mt-1">Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">bar_chart</span><div><h3 class="font-semibold text-sm">Usage & Cost Tracking</h3><p class="text-sm text-text-muted mt-1">Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">analytics</span><div><h3 class="font-semibold text-sm">Analytics Dashboard</h3><p class="text-sm text-text-muted mt-1">Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">health_and_safety</span><div><h3 class="font-semibold text-sm">Health Monitoring</h3><p class="text-sm text-text-muted mt-1">Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">terminal</span><div><h3 class="font-semibold text-sm">CLI Tools</h3><p class="text-sm text-text-muted mt-1">Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">shield</span><div><h3 class="font-semibold text-sm">Security & Policies</h3><p class="text-sm text-text-muted mt-1">API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.</p></div></article><article class="rounded-lg border border-border p-4 bg-bg flex gap-3"><span class="material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5">cloud_sync</span><div><h3 class="font-semibold text-sm">Cloud Sync</h3><p class="text-sm text-text-muted mt-1">Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.</p></div></article></div></section><section id="supported-providers" class="rounded-2xl border border-border bg-bg-subtle p-6"><div class="flex items-center justify-between mb-4"><div><h2 class="text-xl font-semibold">Supported Providers</h2><p class="text-sm text-text-muted mt-1">36<!-- --> <!-- -->providers across three connection types.</p></div><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/providers">Manage Providers</a></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-3"><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-green-500"></span><h3 class="font-semibold">Free Tier</h3><span class="text-xs text-text-muted ml-auto">4<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">iFlow AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">if<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Qwen Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">qw<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Gemini CLI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kiro AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kr<!-- -->/</code></div></div></div><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-blue-500"></span><h3 class="font-semibold">OAuth</h3><span class="text-xs text-text-muted ml-auto">8<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Claude Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Antigravity</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">ag<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenAI Codex</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cx<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">GitHub Copilot</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gh<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cursor IDE</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cu<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kimi Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kmc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kilo Code</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kc<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cline</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cl<!-- -->/</code></div></div></div><div class="rounded-lg border border-border bg-bg p-4"><div class="flex items-center gap-2 mb-3"><span class="size-2.5 rounded-full bg-amber-500"></span><h3 class="font-semibold">API Key</h3><span class="text-xs text-text-muted ml-auto">24<!-- --> providers</span></div><div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm"><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenRouter</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">openrouter<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">GLM Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">glm<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Kimi</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">kimi<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Minimax Coding</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">minimax<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Minimax (China)</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">minimax-cn<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">OpenAI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">openai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Anthropic</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">anthropic<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Gemini</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">gemini<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">DeepSeek</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">ds<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Groq</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">groq<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">xAI (Grok)</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">xai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Mistral</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">mistral<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Perplexity</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">pplx<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Together AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">together<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Fireworks AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">fireworks<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cerebras</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cerebras<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Cohere</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">cohere<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">NVIDIA NIM</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nvidia<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Nebius AI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nebius<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">SiliconFlow</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">siliconflow<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Hyperbolic</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">hyp<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">Deepgram</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">dg<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">AssemblyAI</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">aai<!-- -->/</code></div><div class="flex items-center justify-between py-1.5 border-b border-border/40 last:border-0"><span class="font-medium">NanoBanana</span><code class="text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle">nb<!-- -->/</code></div></div></div></div></section><section id="use-cases" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Common Use Cases</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-3"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Single endpoint for many providers</h3><p class="text-sm text-text-muted mt-2">Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Fallback and model switching with combos</h3><p class="text-sm text-text-muted mt-2">Create combo models in Dashboard and keep client config stable while providers rotate internally.</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Usage, cost and debug visibility</h3><p class="text-sm text-text-muted mt-2">Track tokens/cost by provider, account and API key in Usage + Analytics tabs.</p></article></div></section><section id="client-compatibility" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Client Compatibility</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cherry Studio</h3><ul class="mt-2 text-text-muted space-y-1"><li>Base URL:<!-- --> <code class="px-1 rounded bg-bg-subtle">https://<host>/v1</code></li><li>Chat endpoint:<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code></li><li>Model recommendation: explicit prefix (<code class="px-1 rounded bg-bg-subtle">gh/...</code>,<!-- --> <code class="px-1 rounded bg-bg-subtle">cc/...</code>)</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Codex / GitHub Copilot Models</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use model IDs with <code class="px-1 rounded bg-bg-subtle">gh/</code> prefix.</li><li>Codex-family models auto-route to<!-- --> <code class="px-1 rounded bg-bg-subtle">/responses</code>.</li><li>Non-Codex models continue on<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code>.</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cursor IDE</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use <code class="px-1 rounded bg-bg-subtle">cu/</code> prefix for Cursor models.</li><li>OAuth connection — login from the Providers page.</li><li>Supports both chat and responses endpoints.</li></ul></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Claude Code / Antigravity</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use <code class="px-1 rounded bg-bg-subtle">cc/</code> (Claude) or<!-- --> <code class="px-1 rounded bg-bg-subtle">ag/</code> (Antigravity) prefix.</li><li>OAuth connection with automatic token refresh.</li><li>Full streaming support for all models.</li></ul></article></div></section><section id="api-reference" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">API Reference</h2><div class="mt-4 overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Method</th><th class="text-left py-2 pr-4">Path</th><th class="text-left py-2">Notes</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/chat/completions</td><td class="py-2 text-text-muted">OpenAI-compatible chat endpoint (default).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/responses</td><td class="py-2 text-text-muted">Responses API endpoint (Codex, o-series).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">GET</code></td><td class="py-2 pr-4 font-mono">/v1/models</td><td class="py-2 text-text-muted">Model catalog for all connected providers.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/audio/transcriptions</td><td class="py-2 text-text-muted">Audio transcription (Deepgram, AssemblyAI).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/v1/images/generations</td><td class="py-2 text-text-muted">Image generation (NanoBanana).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/chat/completions</td><td class="py-2 text-text-muted">Rewrite helper for clients without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">POST</code></td><td class="py-2 pr-4 font-mono">/responses</td><td class="py-2 text-text-muted">Rewrite helper for Responses without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4"><code class="px-1.5 py-0.5 rounded bg-bg text-xs font-semibold">GET</code></td><td class="py-2 pr-4 font-mono">/models</td><td class="py-2 text-text-muted">Rewrite helper for model discovery without /v1.</td></tr></tbody></table></div></section><section id="model-prefixes" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Model Prefixes</h2><p class="text-sm text-text-muted mt-2 mb-4">Use the provider prefix before the model name to route to a specific provider. Example:<!-- --> <code class="px-1 rounded bg-bg">gh/gpt-5.1-codex</code> routes to GitHub Copilot.</p><div class="overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Prefix</th><th class="text-left py-2 pr-4">Provider</th><th class="text-left py-2">Type</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">if<!-- -->/</code></td><td class="py-2 pr-4">iFlow AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">qw<!-- -->/</code></td><td class="py-2 pr-4">Qwen Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gc<!-- -->/</code></td><td class="py-2 pr-4">Gemini CLI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kr<!-- -->/</code></td><td class="py-2 pr-4">Kiro AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-green-500"><span class="size-1.5 rounded-full bg-green-500"></span>Free</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cc<!-- -->/</code></td><td class="py-2 pr-4">Claude Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">ag<!-- -->/</code></td><td class="py-2 pr-4">Antigravity</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cx<!-- -->/</code></td><td class="py-2 pr-4">OpenAI Codex</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gh<!-- -->/</code></td><td class="py-2 pr-4">GitHub Copilot</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cu<!-- -->/</code></td><td class="py-2 pr-4">Cursor IDE</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kmc<!-- -->/</code></td><td class="py-2 pr-4">Kimi Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kc<!-- -->/</code></td><td class="py-2 pr-4">Kilo Code</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cl<!-- -->/</code></td><td class="py-2 pr-4">Cline</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-blue-500"><span class="size-1.5 rounded-full bg-blue-500"></span>OAuth</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">openrouter<!-- -->/</code></td><td class="py-2 pr-4">OpenRouter</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">glm<!-- -->/</code></td><td class="py-2 pr-4">GLM Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">kimi<!-- -->/</code></td><td class="py-2 pr-4">Kimi</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">minimax<!-- -->/</code></td><td class="py-2 pr-4">Minimax Coding</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">minimax-cn<!-- -->/</code></td><td class="py-2 pr-4">Minimax (China)</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">openai<!-- -->/</code></td><td class="py-2 pr-4">OpenAI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">anthropic<!-- -->/</code></td><td class="py-2 pr-4">Anthropic</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">gemini<!-- -->/</code></td><td class="py-2 pr-4">Gemini</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">ds<!-- -->/</code></td><td class="py-2 pr-4">DeepSeek</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">groq<!-- -->/</code></td><td class="py-2 pr-4">Groq</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">xai<!-- -->/</code></td><td class="py-2 pr-4">xAI (Grok)</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">mistral<!-- -->/</code></td><td class="py-2 pr-4">Mistral</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">pplx<!-- -->/</code></td><td class="py-2 pr-4">Perplexity</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">together<!-- -->/</code></td><td class="py-2 pr-4">Together AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">fireworks<!-- -->/</code></td><td class="py-2 pr-4">Fireworks AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cerebras<!-- -->/</code></td><td class="py-2 pr-4">Cerebras</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">cohere<!-- -->/</code></td><td class="py-2 pr-4">Cohere</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nvidia<!-- -->/</code></td><td class="py-2 pr-4">NVIDIA NIM</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nebius<!-- -->/</code></td><td class="py-2 pr-4">Nebius AI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">siliconflow<!-- -->/</code></td><td class="py-2 pr-4">SiliconFlow</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">hyp<!-- -->/</code></td><td class="py-2 pr-4">Hyperbolic</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">dg<!-- -->/</code></td><td class="py-2 pr-4">Deepgram</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">aai<!-- -->/</code></td><td class="py-2 pr-4">AssemblyAI</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono"><code class="px-1.5 py-0.5 rounded bg-bg">nb<!-- -->/</code></td><td class="py-2 pr-4">NanoBanana</td><td class="py-2"><span class="inline-flex items-center gap-1 text-xs text-amber-500"><span class="size-1.5 rounded-full bg-amber-500"></span>API Key</span></td></tr></tbody></table></div></section><section id="troubleshooting" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Troubleshooting</h2><ul class="mt-4 list-disc list-inside text-sm text-text-muted space-y-2"><li>If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).</li><li>If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.</li><li>For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.</li><li>Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.</li><li>If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.</li><li>For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.</li></ul></section></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[55846,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"1149\",\"static/chunks/1149-fefe7f95f0e9842f.js\",\"5846\",\"static/chunks/5846-cd6a545a34f64728.js\",\"993\",\"static/chunks/993-7146218952a45b4b.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[17267,[\"8039\",\"static/chunks/app/error-0d59fc4efafbc38c.js\"],\"default\"]\n5:I[74581,[],\"\"]\n6:I[37145,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-38123f3e1e5abc33.js\"],\"default\"]\n7:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9040\",\"static/chunks/app/docs/page-8f74097544a61b9d.js\"],\"\"]\n1a:I[26719,[\"4219\",\"static/chunks/app/global-error-41eef2a698918fc1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/c5b80d2d58d2e417.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"PyPKu8KUmFFVZNhlykJuq\",\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c5b80d2d58d2e417.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg\",\"children\":\"Skip to content\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs uppercase tracking-wider text-text-muted\",\"children\":[\"Documentation — v\",\"1.0.3\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl md:text-4xl font-bold mt-1\",\"children\":[\"OmniRoute\",\" Docs\"]}],[\"$\",\"p\",null,{\"className\":\"text-sm md:text-base text-text-muted mt-2 max-w-3xl\",\"children\":\"AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor, and 20+ more providers.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/dashboard\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Open Dashboard\"}],[\"$\",\"$L7\",null,{\"href\":\"/dashboard/endpoint\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Endpoint Page\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1\",\"children\":[\"GitHub \",[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px]\",\"children\":\"open_in_new\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute/issues\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Report Issue\"}]]}]]}]}],[\"$\",\"nav\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-text-muted mb-3\",\"children\":\"On this page\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 md:grid-cols-4 gap-2 text-sm\",\"children\":[[\"$\",\"a\",\"#quick-start\",{\"href\":\"#quick-start\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[\"$L8\",\"Quick Start\"]}],\"$L9\",\"$La\",\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\"]}]]}],\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]}],null,\"$L18\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$L19\",false]],\"m\":\"$undefined\",\"G\":[\"$1a\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"3e:I[90484,[],\"OutletBoundary\"]\n3f:\"$Sreact.suspense\"\n41:I[90484,[],\"ViewportBoundary\"]\n43:I[90484,[],\"MetadataBoundary\"]\n8:[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}]\n9:[\"$\",\"a\",\"#features\",{\"href\":\"#features\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Features\"]}]\na:[\"$\",\"a\",\"#supported-providers\",{\"href\":\"#supported-providers\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Providers\"]}]\nb:[\"$\",\"a\",\"#use-cases\",{\"href\":\"#use-cases\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Use Cases\"]}]\nc:[\"$\",\"a\",\"#client-compatibility\",{\"href\":\"#client-compatibility\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Client Compatibility\"]}]\nd:[\"$\",\"a\",\"#api-reference\",{\"href\":\"#api-reference\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"API Reference\"]}]\ne:[\"$\",\"a\",\"#model-prefixes\",{\"href\":\"#model-prefixes\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Model Prefixes\"]}]\nf:[\"$\",\"a\",\"#troubleshooting\",{\"href\":\"#troubleshooting\",\"className\":\"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[14px] text-text-muted\",\"children\":\"tag\"}],\"Troubleshooting\"]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"section\",null,{\"id\":\"quick-start\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Quick Start\"}],[\"$\",\"ol\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"1. Install \u0026 run\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"npx omniroute\"}],\" or clone from GitHub and run \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"npm start\"}],\".\"]}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"2. Create API key\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Go to Endpoint → Registered Keys. Generate one key per environment.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"3. Connect providers\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Add provider accounts via OAuth login, API key, or free-tier auto-connect.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"4. Set client base URL\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Point your IDE or API client to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}],\". Use provider prefix, e.g.\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/gpt-5.1-codex\"}],\".\"]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"section\",null,{\"id\":\"features\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Features\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3\",\"children\":[[\"$\",\"article\",\"Multi-Provider Routing\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"hub\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Multi-Provider Routing\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.\"}]]}]]}],[\"$\",\"article\",\"Combos \u0026 Balancing\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"layers\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Combos \u0026 Balancing\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.\"}]]}]]}],[\"$\",\"article\",\"Usage \u0026 Cost Tracking\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"bar_chart\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Usage \u0026 Cost Tracking\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.\"}]]}]]}],[\"$\",\"article\",\"Analytics Dashboard\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"analytics\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Analytics Dashboard\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.\"}]]}]]}],[\"$\",\"article\",\"Health Monitoring\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"health_and_safety\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Health Monitoring\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.\"}]]}]]}],[\"$\",\"article\",\"CLI Tools\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"terminal\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"CLI Tools\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.\"}]]}]]}],[\"$\",\"article\",\"Security \u0026 Policies\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"shield\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Security \u0026 Policies\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.\"}]]}]]}],\"$L1b\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"section\",null,{\"id\":\"supported-providers\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between mb-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Supported Providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":[36,\" \",\"providers across three connection types.\"]}]]}],[\"$\",\"$L7\",null,{\"href\":\"/dashboard/providers\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Manage Providers\"}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-3 gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-green-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Free Tier\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[4,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"iflow\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"iFlow AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"if\",\"/\"]}]]}],[\"$\",\"div\",\"qwen\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Qwen Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"qw\",\"/\"]}]]}],[\"$\",\"div\",\"gemini-cli\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Gemini CLI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gc\",\"/\"]}]]}],[\"$\",\"div\",\"kiro\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kiro AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kr\",\"/\"]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-blue-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"OAuth\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[8,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"claude\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Claude Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cc\",\"/\"]}]]}],[\"$\",\"div\",\"antigravity\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Antigravity\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"ag\",\"/\"]}]]}],[\"$\",\"div\",\"codex\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenAI Codex\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cx\",\"/\"]}]]}],[\"$\",\"div\",\"github\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"GitHub Copilot\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gh\",\"/\"]}]]}],\"$L1c\",\"$L1d\",\"$L1e\",\"$L1f\"]}]]}],\"$L20\"]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"id\":\"use-cases\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Common Use Cases\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"article\",\"Single endpoint for many providers\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Single endpoint for many providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).\"}]]}],[\"$\",\"article\",\"Fallback and model switching with combos\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Fallback and model switching with combos\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Create combo models in Dashboard and keep client config stable while providers rotate internally.\"}]]}],[\"$\",\"article\",\"Usage, cost and debug visibility\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Usage, cost and debug visibility\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Track tokens/cost by provider, account and API key in Usage + Analytics tabs.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"id\":\"client-compatibility\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Client Compatibility\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cherry Studio\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Base URL:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Chat endpoint:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Model recommendation: explicit prefix (\",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/...\"}],\",\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/...\"}],\")\"]}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Codex / GitHub Copilot Models\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use model IDs with \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/\"}],\" prefix.\"]}],[\"$\",\"li\",null,{\"children\":[\"Codex-family models auto-route to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/responses\"}],\".\"]}],[\"$\",\"li\",null,{\"children\":[\"Non-Codex models continue on\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}],\".\"]}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cursor IDE\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cu/\"}],\" prefix for Cursor models.\"]}],[\"$\",\"li\",null,{\"children\":\"OAuth connection — login from the Providers page.\"}],[\"$\",\"li\",null,{\"children\":\"Supports both chat and responses endpoints.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Claude Code / Antigravity\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/\"}],\" (Claude) or\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"ag/\"}],\" (Antigravity) prefix.\"]}],[\"$\",\"li\",null,{\"children\":\"OAuth connection with automatic token refresh.\"}],[\"$\",\"li\",null,{\"children\":\"Full streaming support for all models.\"}]]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"id\":\"api-reference\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"API Reference\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Method\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Path\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Notes\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"/v1/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"OpenAI-compatible chat endpoint (default).\"}]]}],[\"$\",\"tr\",\"/v1/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Responses API endpoint (Codex, o-series).\"}]]}],[\"$\",\"tr\",\"/v1/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"GET\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Model catalog for all connected providers.\"}]]}],[\"$\",\"tr\",\"/v1/audio/transcriptions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/audio/transcriptions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Audio transcription (Deepgram, AssemblyAI).\"}]]}],[\"$\",\"tr\",\"/v1/images/generations\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/images/generations\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Image generation (NanoBanana).\"}]]}],[\"$\",\"tr\",\"/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for clients without /v1.\"}]]}],[\"$\",\"tr\",\"/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"POST\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for Responses without /v1.\"}]]}],[\"$\",\"tr\",\"/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold\",\"children\":\"GET\"}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for model discovery without /v1.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"id\":\"model-prefixes\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Model Prefixes\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2 mb-4\",\"children\":[\"Use the provider prefix before the model name to route to a specific provider. Example:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg\",\"children\":\"gh/gpt-5.1-codex\"}],\" routes to GitHub Copilot.\"]}],[\"$\",\"div\",null,{\"className\":\"overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Prefix\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Provider\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Type\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"iflow\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"if\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"iFlow AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"qwen\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"qw\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Qwen Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"gemini-cli\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Gemini CLI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"kiro\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kr\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kiro AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-green-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-green-500\"}],\"Free\"]}]}]]}],[\"$\",\"tr\",\"claude\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Claude Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],[\"$\",\"tr\",\"antigravity\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"ag\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Antigravity\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],[\"$\",\"tr\",\"codex\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cx\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenAI Codex\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}],\"$L21\",\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\"]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"id\":\"troubleshooting\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Troubleshooting\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 list-disc list-inside text-sm text-text-muted space-y-2\",\"children\":[[\"$\",\"li\",\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\",{\"children\":\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\"}],[\"$\",\"li\",\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\",{\"children\":\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\"}],[\"$\",\"li\",\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\",{\"children\":\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\"}],[\"$\",\"li\",\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\",{\"children\":\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\"}],[\"$\",\"li\",\"If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.\",{\"children\":\"If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.\"}],[\"$\",\"li\",\"For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.\",{\"children\":\"For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"$L3e\",null,{\"children\":[\"$\",\"$3f\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@40\"}]}]\n19:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L41\",null,{\"children\":\"$L42\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L43\",null,{\"children\":[\"$\",\"$3f\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L44\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"article\",\"Cloud Sync\",{\"className\":\"rounded-lg border border-border p-4 bg-bg flex gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5\",\"children\":\"cloud_sync\"}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Cloud Sync\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-1\",\"children\":\"Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.\"}]]}]]}]\n1c:[\"$\",\"div\",\"cursor\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cursor IDE\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cu\",\"/\"]}]]}]\n1d:[\"$\",\"div\",\"kimi-coding\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kimi Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kmc\",\"/\"]}]]}]\n1e:[\"$\",\"div\",\"kilocode\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kilo Code\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kc\",\"/\"]}]]}]\n1f:[\"$\",\"div\",\"cline\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cline\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cl\",\"/\"]}]]}]\n"])</script><script>self.__next_f.push([1,"20:[\"$\",\"div\",null,{\"className\":\"rounded-lg border border-border bg-bg p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2.5 rounded-full bg-amber-500\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"API Key\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-text-muted ml-auto\",\"children\":[24,\" providers\"]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm\",\"children\":[[\"$\",\"div\",\"openrouter\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenRouter\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"openrouter\",\"/\"]}]]}],[\"$\",\"div\",\"glm\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"GLM Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"glm\",\"/\"]}]]}],[\"$\",\"div\",\"kimi\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Kimi\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"kimi\",\"/\"]}]]}],[\"$\",\"div\",\"minimax\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Minimax Coding\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"minimax\",\"/\"]}]]}],[\"$\",\"div\",\"minimax-cn\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Minimax (China)\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"minimax-cn\",\"/\"]}]]}],[\"$\",\"div\",\"openai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"OpenAI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"openai\",\"/\"]}]]}],[\"$\",\"div\",\"anthropic\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Anthropic\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"anthropic\",\"/\"]}]]}],[\"$\",\"div\",\"gemini\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Gemini\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"gemini\",\"/\"]}]]}],[\"$\",\"div\",\"deepseek\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"DeepSeek\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"ds\",\"/\"]}]]}],[\"$\",\"div\",\"groq\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Groq\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"groq\",\"/\"]}]]}],[\"$\",\"div\",\"xai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"xAI (Grok)\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"xai\",\"/\"]}]]}],[\"$\",\"div\",\"mistral\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[\"$L45\",\"$L46\"]}],\"$L47\",\"$L48\",\"$L49\",\"$L4a\",\"$L4b\",\"$L4c\",\"$L4d\",\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\"]}]]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"tr\",\"github\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gh\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"GitHub Copilot\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n22:[\"$\",\"tr\",\"cursor\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cu\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cursor IDE\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n23:[\"$\",\"tr\",\"kimi-coding\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kmc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kimi Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n24:[\"$\",\"tr\",\"kilocode\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kc\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kilo Code\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n25:[\"$\",\"tr\",\"cline\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cl\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cline\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-blue-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-blue-500\"}],\"OAuth\"]}]}]]}]\n26:[\"$\",\"tr\",\"openrouter\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"openrouter\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenRouter\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n27:[\"$\",\"tr\",\"glm\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"glm\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"GLM Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n28:[\"$\",\"tr\",\"kimi\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"kimi\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Kimi\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 r"])</script><script>self.__next_f.push([1,"ounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n29:[\"$\",\"tr\",\"minimax\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"minimax\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Minimax Coding\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2a:[\"$\",\"tr\",\"minimax-cn\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"minimax-cn\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Minimax (China)\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2b:[\"$\",\"tr\",\"openai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"openai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"OpenAI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2c:[\"$\",\"tr\",\"anthropic\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"anthropic\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Anthropic\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2d:[\"$\",\"tr\",\"gemini\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"gemini\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Gemini\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2e:[\"$\",\"tr\",\"deepseek\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"ds\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"DeepSeek\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n2f:[\"$\",\"tr\",\"groq\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"groq\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Groq\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n30:[\"$\",\"tr\",\"xai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"xai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"xAI (Grok)\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center"])</script><script>self.__next_f.push([1," gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n31:[\"$\",\"tr\",\"mistral\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"mistral\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Mistral\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n32:[\"$\",\"tr\",\"perplexity\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"pplx\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Perplexity\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n33:[\"$\",\"tr\",\"together\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"together\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Together AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n34:[\"$\",\"tr\",\"fireworks\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"fireworks\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Fireworks AI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n35:[\"$\",\"tr\",\"cerebras\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cerebras\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cerebras\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n36:[\"$\",\"tr\",\"cohere\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"cohere\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Cohere\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n37:[\"$\",\"tr\",\"nvidia\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nvidia\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"NVIDIA NIM\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n38:[\"$\",\"tr\",\"nebius\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nebius\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Nebius AI\"}],[\""])</script><script>self.__next_f.push([1,"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n39:[\"$\",\"tr\",\"siliconflow\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"siliconflow\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"SiliconFlow\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3a:[\"$\",\"tr\",\"hyperbolic\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"hyp\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Hyperbolic\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3b:[\"$\",\"tr\",\"deepgram\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"dg\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"Deepgram\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3c:[\"$\",\"tr\",\"assemblyai\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"aai\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"AssemblyAI\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n3d:[\"$\",\"tr\",\"nanobanana\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":[\"$\",\"code\",null,{\"className\":\"px-1.5 py-0.5 rounded bg-bg\",\"children\":[\"nb\",\"/\"]}]}],[\"$\",\"td\",null,{\"className\":\"py-2 pr-4\",\"children\":\"NanoBanana\"}],[\"$\",\"td\",null,{\"className\":\"py-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 text-xs text-amber-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-amber-500\"}],\"API Key\"]}]}]]}]\n"])</script><script>self.__next_f.push([1,"45:[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Mistral\"}]\n46:[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"mistral\",\"/\"]}]\n47:[\"$\",\"div\",\"perplexity\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Perplexity\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"pplx\",\"/\"]}]]}]\n48:[\"$\",\"div\",\"together\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Together AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"together\",\"/\"]}]]}]\n49:[\"$\",\"div\",\"fireworks\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Fireworks AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"fireworks\",\"/\"]}]]}]\n4a:[\"$\",\"div\",\"cerebras\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cerebras\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cerebras\",\"/\"]}]]}]\n4b:[\"$\",\"div\",\"cohere\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Cohere\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"cohere\",\"/\"]}]]}]\n4c:[\"$\",\"div\",\"nvidia\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"NVIDIA NIM\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nvidia\",\"/\"]}]]}]\n4d:[\"$\",\"div\",\"nebius\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Nebius AI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nebius\",\"/\"]}]]}]\n4e:[\"$\",\"div\",\"siliconflow\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"SiliconFlow\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"siliconflow\",\"/\"]}]]}]\n4f:[\"$\",\"div\",\"hyperbolic\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Hyperbolic\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"hyp\",\"/\"]}]]}]\n50:[\"$\",\"div\",\"deepgram\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Deepgram\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"dg\",\"/\"]}]]}]\n51:[\"$\",\"div\",\"assemblyai\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"AssemblyAI\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"aai\",\"/\"]}]]}]\n52:[\"$\",\"div\",\"nanobanana\",{\"className\":\"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"NanoBanana\"}],[\"$\",\"code\",null,{\"className\":\"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle\",\"children\":[\"nb\",\"/\"]}]]}]\n"])</script><script>self.__next_f.push([1,"42:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"53:I[86869,[],\"IconMark\"]\n40:null\n44:[[\"$\",\"title\",\"0\",{\"children\":\"OmniRoute — AI Gateway for Multi-Provider LLMs\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L53\",\"4\",{}]]\n"])</script></body></html>
|