diff --git a/.env.example b/.env.example index 06d373e64e..b7186a7c1e 100644 --- a/.env.example +++ b/.env.example @@ -400,7 +400,6 @@ NEXT_PUBLIC_CLOUD_URL= # debugging or when routing through a corporate mirror. Used by: # open-sse/services/usage.ts. #OMNIROUTE_CROF_USAGE_URL=https://crof.ai/usage_api/ -#OMNIROUTE_GEMINI_CLI_USAGE_URL=https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist #OMNIROUTE_CODEWHISPERER_BASE_URL=https://codewhisperer.us-east-1.amazonaws.com #OMNIROUTE_OPENCODE_QUOTA_URL=https://opencode.ai/zen/go/v1/quota #OMNIROUTE_OPENCODE_GO_QUOTA_URL=https://api.z.ai/api/monitor/usage/quota/limit @@ -708,7 +707,7 @@ CODEX_OAUTH_CLIENT_ID=app_EMoamEEZ73f0CkXaXp7hrann # Used by: open-sse/executors/theoldllm.ts. Default: 30000 (30s). # THEOLDLLM_NAV_TIMEOUT_MS=30000 -# ── Gemini / Gemini CLI / Antigravity / Windsurf (all Google-based) ── +# ── Gemini / Antigravity / Windsurf (all Google-based) ── # These providers ship public OAuth client_id/secret values (or Firebase Web # keys) embedded in their public CLIs/binaries. Defaults are baked into the # code via open-sse/utils/publicCreds.ts — leave the env vars unset to use @@ -717,8 +716,6 @@ CODEX_OAUTH_CLIENT_ID=app_EMoamEEZ73f0CkXaXp7hrann # # GEMINI_OAUTH_CLIENT_ID= # GEMINI_OAUTH_CLIENT_SECRET= -# GEMINI_CLI_OAUTH_CLIENT_ID= -# GEMINI_CLI_OAUTH_CLIENT_SECRET= # ANTIGRAVITY_OAUTH_CLIENT_ID= # ANTIGRAVITY_OAUTH_CLIENT_SECRET= # WINDSURF_FIREBASE_API_KEY= @@ -806,7 +803,7 @@ GITHUB_OAUTH_CLIENT_ID=Iv1.b507a08c87ecfe98 # VISION_BRIDGE_API_KEY= # ───────────────────────────────────────────────────────────────────────────── -# ⚠️ GOOGLE OAUTH (Antigravity, Gemini CLI) & OTHER PROVIDERS — REMOTE SERVERS +# ⚠️ GOOGLE OAUTH (Antigravity) & OTHER PROVIDERS — REMOTE SERVERS # ───────────────────────────────────────────────────────────────────────────── # The default Client IDs above ONLY work when OmniRoute runs on localhost. # For remote/VPS hosting (including Docker containers on remote servers): @@ -861,7 +858,6 @@ KIRO_USER_AGENT="AWS-SDK-JS/3.0.0 kiro-ide/1.0.0" QODER_USER_AGENT="Qoder-Cli" QWEN_USER_AGENT="QwenCode/0.19.3 (linux; x64)" CURSOR_USER_AGENT="Cursor/3.4" -GEMINI_CLI_USER_AGENT="google-api-nodejs-client/10.3.0" # Override Codex client version sent in headers independently of the # CODEX_USER_AGENT string. Used by: open-sse/config/codexClient.ts. diff --git a/@omniroute/opencode-plugin/README.md b/@omniroute/opencode-plugin/README.md index 55329dec8a..35fc53a242 100644 --- a/@omniroute/opencode-plugin/README.md +++ b/@omniroute/opencode-plugin/README.md @@ -196,7 +196,7 @@ Every field is optional. Defaults mirror v0.1.0 behaviour so existing `opencode. | `combos` | `boolean` | `true` | Discover `/api/combos` and surface them as pseudo-models with LCD capabilities. Combos are keyed under the `combo/` namespace and labelled `Combo: ` in the model picker so they're distinguishable from raw provider/model pairs. | | `enrichment` | `boolean` | `true` | Pull display names from `/api/pricing/models` AND per-million-token pricing (`input`, `output`, `cached` → `cacheRead`, `cache_creation` → `cacheWrite`) from `/api/pricing`, then overlay both onto the live catalog (so the UI shows `Claude 4.7 Opus` with `cost.input: 5`, `cost.output: 25` instead of raw IDs and zeroed cost). | | `compressionMetadata` | `boolean` | `false` | Pull `/api/context/combos` so combo names get tagged with their compression pipeline, e.g. `Combo: claude-primary [rtk🟡 → caveman🟠]`. Intensity tokens render as traffic-light emoji (🟢 lite/minimal · 🟡 standard · 🟠 aggressive/full · 🔴 ultra) so the picker advertises "how compressed" each combo is at a glance. | -| `providerTag` | `boolean` | `true` | Prepend a short upstream-provider label to the enriched display name with `" - "` separator, so `cc/claude-opus-4-7 → Claude - Claude Opus 4.7` differs visibly from `kr/claude-opus-4-7 → Kiro - Claude Opus 4.7` in the OC TUI model picker. Label resolution: use `/api/pricing/models[].name` verbatim when ≤8 chars (e.g. `Claude`, `Kiro`, `Codex`, `Qwen`), otherwise fall back to `UPPER(alias)` (e.g. `GitHub Models` → `GHM`, `Gemini-cli` → `GEMINI-CLI`). Idempotent. Combos intentionally skipped (the `Combo: ` prefix already conveys multi-upstream). | +| `providerTag` | `boolean` | `true` | Prepend a short upstream-provider label to the enriched display name with `" - "` separator, so `cc/claude-opus-4-7 → Claude - Claude Opus 4.7` differs visibly from `kr/claude-opus-4-7 → Kiro - Claude Opus 4.7` in the OC TUI model picker. Label resolution: use `/api/pricing/models[].name` verbatim when ≤8 chars (e.g. `Claude`, `Kiro`, `Codex`, `Qwen`), otherwise fall back to `UPPER(alias)` (e.g. `GitHub Models` → `GHM`, `Gemini` → `GEMINI`). Idempotent. Combos intentionally skipped (the `Combo: ` prefix already conveys multi-upstream). | | `usableOnly` | `boolean` | `false` | Read `/api/providers` and filter the catalog to providers that have at least one connection with `isActive: true` AND `testStatus: 'active'`. Subtract-filter semantics: providers unknown to BOTH the pricing-models catalog AND the connection table pass through (so synthetic prefixes like `agentrouter/*` survive). On fetch failure the filter is disabled for the refresh — never hides the whole catalog. | | `diskCache` | `boolean` | `true` | Persist the last successful `/v1/models` + `/api/combos` + enrichment + connections + compression snapshot to `${OPENCODE_DATA_DIR ?? ~/.local/share/opencode}/plugins/omniroute-.json`. On a subsequent cold start where `/v1/models` throws (network down / IP whitelist drop / 5xx) the static block hydrates from the snapshot so OC's model picker survives offline. Soft-fail on read/write — never blocks publishing. | | `geminiSanitization` | `boolean` | `true` | Strip `$schema`/`$ref`/`additionalProperties` from tool params when the model id matches `gemini` | diff --git a/@omniroute/opencode-plugin/src/index.ts b/@omniroute/opencode-plugin/src/index.ts index 058b1cb8c7..d69383b087 100644 --- a/@omniroute/opencode-plugin/src/index.ts +++ b/@omniroute/opencode-plugin/src/index.ts @@ -1225,7 +1225,7 @@ export interface OmniRouteEnrichmentEntry { cacheWrite?: number; }; /** - * Provider alias prefix seen in `/v1/models` ids (e.g. `cc`, `gemini-cli`). + * Provider alias prefix seen in `/v1/models` ids (e.g. `cc`, `gemini`). * Populated by `defaultOmniRouteEnrichmentFetcher` from * `/api/pricing/models` keys. Drives the `usableOnly` alias↔canonical * resolution. @@ -1233,7 +1233,7 @@ export interface OmniRouteEnrichmentEntry { providerAlias?: string; /** * Canonical provider id used by `/api/providers` connections (e.g. - * `claude`, `gemini-cli`, `kiro`). Populated from the per-provider + * `claude`, `gemini`, `kiro`). Populated from the per-provider * `entry.id` field inside `/api/pricing/models`. */ providerCanonical?: string; @@ -2046,7 +2046,7 @@ export function formatCompressionPipeline(pipeline: OmniRouteCompressionStep[]): export interface OmniRouteProviderConnection { /** Connection UUID. */ id: string; - /** Canonical provider id, e.g. `claude`, `gemini-cli`, `kiro`. Matches `entry.id` in `/api/pricing/models`. */ + /** Canonical provider id, e.g. `claude`, `gemini`, `kiro`. Matches `entry.id` in `/api/pricing/models`. */ provider: string; /** Connection auth flavor, e.g. `apikey`, `oauth`, `cookie`. */ authType?: string; @@ -2125,7 +2125,7 @@ export const defaultOmniRouteProvidersFetcher: OmniRouteProvidersFetcher = async * walk only the namespaced keys to derive the alias↔canonical mapping). * * Returns: - * - `aliases`: set of alias prefixes safe to keep (e.g. `cc`, `gemini-cli`). + * - `aliases`: set of alias prefixes safe to keep (e.g. `cc`, `gemini`). * - `canonicals`: set of canonical provider ids (e.g. `claude`, `kiro`). * * Callers should treat membership in EITHER set as "usable" — raw model @@ -2174,7 +2174,7 @@ export function usableProviderAliasSet( } // Always include every usable canonical as an alias too — handles the // common case where `/v1/models` ids use the canonical id directly - // (e.g. `gemini-cli/gemini-1.5-pro`). + // (e.g. `gemini/gemini-1.5-pro`). for (const canonical of usableCanonicals) aliases.add(canonical); return { aliases, canonicals: usableCanonicals, knownAliases }; } @@ -3174,7 +3174,6 @@ export function sanitizeGeminiToolSchemas(payload: unknown): unknown { * `gemini-2.5-flash`, etc.) * - `models/gemini-…` (Google Generative AI canonical id form) * - `google-vertex/gemini-…` (OpenCode + AI-SDK Vertex routing prefix) - * - `gemini-cli/…` (real OmniRoute alias surfaced on b35 prod `/v1/models`) * * Liberal by design: a false positive (cleaning a payload that didn't * need cleaning) costs only a structuredClone + one walk; a false negative diff --git a/@omniroute/opencode-plugin/tests/config-shim.test.ts b/@omniroute/opencode-plugin/tests/config-shim.test.ts index 63d7c277ac..8bfd5fe91b 100644 --- a/@omniroute/opencode-plugin/tests/config-shim.test.ts +++ b/@omniroute/opencode-plugin/tests/config-shim.test.ts @@ -1311,9 +1311,9 @@ test("config: providerTag (default-on) prepends ' - ' to enriched raw- "gemini-3-flash", { name: "Gemini 3 Flash", - providerAlias: "gemini-cli", - providerCanonical: "gemini-cli", - providerDisplayName: "Gemini-cli", + providerAlias: "gemini", + providerCanonical: "gemini", + providerDisplayName: "Gemini", }, ], ]) @@ -1335,10 +1335,7 @@ test("config: providerTag (default-on) prepends ' - ' to enriched raw- entry.models["opencode-omniroute/claude-sonnet-4-6"].name, "Claude - Claude Sonnet 4.6" ); - assert.equal( - entry.models["opencode-omniroute/gemini-3-flash"].name, - "Gemini-cli - Gemini 3 Flash" - ); + assert.equal(entry.models["opencode-omniroute/gemini-3-flash"].name, "Gemini - Gemini 3 Flash"); // Combos stay untouched — `Combo: ` prefix already conveys multi-upstream. assert.equal(entry.models["opencode-omniroute/claude-tier"].name, "Claude Tier"); }); diff --git a/@omniroute/opencode-plugin/tests/gemini-sanitize.test.ts b/@omniroute/opencode-plugin/tests/gemini-sanitize.test.ts index effd66eae9..3cebfc52a5 100644 --- a/@omniroute/opencode-plugin/tests/gemini-sanitize.test.ts +++ b/@omniroute/opencode-plugin/tests/gemini-sanitize.test.ts @@ -212,8 +212,8 @@ test("shouldSanitizeForGemini: google-vertex/gemini-1.5-flash → true", () => { assert.equal(shouldSanitizeForGemini({ model: "google-vertex/gemini-1.5-flash" }), true); }); -test("shouldSanitizeForGemini: gemini-cli/gemini-2.5-pro → true (real OmniRoute alias)", () => { - assert.equal(shouldSanitizeForGemini({ model: "gemini-cli/gemini-2.5-pro" }), true); +test("shouldSanitizeForGemini: gemini/gemini-2.5-pro → true", () => { + assert.equal(shouldSanitizeForGemini({ model: "gemini/gemini-2.5-pro" }), true); }); test("shouldSanitizeForGemini: claude-sonnet-4 → false", () => { diff --git a/AGENTS.md b/AGENTS.md index 11e52a6a8b..8c42367ce3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -267,7 +267,7 @@ Zod schemas, and unit tests aligned when editing. ### Provider Categories -- **Free** (4): Qoder AI, Qwen Code, Gemini CLI (deprecated), Kiro AI +- **Free** (3): Qoder AI, Qwen Code, Kiro AI - **OAuth** (14): Claude Code, Antigravity, Codex, GitHub Copilot, Cursor, Kimi Coding, Kilo Code, Cline, Qwen (⚠️ free tier discontinued 2026-04-15), Kiro, Qoder, Gemini, Windsurf (v3.8), GitLab Duo (v3.8) - **API Key** (120+): OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, Nebius, SiliconFlow, Hyperbolic, @@ -291,7 +291,7 @@ Providers are registered in `src/shared/constants/providers.ts` with Zod validat ### Executors (`open-sse/executors/`) Provider-specific request executors: `base.ts`, `default.ts`, `cursor.ts`, `codex.ts`, -`antigravity.ts`, `github.ts`, `gemini-cli.ts`, `kiro.ts`, `qoder.ts`, `vertex.ts`, +`antigravity.ts`, `github.ts`, `kiro.ts`, `qoder.ts`, `vertex.ts`, `cloudflare-ai.ts`, `opencode.ts`, `pollinations.ts`, `puter.ts`. #### Executor Internals diff --git a/README.md b/README.md index 6f6a90106b..0a93122638 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,7 @@ Result: 4 layers of fallback = zero downtime > Recent highlights from **v3.8.20 → v3.8.39**. Full history in [`CHANGELOG.md`](CHANGELOG.md). - **⚖️ Quota-Share routing** — a dedicated combo strategy that spreads load across accounts by _available quota_: Deficit-Round-Robin scheduling, per-connection `max_concurrent` with cooldown-wait queueing, multi-window usage buckets (5h / 7d / per-model), per-(key,model) caps, session stickiness for prompt-cache integrity, and proactive saturation from upstream token-usage headers. → [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) -- **🤖 One-command CLI/agent setup** — a dedicated `setup-*` command configures each coding tool to route through OmniRoute (Claude Code, Codex, Cline, Continue, Cursor, Roo Code, Kilo Code, Crush, Goose, Qwen Code, Aider, OpenCode, Gemini CLI); `omniroute launch` / `omniroute launch-codex` are zero-config launchers. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md) +- **🤖 One-command CLI/agent setup** — a dedicated `setup-*` command configures each coding tool to route through OmniRoute (Claude Code, Codex, Cline, Continue, Cursor, Roo Code, Kilo Code, Crush, Goose, Qwen Code, Aider, OpenCode); `omniroute launch` / `omniroute launch-codex` are zero-config launchers. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md) - **🛰️ Remote mode** — drive a remote OmniRoute from any machine with scoped access tokens (`omniroute connect` / `omniroute contexts` / `omniroute tokens`), plus an `omniroute login antigravity` helper that runs Google "native/desktop" OAuth on your own machine and pastes a credential blob into a remote/VPS install (where the loopback redirect is unreachable). → [Remote Mode](docs/guides/REMOTE-MODE.md) - **🧭 Smarter auto-routing** — OpenRouter-style `auto/:` combos (e.g. `auto/coding:fast`, `auto/reasoning:pro`), a **Fusion** strategy (fan out to a panel of models in parallel, then synthesize via a judge), **task-aware routing** (best-fit connection per task type), per-request `X-Route-Model` override, live Arena-ELO + models.dev model intelligence, per-step account allowlists, provider-wildcard combo steps, nested combo-ref execution, sticky weighted selection, and `web_search`-aware routing. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **🗜️ Pluggable compression** — an async pipeline of **9 composable engines** with Compression Studios, an LLMLingua-2 ONNX engine and a heuristic/SLM two-tier **Ultra**, RTK, delegated Anthropic Context Editing, **Output Styles** (output-axis steering: terse-prose / less-code / terse-CJK), an **adaptive context-budget dial** (escalate only as far as needed to fit the context window), per-request `x-omniroute-compression` control, an opt-in offline eval harness, one-click **Headroom** proxy lifecycle management from the dashboard (Docker sidecar supported), a synthetic **compression playground** (Play lanes + A/B Compare with USD-capped fidelity verdicts), an opt-in **per-step fidelity gate** that rejects a lossy engine before it degrades the prompt, a **best-of-N candidate encoder** (GCF vs TOON — keep whichever is shorter, with an A/B bytes/token table in the studio), **CCR ranged/grep/stats retrieval** (pull an exact byte/line slice or summary of a stored block instead of re-expanding it), and a unified panel with named profiles + an active-profile selector. → [Compression](docs/compression/COMPRESSION_ENGINES.md) @@ -317,7 +317,6 @@ Result: 4 layers of fallback = zero downtime Claude Code
Claude Code
Codex CLI
Codex CLI
- Gemini CLI
Gemini CLI
Cursor
Cursor Copilot
Copilot Continue
Continue @@ -364,7 +363,6 @@ Result: 4 layers of fallback = zero downtime Cloudflare AI
50+ models
10K neurons/day
- Gemini CLI
gemini-3-flash
180K/mo free
NVIDIA NIM
129 models
~40 RPM free
Cerebras
Qwen3 235B
1M tokens/day
diff --git a/bin/cli/commands/registry.mjs b/bin/cli/commands/registry.mjs index c06827219b..a2a91bb8c8 100644 --- a/bin/cli/commands/registry.mjs +++ b/bin/cli/commands/registry.mjs @@ -71,7 +71,6 @@ import { registerSetupCrush } from "./setup-crush.mjs"; import { registerSetupGoose } from "./setup-goose.mjs"; import { registerSetupQwen } from "./setup-qwen.mjs"; import { registerSetupAider } from "./setup-aider.mjs"; -import { registerSetupGemini } from "./setup-gemini.mjs"; import { registerConnect } from "./connect.mjs"; import { registerContexts } from "./contexts.mjs"; import { registerTokens } from "./tokens.mjs"; @@ -154,7 +153,6 @@ export function registerCommands(program) { registerSetupGoose(program); registerSetupQwen(program); registerSetupAider(program); - registerSetupGemini(program); registerConnect(program); registerContexts(program); registerTokens(program); diff --git a/bin/cli/commands/setup-gemini.mjs b/bin/cli/commands/setup-gemini.mjs deleted file mode 100644 index 3db242336c..0000000000 --- a/bin/cli/commands/setup-gemini.mjs +++ /dev/null @@ -1,148 +0,0 @@ -/** - * omniroute setup-gemini — point the Gemini CLI at OmniRoute's Gemini endpoint. - * - * The Gemini CLI is NOT OpenAI-compatible — it speaks the native Gemini API. - * OmniRoute exposes a Gemini-native surface at /v1beta (e.g. - * /v1beta/models/:generateContent), so the CLI can target it via the - * @google/genai SDK env `GOOGLE_GEMINI_BASE_URL` (ROOT — the SDK appends /v1beta) - * + `GEMINI_API_KEY`. There is no settings.json key for the base URL, so this is - * primarily an env recipe; we optionally write ~/.gemini/settings.json `model`. - * - * ⚠ Known Gemini CLI caveat: it may ignore GOOGLE_GEMINI_BASE_URL if a cached - * Google login exists — run `gemini` logged-out / API-key-only for it to take. - */ - -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; -import os from "node:os"; -import { printHeading, printInfo, printSuccess, printError, createPrompt } from "../io.mjs"; -import { resolveActiveContext } from "../contexts.mjs"; - -function stripToRoot(url) { - const s = String(url || "").replace(/\/+$/, ""); - return s.endsWith("/v1beta") ? s.slice(0, -7) : s.endsWith("/v1") ? s.slice(0, -3) : s; -} - -/** Resolve GOOGLE_GEMINI_BASE_URL (ROOT — SDK appends /v1beta) + apiKey. */ -export function resolveGeminiTarget(opts = {}) { - let root; - if (opts.remote) root = stripToRoot(opts.remote); - else { - try { - root = stripToRoot(resolveActiveContext(opts.context ?? process.env.OMNIROUTE_CONTEXT)?.baseUrl); - } catch { - /* none */ - } - if (!root) root = `http://localhost:${Number(opts.port ?? process.env.PORT ?? 20128) || 20128}`; - } - let apiKey = opts.apiKey ?? opts["api-key"]; - if (!apiKey) { - try { - const c = resolveActiveContext(opts.context ?? process.env.OMNIROUTE_CONTEXT); - apiKey = c?.accessToken || c?.apiKey; - } catch { - /* none */ - } - } - if (!apiKey) apiKey = process.env.OMNIROUTE_API_KEY || ""; - return { baseUrl: root, apiKey }; -} - -/** The guaranteed env recipe (pure → testable). */ -export function buildGeminiRecipe({ baseUrl, model }) { - return [ - `export GOOGLE_GEMINI_BASE_URL=${baseUrl}`, - "export GEMINI_API_KEY=$OMNIROUTE_API_KEY", - `export GEMINI_MODEL=${model}`, - `gemini -p "reply OK" # or: gemini (interactive)`, - ].join("\n"); -} - -/** Merge the model into ~/.gemini/settings.json (base URL is env-only). */ -export function buildGeminiSettings(existing, { model }) { - const s = existing && typeof existing === "object" ? { ...existing } : {}; - if (model) s.model = model; - return s; -} - -function readJson(path) { - try { - if (existsSync(path)) return JSON.parse(readFileSync(path, "utf8")); - } catch { - /* corrupt/missing */ - } - return {}; -} - -async function fetchGeminiModelIds(baseUrl, apiKey) { - try { - const res = await fetch(`${baseUrl}/v1beta/models`, { - headers: { "x-goog-api-key": apiKey || "" }, - signal: AbortSignal.timeout(8000), - }); - if (!res.ok) return []; - const body = await res.json(); - return (body.models || []).map((m) => String(m.name || "").replace(/^models\//, "")).filter(Boolean); - } catch { - return []; - } -} - -export async function runSetupGeminiCommand(opts = {}) { - const { baseUrl, apiKey } = resolveGeminiTarget(opts); - const dryRun = Boolean(opts.dryRun ?? opts["dry-run"]); - const configPath = opts.configPath ?? opts["config-path"] ?? join(os.homedir(), ".gemini", "settings.json"); - - printHeading("OmniRoute → Gemini CLI (native Gemini /v1beta endpoint)"); - printInfo(`GOOGLE_GEMINI_BASE_URL: ${baseUrl} (root — SDK appends /v1beta)`); - - let model = opts.model; - if (!model) { - const ids = await fetchGeminiModelIds(baseUrl, apiKey); - if (ids.length && !opts.yes) { - printInfo(`Examples: ${ids.slice(0, 20).join(", ")}${ids.length > 20 ? " …" : ""}`); - const prompt = createPrompt(); - try { - model = await prompt.ask("Model id for Gemini CLI"); - } finally { - prompt.close(); - } - } - } - if (!model) { - printError("A model is required. Pass --model ."); - return 2; - } - - if (dryRun) { - console.log(`\n── [dry-run] ${configPath} ── { "model": "${model}" }`); - } else { - const merged = buildGeminiSettings(readJson(configPath), { model }); - mkdirSync(join(configPath, ".."), { recursive: true }); - writeFileSync(configPath, JSON.stringify(merged, null, 2) + "\n", "utf8"); - printSuccess(`Wrote ${configPath} (model)`); - } - - printInfo("\nThe base URL is env-only for Gemini CLI — export these:"); - console.log(buildGeminiRecipe({ baseUrl, model })); - printInfo("\n⚠ If Gemini CLI ignores the base URL, you have a cached Google login —"); - printInfo(" run logged-out (API-key only) so GOOGLE_GEMINI_BASE_URL takes effect."); - return 0; -} - -export function registerSetupGemini(program) { - program - .command("setup-gemini") - .description("Point the Gemini CLI at OmniRoute's native Gemini /v1beta endpoint (env recipe + settings model)") - .option("--port ", "Local OmniRoute port (ignored when --remote is set)", "20128") - .option("--remote ", "Remote OmniRoute URL, e.g. http://192.168.0.15:20128") - .option("--api-key ", "OmniRoute API key (defaults to OMNIROUTE_API_KEY env var)") - .option("--model ", "Model id for Gemini CLI (required unless picked interactively)") - .option("--config-path ", "settings.json path (default: ~/.gemini/settings.json)") - .option("--yes", "Non-interactive: do not prompt (requires --model)") - .option("--dry-run", "Print what would be written without touching the filesystem") - .action(async (opts) => { - const code = await runSetupGeminiCommand(opts); - if (code !== 0) process.exit(code); - }); -} diff --git a/bin/cli/commands/setup-qwen.mjs b/bin/cli/commands/setup-qwen.mjs index 837b6f9c93..dd34300560 100644 --- a/bin/cli/commands/setup-qwen.mjs +++ b/bin/cli/commands/setup-qwen.mjs @@ -1,7 +1,7 @@ /** * omniroute setup-qwen — configure Qwen Code (QwenLM/qwen-code) for OmniRoute. * - * Qwen Code is a terminal AI agent (gemini-cli fork) with a file-based config at + * Qwen Code is a terminal AI agent with a file-based config at * ~/.qwen/settings.json. For a custom OpenAI-compatible endpoint it uses a * `modelProviders` entry with authType "openai", baseUrl WITH /v1, and an * `envKey` naming the env var holding the key (secret stays in the env, never the @@ -47,7 +47,9 @@ export function resolveQwenTarget(opts = {}) { /** Merge the OmniRoute modelProvider into Qwen's settings.json (preserve rest). */ export function buildQwenSettings(existing, { baseUrl, model }) { const s = existing && typeof existing === "object" ? { ...existing } : {}; - const providers = Array.isArray(s.modelProviders) ? s.modelProviders.filter((p) => p?.id !== "omniroute") : []; + const providers = Array.isArray(s.modelProviders) + ? s.modelProviders.filter((p) => p?.id !== "omniroute") + : []; providers.push({ id: "omniroute", name: "OmniRoute", @@ -82,7 +84,7 @@ async function fetchModelIds(baseUrl, apiKey) { }); if (!res.ok) return []; const body = await res.json(); - const list = Array.isArray(body) ? body : body.data ?? body.models ?? []; + const list = Array.isArray(body) ? body : (body.data ?? body.models ?? []); return list.map((m) => (typeof m === "string" ? m : m?.id)).filter(Boolean); } catch { return []; @@ -92,7 +94,8 @@ async function fetchModelIds(baseUrl, apiKey) { export async function runSetupQwenCommand(opts = {}) { const { baseUrl, apiKey } = resolveQwenTarget(opts); const dryRun = Boolean(opts.dryRun ?? opts["dry-run"]); - const configPath = opts.configPath ?? opts["config-path"] ?? join(os.homedir(), ".qwen", "settings.json"); + const configPath = + opts.configPath ?? opts["config-path"] ?? join(os.homedir(), ".qwen", "settings.json"); printHeading("OmniRoute → Qwen Code (openai-compatible)"); printInfo(`baseUrl: ${baseUrl}`); @@ -126,7 +129,9 @@ export async function runSetupQwenCommand(opts = {}) { writeFileSync(configPath, out, "utf8"); printSuccess(`Wrote ${configPath}`); } - printInfo("\nProvide the key (settings reference OMNIROUTE_API_KEY): export OMNIROUTE_API_KEY=..."); + printInfo( + "\nProvide the key (settings reference OMNIROUTE_API_KEY): export OMNIROUTE_API_KEY=..." + ); printInfo('Then run: qwen (or headless: qwen -p "reply OK")'); return 0; } @@ -134,7 +139,9 @@ export async function runSetupQwenCommand(opts = {}) { export function registerSetupQwen(program) { program .command("setup-qwen") - .description("Configure Qwen Code for OmniRoute: write ~/.qwen/settings.json (openai modelProvider)") + .description( + "Configure Qwen Code for OmniRoute: write ~/.qwen/settings.json (openai modelProvider)" + ) .option("--port ", "Local OmniRoute port (ignored when --remote is set)", "20128") .option("--remote ", "Remote OmniRoute URL, e.g. http://192.168.0.15:20128") .option("--api-key ", "OmniRoute API key (defaults to OMNIROUTE_API_KEY env var)") diff --git a/docs/architecture/ARCHITECTURE.md b/docs/architecture/ARCHITECTURE.md index 938c52e9f6..d61079d87a 100644 --- a/docs/architecture/ARCHITECTURE.md +++ b/docs/architecture/ARCHITECTURE.md @@ -912,7 +912,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CommandCodeExecutor` | Command Code | OAuth + per-session header rotation | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `DevinCliExecutor` | Devin CLI | Devin task lifecycle bridging via cloud agent module | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | | `GitlabExecutor` | GitLab Duo | GitLab OAuth + project-scoped routing | | `GlmExecutor` | Z.AI GLM (incl. `glmt` preset) | Thinking-budget aware, GLMT preset constants | @@ -943,7 +942,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ----------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -1014,7 +1012,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/architecture/CODEBASE_DOCUMENTATION.md index 4340edd251..dfa7f99855 100644 --- a/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -486,7 +486,6 @@ open-sse/ `antigravity`, `azure-openai`, `blackbox-web`, `chatgpt-web`, `cliproxyapi`, `cloudflare-ai`, `codex`, `commandCode`, `cursor`, `default`, `devin-cli`, -`gemini-cli`, `github`, `gitlab`, `glm`, `grok-web`, `kie`, `kiro`, `muse-spark-web`, `nlpcloud`, `opencode`, `perplexity-web`, `petals`, `pollinations`, `puter`, `qoder`, `vertex`, `windsurf`, plus `claudeIdentity.ts` (shared identity helper) and `index.ts` (registry). @@ -529,7 +528,6 @@ Highlights (full list under `open-sse/services/`): | Auto Combo engine | `autoCombo/` — `engine.ts`, `scoring.ts`, `taskFitness.ts`, `virtualFactory.ts`, `modePacks.ts`, `autoPrefix.ts`, `persistence.ts`, `providerDiversity.ts`, `providerRegistryAccessor.ts`, `routerStrategy.ts`, `selfHealing.ts`, `index.ts` | | Resilience | `accountFallback.ts` (cooldown + lockout), `errorClassifier.ts`, `emergencyFallback.ts`, `rateLimitManager.ts`, `rateLimitSemaphore.ts`, `accountSemaphore.ts`, `accountSelector.ts` | | Quotas | `quotaMonitor.ts`, `quotaPreflight.ts`, `bailianQuotaFetcher.ts`, `codexQuotaFetcher.ts`, `deepseekQuotaFetcher.ts`, `crofUsageFetcher.ts`, `antigravityCredits.ts` | -| Provider-specific shaping | `claudeCodeCCH.ts`, `claudeCodeCompatible.ts`, `claudeCodeConstraints.ts`, `claudeCodeExtraRemap.ts`, `claudeCodeFingerprint.ts`, `claudeCodeObfuscation.ts`, `claudeCodeToolRemapper.ts`, `cloudCodeHeaders.ts`, `cloudCodeThinking.ts`, `geminiCliHeaders.ts`, `geminiThoughtSignatureStore.ts`, `gigachatAuth.ts`, `antigravityHeaders.ts`, `antigravityHeaderScrub.ts`, `antigravityIdentity.ts`, `antigravityObfuscation.ts`, `antigravityVersion.ts`, `antigravity429Engine.ts`, `chatgptTlsClient.ts`, `chatgptImageCache.ts`, `cursorSessionManager.ts`, `qoderCli.ts`, `qwenThinking.ts`, `modelscopePolicy.ts` | | Caching | `reasoningCache.ts`, `searchCache.ts`, `signatureCache.ts`, `requestDedup.ts` | | Routing intelligence | `intentClassifier.ts`, `taskAwareRouter.ts`, `backgroundTaskDetector.ts`, `volumeDetector.ts`, `wildcardRouter.ts`, `workflowFSM.ts`, `specificityDetector.ts`, `specificityRules.ts`, `specificityTypes.ts` | | Model handling | `modelCapabilities.ts`, `modelDeprecation.ts`, `modelFamilyFallback.ts`, `modelStrip.ts`, `model.ts`, `provider.ts`, `providerRequestDefaults.ts`, `providerCostData.ts`, `payloadRules.ts` | diff --git a/docs/compression/COMPRESSION_GUIDE.md b/docs/compression/COMPRESSION_GUIDE.md index 1665cfef7e..a1564a1bb4 100644 --- a/docs/compression/COMPRESSION_GUIDE.md +++ b/docs/compression/COMPRESSION_GUIDE.md @@ -181,8 +181,8 @@ Combo: "free-forever" Compression Combo: "coding-agent-stack" Pipeline: RTK -> Caveman Targets: - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking + 1. if/kimi-k2-thinking + 2. qw/qwen3-coder-plus ``` This lets you use stacked compression on free/coding providers while keeping lite mode on paid diff --git a/docs/frameworks/ACP.md b/docs/frameworks/ACP.md index f5d2182ba3..fcfa08d3fc 100644 --- a/docs/frameworks/ACP.md +++ b/docs/frameworks/ACP.md @@ -4,7 +4,7 @@ title: ACP (Agent Client Protocol) # ACP (Agent Client Protocol) -> **TL;DR**: ACP lets OmniRoute spawn CLI agents (like Claude Code, Codex, Gemini CLI) as child processes instead of using HTTP APIs. This gives you "CLI-as-backend" transport. +> **TL;DR**: ACP lets OmniRoute spawn CLI agents (like Claude Code, Codex) as child processes instead of using HTTP APIs. This gives you "CLI-as-backend" transport. --- @@ -34,7 +34,6 @@ ACP supports **14 built-in CLI agents** out of the box: | `codex` | OpenAI Codex CLI | `codex` | stdio | | `claude` | Claude Code CLI | `claude` | stdio | | `goose` | Goose CLI | `goose` | stdio | -| `gemini-cli` | Gemini CLI | `gemini` | stdio | | `openclaw` | OpenClaw | `openclaw` | stdio | | `aider` | Aider | `aider` | stdio | | `opencode` | OpenCode | `opencode` | stdio | diff --git a/docs/getting-started/TROUBLESHOOTING.md b/docs/getting-started/TROUBLESHOOTING.md index 9b71a8156c..fc22eaa292 100644 --- a/docs/getting-started/TROUBLESHOOTING.md +++ b/docs/getting-started/TROUBLESHOOTING.md @@ -227,7 +227,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks +3. Use free tier (Qoder, Kiro) for non-critical tasks 4. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/guides/CLI-INTEGRATIONS.md b/docs/guides/CLI-INTEGRATIONS.md index d16ca19d7c..ba287c25aa 100644 --- a/docs/guides/CLI-INTEGRATIONS.md +++ b/docs/guides/CLI-INTEGRATIONS.md @@ -49,7 +49,6 @@ server and writes the config locally. | `omniroute setup-goose` | Goose | `~/.config/goose/config.yaml` (`GOOSE_PROVIDER`/`OPENAI_HOST`/`GOOSE_MODEL`) + prints env recipe | `--remote` `--api-key` `--model` `--yes` `--dry-run` `--port` `--config-path` | Both | | `omniroute setup-qwen` | Qwen Code | `~/.qwen/settings.json` — openai `modelProvider`, key via `envKey` (`OMNIROUTE_API_KEY`) | `--remote` `--api-key` `--model` `--yes` `--dry-run` `--port` `--config-path` | Both | | `omniroute setup-aider` | Aider | `~/.aider.conf.yml` (`openai-api-base` + `model: openai/`) + prints env recipe | `--remote` `--api-key` `--model` `--yes` `--dry-run` `--port` `--config-path` | Both | -| `omniroute setup-gemini` | Gemini CLI (native) | `~/.gemini/settings.json` (`model`) + prints env recipe; base URL is env-only | `--remote` `--api-key` `--model` `--yes` `--dry-run` `--port` `--config-path` | Both | | `omniroute launch` | Claude Code | Nothing — spawns `claude` with `ANTHROPIC_BASE_URL`/`ANTHROPIC_AUTH_TOKEN` injected | `--remote` `--api-key` `--token` `--profile` `--port` | Both | | `omniroute launch-codex` | OpenAI Codex CLI | Nothing — spawns `codex` with the `omniroute` provider injected via `-c` flags | `--remote` `--api-key` `--profile` (`-p`) `--port` | Both | @@ -65,7 +64,7 @@ Notes on flags (verified in the command source): filesystem. Available on every `setup-*` command **except** `setup-cursor` (which never writes a file). - `--model ` — required (or picked interactively) for the tools that have no - model auto-discovery: Cline, Kilo, Roo, Goose, Qwen, Aider, Gemini. Those tools + model auto-discovery: Cline, Kilo, Roo, Goose, Qwen, Aider. Those tools also accept `--yes` for non-interactive runs (which then requires `--model`). `setup-opencode` takes `--model` to set the default top-level model. - `--port ` — local OmniRoute port (default `20128`, ignored when `--remote` @@ -165,11 +164,6 @@ tool expects (verified in the command source): | `setup-kilo`, `setup-roo`, `setup-continue`, `setup-crush`, `setup-qwen`, `setup-cursor` | with `/v1` | Yes | | `setup-claude` (`ANTHROPIC_BASE_URL`), `launch` | root | No — Claude Code appends `/v1/messages` | | `setup-codex`, `launch-codex` (`model_providers.omniroute.base_url`) | with `/v1` | Yes | -| `setup-gemini` (`GOOGLE_GEMINI_BASE_URL`) | root | No — the genai SDK appends `/v1beta` | - -> Gemini CLI caveat: a cached Google login can make the CLI ignore -> `GOOGLE_GEMINI_BASE_URL`. Run it logged-out / API-key-only so the base URL takes -> effect (`setup-gemini` prints this warning too). --- diff --git a/docs/guides/FEATURES.md b/docs/guides/FEATURES.md index b240ba9037..a1488d2f01 100644 --- a/docs/guides/FEATURES.md +++ b/docs/guides/FEATURES.md @@ -51,7 +51,7 @@ The v3.7.x → v3.8.0 cycle added zero-config auto routing, new providers, OAuth ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. +Manage AI provider connections: OAuth providers (Claude Code, Codex), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. OpenRouter connections can store a per-connection `preset` in Advanced Settings. When set, OmniRoute sends it as the OpenRouter top-level request field, for example `"preset": "email-copywriter"`, unless the client request already supplied its own `preset`. @@ -128,7 +128,7 @@ Comprehensive settings panel with **7 tabs**: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](../screenshots/07-cli-tools.png) @@ -136,7 +136,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 18 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/guides/REMOTE-MODE.md b/docs/guides/REMOTE-MODE.md index 222c2a89d5..bff6c5ec3b 100644 --- a/docs/guides/REMOTE-MODE.md +++ b/docs/guides/REMOTE-MODE.md @@ -102,8 +102,7 @@ A token with insufficient scope gets `403` with a clear message. ## Connecting Antigravity on a remote install -Antigravity (and other Google "native/desktop" OAuth providers such as -`gemini-cli`) use Google's `firstparty/nativeapp` consent screen. Google only +Antigravity uses Google's firstparty/nativeapp consent screen. Google only releases the authorization code when the **loopback redirect** (`http://127.0.0.1:/callback`) is **reachable from the browser that approves the sign-in**. On a remote VPS install that loopback lives on the @@ -218,7 +217,6 @@ context, or `--remote --api-key `): | Goose | `omniroute setup-goose` | `~/.config/goose/config.yaml` (`GOOSE_PROVIDER=openai` + `OPENAI_HOST` **without** `/v1` + `GOOSE_MODEL`) + env recipe | | Qwen Code | `omniroute setup-qwen` | `~/.qwen/settings.json` — openai `modelProvider`, `baseUrl` **with** `/v1`, key via `envKey` (OMNIROUTE_API_KEY) | | Aider | `omniroute setup-aider` | `~/.aider.conf.yml` (`openai-api-base` **without** `/v1` + `model: openai/`) + env recipe (`aider --message --yes`) | -| Gemini CLI | `omniroute setup-gemini` | **native** Gemini API (not OpenAI-compatible) → `GOOGLE_GEMINI_BASE_URL` (root, SDK appends `/v1beta`) + `GEMINI_API_KEY` + `~/.gemini/settings.json` (`model`). ⚠ a cached Google login can override the base URL — run API-key-only | ```bash # OpenCode (openai-compatible provider, all catalog models, remote VPS) diff --git a/docs/guides/SETUP_GUIDE.md b/docs/guides/SETUP_GUIDE.md index 33ec1ce7d4..20d9ac348c 100644 --- a/docs/guides/SETUP_GUIDE.md +++ b/docs/guides/SETUP_GUIDE.md @@ -162,7 +162,7 @@ Chat URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/chat/completions Ollama Tags URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/api/tags ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. +Works with Claude Code, Codex CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. #### Auto-configure with `setup-*` @@ -182,7 +182,6 @@ omniroute setup-crush # ~/.config/crush/crush.json omniroute setup-goose # ~/.config/goose/config.yaml omniroute setup-qwen # ~/.qwen/settings.json omniroute setup-aider # ~/.aider.conf.yml -omniroute setup-gemini # Gemini CLI (native /v1beta endpoint) ``` Each accepts `--remote --api-key ` to configure a local tool against a diff --git a/docs/guides/TROUBLESHOOTING.md b/docs/guides/TROUBLESHOOTING.md index d11fb9bdb7..466de31c06 100644 --- a/docs/guides/TROUBLESHOOTING.md +++ b/docs/guides/TROUBLESHOOTING.md @@ -237,7 +237,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks +3. Use free tier (Qoder, Kiro) for non-critical tasks 4. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/guides/USER_GUIDE.md b/docs/guides/USER_GUIDE.md index 6c57463125..9c3bcef0e6 100644 --- a/docs/guides/USER_GUIDE.md +++ b/docs/guides/USER_GUIDE.md @@ -39,7 +39,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -59,7 +58,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | ~50 credits/mo | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -85,9 +83,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gemini-cli/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2 (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2 (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -162,20 +159,6 @@ Models: cx/gpt-5.3-codex-spark ``` -#### Gemini CLI (FREE 180K/month!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gemini-cli/gemini-3.1-pro-preview - gemini-cli/gemini-3-flash-preview - gemini-cli/gemini-3.1-flash-lite-preview -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -270,9 +253,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gemini-cli/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2 (unlimited) - 3. qw/coder-model (unlimited) + 1. if/kimi-k2 (unlimited) + 2. qw/coder-model (unlimited) Cost: $0 forever! ``` @@ -590,7 +572,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`, `cx/gpt-5.2` -**Gemini CLI (`gemini-cli/`)** — FREE OAuth: `gemini-cli/gemini-3.1-pro-preview`, `gemini-cli/gemini-3.1-pro-preview-customtools`, `gemini-cli/gemini-3-flash-preview`, `gemini-cli/gemini-3.1-flash-lite-preview` **GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime` diff --git a/docs/i18n/ar/README.md b/docs/i18n/ar/README.md index 08b09fd425..f5cd3a5cbf 100644 --- a/docs/i18n/ar/README.md +++ b/docs/i18n/ar/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md index f0291f673b..0f89ba452a 100644 --- a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ar/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ar/docs/architecture/CODEBASE_DOCUMENTATION.md index 6b1262695e..caddeac7d4 100644 --- a/docs/i18n/ar/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ar/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ar/docs/guides/FEATURES.md b/docs/i18n/ar/docs/guides/FEATURES.md index 3ece5614a8..1e6629b764 100644 --- a/docs/i18n/ar/docs/guides/FEATURES.md +++ b/docs/i18n/ar/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ar/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ar/docs/guides/TROUBLESHOOTING.md index 8ed817811a..c18537654d 100644 --- a/docs/i18n/ar/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ar/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ar/docs/guides/USER_GUIDE.md b/docs/i18n/ar/docs/guides/USER_GUIDE.md index 9925334240..3e1a8d5165 100644 --- a/docs/i18n/ar/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ar/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ar/docs/reference/ENVIRONMENT.md b/docs/i18n/ar/docs/reference/ENVIRONMENT.md index e25a4dd200..7363265d05 100644 --- a/docs/i18n/ar/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ar/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ar/llm.txt b/docs/i18n/ar/llm.txt index b1ed6a804f..4ef305a1ef 100644 --- a/docs/i18n/ar/llm.txt +++ b/docs/i18n/ar/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/az/README.md b/docs/i18n/az/README.md index b689d0a3cb..454354df10 100644 --- a/docs/i18n/az/README.md +++ b/docs/i18n/az/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -208,7 +200,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -220,7 +212,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -295,9 +287,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -341,7 +332,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -355,12 +345,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -712,9 +702,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -753,8 +742,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -868,7 +856,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1154,7 +1141,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1237,12 +1223,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1400,7 +1380,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1703,19 +1682,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1879,9 +1846,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2018,7 +1984,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2060,9 +2025,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2109,10 +2072,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2127,7 +2088,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2150,9 +2110,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2199,10 +2157,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2217,7 +2173,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/az/docs/architecture/ARCHITECTURE.md b/docs/i18n/az/docs/architecture/ARCHITECTURE.md index 645bdc8eee..e6987ee8cf 100644 --- a/docs/i18n/az/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/az/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/az/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/az/docs/architecture/CODEBASE_DOCUMENTATION.md index 71ccfc1fad..275740c56c 100644 --- a/docs/i18n/az/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/az/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/az/docs/guides/FEATURES.md b/docs/i18n/az/docs/guides/FEATURES.md index 3ab88be342..d22bdf46c3 100644 --- a/docs/i18n/az/docs/guides/FEATURES.md +++ b/docs/i18n/az/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/az/docs/guides/TROUBLESHOOTING.md b/docs/i18n/az/docs/guides/TROUBLESHOOTING.md index 84d2d262bc..ecc8ffa9b9 100644 --- a/docs/i18n/az/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/az/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/az/docs/guides/USER_GUIDE.md b/docs/i18n/az/docs/guides/USER_GUIDE.md index 08237ae382..fec9cd23c7 100644 --- a/docs/i18n/az/docs/guides/USER_GUIDE.md +++ b/docs/i18n/az/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/az/docs/reference/ENVIRONMENT.md b/docs/i18n/az/docs/reference/ENVIRONMENT.md index 2f97fa886a..834e598070 100644 --- a/docs/i18n/az/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/az/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/az/llm.txt b/docs/i18n/az/llm.txt index ba10dd6766..ae3f98da79 100644 --- a/docs/i18n/az/llm.txt +++ b/docs/i18n/az/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/bg/README.md b/docs/i18n/bg/README.md index 460686a662..77a70239f7 100644 --- a/docs/i18n/bg/README.md +++ b/docs/i18n/bg/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/bg/docs/architecture/ARCHITECTURE.md b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md index 645bdc8eee..e6987ee8cf 100644 --- a/docs/i18n/bg/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/bg/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/bg/docs/architecture/CODEBASE_DOCUMENTATION.md index 71ccfc1fad..275740c56c 100644 --- a/docs/i18n/bg/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/bg/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/bg/docs/guides/FEATURES.md b/docs/i18n/bg/docs/guides/FEATURES.md index 3ab88be342..d22bdf46c3 100644 --- a/docs/i18n/bg/docs/guides/FEATURES.md +++ b/docs/i18n/bg/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/bg/docs/guides/TROUBLESHOOTING.md b/docs/i18n/bg/docs/guides/TROUBLESHOOTING.md index 84d2d262bc..ecc8ffa9b9 100644 --- a/docs/i18n/bg/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/bg/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/bg/docs/guides/USER_GUIDE.md b/docs/i18n/bg/docs/guides/USER_GUIDE.md index 08237ae382..fec9cd23c7 100644 --- a/docs/i18n/bg/docs/guides/USER_GUIDE.md +++ b/docs/i18n/bg/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/bg/docs/reference/ENVIRONMENT.md b/docs/i18n/bg/docs/reference/ENVIRONMENT.md index f8017787e5..4846279f6b 100644 --- a/docs/i18n/bg/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/bg/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/bg/llm.txt b/docs/i18n/bg/llm.txt index ba10dd6766..ae3f98da79 100644 --- a/docs/i18n/bg/llm.txt +++ b/docs/i18n/bg/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/bn/README.md b/docs/i18n/bn/README.md index 7b46f8055f..16de9b3d59 100644 --- a/docs/i18n/bn/README.md +++ b/docs/i18n/bn/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/bn/docs/architecture/ARCHITECTURE.md b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md index 56761b24d9..d409687fd8 100644 --- a/docs/i18n/bn/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/bn/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/bn/docs/architecture/CODEBASE_DOCUMENTATION.md index f806ef9789..8103cf2ca3 100644 --- a/docs/i18n/bn/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/bn/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/bn/docs/guides/FEATURES.md b/docs/i18n/bn/docs/guides/FEATURES.md index 20034998a6..c383385817 100644 --- a/docs/i18n/bn/docs/guides/FEATURES.md +++ b/docs/i18n/bn/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/bn/docs/guides/TROUBLESHOOTING.md b/docs/i18n/bn/docs/guides/TROUBLESHOOTING.md index e1d40bff3f..4f8f7ed2ed 100644 --- a/docs/i18n/bn/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/bn/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/bn/docs/guides/USER_GUIDE.md b/docs/i18n/bn/docs/guides/USER_GUIDE.md index 2a945b326d..07a9b824fe 100644 --- a/docs/i18n/bn/docs/guides/USER_GUIDE.md +++ b/docs/i18n/bn/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/bn/docs/reference/ENVIRONMENT.md b/docs/i18n/bn/docs/reference/ENVIRONMENT.md index 30766263a2..9318208b14 100644 --- a/docs/i18n/bn/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/bn/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/bn/llm.txt b/docs/i18n/bn/llm.txt index e1881b74b3..03841d01b8 100644 --- a/docs/i18n/bn/llm.txt +++ b/docs/i18n/bn/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/cs/README.md b/docs/i18n/cs/README.md index ada3a26543..68ee3620e0 100644 --- a/docs/i18n/cs/README.md +++ b/docs/i18n/cs/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/cs/docs/architecture/ARCHITECTURE.md b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md index d38f49681c..9bcac8389d 100644 --- a/docs/i18n/cs/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/cs/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/cs/docs/architecture/CODEBASE_DOCUMENTATION.md index a98be8136b..0bac4b4a04 100644 --- a/docs/i18n/cs/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/cs/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/cs/docs/guides/FEATURES.md b/docs/i18n/cs/docs/guides/FEATURES.md index c035112e6c..9e66476264 100644 --- a/docs/i18n/cs/docs/guides/FEATURES.md +++ b/docs/i18n/cs/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/cs/docs/guides/TROUBLESHOOTING.md b/docs/i18n/cs/docs/guides/TROUBLESHOOTING.md index d4562b2259..08c9bfe946 100644 --- a/docs/i18n/cs/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/cs/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/cs/docs/guides/USER_GUIDE.md b/docs/i18n/cs/docs/guides/USER_GUIDE.md index 5cacc68d73..68f2fde2aa 100644 --- a/docs/i18n/cs/docs/guides/USER_GUIDE.md +++ b/docs/i18n/cs/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/cs/docs/reference/ENVIRONMENT.md b/docs/i18n/cs/docs/reference/ENVIRONMENT.md index b897101e37..01c4d7bd18 100644 --- a/docs/i18n/cs/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/cs/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/cs/llm.txt b/docs/i18n/cs/llm.txt index e97d027b9e..77a113b410 100644 --- a/docs/i18n/cs/llm.txt +++ b/docs/i18n/cs/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/da/README.md b/docs/i18n/da/README.md index d0cd230a06..a3f4db41c2 100644 --- a/docs/i18n/da/README.md +++ b/docs/i18n/da/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/da/docs/architecture/ARCHITECTURE.md b/docs/i18n/da/docs/architecture/ARCHITECTURE.md index 25664c0624..3b3889ea67 100644 --- a/docs/i18n/da/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/da/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/da/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/da/docs/architecture/CODEBASE_DOCUMENTATION.md index 84f57f3851..665d686d95 100644 --- a/docs/i18n/da/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/da/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/da/docs/guides/FEATURES.md b/docs/i18n/da/docs/guides/FEATURES.md index bc9fd3d2e1..b2e00c9e09 100644 --- a/docs/i18n/da/docs/guides/FEATURES.md +++ b/docs/i18n/da/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/da/docs/guides/TROUBLESHOOTING.md b/docs/i18n/da/docs/guides/TROUBLESHOOTING.md index 82639d666e..70d52dbbbe 100644 --- a/docs/i18n/da/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/da/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/da/docs/guides/USER_GUIDE.md b/docs/i18n/da/docs/guides/USER_GUIDE.md index 4e88082c7a..0a466a75aa 100644 --- a/docs/i18n/da/docs/guides/USER_GUIDE.md +++ b/docs/i18n/da/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/da/docs/reference/ENVIRONMENT.md b/docs/i18n/da/docs/reference/ENVIRONMENT.md index df6b9ec659..395391a89b 100644 --- a/docs/i18n/da/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/da/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/da/llm.txt b/docs/i18n/da/llm.txt index fe369af87e..27111f7663 100644 --- a/docs/i18n/da/llm.txt +++ b/docs/i18n/da/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/de/README.md b/docs/i18n/de/README.md index d8232dc39b..d13ada0de0 100644 --- a/docs/i18n/de/README.md +++ b/docs/i18n/de/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/de/docs/architecture/ARCHITECTURE.md b/docs/i18n/de/docs/architecture/ARCHITECTURE.md index 1a1469995e..b62e49c2b8 100644 --- a/docs/i18n/de/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/de/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/de/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/de/docs/architecture/CODEBASE_DOCUMENTATION.md index 63081ba461..c8dd764bf3 100644 --- a/docs/i18n/de/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/de/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/de/docs/guides/FEATURES.md b/docs/i18n/de/docs/guides/FEATURES.md index bb50368d44..1add344510 100644 --- a/docs/i18n/de/docs/guides/FEATURES.md +++ b/docs/i18n/de/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/de/docs/guides/TROUBLESHOOTING.md b/docs/i18n/de/docs/guides/TROUBLESHOOTING.md index d7873c8243..7f7806c4d5 100644 --- a/docs/i18n/de/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/de/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/de/docs/guides/USER_GUIDE.md b/docs/i18n/de/docs/guides/USER_GUIDE.md index cf9bbe0c54..1ad14d0994 100644 --- a/docs/i18n/de/docs/guides/USER_GUIDE.md +++ b/docs/i18n/de/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/de/docs/reference/ENVIRONMENT.md b/docs/i18n/de/docs/reference/ENVIRONMENT.md index ebbdf2c488..4cdafca828 100644 --- a/docs/i18n/de/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/de/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/de/llm.txt b/docs/i18n/de/llm.txt index 5965847f4e..5bf278026d 100644 --- a/docs/i18n/de/llm.txt +++ b/docs/i18n/de/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/es/README.md b/docs/i18n/es/README.md index 5e08143af9..90ef0046a2 100644 --- a/docs/i18n/es/README.md +++ b/docs/i18n/es/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/es/docs/architecture/ARCHITECTURE.md b/docs/i18n/es/docs/architecture/ARCHITECTURE.md index 5a2148ef4b..8c4b802723 100644 --- a/docs/i18n/es/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/es/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/es/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/es/docs/architecture/CODEBASE_DOCUMENTATION.md index 6e7f25a34f..0a11118368 100644 --- a/docs/i18n/es/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/es/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/es/docs/guides/FEATURES.md b/docs/i18n/es/docs/guides/FEATURES.md index a5e11a23ed..b02ef4bff4 100644 --- a/docs/i18n/es/docs/guides/FEATURES.md +++ b/docs/i18n/es/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/es/docs/guides/TROUBLESHOOTING.md b/docs/i18n/es/docs/guides/TROUBLESHOOTING.md index bd261b22d2..038427f3f5 100644 --- a/docs/i18n/es/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/es/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/es/docs/guides/USER_GUIDE.md b/docs/i18n/es/docs/guides/USER_GUIDE.md index 6a42ff54ce..546dbb51a0 100644 --- a/docs/i18n/es/docs/guides/USER_GUIDE.md +++ b/docs/i18n/es/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/es/docs/reference/ENVIRONMENT.md b/docs/i18n/es/docs/reference/ENVIRONMENT.md index 8136ec5645..17dbc88bef 100644 --- a/docs/i18n/es/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/es/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/es/llm.txt b/docs/i18n/es/llm.txt index fe4aebae50..62c25fb254 100644 --- a/docs/i18n/es/llm.txt +++ b/docs/i18n/es/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/fa/README.md b/docs/i18n/fa/README.md index b73eb8de65..0c6b008e24 100644 --- a/docs/i18n/fa/README.md +++ b/docs/i18n/fa/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/fa/docs/architecture/ARCHITECTURE.md b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md index 11ab24a6d4..2200021f49 100644 --- a/docs/i18n/fa/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/fa/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/fa/docs/architecture/CODEBASE_DOCUMENTATION.md index 3afde8bc21..57394cfa05 100644 --- a/docs/i18n/fa/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/fa/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/fa/docs/guides/FEATURES.md b/docs/i18n/fa/docs/guides/FEATURES.md index 25da7dc79e..71b703aaf3 100644 --- a/docs/i18n/fa/docs/guides/FEATURES.md +++ b/docs/i18n/fa/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/fa/docs/guides/TROUBLESHOOTING.md b/docs/i18n/fa/docs/guides/TROUBLESHOOTING.md index 2c0ee1b9c1..d036222604 100644 --- a/docs/i18n/fa/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/fa/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/fa/docs/guides/USER_GUIDE.md b/docs/i18n/fa/docs/guides/USER_GUIDE.md index ce7ded554a..ded4cfc7dd 100644 --- a/docs/i18n/fa/docs/guides/USER_GUIDE.md +++ b/docs/i18n/fa/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/fa/docs/reference/ENVIRONMENT.md b/docs/i18n/fa/docs/reference/ENVIRONMENT.md index 01669eedde..edf7913c76 100644 --- a/docs/i18n/fa/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/fa/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/fa/llm.txt b/docs/i18n/fa/llm.txt index 09c31321ec..c73041fb0f 100644 --- a/docs/i18n/fa/llm.txt +++ b/docs/i18n/fa/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/fi/README.md b/docs/i18n/fi/README.md index e476152b29..b309c8cc86 100644 --- a/docs/i18n/fi/README.md +++ b/docs/i18n/fi/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/fi/docs/architecture/ARCHITECTURE.md b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md index 0210c780f8..6f265fe271 100644 --- a/docs/i18n/fi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/fi/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/fi/docs/architecture/CODEBASE_DOCUMENTATION.md index 8db4f95b51..3390718f00 100644 --- a/docs/i18n/fi/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/fi/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/fi/docs/guides/FEATURES.md b/docs/i18n/fi/docs/guides/FEATURES.md index 1e7db1853f..2e5ec00f03 100644 --- a/docs/i18n/fi/docs/guides/FEATURES.md +++ b/docs/i18n/fi/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/fi/docs/guides/TROUBLESHOOTING.md b/docs/i18n/fi/docs/guides/TROUBLESHOOTING.md index 52ebbb2a8d..13f5956617 100644 --- a/docs/i18n/fi/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/fi/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/fi/docs/guides/USER_GUIDE.md b/docs/i18n/fi/docs/guides/USER_GUIDE.md index e80c5a6686..b5e62ba528 100644 --- a/docs/i18n/fi/docs/guides/USER_GUIDE.md +++ b/docs/i18n/fi/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/fi/docs/reference/ENVIRONMENT.md b/docs/i18n/fi/docs/reference/ENVIRONMENT.md index 861d3d2920..e061acdbfd 100644 --- a/docs/i18n/fi/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/fi/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/fi/llm.txt b/docs/i18n/fi/llm.txt index eae35ab7d1..497413012e 100644 --- a/docs/i18n/fi/llm.txt +++ b/docs/i18n/fi/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/fr/README.md b/docs/i18n/fr/README.md index b254cf4569..7dd2961804 100644 --- a/docs/i18n/fr/README.md +++ b/docs/i18n/fr/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/fr/docs/architecture/ARCHITECTURE.md b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md index cc9662341b..a69ef8dea8 100644 --- a/docs/i18n/fr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/fr/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/fr/docs/architecture/CODEBASE_DOCUMENTATION.md index 67863b5e69..39681b5522 100644 --- a/docs/i18n/fr/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/fr/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/fr/docs/guides/FEATURES.md b/docs/i18n/fr/docs/guides/FEATURES.md index d3e1d10042..7be773a33f 100644 --- a/docs/i18n/fr/docs/guides/FEATURES.md +++ b/docs/i18n/fr/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/fr/docs/guides/TROUBLESHOOTING.md b/docs/i18n/fr/docs/guides/TROUBLESHOOTING.md index b5483677da..47fb002524 100644 --- a/docs/i18n/fr/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/fr/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/fr/docs/guides/USER_GUIDE.md b/docs/i18n/fr/docs/guides/USER_GUIDE.md index 73a654a87e..88f478a77c 100644 --- a/docs/i18n/fr/docs/guides/USER_GUIDE.md +++ b/docs/i18n/fr/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/fr/docs/reference/ENVIRONMENT.md b/docs/i18n/fr/docs/reference/ENVIRONMENT.md index 5e7071dbd1..57a3721f69 100644 --- a/docs/i18n/fr/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/fr/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/fr/llm.txt b/docs/i18n/fr/llm.txt index 978f285d1b..e5c001a714 100644 --- a/docs/i18n/fr/llm.txt +++ b/docs/i18n/fr/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/gu/README.md b/docs/i18n/gu/README.md index e741cb069b..297d2d8800 100644 --- a/docs/i18n/gu/README.md +++ b/docs/i18n/gu/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/gu/docs/architecture/ARCHITECTURE.md b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md index 44a801c8b2..8fe17818df 100644 --- a/docs/i18n/gu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/gu/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/gu/docs/architecture/CODEBASE_DOCUMENTATION.md index c7ddf6258d..aa2235a21a 100644 --- a/docs/i18n/gu/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/gu/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/gu/docs/guides/FEATURES.md b/docs/i18n/gu/docs/guides/FEATURES.md index 6a57dd3d9c..01360deda7 100644 --- a/docs/i18n/gu/docs/guides/FEATURES.md +++ b/docs/i18n/gu/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/gu/docs/guides/TROUBLESHOOTING.md b/docs/i18n/gu/docs/guides/TROUBLESHOOTING.md index 72735de524..2f1b2d54d5 100644 --- a/docs/i18n/gu/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/gu/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/gu/docs/guides/USER_GUIDE.md b/docs/i18n/gu/docs/guides/USER_GUIDE.md index 9db7a02254..80c5c99cb6 100644 --- a/docs/i18n/gu/docs/guides/USER_GUIDE.md +++ b/docs/i18n/gu/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/gu/docs/reference/ENVIRONMENT.md b/docs/i18n/gu/docs/reference/ENVIRONMENT.md index c6e12686f9..c8598ed70e 100644 --- a/docs/i18n/gu/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/gu/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/gu/llm.txt b/docs/i18n/gu/llm.txt index 86b3bde22b..0075dd83df 100644 --- a/docs/i18n/gu/llm.txt +++ b/docs/i18n/gu/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/he/README.md b/docs/i18n/he/README.md index 67939da19a..e7171cd1f5 100644 --- a/docs/i18n/he/README.md +++ b/docs/i18n/he/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/he/docs/architecture/ARCHITECTURE.md b/docs/i18n/he/docs/architecture/ARCHITECTURE.md index db674ef0d8..8269b9f5ac 100644 --- a/docs/i18n/he/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/he/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/he/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/he/docs/architecture/CODEBASE_DOCUMENTATION.md index 79c325d01f..c7da8a126f 100644 --- a/docs/i18n/he/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/he/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/he/docs/guides/FEATURES.md b/docs/i18n/he/docs/guides/FEATURES.md index 1fc402d3c2..3a219a8a0b 100644 --- a/docs/i18n/he/docs/guides/FEATURES.md +++ b/docs/i18n/he/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/he/docs/guides/TROUBLESHOOTING.md b/docs/i18n/he/docs/guides/TROUBLESHOOTING.md index 083e96091b..c31547520d 100644 --- a/docs/i18n/he/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/he/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/he/docs/guides/USER_GUIDE.md b/docs/i18n/he/docs/guides/USER_GUIDE.md index 1c2eaa3a9a..78e5a78039 100644 --- a/docs/i18n/he/docs/guides/USER_GUIDE.md +++ b/docs/i18n/he/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/he/docs/reference/ENVIRONMENT.md b/docs/i18n/he/docs/reference/ENVIRONMENT.md index cc594b9f8f..79e85468ae 100644 --- a/docs/i18n/he/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/he/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/he/llm.txt b/docs/i18n/he/llm.txt index 155130f7a8..2de231b5f7 100644 --- a/docs/i18n/he/llm.txt +++ b/docs/i18n/he/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/hi/README.md b/docs/i18n/hi/README.md index 80fc3fb6f9..e3e1137c1b 100644 --- a/docs/i18n/hi/README.md +++ b/docs/i18n/hi/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/hi/docs/architecture/ARCHITECTURE.md b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md index 7d041c0d29..f08084bc51 100644 --- a/docs/i18n/hi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/hi/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/hi/docs/architecture/CODEBASE_DOCUMENTATION.md index 07b7bb5c76..72a4600e5b 100644 --- a/docs/i18n/hi/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/hi/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/hi/docs/guides/FEATURES.md b/docs/i18n/hi/docs/guides/FEATURES.md index 1749febe85..37964d05f9 100644 --- a/docs/i18n/hi/docs/guides/FEATURES.md +++ b/docs/i18n/hi/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/hi/docs/guides/TROUBLESHOOTING.md b/docs/i18n/hi/docs/guides/TROUBLESHOOTING.md index b0a1a63de1..9c14dbd51a 100644 --- a/docs/i18n/hi/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/hi/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/hi/docs/guides/USER_GUIDE.md b/docs/i18n/hi/docs/guides/USER_GUIDE.md index 6993a0add9..8fcffee823 100644 --- a/docs/i18n/hi/docs/guides/USER_GUIDE.md +++ b/docs/i18n/hi/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/hi/docs/reference/ENVIRONMENT.md b/docs/i18n/hi/docs/reference/ENVIRONMENT.md index cc8a1f7fa1..e5b85e4761 100644 --- a/docs/i18n/hi/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/hi/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/hi/llm.txt b/docs/i18n/hi/llm.txt index fc711374dc..5538516ec4 100644 --- a/docs/i18n/hi/llm.txt +++ b/docs/i18n/hi/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/hu/README.md b/docs/i18n/hu/README.md index 10ec2c155a..1800c66be2 100644 --- a/docs/i18n/hu/README.md +++ b/docs/i18n/hu/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/hu/docs/architecture/ARCHITECTURE.md b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md index a21ddb0ffd..6f4c162bab 100644 --- a/docs/i18n/hu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/hu/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/hu/docs/architecture/CODEBASE_DOCUMENTATION.md index bc76a8fd65..a18c0328cc 100644 --- a/docs/i18n/hu/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/hu/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/hu/docs/guides/FEATURES.md b/docs/i18n/hu/docs/guides/FEATURES.md index 686bb4f9d8..5260b5aed2 100644 --- a/docs/i18n/hu/docs/guides/FEATURES.md +++ b/docs/i18n/hu/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/hu/docs/guides/TROUBLESHOOTING.md b/docs/i18n/hu/docs/guides/TROUBLESHOOTING.md index ab2f0809e0..20aa87e5fa 100644 --- a/docs/i18n/hu/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/hu/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/hu/docs/guides/USER_GUIDE.md b/docs/i18n/hu/docs/guides/USER_GUIDE.md index e303432cda..3cb23c2da8 100644 --- a/docs/i18n/hu/docs/guides/USER_GUIDE.md +++ b/docs/i18n/hu/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/hu/docs/reference/ENVIRONMENT.md b/docs/i18n/hu/docs/reference/ENVIRONMENT.md index 93173817fb..abe496f9e2 100644 --- a/docs/i18n/hu/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/hu/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/hu/llm.txt b/docs/i18n/hu/llm.txt index 8c478f603a..2612c8734d 100644 --- a/docs/i18n/hu/llm.txt +++ b/docs/i18n/hu/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/id/README.md b/docs/i18n/id/README.md index c57e14d228..b0e108ea77 100644 --- a/docs/i18n/id/README.md +++ b/docs/i18n/id/README.md @@ -142,13 +142,6 @@ _Hubungkan IDE atau alat CLI berbasis AI apa pun melalui OmniRoute — gateway A
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Hubungkan IDE atau alat CLI berbasis AI apa pun melalui OmniRoute — gateway A - ✅ **Maksimalkan langganan** - Pantau kuota, gunakan setiap bit sebelum reset - ✅ **Fallback otomatis** - Langganan → Kunci API → Murah → Gratis, tanpa downtime - ✅ **Multi-akun** - Round-robin antar akun per penyedia -- ✅ **Universal** - Bekerja dengan Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, alat CLI apa pun --- @@ -207,7 +199,7 @@ Perintah ini menghasilkan `system-info.txt` berisi versi Node.js, versi OmniRout ``` ┌─────────────┐ -│ CLI Anda │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ Perintah ini menghasilkan `system-info.txt` berisi versi Node.js, versi OmniRout │ • Refresh token otomatis │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: LANGGANAN] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: LANGGANAN] Claude Code, Codex │ ↓ kuota habis ├─→ [Tier 2: KUNCI API] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, dll. │ ↓ batas anggaran @@ -294,9 +286,8 @@ Tidak semua orang bisa membayar $20–200/bulan untuk langganan AI. Pelajar, dev **Cara OmniRoute menyelesaikannya:** -- **Penyedia Tier Gratis Bawaan** — Dukungan asli untuk penyedia 100% gratis: Qoder (5 model tak terbatas via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 model tak terbatas: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K token/bulan gratis) - **Ollama Cloud** — Model Ollama yang di-host di cloud pada `api.ollama.com` dengan tier "Light usage" gratis; gunakan prefix `ollamacloud/` -- **Combo Hanya Gratis** — Rantai `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/bulan tanpa downtime +- **Combo Hanya Gratis** — Rantai `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/bulan tanpa downtime - **Akses Gratis NVIDIA NIM** — ~40 RPM akses gratis selamanya untuk 70+ model di build.nvidia.com (beralih dari kredit ke batas rate murni) - **Strategi Optimasi Biaya** — Strategi routing yang secara otomatis memilih penyedia termurah yang tersedia @@ -340,7 +331,6 @@ Penyedia AI bisa menjadi tidak stabil, mengembalikan kesalahan 5xx, atau mencapa
🔧 7. "Mengonfigurasi setiap alat AI membosankan dan berulang" -Developer menggunakan Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Setiap alat memerlukan konfigurasi berbeda (endpoint API, kunci, model). Mengonfigurasi ulang saat berganti penyedia atau model adalah pemborosan waktu. **Cara OmniRoute menyelesaikannya:** @@ -354,12 +344,10 @@ Developer menggunakan Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo
🔑 8. "Mengelola token OAuth dari beberapa penyedia adalah mimpi buruk" -Claude Code, Codex, Gemini CLI, Copilot — semua menggunakan OAuth 2.0 dengan token yang kedaluwarsa. Developer perlu mengautentikasi ulang terus-menerus, menangani `client_secret is missing`, `redirect_uri_mismatch`, dan kegagalan di server jarak jauh. OAuth di LAN/VPS sangat bermasalah. **Cara OmniRoute menyelesaikannya:** - **Refresh Token Otomatis** — Token OAuth diperbarui di latar belakang sebelum kedaluwarsa -- **OAuth 2.0 (PKCE) Bawaan** — Alur otomatis untuk Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **OAuth Multi-Akun** — Beberapa akun per penyedia melalui ekstraksi token JWT/ID - **Perbaikan OAuth LAN/Jarak Jauh** — Deteksi IP privat untuk `redirect_uri` + mode URL manual untuk server jarak jauh - **OAuth di Balik Nginx** — Menggunakan `window.location.origin` untuk kompatibilitas reverse proxy @@ -711,9 +699,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +739,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **Gratis 180K/bln** | -| 5 | `/dashboard/combos` → **Templat Tumpukan Gratis ($0)** | Round-robin semua penyedia gratis secara otomatis | +| 4 | `/dashboard/combos` → **Templat Tumpukan Gratis ($0)** | Round-robin semua penyedia gratis secara otomatis | **Arahkan IDE/CLI apa pun ke:** `http://localhost:20128/v1` · Kunci API: `any-string` · Selesai. @@ -867,7 +853,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Bekerja dengan Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, dan SDK yang kompatibel dengan OpenAI. ### 4) Mengaktifkan dan memvalidasi protokol (v2.0) @@ -1153,7 +1138,6 @@ Saat diminimalkan, OmniRoute ada di baki sistem Anda dengan tindakan cepat: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **GRATIS** (pengembangan selamanya) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1220,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Kunci API Gratis — build.nvidia.com) @@ -1399,7 +1377,6 @@ OmniRoute v3.6 dibangun sebagai platform operasional, bukan hanya proxy relai. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Halaman dasbor untuk menguji model apa pun secara langsung — pemilih penyedia/model/titik akhir, Editor Monaco, streaming, batalkan, pengaturan waktu | | 🔏 **CLI Fingerprint Matching** | Pengurutan header/isi per penyedia agar sesuai dengan tanda tangan CLI asli — alihkan per penyedia di Pengaturan > Keamanan. **IP proxy Anda dipertahankan** | -| 🤝 **Dukungan ACP (Protokol Klien Agen)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **Dasbor Agen ACP** | Debug › Halaman agen — kisi 14 agen dengan status pemasangan, versi, formulir agen khusus untuk alat CLI apa pun. Pengguna **OpenCode** mendapatkan tombol "Unduh opencode.json" yang secara otomatis menghasilkan konfigurasi siap pakai dengan semua model yang tersedia. | | 🔧 **Custom Model `apiFormat` Routing** | Model khusus dengan `apiFormat: "responses"` sekarang dirutekan dengan benar ke penerjemah Responses API | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1679,7 @@ Scenarios: - `5h ON` + `Weekly OFF` : hanya penggunaan 5 jam yang dapat memblokir akun. - `resetAt` lolos: akun masuk kembali ke rotasi secara otomatis (tidak ada pengaktifan ulang secara manual). -### Gemini CLI (GRATIS 180K/bulan!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Nilai Terbaik:** Tingkat gratis yang sangat besar! Gunakan ini sebelum tingkatan berbayar. ### GitHub Copilot @@ -1878,9 +1843,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1981,6 @@ opencode - Periksa statistik penggunaan di Dashboard → Biaya - Ganti model utama ke GLM/MiniMax -- Gunakan tingkat gratis (Gemini CLI, Qoder) untuk tugas-tugas yang tidak penting **Port dasbor/API salah** @@ -2059,9 +2022,7 @@ opencode > **⚠️ Penting bagi pengguna yang menjalankan OmniRoute di VPS, Docker, atau server jarak jauh mana pun** -#### Mengapa OAuth Antigravity / Gemini CLI gagal di server jarak jauh? -Penyedia **Antigravitasi** dan **Gemini CLI** menggunakan **Google OAuth 2.0**. Google mewajibkan `redirect_uri` dalam alur OAuth agar sama persis dengan salah satu URI yang telah didaftarkan sebelumnya di Google Cloud Console aplikasi. Kredensial OAuth yang disertakan dalam OmniRoute didaftarkan **hanya untuk `localhost`**. Saat Anda mengakses OmniRoute di server jarak jauh (misalnya `https://omniroute.myserver.com`), Google menolak autentikasi dengan: @@ -2108,10 +2069,8 @@ Di `.env` Anda (atau variabel lingkungan Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2085,6 @@ docker restart omniroute **7. Try connecting again** -Dasbor → Penyedia → Antigravitasi (atau Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2107,7 @@ Jika Anda tidak ingin menyiapkan kredensial Anda sendiri saat ini, Anda masih da
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2154,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2170,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dasbor → Penyedia → Antigravitasi (atau Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/id/docs/architecture/ARCHITECTURE.md b/docs/i18n/id/docs/architecture/ARCHITECTURE.md index 3445d8f776..ca9ed2487f 100644 --- a/docs/i18n/id/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/id/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Setiap penyedia memiliki pelaksana khusus yang memperluas `BaseExecutor` (dalam | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | Protokol ConnectRPC, pengkodean Protobuf, penandatanganan permintaan melalui checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | Format biner AWS EventStream → konversi SSE | | `OpenCodeExecutor` | OpenCode | Penyiapan penyedia yang kompatibel dengan AI SDK | | `PollinationsExecutor` | Pollinations AI | Tidak diperlukan kunci API, permintaan dengan tarif terbatas | @@ -687,7 +686,6 @@ Semua penyedia lain (termasuk node khusus yang kompatibel) menggunakan `DefaultE | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | Kunci API / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | Kunci API / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ API kuota penuh | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Format sasarannya meliputi: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/id/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/id/docs/architecture/CODEBASE_DOCUMENTATION.md index 13905a0259..73a1dc2713 100644 --- a/docs/i18n/id/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/id/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Pembuatan ID proyek/sesi, fallback multi-URL, parsing percobaan ulang kustom dari pesan error ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Paling kompleks**: autentikasi checksum SHA-256, encoding permintaan Protobuf, parsing binary EventStream → respons SSE | | `codex.ts` | OpenAI Codex | Menyuntikkan instruksi sistem, mengelola tingkat berpikir, menghapus parameter yang tidak didukung | -| `gemini-cli.ts` | Google Gemini CLI | Pembangunan URL kustom (`streamGenerateContent`), pembaruan token OAuth Google | | `github.ts` | GitHub Copilot | Sistem token ganda (GitHub OAuth + token Copilot), peniruan header VSCode | | `kiro.ts` | AWS CodeWhisperer | Parsing binary AWS EventStream, frame event AMZN, estimasi token | | `index.ts` | — | Factory: memetakan nama penyedia → kelas executor, dengan fallback default | @@ -520,7 +518,6 @@ Buffer 2000 token ditambahkan ke penggunaan yang dilaporkan untuk mencegah klien | API Respons OpenAI | sumber + target | `openai-responses` | | Anthropic Claude | sumber + target | `claude` | | Google Gemini | sumber + target | `gemini` | -| Google Gemini CLI | target saja | `gemini-cli` | | Antigravity | sumber + target | `antigravity` | | AWS Kiro | target saja | `kiro` | | Cursor | target saja | `cursor` | @@ -533,7 +530,6 @@ Buffer 2000 token ditambahkan ke penggunaan yang dilaporkan untuk mencegah klien | ------------------------ | ---------------------- | ----------- | ----------------------------------------------------- | | Anthropic Claude | Kunci API atau OAuth | Default | Menggunakan header `x-api-key` | | Google Gemini | Kunci API atau OAuth | Default | Menggunakan header `x-goog-api-key` | -| Google Gemini CLI | OAuth | GeminiCLI | Menggunakan endpoint `streamGenerateContent` | | Antigravity | OAuth | Antigravity | Penggantian multi-URL, penguraian percobaan ulang kustom | | OpenAI | API key | Default | Autentikasi Bearer standar | | Codex | OAuth | Codex | Menyuntikkan instruksi sistem, mengelola berpikir | diff --git a/docs/i18n/id/docs/guides/FEATURES.md b/docs/i18n/id/docs/guides/FEATURES.md index ba49bbd65f..2f1598f9ba 100644 --- a/docs/i18n/id/docs/guides/FEATURES.md +++ b/docs/i18n/id/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Panduan visual untuk setiap bagian dashboard OmniRoute. ## 🔌 Penyedia -Kelola koneksi penyedia AI: penyedia OAuth (Claude Code, Codex, Gemini CLI), penyedia kunci API (Groq, DeepSeek, OpenRouter), dan penyedia gratis (Qoder, Qwen, Kiro). Akun Kiro menyertakan pelacakan saldo kredit — sisa kredit, total tunjangan, dan tanggal pembaruan terlihat di Dashboard → Penggunaan. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,6 @@ Panel pengaturan komprehensif dengan tab: ## 🔧 Alat CLI -Konfigurasi satu klik untuk alat pengkodean AI: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, dan Factory Droid. Dilengkapi penerapan/reset konfigurasi otomatis, profil koneksi, dan pemetaan model. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +90,6 @@ Konfigurasi satu klik untuk alat pengkodean AI: Claude Code, Codex CLI, Gemini C ## 🤖 Agen CLI _(v2.0.11+)_ -Dashboard untuk menemukan dan mengelola agen CLI. Menampilkan kisi 14 agen bawaan (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) dengan: - **Status instalasi** — Terpasang / Tidak Ditemukan dengan deteksi versi - **Lencana protokol** — stdio, HTTP, dll. diff --git a/docs/i18n/id/docs/guides/TROUBLESHOOTING.md b/docs/i18n/id/docs/guides/TROUBLESHOOTING.md index 73fe032261..9e88afd6d2 100644 --- a/docs/i18n/id/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/id/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Periksa statistik penggunaan di Dashboard → Penggunaan 2. Beralih model utama ke GLM/MiniMax -3. Gunakan tier gratis (Gemini CLI, Qoder) untuk tugas yang tidak kritis -4. Atur anggaran biaya per API key: Dashboard → API Keys → Anggaran +3. Atur anggaran biaya per API key: Dashboard → API Keys → Anggaran --- diff --git a/docs/i18n/id/docs/guides/USER_GUIDE.md b/docs/i18n/id/docs/guides/USER_GUIDE.md index e857206971..dd22d79ca4 100644 --- a/docs/i18n/id/docs/guides/USER_GUIDE.md +++ b/docs/i18n/id/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Panduan lengkap untuk mengonfigurasi penyedia, membuat combo, mengintegrasikan a | ------------------- | ----------------- | ----------- | ---------------- | -------------------------- | | **💳 LANGGANAN** | Claude Code (Pro) | $20/bln | 5j + mingguan | Sudah berlangganan | | | Codex (Plus/Pro) | $20-200/bln | 5j + mingguan | Pengguna OpenAI | -| | Gemini CLI | **GRATIS** | 180K/bln + 1K/hr | Semua orang! | | | GitHub Copilot | $10-19/bln | Bulanan | Pengguna GitHub | | **🔑 KUNCI API** | DeepSeek | Bayar pakai | Tidak ada | Penalaran murah | | | Groq | Bayar pakai | Tidak ada | Inferensi sangat cepat | @@ -45,7 +44,6 @@ Panduan lengkap untuk mengonfigurasi penyedia, membuat combo, mengintegrasikan a | | Qwen | $0 | Tidak terbatas | 3 model gratis | | | Kiro | $0 | Tidak terbatas | Claude gratis | -**💡 Tips Pro:** Mulai dengan combo Gemini CLI (180K gratis/bulan) + Qoder (gratis tanpa batas) = biaya $0! --- @@ -71,9 +69,8 @@ vs. $20 + terkena batas = frustrasi ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K gratis/bulan) - 2. if/kimi-k2-thinking (gratis tanpa batas) - 3. qw/qwen3-coder-plus (gratis tanpa batas) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Biaya bulanan: $0 Kualitas: Model siap produksi @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (GRATIS 180K/bulan!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Nilai Terbaik:** Tingkat gratis yang sangat besar! Gunakan ini sebelum tingkatan berbayar. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K gratis/bulan) - 2. if/kimi-k2-thinking (tanpa batas) - 3. qw/qwen3-coder-plus (tanpa batas) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 selamanya! ``` @@ -558,7 +542,6 @@ Untuk referensi variabel lingkungan lengkap, lihat [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — GRATIS: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/id/docs/reference/ENVIRONMENT.md b/docs/i18n/id/docs/reference/ENVIRONMENT.md index a789977767..c18d5ffdd9 100644 --- a/docs/i18n/id/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/id/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Kredensial bawaan untuk **pengembangan localhost**. Untuk deployment jarak jauh, | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Klien publik. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Memerlukan `_SECRET` yang sesuai. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Biasanya sama dengan Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Klien publik. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Klien publik. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Memerlukan `_SECRET` yang sesuai. | @@ -318,7 +316,6 @@ Kredensial bawaan untuk **pengembangan localhost**. Untuk deployment jarak jauh, | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias untuk `QODER_CLI_WORKSPACE`. | > [!WARNING] -> Kredensial **Google OAuth** (Antigravity, Gemini CLI) **hanya berfungsi di localhost**. Untuk server jarak jauh: > > 1. Buka [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Buat OAuth 2.0 Client ID (tipe: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | Saat CLI Qoder diperbarui | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | Saat Qwen Code diperbarui | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | Saat Cursor diperbarui | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | Saat klien API Google diperbarui | > [!TIP] > Anda dapat menambahkan override User-Agent untuk provider **mana pun** menggunakan pola `{PROVIDER_ID}_USER_AGENT`. Executor secara dinamis membangun nama variabel lingkungan. diff --git a/docs/i18n/id/llm.txt b/docs/i18n/id/llm.txt index 3a74d8c6cb..5f8dec4f1c 100644 --- a/docs/i18n/id/llm.txt +++ b/docs/i18n/id/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/in/README.md b/docs/i18n/in/README.md index b21c80e4de..211fe26061 100644 --- a/docs/i18n/in/README.md +++ b/docs/i18n/in/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -339,7 +330,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -353,12 +343,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -710,9 +700,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -751,8 +740,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -857,7 +845,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1143,7 +1130,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1226,12 +1212,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1389,7 +1369,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1691,19 +1670,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1867,9 +1834,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2006,7 +1972,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2048,9 +2013,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2097,10 +2060,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2115,7 +2076,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2138,9 +2098,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2187,10 +2145,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2205,7 +2161,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/in/docs/architecture/ARCHITECTURE.md b/docs/i18n/in/docs/architecture/ARCHITECTURE.md index f05898cf8b..15650acbd1 100644 --- a/docs/i18n/in/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/in/docs/architecture/ARCHITECTURE.md @@ -673,7 +673,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -689,7 +688,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -738,7 +736,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/in/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/in/docs/architecture/CODEBASE_DOCUMENTATION.md index a8692d55b7..cb2b6d60ea 100644 --- a/docs/i18n/in/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/in/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/in/docs/guides/FEATURES.md b/docs/i18n/in/docs/guides/FEATURES.md index e52ea07d1a..20ebfe2359 100644 --- a/docs/i18n/in/docs/guides/FEATURES.md +++ b/docs/i18n/in/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/in/docs/guides/TROUBLESHOOTING.md b/docs/i18n/in/docs/guides/TROUBLESHOOTING.md index fab97adffe..7269a1151a 100644 --- a/docs/i18n/in/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/in/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/in/docs/guides/USER_GUIDE.md b/docs/i18n/in/docs/guides/USER_GUIDE.md index 4ca58553da..0b31305362 100644 --- a/docs/i18n/in/docs/guides/USER_GUIDE.md +++ b/docs/i18n/in/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/in/docs/reference/ENVIRONMENT.md b/docs/i18n/in/docs/reference/ENVIRONMENT.md index 80296ce1d1..f98b4df743 100644 --- a/docs/i18n/in/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/in/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/in/llm.txt b/docs/i18n/in/llm.txt index 5593e9f04c..d127b2f706 100644 --- a/docs/i18n/in/llm.txt +++ b/docs/i18n/in/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/it/README.md b/docs/i18n/it/README.md index 956f9c0c6f..034b3c2fed 100644 --- a/docs/i18n/it/README.md +++ b/docs/i18n/it/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/it/docs/architecture/ARCHITECTURE.md b/docs/i18n/it/docs/architecture/ARCHITECTURE.md index d38ce250f1..1245268975 100644 --- a/docs/i18n/it/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/it/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/it/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/it/docs/architecture/CODEBASE_DOCUMENTATION.md index 93e3a49c36..0fece9edb5 100644 --- a/docs/i18n/it/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/it/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/it/docs/guides/FEATURES.md b/docs/i18n/it/docs/guides/FEATURES.md index cc31da9719..6b62afe9c4 100644 --- a/docs/i18n/it/docs/guides/FEATURES.md +++ b/docs/i18n/it/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/it/docs/guides/TROUBLESHOOTING.md b/docs/i18n/it/docs/guides/TROUBLESHOOTING.md index 85b2d850ba..2999d23989 100644 --- a/docs/i18n/it/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/it/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/it/docs/guides/USER_GUIDE.md b/docs/i18n/it/docs/guides/USER_GUIDE.md index e75b2f0bce..cdfbbfd52d 100644 --- a/docs/i18n/it/docs/guides/USER_GUIDE.md +++ b/docs/i18n/it/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/it/docs/reference/ENVIRONMENT.md b/docs/i18n/it/docs/reference/ENVIRONMENT.md index d4138ee7b2..7b1266e8fb 100644 --- a/docs/i18n/it/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/it/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/it/llm.txt b/docs/i18n/it/llm.txt index 13c1693c88..ced69bf5e0 100644 --- a/docs/i18n/it/llm.txt +++ b/docs/i18n/it/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ja/README.md b/docs/i18n/ja/README.md index bb814a6bfe..f02f0bb835 100644 --- a/docs/i18n/ja/README.md +++ b/docs/i18n/ja/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ja/docs/architecture/ARCHITECTURE.md b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md index fa9b609df3..47463eb962 100644 --- a/docs/i18n/ja/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ja/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ja/docs/architecture/CODEBASE_DOCUMENTATION.md index 867b40509a..79112172db 100644 --- a/docs/i18n/ja/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ja/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ja/docs/guides/FEATURES.md b/docs/i18n/ja/docs/guides/FEATURES.md index 6e21783b41..6b82057192 100644 --- a/docs/i18n/ja/docs/guides/FEATURES.md +++ b/docs/i18n/ja/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ja/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ja/docs/guides/TROUBLESHOOTING.md index ba7b61683d..e8fce0f641 100644 --- a/docs/i18n/ja/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ja/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ja/docs/guides/USER_GUIDE.md b/docs/i18n/ja/docs/guides/USER_GUIDE.md index 07635ebdb0..838f2fe347 100644 --- a/docs/i18n/ja/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ja/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ja/docs/reference/ENVIRONMENT.md b/docs/i18n/ja/docs/reference/ENVIRONMENT.md index 6b152d036e..eb165b02a5 100644 --- a/docs/i18n/ja/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ja/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ja/llm.txt b/docs/i18n/ja/llm.txt index 57795e727f..1b7b054036 100644 --- a/docs/i18n/ja/llm.txt +++ b/docs/i18n/ja/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ko/README.md b/docs/i18n/ko/README.md index d1b3f52a53..ca55ef57c5 100644 --- a/docs/i18n/ko/README.md +++ b/docs/i18n/ko/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ko/docs/architecture/ARCHITECTURE.md b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md index 5eaa0321a0..a69a446528 100644 --- a/docs/i18n/ko/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ko/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ko/docs/architecture/CODEBASE_DOCUMENTATION.md index 7616def7eb..ac7b731bd2 100644 --- a/docs/i18n/ko/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ko/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ko/docs/guides/FEATURES.md b/docs/i18n/ko/docs/guides/FEATURES.md index 07e98810d1..cbe55f6579 100644 --- a/docs/i18n/ko/docs/guides/FEATURES.md +++ b/docs/i18n/ko/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ko/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ko/docs/guides/TROUBLESHOOTING.md index 5e5fcfe9ae..098d3e8493 100644 --- a/docs/i18n/ko/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ko/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ko/docs/guides/USER_GUIDE.md b/docs/i18n/ko/docs/guides/USER_GUIDE.md index 6532c9ec8a..da3438e8a4 100644 --- a/docs/i18n/ko/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ko/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ko/docs/reference/ENVIRONMENT.md b/docs/i18n/ko/docs/reference/ENVIRONMENT.md index c9c636f4d9..eec51b5b7a 100644 --- a/docs/i18n/ko/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ko/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ko/llm.txt b/docs/i18n/ko/llm.txt index e793feed12..5990b0bdf9 100644 --- a/docs/i18n/ko/llm.txt +++ b/docs/i18n/ko/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/mr/README.md b/docs/i18n/mr/README.md index cfa76273e5..cb54e3a758 100644 --- a/docs/i18n/mr/README.md +++ b/docs/i18n/mr/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/mr/docs/architecture/ARCHITECTURE.md b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md index 8a8d1dd44e..8d44e5d9a2 100644 --- a/docs/i18n/mr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/mr/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/mr/docs/architecture/CODEBASE_DOCUMENTATION.md index 7622376f69..14d7293bfc 100644 --- a/docs/i18n/mr/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/mr/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/mr/docs/guides/FEATURES.md b/docs/i18n/mr/docs/guides/FEATURES.md index 2ab3dcfb89..b54999936d 100644 --- a/docs/i18n/mr/docs/guides/FEATURES.md +++ b/docs/i18n/mr/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/mr/docs/guides/TROUBLESHOOTING.md b/docs/i18n/mr/docs/guides/TROUBLESHOOTING.md index 42b85cd959..c936799676 100644 --- a/docs/i18n/mr/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/mr/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/mr/docs/guides/USER_GUIDE.md b/docs/i18n/mr/docs/guides/USER_GUIDE.md index 74e89add27..021f33d6fb 100644 --- a/docs/i18n/mr/docs/guides/USER_GUIDE.md +++ b/docs/i18n/mr/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/mr/docs/reference/ENVIRONMENT.md b/docs/i18n/mr/docs/reference/ENVIRONMENT.md index 81cf6afd1a..d20e66c4e8 100644 --- a/docs/i18n/mr/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/mr/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/mr/llm.txt b/docs/i18n/mr/llm.txt index 52ee179971..c99e701af8 100644 --- a/docs/i18n/mr/llm.txt +++ b/docs/i18n/mr/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ms/README.md b/docs/i18n/ms/README.md index 86a5307300..6319ff2ee0 100644 --- a/docs/i18n/ms/README.md +++ b/docs/i18n/ms/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ms/docs/architecture/ARCHITECTURE.md b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md index b6fc5887ab..a02ccb3f5d 100644 --- a/docs/i18n/ms/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ms/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ms/docs/architecture/CODEBASE_DOCUMENTATION.md index 0210b07ecc..22d1ee562e 100644 --- a/docs/i18n/ms/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ms/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ms/docs/guides/FEATURES.md b/docs/i18n/ms/docs/guides/FEATURES.md index f6ce24091b..d69c0e0ca1 100644 --- a/docs/i18n/ms/docs/guides/FEATURES.md +++ b/docs/i18n/ms/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ms/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ms/docs/guides/TROUBLESHOOTING.md index 60d6c32989..e442cf6130 100644 --- a/docs/i18n/ms/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ms/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ms/docs/guides/USER_GUIDE.md b/docs/i18n/ms/docs/guides/USER_GUIDE.md index 6b8812b40a..03d9ad35a0 100644 --- a/docs/i18n/ms/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ms/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ms/docs/reference/ENVIRONMENT.md b/docs/i18n/ms/docs/reference/ENVIRONMENT.md index 77bf232cb5..4c9bf4da2d 100644 --- a/docs/i18n/ms/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ms/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ms/llm.txt b/docs/i18n/ms/llm.txt index fc7f9dc5c5..919956a796 100644 --- a/docs/i18n/ms/llm.txt +++ b/docs/i18n/ms/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/nl/README.md b/docs/i18n/nl/README.md index f49e275dc6..9cfb24c8ad 100644 --- a/docs/i18n/nl/README.md +++ b/docs/i18n/nl/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/nl/docs/architecture/ARCHITECTURE.md b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md index f7876a7538..1c2e72a084 100644 --- a/docs/i18n/nl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/nl/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/nl/docs/architecture/CODEBASE_DOCUMENTATION.md index dfaf28e4d9..15ebc3577d 100644 --- a/docs/i18n/nl/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/nl/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/nl/docs/guides/FEATURES.md b/docs/i18n/nl/docs/guides/FEATURES.md index 1cdbe1fb6a..a1b7b1d9a1 100644 --- a/docs/i18n/nl/docs/guides/FEATURES.md +++ b/docs/i18n/nl/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/nl/docs/guides/TROUBLESHOOTING.md b/docs/i18n/nl/docs/guides/TROUBLESHOOTING.md index 17d12ce29c..ff54bcf1c9 100644 --- a/docs/i18n/nl/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/nl/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/nl/docs/guides/USER_GUIDE.md b/docs/i18n/nl/docs/guides/USER_GUIDE.md index f5fed73ac3..800542f206 100644 --- a/docs/i18n/nl/docs/guides/USER_GUIDE.md +++ b/docs/i18n/nl/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/nl/docs/reference/ENVIRONMENT.md b/docs/i18n/nl/docs/reference/ENVIRONMENT.md index 4a1fdfd53e..dc85ad6a6a 100644 --- a/docs/i18n/nl/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/nl/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/nl/llm.txt b/docs/i18n/nl/llm.txt index 96164f3297..598ac7f79f 100644 --- a/docs/i18n/nl/llm.txt +++ b/docs/i18n/nl/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/no/README.md b/docs/i18n/no/README.md index 3b79e6ef3d..86cd0157b1 100644 --- a/docs/i18n/no/README.md +++ b/docs/i18n/no/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/no/docs/architecture/ARCHITECTURE.md b/docs/i18n/no/docs/architecture/ARCHITECTURE.md index 09c7b8901b..6348ff7841 100644 --- a/docs/i18n/no/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/no/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/no/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/no/docs/architecture/CODEBASE_DOCUMENTATION.md index 1f8a75068b..d1457dd9bb 100644 --- a/docs/i18n/no/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/no/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/no/docs/guides/FEATURES.md b/docs/i18n/no/docs/guides/FEATURES.md index 3cadf7357e..3dbd40638b 100644 --- a/docs/i18n/no/docs/guides/FEATURES.md +++ b/docs/i18n/no/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/no/docs/guides/TROUBLESHOOTING.md b/docs/i18n/no/docs/guides/TROUBLESHOOTING.md index 7cb3399476..0254f772f2 100644 --- a/docs/i18n/no/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/no/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/no/docs/guides/USER_GUIDE.md b/docs/i18n/no/docs/guides/USER_GUIDE.md index cd4b100408..ef53dcefa6 100644 --- a/docs/i18n/no/docs/guides/USER_GUIDE.md +++ b/docs/i18n/no/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/no/docs/reference/ENVIRONMENT.md b/docs/i18n/no/docs/reference/ENVIRONMENT.md index 58d9942eac..39c6dce671 100644 --- a/docs/i18n/no/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/no/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/no/llm.txt b/docs/i18n/no/llm.txt index b0d3605b9f..010405518f 100644 --- a/docs/i18n/no/llm.txt +++ b/docs/i18n/no/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/phi/README.md b/docs/i18n/phi/README.md index 472b8d52c9..cdee7e0713 100644 --- a/docs/i18n/phi/README.md +++ b/docs/i18n/phi/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/phi/docs/architecture/ARCHITECTURE.md b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md index 6c0fa71aea..45fac5f7f7 100644 --- a/docs/i18n/phi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/phi/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/phi/docs/architecture/CODEBASE_DOCUMENTATION.md index 33270885ce..8b034250f4 100644 --- a/docs/i18n/phi/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/phi/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/phi/docs/guides/FEATURES.md b/docs/i18n/phi/docs/guides/FEATURES.md index b7eedebc9f..00d7557475 100644 --- a/docs/i18n/phi/docs/guides/FEATURES.md +++ b/docs/i18n/phi/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/phi/docs/guides/TROUBLESHOOTING.md b/docs/i18n/phi/docs/guides/TROUBLESHOOTING.md index 645dbd210d..f1e4c6a86c 100644 --- a/docs/i18n/phi/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/phi/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/phi/docs/guides/USER_GUIDE.md b/docs/i18n/phi/docs/guides/USER_GUIDE.md index 84f81c02d5..c1c0044817 100644 --- a/docs/i18n/phi/docs/guides/USER_GUIDE.md +++ b/docs/i18n/phi/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/phi/docs/reference/ENVIRONMENT.md b/docs/i18n/phi/docs/reference/ENVIRONMENT.md index 3592c23485..a58739c963 100644 --- a/docs/i18n/phi/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/phi/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/phi/llm.txt b/docs/i18n/phi/llm.txt index f3f0c3ed50..052e2c32b7 100644 --- a/docs/i18n/phi/llm.txt +++ b/docs/i18n/phi/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/pl/README.md b/docs/i18n/pl/README.md index b18ad15790..9a6864d878 100644 --- a/docs/i18n/pl/README.md +++ b/docs/i18n/pl/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/pl/docs/architecture/ARCHITECTURE.md b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md index 7377a44839..3f4d12e034 100644 --- a/docs/i18n/pl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md index 9250f458bc..58e1dfb1f5 100644 --- a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/pl/docs/guides/FEATURES.md b/docs/i18n/pl/docs/guides/FEATURES.md index 098465e427..d49b928d4f 100644 --- a/docs/i18n/pl/docs/guides/FEATURES.md +++ b/docs/i18n/pl/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/pl/docs/guides/TROUBLESHOOTING.md b/docs/i18n/pl/docs/guides/TROUBLESHOOTING.md index 03529c71ed..cae9d2adae 100644 --- a/docs/i18n/pl/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/pl/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/pl/docs/guides/USER_GUIDE.md b/docs/i18n/pl/docs/guides/USER_GUIDE.md index dda4f63c28..6db4e45824 100644 --- a/docs/i18n/pl/docs/guides/USER_GUIDE.md +++ b/docs/i18n/pl/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/pl/docs/reference/ENVIRONMENT.md b/docs/i18n/pl/docs/reference/ENVIRONMENT.md index 0c23ef265d..52e754d21b 100644 --- a/docs/i18n/pl/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/pl/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/pl/llm.txt b/docs/i18n/pl/llm.txt index d7c29171ee..7cb218b9d4 100644 --- a/docs/i18n/pl/llm.txt +++ b/docs/i18n/pl/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/pt-BR/README.md b/docs/i18n/pt-BR/README.md index 27f95745aa..cc6147766e 100644 --- a/docs/i18n/pt-BR/README.md +++ b/docs/i18n/pt-BR/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md index 6a137b023b..06bb8dbea0 100644 --- a/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md @@ -893,7 +893,6 @@ Cada provedor tem um executor especializado que estende `BaseExecutor` (em `open | `CommandCodeExecutor` | Código de Comando | Rotação de cabeçalho por sessão + OAuth | | `CursorExecutor` | Cursor IDE | Protocolo ConnectRPC, codificação Protobuf, assinatura de requisições via checksum | | `DevinCliExecutor` | Devin CLI | Conexão do ciclo de vida da tarefa Devin via módulo de agente em nuvem | -| `GeminiCLIExecutor` | Gemini CLI | Ciclo de atualização de token OAuth do Google | | `GithubExecutor` | GitHub Copilot | Atualização de token do Copilot, cabeçalhos imitando VSCode | | `GitlabExecutor` | GitLab Duo | Roteamento baseado em projeto + OAuth do GitLab | | `GlmExecutor` | Z.AI GLM (incl. preset `glmt`) | Consciente do orçamento de pensamento, constantes do preset GLMT | @@ -924,7 +923,6 @@ Todos os outros provedores (incluindo nós compatíveis personalizados) usam o ` | ----------------- | ---------------- | -------------------------- | ---------------- | ---------- | -------------------- | -------------------- | | Claude | claude | Chave de API / OAuth | ✅ | ✅ | ✅ | ⚠️ Somente Admin | | Gemini | gemini | Chave de API / OAuth | ✅ | ✅ | ✅ | ⚠️ Console da Nuvem | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Console da Nuvem | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ API de cota total | | OpenAI | openai | Chave de API | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forçado | ❌ | ✅ | ✅ Limites de taxa | @@ -995,7 +993,7 @@ Os formatos de destino incluem: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/pt-BR/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/pt-BR/docs/architecture/CODEBASE_DOCUMENTATION.md index fa2dbf1557..2ba43efa85 100644 --- a/docs/i18n/pt-BR/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/pt-BR/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/pt-BR/docs/guides/FEATURES.md b/docs/i18n/pt-BR/docs/guides/FEATURES.md index 3ab38bb37f..84997f71dd 100644 --- a/docs/i18n/pt-BR/docs/guides/FEATURES.md +++ b/docs/i18n/pt-BR/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/pt-BR/docs/guides/TROUBLESHOOTING.md b/docs/i18n/pt-BR/docs/guides/TROUBLESHOOTING.md index f951053005..5d5a433c28 100644 --- a/docs/i18n/pt-BR/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/pt-BR/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md b/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md index 6c99a1404c..46bd5b7f21 100644 --- a/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md +++ b/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/pt-BR/docs/reference/ENVIRONMENT.md b/docs/i18n/pt-BR/docs/reference/ENVIRONMENT.md index c00c024987..b3c9d2db44 100644 --- a/docs/i18n/pt-BR/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/pt-BR/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/pt-BR/llm.txt b/docs/i18n/pt-BR/llm.txt index 52692cfbb8..93ca9e8215 100644 --- a/docs/i18n/pt-BR/llm.txt +++ b/docs/i18n/pt-BR/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/pt/README.md b/docs/i18n/pt/README.md index 016d883f6e..8a6c3bd5dc 100644 --- a/docs/i18n/pt/README.md +++ b/docs/i18n/pt/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/pt/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md index f01f892f1e..ccfd7cd5f6 100644 --- a/docs/i18n/pt/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/pt/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/pt/docs/architecture/CODEBASE_DOCUMENTATION.md index 050a6c3ad9..65ab1ba85f 100644 --- a/docs/i18n/pt/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/pt/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/pt/docs/guides/FEATURES.md b/docs/i18n/pt/docs/guides/FEATURES.md index 2819a49826..bc1f4195e7 100644 --- a/docs/i18n/pt/docs/guides/FEATURES.md +++ b/docs/i18n/pt/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/pt/docs/guides/TROUBLESHOOTING.md b/docs/i18n/pt/docs/guides/TROUBLESHOOTING.md index 00914abc61..ffed6c7c41 100644 --- a/docs/i18n/pt/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/pt/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/pt/docs/guides/USER_GUIDE.md b/docs/i18n/pt/docs/guides/USER_GUIDE.md index a31a31bab2..4998352888 100644 --- a/docs/i18n/pt/docs/guides/USER_GUIDE.md +++ b/docs/i18n/pt/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/pt/docs/reference/ENVIRONMENT.md b/docs/i18n/pt/docs/reference/ENVIRONMENT.md index 96e8faf309..6ccfcc655c 100644 --- a/docs/i18n/pt/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/pt/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/pt/llm.txt b/docs/i18n/pt/llm.txt index b02379a1b5..588ec11cb3 100644 --- a/docs/i18n/pt/llm.txt +++ b/docs/i18n/pt/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ro/README.md b/docs/i18n/ro/README.md index fceb2ae40d..4d70312403 100644 --- a/docs/i18n/ro/README.md +++ b/docs/i18n/ro/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ro/docs/architecture/ARCHITECTURE.md b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md index aa76ed7e47..95de10c450 100644 --- a/docs/i18n/ro/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ro/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ro/docs/architecture/CODEBASE_DOCUMENTATION.md index 22961be840..40dc292aaf 100644 --- a/docs/i18n/ro/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ro/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ro/docs/guides/FEATURES.md b/docs/i18n/ro/docs/guides/FEATURES.md index 15dcb7c357..59a480d450 100644 --- a/docs/i18n/ro/docs/guides/FEATURES.md +++ b/docs/i18n/ro/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ro/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ro/docs/guides/TROUBLESHOOTING.md index 298dc196f9..14bfc04e3f 100644 --- a/docs/i18n/ro/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ro/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ro/docs/guides/USER_GUIDE.md b/docs/i18n/ro/docs/guides/USER_GUIDE.md index 3c9d3fe121..6c9d9ab030 100644 --- a/docs/i18n/ro/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ro/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ro/docs/reference/ENVIRONMENT.md b/docs/i18n/ro/docs/reference/ENVIRONMENT.md index 429448d0b2..0890325c40 100644 --- a/docs/i18n/ro/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ro/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ro/llm.txt b/docs/i18n/ro/llm.txt index 9a37e98de9..1da077f0b0 100644 --- a/docs/i18n/ro/llm.txt +++ b/docs/i18n/ro/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ru/README.md b/docs/i18n/ru/README.md index cc48235000..9ce9cb2eeb 100644 --- a/docs/i18n/ru/README.md +++ b/docs/i18n/ru/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ru/docs/architecture/ARCHITECTURE.md b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md index 20f28b7a8c..d169fdbac2 100644 --- a/docs/i18n/ru/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ru/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ru/docs/architecture/CODEBASE_DOCUMENTATION.md index e4fcdecfbf..45abf55fde 100644 --- a/docs/i18n/ru/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ru/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ru/docs/guides/FEATURES.md b/docs/i18n/ru/docs/guides/FEATURES.md index f81d89c795..13f5740471 100644 --- a/docs/i18n/ru/docs/guides/FEATURES.md +++ b/docs/i18n/ru/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ru/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ru/docs/guides/TROUBLESHOOTING.md index 9fa7cd15ad..9534e7b3c2 100644 --- a/docs/i18n/ru/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ru/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ru/docs/guides/USER_GUIDE.md b/docs/i18n/ru/docs/guides/USER_GUIDE.md index a48c8674a0..aac6b1cde1 100644 --- a/docs/i18n/ru/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ru/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ru/docs/reference/ENVIRONMENT.md b/docs/i18n/ru/docs/reference/ENVIRONMENT.md index ad6336a1b9..ea4384bf78 100644 --- a/docs/i18n/ru/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ru/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ru/llm.txt b/docs/i18n/ru/llm.txt index 3b8a1ddd81..e27fa3b6bb 100644 --- a/docs/i18n/ru/llm.txt +++ b/docs/i18n/ru/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/sk/README.md b/docs/i18n/sk/README.md index 5d41baf95e..c73823d3c5 100644 --- a/docs/i18n/sk/README.md +++ b/docs/i18n/sk/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/sk/docs/architecture/ARCHITECTURE.md b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md index 3f1297721b..7d860629ff 100644 --- a/docs/i18n/sk/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/sk/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/sk/docs/architecture/CODEBASE_DOCUMENTATION.md index dee0d640e1..b75bd366a1 100644 --- a/docs/i18n/sk/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/sk/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/sk/docs/guides/FEATURES.md b/docs/i18n/sk/docs/guides/FEATURES.md index 57d55b4eed..7768ca5f4e 100644 --- a/docs/i18n/sk/docs/guides/FEATURES.md +++ b/docs/i18n/sk/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/sk/docs/guides/TROUBLESHOOTING.md b/docs/i18n/sk/docs/guides/TROUBLESHOOTING.md index 69e37c671d..7b4ffcf586 100644 --- a/docs/i18n/sk/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/sk/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/sk/docs/guides/USER_GUIDE.md b/docs/i18n/sk/docs/guides/USER_GUIDE.md index c09db694ee..bfd7af309e 100644 --- a/docs/i18n/sk/docs/guides/USER_GUIDE.md +++ b/docs/i18n/sk/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/sk/docs/reference/ENVIRONMENT.md b/docs/i18n/sk/docs/reference/ENVIRONMENT.md index e8fcfc8c22..a2329cdd1d 100644 --- a/docs/i18n/sk/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/sk/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/sk/llm.txt b/docs/i18n/sk/llm.txt index a2238a2f38..a1135ad32a 100644 --- a/docs/i18n/sk/llm.txt +++ b/docs/i18n/sk/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/sv/README.md b/docs/i18n/sv/README.md index 519e507573..18ae0fb25b 100644 --- a/docs/i18n/sv/README.md +++ b/docs/i18n/sv/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/sv/docs/architecture/ARCHITECTURE.md b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md index 4bb316557c..6c9a0df6de 100644 --- a/docs/i18n/sv/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/sv/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/sv/docs/architecture/CODEBASE_DOCUMENTATION.md index 0a9a114763..776ab318a2 100644 --- a/docs/i18n/sv/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/sv/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/sv/docs/guides/FEATURES.md b/docs/i18n/sv/docs/guides/FEATURES.md index b338993a69..46bdf0b14f 100644 --- a/docs/i18n/sv/docs/guides/FEATURES.md +++ b/docs/i18n/sv/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/sv/docs/guides/TROUBLESHOOTING.md b/docs/i18n/sv/docs/guides/TROUBLESHOOTING.md index aafabe2f6f..d573fbc3b9 100644 --- a/docs/i18n/sv/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/sv/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/sv/docs/guides/USER_GUIDE.md b/docs/i18n/sv/docs/guides/USER_GUIDE.md index bcb8fc0d2d..ef871c2562 100644 --- a/docs/i18n/sv/docs/guides/USER_GUIDE.md +++ b/docs/i18n/sv/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/sv/docs/reference/ENVIRONMENT.md b/docs/i18n/sv/docs/reference/ENVIRONMENT.md index 30a72885e1..e01c81dfc4 100644 --- a/docs/i18n/sv/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/sv/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/sv/llm.txt b/docs/i18n/sv/llm.txt index 089fdb811b..49f0055647 100644 --- a/docs/i18n/sv/llm.txt +++ b/docs/i18n/sv/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/sw/README.md b/docs/i18n/sw/README.md index 51117e4541..75e7569985 100644 --- a/docs/i18n/sw/README.md +++ b/docs/i18n/sw/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/sw/docs/architecture/ARCHITECTURE.md b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md index ee07f85f62..11c220528b 100644 --- a/docs/i18n/sw/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/sw/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/sw/docs/architecture/CODEBASE_DOCUMENTATION.md index e47078690f..e64f568480 100644 --- a/docs/i18n/sw/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/sw/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/sw/docs/guides/FEATURES.md b/docs/i18n/sw/docs/guides/FEATURES.md index 7de9ca52d6..b579747309 100644 --- a/docs/i18n/sw/docs/guides/FEATURES.md +++ b/docs/i18n/sw/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/sw/docs/guides/TROUBLESHOOTING.md b/docs/i18n/sw/docs/guides/TROUBLESHOOTING.md index 2e501b3b0d..63dde948bc 100644 --- a/docs/i18n/sw/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/sw/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/sw/docs/guides/USER_GUIDE.md b/docs/i18n/sw/docs/guides/USER_GUIDE.md index 02d177c370..6b63751000 100644 --- a/docs/i18n/sw/docs/guides/USER_GUIDE.md +++ b/docs/i18n/sw/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/sw/docs/reference/ENVIRONMENT.md b/docs/i18n/sw/docs/reference/ENVIRONMENT.md index 3a6a61869e..3b0b87fda8 100644 --- a/docs/i18n/sw/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/sw/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/sw/llm.txt b/docs/i18n/sw/llm.txt index 8cf8616e81..9aff594d90 100644 --- a/docs/i18n/sw/llm.txt +++ b/docs/i18n/sw/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ta/README.md b/docs/i18n/ta/README.md index 6fb59fb32a..f68a8a5ebb 100644 --- a/docs/i18n/ta/README.md +++ b/docs/i18n/ta/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ta/docs/architecture/ARCHITECTURE.md b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md index 91045a8e05..07662501e7 100644 --- a/docs/i18n/ta/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ta/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ta/docs/architecture/CODEBASE_DOCUMENTATION.md index 537e6ee68c..8eb74ac910 100644 --- a/docs/i18n/ta/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ta/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ta/docs/guides/FEATURES.md b/docs/i18n/ta/docs/guides/FEATURES.md index 0b836bec15..7809738ec7 100644 --- a/docs/i18n/ta/docs/guides/FEATURES.md +++ b/docs/i18n/ta/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ta/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ta/docs/guides/TROUBLESHOOTING.md index 9ee7d18489..68ecdfc194 100644 --- a/docs/i18n/ta/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ta/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ta/docs/guides/USER_GUIDE.md b/docs/i18n/ta/docs/guides/USER_GUIDE.md index d102dc0908..21ec90c76e 100644 --- a/docs/i18n/ta/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ta/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ta/docs/reference/ENVIRONMENT.md b/docs/i18n/ta/docs/reference/ENVIRONMENT.md index 7b705a27f0..e89882a02a 100644 --- a/docs/i18n/ta/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ta/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ta/llm.txt b/docs/i18n/ta/llm.txt index 3cb7711fc4..a87a6cebb0 100644 --- a/docs/i18n/ta/llm.txt +++ b/docs/i18n/ta/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/te/README.md b/docs/i18n/te/README.md index 645ff304ca..070b6c2a30 100644 --- a/docs/i18n/te/README.md +++ b/docs/i18n/te/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/te/docs/architecture/ARCHITECTURE.md b/docs/i18n/te/docs/architecture/ARCHITECTURE.md index 23c7b0bb5e..ae27306cb3 100644 --- a/docs/i18n/te/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/te/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/te/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/te/docs/architecture/CODEBASE_DOCUMENTATION.md index 27d6b03779..1557ee95fd 100644 --- a/docs/i18n/te/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/te/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/te/docs/guides/FEATURES.md b/docs/i18n/te/docs/guides/FEATURES.md index d37ebf5ed3..6556b02438 100644 --- a/docs/i18n/te/docs/guides/FEATURES.md +++ b/docs/i18n/te/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/te/docs/guides/TROUBLESHOOTING.md b/docs/i18n/te/docs/guides/TROUBLESHOOTING.md index b2421aaa15..9749df3496 100644 --- a/docs/i18n/te/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/te/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/te/docs/guides/USER_GUIDE.md b/docs/i18n/te/docs/guides/USER_GUIDE.md index 13d2e45668..11c9187f50 100644 --- a/docs/i18n/te/docs/guides/USER_GUIDE.md +++ b/docs/i18n/te/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/te/docs/reference/ENVIRONMENT.md b/docs/i18n/te/docs/reference/ENVIRONMENT.md index 810bc75744..20efa77679 100644 --- a/docs/i18n/te/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/te/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/te/llm.txt b/docs/i18n/te/llm.txt index f49f915bc2..68b057fc8c 100644 --- a/docs/i18n/te/llm.txt +++ b/docs/i18n/te/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/th/README.md b/docs/i18n/th/README.md index 2fd2f09eec..1bb83c3853 100644 --- a/docs/i18n/th/README.md +++ b/docs/i18n/th/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/th/docs/architecture/ARCHITECTURE.md b/docs/i18n/th/docs/architecture/ARCHITECTURE.md index 4f0490ae9b..3c9056ad49 100644 --- a/docs/i18n/th/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/th/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/th/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/th/docs/architecture/CODEBASE_DOCUMENTATION.md index 2b172048f8..cfcac83e92 100644 --- a/docs/i18n/th/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/th/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/th/docs/guides/FEATURES.md b/docs/i18n/th/docs/guides/FEATURES.md index da6ac34aa0..a4ae294f61 100644 --- a/docs/i18n/th/docs/guides/FEATURES.md +++ b/docs/i18n/th/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/th/docs/guides/TROUBLESHOOTING.md b/docs/i18n/th/docs/guides/TROUBLESHOOTING.md index d26154aaad..90ffd51f55 100644 --- a/docs/i18n/th/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/th/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/th/docs/guides/USER_GUIDE.md b/docs/i18n/th/docs/guides/USER_GUIDE.md index 7e6e2d50f6..459cb0857f 100644 --- a/docs/i18n/th/docs/guides/USER_GUIDE.md +++ b/docs/i18n/th/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/th/docs/reference/ENVIRONMENT.md b/docs/i18n/th/docs/reference/ENVIRONMENT.md index 4f0d67b714..38b93b517c 100644 --- a/docs/i18n/th/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/th/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/th/llm.txt b/docs/i18n/th/llm.txt index 7d45f5dde4..f3b24aa851 100644 --- a/docs/i18n/th/llm.txt +++ b/docs/i18n/th/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/tr/README.md b/docs/i18n/tr/README.md index 84abf75fd6..bd23e93cf2 100644 --- a/docs/i18n/tr/README.md +++ b/docs/i18n/tr/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/tr/docs/architecture/ARCHITECTURE.md b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md index ef67395a0f..0c0e9798a7 100644 --- a/docs/i18n/tr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/tr/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/tr/docs/architecture/CODEBASE_DOCUMENTATION.md index 5cc29fce0d..73c7034856 100644 --- a/docs/i18n/tr/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/tr/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/tr/docs/guides/FEATURES.md b/docs/i18n/tr/docs/guides/FEATURES.md index 699e4ceb3e..63acb9a9a1 100644 --- a/docs/i18n/tr/docs/guides/FEATURES.md +++ b/docs/i18n/tr/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/tr/docs/guides/TROUBLESHOOTING.md b/docs/i18n/tr/docs/guides/TROUBLESHOOTING.md index 626660e0ee..b6181952e5 100644 --- a/docs/i18n/tr/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/tr/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/tr/docs/guides/USER_GUIDE.md b/docs/i18n/tr/docs/guides/USER_GUIDE.md index 782fceac40..3af8b3917f 100644 --- a/docs/i18n/tr/docs/guides/USER_GUIDE.md +++ b/docs/i18n/tr/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/tr/docs/reference/ENVIRONMENT.md b/docs/i18n/tr/docs/reference/ENVIRONMENT.md index db1ec488d3..904aec0207 100644 --- a/docs/i18n/tr/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/tr/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/tr/llm.txt b/docs/i18n/tr/llm.txt index 473ae00f71..374ea80f20 100644 --- a/docs/i18n/tr/llm.txt +++ b/docs/i18n/tr/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/uk-UA/README.md b/docs/i18n/uk-UA/README.md index 10285f2884..6c7a70891a 100644 --- a/docs/i18n/uk-UA/README.md +++ b/docs/i18n/uk-UA/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md index 1da75d0b92..c270c2565e 100644 --- a/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/uk-UA/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/uk-UA/docs/architecture/CODEBASE_DOCUMENTATION.md index 3a19e8005c..1f18a2dea3 100644 --- a/docs/i18n/uk-UA/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/uk-UA/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/uk-UA/docs/guides/FEATURES.md b/docs/i18n/uk-UA/docs/guides/FEATURES.md index 1534570a59..28ab8ab390 100644 --- a/docs/i18n/uk-UA/docs/guides/FEATURES.md +++ b/docs/i18n/uk-UA/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/uk-UA/docs/guides/TROUBLESHOOTING.md b/docs/i18n/uk-UA/docs/guides/TROUBLESHOOTING.md index e1a0a4d0b1..cba8095db4 100644 --- a/docs/i18n/uk-UA/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/uk-UA/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md b/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md index 7077e0645a..41abeed86b 100644 --- a/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md +++ b/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/uk-UA/docs/reference/ENVIRONMENT.md b/docs/i18n/uk-UA/docs/reference/ENVIRONMENT.md index bb4a868742..770c57cf9b 100644 --- a/docs/i18n/uk-UA/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/uk-UA/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/uk-UA/llm.txt b/docs/i18n/uk-UA/llm.txt index d0142f3546..cb3c468754 100644 --- a/docs/i18n/uk-UA/llm.txt +++ b/docs/i18n/uk-UA/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/ur/README.md b/docs/i18n/ur/README.md index 23aadf434b..f1efaf5e6d 100644 --- a/docs/i18n/ur/README.md +++ b/docs/i18n/ur/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/ur/docs/architecture/ARCHITECTURE.md b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md index ae24def77c..8750844427 100644 --- a/docs/i18n/ur/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/ur/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/ur/docs/architecture/CODEBASE_DOCUMENTATION.md index 15e2d6828d..cefe8c325e 100644 --- a/docs/i18n/ur/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/ur/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/ur/docs/guides/FEATURES.md b/docs/i18n/ur/docs/guides/FEATURES.md index 3ec962b788..74a45ff26a 100644 --- a/docs/i18n/ur/docs/guides/FEATURES.md +++ b/docs/i18n/ur/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/ur/docs/guides/TROUBLESHOOTING.md b/docs/i18n/ur/docs/guides/TROUBLESHOOTING.md index 43089bfd01..dd975ed357 100644 --- a/docs/i18n/ur/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/ur/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/ur/docs/guides/USER_GUIDE.md b/docs/i18n/ur/docs/guides/USER_GUIDE.md index 899132fc12..2d7f5bc204 100644 --- a/docs/i18n/ur/docs/guides/USER_GUIDE.md +++ b/docs/i18n/ur/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/ur/docs/reference/ENVIRONMENT.md b/docs/i18n/ur/docs/reference/ENVIRONMENT.md index be4e43af97..57e1943257 100644 --- a/docs/i18n/ur/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/ur/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/ur/llm.txt b/docs/i18n/ur/llm.txt index 80bc400f70..3226e8bc1e 100644 --- a/docs/i18n/ur/llm.txt +++ b/docs/i18n/ur/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/vi/README.md b/docs/i18n/vi/README.md index d8ab8b02a7..3736093bd9 100644 --- a/docs/i18n/vi/README.md +++ b/docs/i18n/vi/README.md @@ -142,13 +142,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
⭐ 67.3K - - - Gemini CLI
- Gemini CLI -

- ⭐ 94.7K - Kilo Code
@@ -177,7 +170,6 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f - ✅ **Maximize subscriptions** - Track quota, use every bit before reset - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime - ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool --- @@ -207,7 +199,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, ``` ┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) +│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 @@ -219,7 +211,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI + ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit @@ -294,9 +286,8 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime +- **Free-Only Combos** — Chain `if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider @@ -340,7 +331,6 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit
🔧 7. "Configuring each AI tool is tedious and repetitive" -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** @@ -354,12 +344,12 @@ Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code..
🔑 8. "Managing OAuth tokens from multiple providers is hell" -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. +Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -711,9 +701,8 @@ Outcome: higher quality, near-zero interruption ```txt Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Outcome: stable free coding workflow @@ -752,8 +741,7 @@ Outcome: deep fallback depth for deadline-critical workloads | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | | 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | -| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | -| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | +| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | **Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. @@ -867,7 +855,6 @@ API Key: [copy from Endpoint page] Model: if/kimi-k2-thinking (or any provider/model prefix) ``` -Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, and OpenAI-compatible SDKs. ### 4) Enable and validate protocols (v2.0) @@ -1153,7 +1140,6 @@ When minimized, OmniRoute lives in your system tray with quick actions: | ------------------- | --------------------------- | ------------------------- | ---------------- | --------------------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | NVIDIA NIM | **FREE** (dev forever) | ~40 RPM | 70+ open models | | | Cerebras | **FREE** (1M tok/day) | 60K TPM / 30 RPM | World's fastest | @@ -1236,12 +1222,6 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `qwen3-coder-next` | `qw/` | **Unlimited** | No reported cap | | `vision-model` | `qw/` | **Unlimited** | Multimodal (images) | -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limit | Rate Limit | -| ------------------------ | ------ | --------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/month** + 1K/day | Monthly reset | -| `gemini-2.5-pro` | `gc/` | 180K/month (shared pool) | High quality | ### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com) @@ -1399,7 +1379,6 @@ OmniRoute v3.6 is built as an operational platform, not just a relay proxy. | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing | | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 more), process spawner, `/api/acp/agents` endpoint | | 🤖 **ACP Agents Dashboard** | Debug › Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool. **OpenCode** users get a "Download opencode.json" button that auto-generates a ready-to-use config with all available models. | | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator | | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID | @@ -1702,19 +1681,7 @@ Scenarios: - `5h ON` + `Weekly OFF`: only 5-hour usage can block the account. - `resetAt` passed: account re-enters rotation automatically (no manual re-enable). -### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. ### GitHub Copilot @@ -1878,9 +1845,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -2017,7 +1983,6 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -2059,9 +2024,7 @@ opencode > **⚠️ Important for users running OmniRoute on a VPS, Docker, or any remote server** -#### Why does Antigravity / Gemini CLI OAuth fail on remote servers? -The **Antigravity** and **Gemini CLI** providers use **Google OAuth 2.0**. Google requires the `redirect_uri` in the OAuth flow to exactly match one of the pre-registered URIs in the app's Google Cloud Console. The OAuth credentials bundled in OmniRoute are registered **for `localhost` only**. When you access OmniRoute on a remote server (e.g. `https://omniroute.myserver.com`), Google rejects the authentication with: @@ -2108,10 +2071,8 @@ In your `.env` (or Docker environment variables): ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -# For Gemini CLI: GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret ``` **6. Restart OmniRoute** @@ -2126,7 +2087,6 @@ docker restart omniroute **7. Try connecting again** -Dashboard → Providers → Antigravity (or Gemini CLI) → OAuth Google will now redirect correctly to `https://your-server.com/callback`. @@ -2149,9 +2109,7 @@ If you don't want to set up your own credentials right now, you can still use th
🇧🇷 Versão em Português -#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? -Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: @@ -2198,10 +2156,8 @@ No seu `.env` (ou nas variáveis de ambiente do Docker): ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -# Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** @@ -2216,7 +2172,6 @@ docker restart omniroute **7. Tente conectar novamente** -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. diff --git a/docs/i18n/vi/docs/architecture/ARCHITECTURE.md b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md index 411f5a126a..8f2fe950de 100644 --- a/docs/i18n/vi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/vi/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/vi/docs/architecture/CODEBASE_DOCUMENTATION.md index 0d99aa1b76..1a858230bf 100644 --- a/docs/i18n/vi/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/vi/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/vi/docs/guides/FEATURES.md b/docs/i18n/vi/docs/guides/FEATURES.md index e6f6ef0432..93be28e28b 100644 --- a/docs/i18n/vi/docs/guides/FEATURES.md +++ b/docs/i18n/vi/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/vi/docs/guides/TROUBLESHOOTING.md b/docs/i18n/vi/docs/guides/TROUBLESHOOTING.md index 3bf2e68129..381e57f5bc 100644 --- a/docs/i18n/vi/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/vi/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/vi/docs/guides/USER_GUIDE.md b/docs/i18n/vi/docs/guides/USER_GUIDE.md index 1e6e47e8ac..ee4cceaf00 100644 --- a/docs/i18n/vi/docs/guides/USER_GUIDE.md +++ b/docs/i18n/vi/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/vi/docs/reference/ENVIRONMENT.md b/docs/i18n/vi/docs/reference/ENVIRONMENT.md index b2666462db..ae6334909c 100644 --- a/docs/i18n/vi/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/vi/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/vi/llm.txt b/docs/i18n/vi/llm.txt index 9efde046b8..9f56a2585d 100644 --- a/docs/i18n/vi/llm.txt +++ b/docs/i18n/vi/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/zh-CN/README.md b/docs/i18n/zh-CN/README.md index 46b8e4a68f..deb166045f 100644 --- a/docs/i18n/zh-CN/README.md +++ b/docs/i18n/zh-CN/README.md @@ -299,7 +299,6 @@ Result: 4 layers of fallback = zero downtime > **v3.8.20 → v3.8.38** 重点更新。完整记录见 [`CHANGELOG.md`](../../CHANGELOG.md)。 - **⚖️ Quota-Share 路由** — 一个专用的 Combo 策略,按可用配额跨账户分配负载:Deficit-Round-Robin 调度、每连接 `max_concurrent` 配合冷却等待队列、多窗口使用量桶(5h / 7d / 每模型)、每(密钥,模型)上限、会话粘性确保提示缓存完整性,以及基于上游 Token 使用标头的主动饱和检测。→ [Resilience Guide](../../architecture/RESILIENCE_GUIDE.md) -- **🤖 一键 CLI/代理设置** — 专用的 `setup-*` 命令配置每个编码工具通过 OmniRoute 路由(Claude Code、Codex、Cline、Continue、Cursor、Roo Code、Kilo Code、Crush、Goose、Qwen Code、Aider、OpenCode、Gemini CLI);`omniroute launch` / `omniroute launch-codex` 是零配置启动器。→ [CLI Integrations](../../guides/CLI-INTEGRATIONS.md) - **🛰️ 远程模式** — 通过范围访问令牌从任何机器驱动远程 OmniRoute(`omniroute connect` / `omniroute contexts` / `omniroute tokens`)。→ [Remote Mode](../../guides/REMOTE-MODE.md) - **🧭 更智能的自动路由** — OpenRouter 风格的 `auto/:` Combo(如 `auto/coding:fast`、`auto/reasoning:pro`)、**Fusion** 策略(第 16 种 — 并行分发到多个模型,然后通过裁判合成)、**任务感知路由**(按任务类型选择最佳连接)、每请求 `X-Route-Model` 覆盖、实时 Arena-ELO + models.dev 模型智能、每步骤账户允许列表、供应商通配符 Combo 步骤、嵌套 Combo 引用执行、粘性加权选择以及 `web_search` 感知路由。→ [Auto-Combo](../../routing/AUTO-COMBO.md) - **🗜️ 可插拔压缩** — **9 个可组合引擎**的异步流水线,带 Compression Studios、LLMLingua-2 ONNX 引擎和启发式/SLM 双层 **Ultra**、RTK、委托式 Anthropic 上下文编辑、**输出样式**(输出轴控制:简洁文章 / 少代码 / 简洁 CJK)、**自适应上下文预算拨盘**(仅扩展到适合上下文窗口所需的最低限度)、每请求 `x-omniroute-compression` 控制、可选的离线评估工具、仪表板上一键 **Headroom** 代理生命周期管理(支持 Docker 边车)、合成**压缩游乐场**(Play 赛道 + A/B 比较,附 USD 上限保真度判定)、可选的**每步骤保真度门控**(在损失性引擎降低提示质量前拒绝它),以及统一面板带命名配置文件 + 活动配置文件选择器。→ [Compression](../../compression/COMPRESSION_ENGINES.md) @@ -325,7 +324,6 @@ Result: 4 layers of fallback = zero downtime Claude Code
Claude Code
Codex CLI
Codex CLI
- Gemini CLI
Gemini CLI
Cursor
Cursor Copilot
Copilot Continue
Continue @@ -370,7 +368,6 @@ Result: 4 layers of fallback = zero downtime Cloudflare AI
50+ 模型
1 万神经元/天
- Gemini CLI
gemini-3-flash
18 万/月免费
NVIDIA NIM
129 个模型
~40 RPM 免费
Cerebras
Qwen3 235B
1M Token/天
diff --git a/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md index daf71a0f34..7d91fd6ad7 100644 --- a/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md index d7e0093ec9..47814034d8 100644 --- a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/zh-CN/docs/guides/FEATURES.md b/docs/i18n/zh-CN/docs/guides/FEATURES.md index ebd59331d5..90a8d6b124 100644 --- a/docs/i18n/zh-CN/docs/guides/FEATURES.md +++ b/docs/i18n/zh-CN/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/zh-CN/docs/guides/TROUBLESHOOTING.md b/docs/i18n/zh-CN/docs/guides/TROUBLESHOOTING.md index 40cb6e53ef..476aa0bd9c 100644 --- a/docs/i18n/zh-CN/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/zh-CN/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md b/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md index 69b0a02b2b..c4c7fd6c83 100644 --- a/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md +++ b/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/zh-CN/docs/reference/ENVIRONMENT.md b/docs/i18n/zh-CN/docs/reference/ENVIRONMENT.md index 5b8a95c788..53908cfe62 100644 --- a/docs/i18n/zh-CN/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/zh-CN/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/zh-CN/llm.txt b/docs/i18n/zh-CN/llm.txt index 2db4ea30e4..090ab0e02a 100644 --- a/docs/i18n/zh-CN/llm.txt +++ b/docs/i18n/zh-CN/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/i18n/zh-TW/README.md b/docs/i18n/zh-TW/README.md index b16bcf991c..cd191f197f 100644 --- a/docs/i18n/zh-TW/README.md +++ b/docs/i18n/zh-TW/README.md @@ -294,7 +294,6 @@ Result: 4 layers of fallback = zero downtime > **v3.8.20 → v3.8.38** 的重點更新。完整記錄在 [`CHANGELOG.md`](../../CHANGELOG.md)。 - **⚖️ Quota-Share 路由** — 一種專用 Combo 策略,根據可用配額跨帳戶分配負載:赤字輪詢排程、每個連線的 `max_concurrent` 搭配冷卻等待佇列、多時窗使用量桶(5 小時 / 7 天 / 按模型)、每(金鑰,模型)上限、為提示快取完整性而設的會話黏著性,以及來自上游 Token 使用量標頭的主動飽和偵測。→ [Resilience Guide](../../architecture/RESILIENCE_GUIDE.md) -- **🤖 一鍵 CLI/代理設定** — 專用的 `setup-*` 命令可設定每個編碼工具透過 OmniRoute 路由(Claude Code、Codex、Cline、Continue、Cursor、Roo Code、Kilo Code、Crush、Goose、Qwen Code、Aider、OpenCode、Gemini CLI);`omniroute launch` / `omniroute launch-codex` 是零設定啟動器。→ [CLI Integrations](../../guides/CLI-INTEGRATIONS.md) - **🛰️ 遠端模式** — 透過範圍存取令牌從任何機器驅動遠端 OmniRoute(`omniroute connect` / `omniroute contexts` / `omniroute tokens`)。→ [Remote Mode](../../guides/REMOTE-MODE.md) - **🧭 更智慧的 Auto-Routing** — OpenRouter 風格的 `auto/:` Combo(例如 `auto/coding:fast`、`auto/reasoning:pro`)、**Fusion** 策略(第 16 種 — 並行分發到多個模型,然後透過裁判合成)、**任務感知路由**(按任務類型選擇最佳連線)、每請求 `X-Route-Model` 覆寫、即時 Arena-ELO + models.dev 模型智慧、每步驟帳戶允許清單、供應商萬用字元 Combo 步驟、巢狀 Combo 引用執行、黏性加權選擇和 `web_search` 感知路由。→ [Auto-Combo](../../routing/AUTO-COMBO.md) - **🗜️ 可插拔壓縮** — **9 個可組合引擎**的非同步管線,含 Compression Studios、LLMLingua-2 ONNX 引擎和啟發式/SLM 雙層 **Ultra**、RTK、委託 Anthropic Context Editing、**Output Styles**(輸出軸控制:terse-prose / less-code / terse-CJK)、**自適應上下文預算撥盤**(僅升級到足以符合上下文視窗)、每請求 `x-omniroute-compression` 控制、可選的離線評估工具、一鍵從儀表板管理 **Headroom** 代理生命週期、合成**壓縮遊樂場**(Play 賽道 + A/B 比較)、可選的**每步驟保真度閘門**,以及統一面板搭配命名設定檔 + 活動設定檔選擇器。→ [Compression](../../compression/COMPRESSION_ENGINES.md) @@ -320,7 +319,6 @@ Result: 4 layers of fallback = zero downtime Claude Code
Claude Code
Codex CLI
Codex CLI
- Gemini CLI
Gemini CLI
Cursor
Cursor Copilot
Copilot Continue
Continue @@ -365,7 +363,6 @@ Result: 4 layers of fallback = zero downtime Cloudflare AI
50+ 模型
1 萬 neurons/天
- Gemini CLI
gemini-3-flash
18 萬/月免費
NVIDIA NIM
129 模型
~40 RPM 免費
Cerebras
Qwen3 235B
100 萬 Token/天
diff --git a/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md index 464a58df2a..3f64817837 100644 --- a/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md @@ -671,7 +671,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort | | `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum | | `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers | -| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle | | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | @@ -687,7 +686,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ | | Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only | | Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console | | Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API | | OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits | @@ -736,7 +734,7 @@ Target formats include: - OpenAI chat/Responses - Claude -- Gemini/Gemini-CLI/Antigravity envelope +- Gemini/Antigravity envelope - Kiro - Cursor diff --git a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md index a856424979..9b78a2b3a6 100644 --- a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -192,7 +192,6 @@ classDiagram BaseExecutor <|-- CursorExecutor BaseExecutor <|-- KiroExecutor BaseExecutor <|-- CodexExecutor - BaseExecutor <|-- GeminiCLIExecutor BaseExecutor <|-- GithubExecutor ``` @@ -203,7 +202,6 @@ classDiagram | `antigravity.ts` | Google Cloud Code | Project/session ID generation, multi-URL fallback, custom retry parsing from error messages ("reset after 2h7m23s") | | `cursor.ts` | Cursor IDE | **Most complex**: SHA-256 checksum auth, Protobuf request encoding, binary EventStream → SSE response parsing | | `codex.ts` | OpenAI Codex | Injects system instructions, manages thinking levels, removes unsupported parameters | -| `gemini-cli.ts` | Google Gemini CLI | Custom URL building (`streamGenerateContent`), Google OAuth token refresh | | `github.ts` | GitHub Copilot | Dual token system (GitHub OAuth + Copilot token), VSCode header mimicking | | `kiro.ts` | AWS CodeWhisperer | AWS EventStream binary parsing, AMZN event frames, token estimation | | `index.ts` | — | Factory: maps provider name → executor class, with default fallback | @@ -520,7 +518,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | OpenAI Responses API | source + target | `openai-responses` | | Anthropic Claude | source + target | `claude` | | Google Gemini | source + target | `gemini` | -| Google Gemini CLI | target only | `gemini-cli` | | Antigravity | source + target | `antigravity` | | AWS Kiro | target only | `kiro` | | Cursor | target only | `cursor` | @@ -533,7 +530,6 @@ A 2000-token buffer is added to reported usage to prevent clients from hitting c | ------------------------ | ---------------------- | ----------- | --------------------------------------------- | | Anthropic Claude | API key or OAuth | Default | Uses `x-api-key` header | | Google Gemini | API key or OAuth | Default | Uses `x-goog-api-key` header | -| Google Gemini CLI | OAuth | GeminiCLI | Uses `streamGenerateContent` endpoint | | Antigravity | OAuth | Antigravity | Multi-URL fallback, custom retry parsing | | OpenAI | API key | Default | Standard Bearer auth | | Codex | OAuth | Codex | Injects system instructions, manages thinking | diff --git a/docs/i18n/zh-TW/docs/guides/FEATURES.md b/docs/i18n/zh-TW/docs/guides/FEATURES.md index ec0476321e..415cdb866a 100644 --- a/docs/i18n/zh-TW/docs/guides/FEATURES.md +++ b/docs/i18n/zh-TW/docs/guides/FEATURES.md @@ -10,7 +10,6 @@ Visual guide to every section of the OmniRoute dashboard. ## 🔌 Providers -Manage AI provider connections: OAuth providers (Claude Code, Codex, Gemini CLI), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage. ![Providers Dashboard](screenshots/01-providers.png) @@ -84,7 +83,7 @@ Comprehensive settings panel with tabs: ## 🔧 CLI Tools -One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. +One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping. ![CLI Tools Dashboard](screenshots/07-cli-tools.png) @@ -92,7 +91,7 @@ One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, ## 🤖 CLI Agents _(v2.0.11+)_ -Dashboard for discovering and managing CLI agents. Shows a grid of 14 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp) with: +Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with: - **Installation status** — Installed / Not Found with version detection - **Protocol badges** — stdio, HTTP, etc. diff --git a/docs/i18n/zh-TW/docs/guides/TROUBLESHOOTING.md b/docs/i18n/zh-TW/docs/guides/TROUBLESHOOTING.md index d6876b14cd..2a1d9dd720 100644 --- a/docs/i18n/zh-TW/docs/guides/TROUBLESHOOTING.md +++ b/docs/i18n/zh-TW/docs/guides/TROUBLESHOOTING.md @@ -181,8 +181,7 @@ curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed, 1. Check usage stats in Dashboard → Usage 2. Switch primary model to GLM/MiniMax -3. Use free tier (Gemini CLI, Qoder) for non-critical tasks -4. Set cost budgets per API key: Dashboard → API Keys → Budget +3. Set cost budgets per API key: Dashboard → API Keys → Budget --- diff --git a/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md b/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md index 299f95c342..72510c0ed6 100644 --- a/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md +++ b/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md @@ -26,7 +26,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | ------------------- | ----------------- | ----------- | ---------------- | -------------------- | | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed | | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! | | | GitHub Copilot | $10-19/mo | Monthly | GitHub users | | **🔑 API KEY** | DeepSeek | Pay per use | None | Cheap reasoning | | | Groq | Pay per use | None | Ultra-fast inference | @@ -45,7 +44,6 @@ Complete guide for configuring providers, creating combos, integrating CLI tools | | Qwen | $0 | Unlimited | 3 models free | | | Kiro | $0 | Unlimited | Claude free | -**💡 Pro Tip:** Start with Gemini CLI (180K free/month) + Qoder (unlimited free) combo = $0 cost! --- @@ -71,9 +69,8 @@ vs. $20 + hitting limits = frustration ``` Combo: "free-forever" - 1. gc/gemini-3-flash (180K free/month) - 2. if/kimi-k2-thinking (unlimited free) - 3. qw/qwen3-coder-plus (unlimited free) + 1. if/kimi-k2-thinking (unlimited free) + 2. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models @@ -142,19 +139,7 @@ Models: cx/gpt-5.1-codex-max ``` -#### Gemini CLI (FREE 180K/month!) -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Best Value:** Huge free tier! Use this before paid tiers. #### GitHub Copilot @@ -244,9 +229,8 @@ Use in CLI: premium-coding ``` Name: free-combo Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) + 1. if/kimi-k2-thinking (unlimited) + 2. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ``` @@ -558,7 +542,6 @@ For the full environment variable reference, see the [README](../README.md). **Codex (`cx/`)** — Plus/Pro: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max` -**Gemini CLI (`gc/`)** — FREE: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet` diff --git a/docs/i18n/zh-TW/docs/reference/ENVIRONMENT.md b/docs/i18n/zh-TW/docs/reference/ENVIRONMENT.md index 5d75bb54b3..ed2140f34b 100644 --- a/docs/i18n/zh-TW/docs/reference/ENVIRONMENT.md +++ b/docs/i18n/zh-TW/docs/reference/ENVIRONMENT.md @@ -301,8 +301,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -318,7 +316,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias for `QODER_CLI_WORKSPACE`. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -348,7 +345,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.15.11 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `connect-es/1.6.1` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/i18n/zh-TW/llm.txt b/docs/i18n/zh-TW/llm.txt index 866e7aaf06..00c1cfc672 100644 --- a/docs/i18n/zh-TW/llm.txt +++ b/docs/i18n/zh-TW/llm.txt @@ -44,7 +44,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -193,7 +193,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -365,7 +364,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/docs/marketing/TIERS.md b/docs/marketing/TIERS.md index 36ba906cbd..7315a60bb9 100644 --- a/docs/marketing/TIERS.md +++ b/docs/marketing/TIERS.md @@ -52,7 +52,6 @@ the task's capability filter (vision, JSON mode, tools, max-context). | Kiro AI | Free Claude tier (generous fair-use) | | OpenCode Free | No auth, generous rate limits | | Qoder | Free OAuth | -| Gemini CLI OAuth | Generous daily quota | | Google Vertex AI | $300 new-account credits | | Amazon Q | Free tier for AWS users | | Pollinations | Open public API | diff --git a/docs/reference/API_REFERENCE.md b/docs/reference/API_REFERENCE.md index 4472b50f8a..8f8a8b9ea4 100644 --- a/docs/reference/API_REFERENCE.md +++ b/docs/reference/API_REFERENCE.md @@ -1040,7 +1040,6 @@ Returns the public A2A agent card (name, description, capabilities, skill catalo ## ACP (Agent Client Protocol) Management -The ACP framework lets you spawn CLI agents (Claude Code, Codex, Gemini CLI, etc.) as child processes. These endpoints manage ACP agent detection and custom agent registration. diff --git a/docs/reference/CLI-TOOLS.md b/docs/reference/CLI-TOOLS.md index c4456eae8e..c0ced50506 100644 --- a/docs/reference/CLI-TOOLS.md +++ b/docs/reference/CLI-TOOLS.md @@ -56,7 +56,6 @@ omniroute setup-codex omniroute setup-claude omniroute setup-openco omniroute setup-cline omniroute setup-kilo omniroute setup-continue omniroute setup-cursor omniroute setup-roo omniroute setup-crush omniroute setup-goose omniroute setup-qwen omniroute setup-aider -omniroute setup-gemini ``` Each accepts `--remote --api-key ` (configure a local tool against a @@ -111,7 +110,6 @@ Tools that support custom base URL and appear in `/dashboard/cli-code`: | opencode | OpenCode | Anomaly (ex-SST) | full | guide | true | | droid | Factory Droid | Factory AI | partial | guide | false | | copilot | GitHub Copilot CLI | GitHub/MS | full | custom | false | -| gemini-cli | Gemini CLI | Google | partial | guide | true | | cursor-cli | Cursor CLI | Anysphere | partial | guide | true | | smelt | Smelt | leonardcser (OSS) | full | custom | false | | pi | Pi (pi-coding-agent) | M. Zechner (OSS) | full | custom | false | @@ -140,7 +138,6 @@ Autonomous agents that appear in `/dashboard/cli-agents`: This page (renamed from `/dashboard/agents`) shows CLIs that OmniRoute can **spawn** as backend execution engines via stdio/ACP protocol. The catalog is maintained separately in `src/lib/acp/registry.ts` and is **not** the same as `CLI_TOOLS`. -Current ACP-spawnable CLIs (from `acpSpawnable: true` in `CLI_TOOLS` + ACP registry): codex, claude, goose, gemini-cli, openclaw, aider, opencode, cline, qwen-code, forge, interpreter, cursor-cli, warp. --- diff --git a/docs/reference/ENVIRONMENT.md b/docs/reference/ENVIRONMENT.md index f6e3879162..27e65a811b 100644 --- a/docs/reference/ENVIRONMENT.md +++ b/docs/reference/ENVIRONMENT.md @@ -263,7 +263,6 @@ OmniRoute provides a two-layer defense: request-side injection scanning and resp | `OMNIROUTE_KIE_CALLBACK_URL` | _(unset)_ | `open-sse/utils/kieTask.ts` | Alternate spelling of `KIE_CALLBACK_URL`. Falls back when the primary variable is unset. | | `OMNIROUTE_PUBLIC_URL` | _(unset)_ | `open-sse/utils/kieTask.ts` | Public origin used to compose async callback URLs. Lowest-priority fallback for kie.ai callbacks; also used as a generic public URL for other relays. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | CrofAI quota lookup endpoint used by the Usage page. Override for relays / test fixtures. | -| `OMNIROUTE_GEMINI_CLI_USAGE_URL` | `https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist` | `open-sse/services/usage.ts` | Gemini CLI quota lookup endpoint. Override for relays / test fixtures. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/quota` | `open-sse/services/opencodeQuotaFetcher.ts` | OpenCode (zen/go) quota lookup endpoint used by the Usage page. Override for relays / test fixtures. | | `OMNIROUTE_OPENCODE_GO_QUOTA_URL` | `https://api.z.ai/api/monitor/usage/quota/limit` | `open-sse/services/usage.ts` | OpenCode Go quota lookup endpoint used by the Usage page. Override for relays / test fixtures. | | `OMNIROUTE_OPENCODE_GO_DASHBOARD_URL` | `https://opencode.ai/workspace` | `open-sse/services/usage.ts` | OpenCode Go dashboard base URL used for quota scraping when a workspace ID and auth cookie are configured. Override for relays / test fixtures. | @@ -423,8 +422,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Public client. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Requires matching `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | -| `GEMINI_CLI_OAUTH_CLIENT_ID` | Gemini CLI | Usually same as Gemini. | -| `GEMINI_CLI_OAUTH_CLIENT_SECRET` | Gemini CLI | — | | `QWEN_OAUTH_CLIENT_ID` | Qwen (Alibaba) | Public client. | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Public client. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Requires matching `_SECRET`. | @@ -452,7 +449,6 @@ Built-in credentials for **localhost development**. For remote deployments, regi | `VISION_BRIDGE_API_KEY` | Vision Bridge guardrail | API key for the URL above. Overrides per-provider OpenAI / Google env vars for non-Anthropic vision-bridge calls. Anthropic models keep their dedicated Anthropic key path. Issue #2232. | > [!WARNING] -> **Google OAuth** (Antigravity, Gemini CLI) credentials **only work on localhost**. For remote servers: > > 1. Go to [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Create an OAuth 2.0 Client ID (type: "Web application") @@ -485,7 +481,6 @@ process.env[`${PROVIDER_ID}_USER_AGENT`] | `QODER_USER_AGENT` | `Qoder-Cli` | When Qoder CLI updates | | `QWEN_USER_AGENT` | `QwenCode/0.19.3 (linux; x64)` | When Qwen Code updates | | `CURSOR_USER_AGENT` | `Cursor/3.3` | When Cursor updates | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | When Google API client updates | > [!TIP] > You can add User-Agent overrides for **any** provider using the pattern `{PROVIDER_ID}_USER_AGENT`. The executor dynamically constructs the env var name. diff --git a/docs/reference/FREE_TIERS.md b/docs/reference/FREE_TIERS.md index d8e5121e10..23dad08e74 100644 --- a/docs/reference/FREE_TIERS.md +++ b/docs/reference/FREE_TIERS.md @@ -53,7 +53,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve - Daily token cap → `monthly = daily × 30`. Only RPD documented → `RPD × ~800 output tokens × 30`. Only RPM/TPM (no daily cap) → **uncapped** (see below). - **Permanently free, but no published token cap** (`siliconflow`, `glm-cn`, `tencent`, `baidu`, `kilo-gateway`, `opencode-zen`): these are real recurring free access, rate/concurrency-limited. We classify them `recurring-uncapped` and **never sum them** — multiplying `RPM × 24/7 × 30d` would produce a fantasy ceiling (the inflation we reject). They are listed so you know they exist. - **Deposit-unlock boost:** a one-time small top-up that permanently raises a free quota (OpenRouter: $10 → 1000 req/day ≈ +24M/mo). Reported as a separate figure, kept out of the steady headline. -- **A note on terms.** Some providers have personal-use or proxy clauses worth a glance before you lean on them (see the [provider-terms table](#tos-attention-table)). Their access is real — we simply don't fold the **un-quantifiable** OAuth/keyless ones (e.g. `gemini-cli`, `agy`, `amazon-q` — they share quota already counted under the base provider) into the headline. None of this is legal advice; you decide. --- @@ -77,7 +76,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve | `featherless-ai` | Individual plans explicitly restricted to "interactive use or proto-typing and experimentation by the purchaser" — inference resale and proxy use req… | | `fireworks` | ToS explicitly prohibits proxy/intermediary use, API key transfers, and sublicensing (Sections 2.1 and 2.2(i)(j)); self-hosted personal proxies are n… | | `friendliai` | ToS Section 8(e) and 8(f) explicitly prohibit using FriendliAI as a proxy or allowing third-party access on a standalone basis, and forbid reselling/… | -| `gemini-cli` | Google explicitly prohibits using Gemini CLI's OAuth authentication with third-party software/proxies; violations result in account bans (mass bans w… | | `iflytek` | Section 2.4(3) of the iFlytek Spark LLM Service Agreement explicitly prohibits "using any automated or programmatic methods to extract data or output… | | `kiro` | Kiro FAQ explicitly prohibits use with "OpenClaw and similar tools that leverage third-party harnesses" — a self-hosted AI proxy (like OmniRoute) rou… | | `modal` | ToS Section 1.3 explicitly prohibits "rent, resell or otherwise allow any third party direct access to or use of the Service" — building a self-hoste… | @@ -103,7 +101,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve | `nous-research` | ambiguous | Nous Portal itself is an aggregator/proxy service; using it as a backend for another self-hosted proxy creates a proxy-… | | `ollama-cloud` | ambiguous | ToS prohibits using the service "to develop competing products" but has no explicit ban on self-hosted personal proxies… | | `stepfun` | ambiguous | No explicit prohibition on self-hosted personal proxy found, but the Step Plan ToS targets developers using specific co… | -| `agentrouter` | caution | No published ToS found; platform restricts accepted clients to specific AI coding tools (Claude Code, Codex, Gemini CLI… | | `api-airforce` | caution | ToS explicitly prohibits "building competing services without permission" and "credential sharing" — a self-hosted pers… | | `arcee-ai` | caution | Free access is via OpenRouter's :free routing layer (not Arcee's direct API terms); OpenRouter ToS permits personal dev… | | `baidu` | caution | ToS not explicitly reviewed for proxy/resale clauses, but platform requires real-name authentication (Chinese ID typica… | @@ -229,7 +226,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve | `duckduckgo-web` | keyless | — | — | avoid | 6 | | `freemodel-dev` | keyless | — | — | unknown | 4 | | `friendliai` | keyless | — | — | avoid | 2 | -| `gemini-cli` | keyless | — | — | avoid | 9 | | `hackclub` | keyless | — | — | caution | 3 | | `iflytek` | keyless | — | — | avoid | 1 | | `inference-net` | keyless | — | — | caution | 3 | @@ -286,7 +282,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve - **`freemodel-dev`** — Our shipped freeNote is "(none)" — this was likely a placeholder meaning the provider was not yet cataloged. In reality the provider does have a $300 one-time trial credit offer. However, this is a o… - **`friendliai`** — The shipped freeNote ("Free tier for serverless inference") is partially accurate but misleading. There is free access via Tier 0 and free-designated models, but the rate limits are undefined and ada… - **`gemini`** — The shipped freeNote says "1,500 req/day for Gemini 2.5 Flash" — this was accurate before December 2025. Google cut free-tier limits by 50-80% in December 2025, reducing Gemini 2.5 Flash from 1,500 R… -- **`gemini-cli`** — Catalog ships "(none)" implying no free tier was recognized. In reality, Gemini CLI did have a notable free OAuth tier (1,000 RPD via Google Account) until recently, but it is now being shut down (Ju… - **`github-models`** — Catalog note "Free GPT-5, o-series, DeepSeek-R1, Llama 4, Grok 3" is directionally correct about model availability but omits the daily rate limits (50 RPD for high-tier models, 150 RPD for low-tier)… - **`gitlawb`** — The shipped freeNote "Free tier available" is effectively stale. The original free MiMo access was removed in May 2026; the only remaining "free" option is a temporary promotional model (Nemotron 3 U… - **`gitlawb-gmi`** — Partially still accurate — free tier exists but is now narrowed to a single model (Nemotron 3 Ultra) after MiMo free access was revoked in late May 2026. The shipped note "Free tier available" unders… diff --git a/docs/reference/PROVIDER_REFERENCE.md b/docs/reference/PROVIDER_REFERENCE.md index de4bd5d90e..a66435d1f9 100644 --- a/docs/reference/PROVIDER_REFERENCE.md +++ b/docs/reference/PROVIDER_REFERENCE.md @@ -43,7 +43,6 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `codex` | `cx` | OpenAI Codex | OAuth | — | — | | `cursor` | `cu` | Cursor IDE | OAuth | — | — | | `devin-cli` | `dv` | Devin CLI (Official) | OAuth | [link](https://cli.devin.ai) | Requires the Devin CLI binary. Run `devin auth login` to authenticate, or provide your WINDSURF_API_KEY. Install: https://cli.devin.ai | -| `gemini-cli` | `gemini-cli` | Gemini CLI | OAuth | — | Uses Gemini CLI OAuth / Cloud Code credentials. Pro models require an eligible Google account or paid plan. | | `github` | `gh` | GitHub Copilot | OAuth | — | — | | `gitlab-duo` | `gitlab-duo` | GitLab Duo | OAuth | [link](https://docs.gitlab.com/user/duo_agent_platform/code_suggestions/) | OAuth application with ai_features + read_user scopes. Configure GITLAB_DUO_OAUTH_CLIENT_ID and optionally GITLAB_DUO_OAUTH_CLIENT_SECRET on this OmniRoute instance. | | `kilocode` | `kc` | Kilo Code | OAuth | — | — | diff --git a/docs/research/UNLIMITED_LLM_ACCESS.md b/docs/research/UNLIMITED_LLM_ACCESS.md index a047ad982b..c645f31c06 100644 --- a/docs/research/UNLIMITED_LLM_ACCESS.md +++ b/docs/research/UNLIMITED_LLM_ACCESS.md @@ -132,7 +132,6 @@ This document catalogs every known method for accessing LLMs without paying — | Tool | Token Location | Token Type | Feasibility | Notes | |------|---------------|------------|-------------|-------| -| `gemini-cli` | `~/.gemini/oauth_creds.json` | OAuth refresh token | 5 | Already used by gemini-cli provider | | `claude-code` | `~/.claude/credentials` | OAuth token | 5 | Already used by claude-code provider | | `copilot-cli` | `~/.config/github-copilot/` | OAuth token | 4 | Used by copilot provider | | `codex-cli` | `~/.codex/` | OAuth token | 4 | Used by codex provider | diff --git a/docs/security/PUBLIC_CREDS.md b/docs/security/PUBLIC_CREDS.md index 193b3e4202..7502283cfb 100644 --- a/docs/security/PUBLIC_CREDS.md +++ b/docs/security/PUBLIC_CREDS.md @@ -14,7 +14,6 @@ lastUpdated: 2026-05-14 ## Why this exists -Some upstream providers (Gemini CLI, Antigravity CLI, Windsurf / Devin CLI, GitHub Copilot, and similar OAuth-native clients) ship credentials extracted from their **public binaries or web apps**. Google explicitly documents that these are not secrets: - [OAuth 2.0 for native apps (PKCE)](https://developers.google.com/identity/protocols/oauth2/native-app) — OAuth client_id / client_secret for installed apps are public; PKCE provides the actual security. - [Firebase API keys](https://firebase.google.com/docs/projects/api-keys) — Web client identifiers are public by design. diff --git a/docs/security/STEALTH_GUIDE.md b/docs/security/STEALTH_GUIDE.md index 25e2080bb1..fa97e21a44 100644 --- a/docs/security/STEALTH_GUIDE.md +++ b/docs/security/STEALTH_GUIDE.md @@ -222,7 +222,6 @@ All MITM endpoints require management auth (`requireCliToolsAuth`). The sudo pas | `QODER_USER_AGENT` | `Qoder-Cli` | | `QWEN_USER_AGENT` | `QwenCode/0.19.3 (linux; x64)` | | `CURSOR_USER_AGENT` | `Cursor/3.3` | -| `GEMINI_CLI_USER_AGENT` | `google-api-nodejs-client/10.3.0` | Consumed by `open-sse/executors/base.ts::buildHeaders()` via dynamic lookup. **Bump these when providers release new CLI versions** — stale UA strings start getting rejected as outdated clients. diff --git a/images/tier-flow-dark.svg b/images/tier-flow-dark.svg index a8c43093a5..19cf974d09 100644 --- a/images/tier-flow-dark.svg +++ b/images/tier-flow-dark.svg @@ -58,7 +58,7 @@ Tier 3 — FREE Free tiers & credit programs Kiro · OpenCode · Qoder - Gemini CLI · Vertex $300cr + Antigravity · Vertex $300cr always available diff --git a/images/tier-flow-light.svg b/images/tier-flow-light.svg index c05dd86406..635dfd908d 100644 --- a/images/tier-flow-light.svg +++ b/images/tier-flow-light.svg @@ -58,7 +58,7 @@ Tier 3 — FREE Free tiers & credit programs Kiro · OpenCode · Qoder - Gemini CLI · Vertex $300cr + Antigravity · Vertex $300cr always available diff --git a/llm.txt b/llm.txt index b577d71a23..4214f412e3 100644 --- a/llm.txt +++ b/llm.txt @@ -40,7 +40,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ │ ├── audit/ # Audit logs │ │ │ ├── auto-combo/ # Auto-combo engine dashboard │ │ │ ├── cache/ # Cache dashboard (semantic cache stats) -│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, Gemini CLI, etc.) +│ │ │ ├── cli-tools/ # CLI tool configuration (Claude Code, Codex, etc.) │ │ │ ├── combos/ # Model combo management (14 strategies + 4 templates) │ │ │ ├── costs/ # Cost tracking per provider/model │ │ │ ├── endpoint/ # Unified: Endpoint Proxy, MCP, A2A, API Endpoints tabs @@ -189,7 +189,6 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── codex.ts # OpenAI Codex CLI │ │ ├── antigravity.ts # Antigravity IDE │ │ ├── github.ts # GitHub Copilot -│ │ ├── gemini-cli.ts # Gemini CLI │ │ ├── kiro.ts # Kiro AI │ │ ├── qoder.ts # Qoder AI │ │ ├── vertex.ts # Vertex AI (Service Account JSON) @@ -361,7 +360,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Provider Categories -**Free Providers (5):** Qoder AI, Qwen Code (deprecated), Gemini CLI, Kiro AI, Windsurf +**Free Providers (4):** Qoder AI, Qwen Code (deprecated), Kiro AI, Windsurf **OAuth Providers (14):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Qwen, Kiro, Qoder, Gemini, Windsurf, GitLab Duo diff --git a/open-sse/config/cliFingerprints.ts b/open-sse/config/cliFingerprints.ts index 38bfacbd34..7009a89505 100644 --- a/open-sse/config/cliFingerprints.ts +++ b/open-sse/config/cliFingerprints.ts @@ -198,19 +198,6 @@ export const CLI_FINGERPRINTS: Record = { ], userAgent: getAntigravityUserAgent, }, - "gemini-cli": { - headerOrder: [ - "Host", - "Content-Type", - "User-Agent", - "X-Goog-Api-Client", - "Accept", - "Accept-Encoding", - "Connection", - "Authorization", - ], - bodyFieldOrder: ["model", "project", "user_prompt_id", "request"], - }, qwen: { headerOrder: [ "Host", diff --git a/open-sse/config/freeModelCatalog.data.ts b/open-sse/config/freeModelCatalog.data.ts index 4a5f760b94..27fb90524f 100644 --- a/open-sse/config/freeModelCatalog.data.ts +++ b/open-sse/config/freeModelCatalog.data.ts @@ -170,15 +170,6 @@ export const FREE_MODEL_BUDGETS: FreeModelBudget[] = [ { provider: "gemini", modelId: "gemini-3.1-flash-lite-preview", displayName: "Gemini 3.1 Flash-Lite", monthlyTokens: 0, creditTokens: 0, freeType: "recurring-daily", poolKey: "gemini-free", tos: "caution" }, { provider: "gemini", modelId: "gemini-3.5-flash", displayName: "Gemini 3.5 Flash", monthlyTokens: 0, creditTokens: 0, freeType: "recurring-daily", poolKey: "gemini-free", tos: "caution" }, { provider: "gemini", modelId: "gemma-4", displayName: "Gemma 4 (open model)", monthlyTokens: 0, creditTokens: 0, freeType: "recurring-daily", poolKey: "gemini-free", tos: "caution" }, - { provider: "gemini-cli", modelId: "gemini-2.0-flash", displayName: "Gemini 2.0 Flash", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-2.0-flash-thinking", displayName: "Gemini 2.0 Flash Thinking", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-2.0-pro-exp-02-05", displayName: "Gemini 2.0 Pro Experimental", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-1.5-pro", displayName: "Gemini 1.5 Pro", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-1.5-flash", displayName: "Gemini 1.5 Flash", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-3.1-pro-preview", displayName: "Gemini 3.1 Pro Preview", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-3.1-pro-preview-customtools", displayName: "Gemini 3.1 Pro Preview Custom Tools", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-3-flash-preview", displayName: "Gemini 3 Flash Preview", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, - { provider: "gemini-cli", modelId: "gemini-3.1-flash-lite-preview", displayName: "Gemini 3.1 Flash Lite", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "gemini-cli", tos: "avoid" }, { provider: "github-models", modelId: "openai/gpt-4.1", displayName: "GPT-4.1 (Free)", monthlyTokens: 18000000, creditTokens: 0, freeType: "recurring-daily", poolKey: "github-models", tos: "caution" }, { provider: "github-models", modelId: "openai/gpt-4o", displayName: "GPT-4o (Free)", monthlyTokens: 18000000, creditTokens: 0, freeType: "recurring-daily", poolKey: "github-models", tos: "caution" }, { provider: "github-models", modelId: "openai/gpt-4o-mini", displayName: "GPT-4o Mini (Free)", monthlyTokens: 18000000, creditTokens: 0, freeType: "recurring-daily", poolKey: "github-models", tos: "caution" }, diff --git a/open-sse/config/freeTierCatalog.ts b/open-sse/config/freeTierCatalog.ts index 18fede3017..30038a48a8 100644 --- a/open-sse/config/freeTierCatalog.ts +++ b/open-sse/config/freeTierCatalog.ts @@ -43,7 +43,6 @@ export const FREE_TIER_BUDGETS: Record = { export const FREE_TIER_TOS: Record = { opencode: "avoid", "duckduckgo-web": "avoid", - "gemini-cli": "avoid", agy: "avoid", kiro: "avoid", "amazon-q": "avoid", @@ -83,9 +82,7 @@ function billions(n: number): string { * ~1.54B). This per-provider aggregator is retained only for reference; the * `FREE_TIER_TOS` map below is still used as the ToS source of truth. */ -export function computeFreeTierTotals( - opts: { excludeTosAvoid?: boolean } = {} -): FreeTierTotals { +export function computeFreeTierTotals(opts: { excludeTosAvoid?: boolean } = {}): FreeTierTotals { const byProvider = Object.entries(FREE_TIER_BUDGETS) .map(([id, monthlyTokens]) => ({ id, diff --git a/open-sse/config/providers/index.ts b/open-sse/config/providers/index.ts index 3d6daeb7fb..80abaeab02 100644 --- a/open-sse/config/providers/index.ts +++ b/open-sse/config/providers/index.ts @@ -152,7 +152,6 @@ import { opencode_goProvider } from "./registry/opencode/go/index.ts"; import { opencodeProvider } from "./registry/opencode/index.ts"; import { maritalkProvider } from "./registry/maritalk/index.ts"; import { basetenProvider } from "./registry/baseten/index.ts"; -import { gemini_cliProvider } from "./registry/gemini/cli/index.ts"; import { geminiProvider } from "./registry/gemini/index.ts"; import { gemini_webProvider } from "./registry/gemini/web/index.ts"; import { clineProvider } from "./registry/cline/index.ts"; @@ -323,7 +322,6 @@ export const REGISTRY: Record = { opencode: opencodeProvider, maritalk: maritalkProvider, baseten: basetenProvider, - "gemini-cli": gemini_cliProvider, gemini: geminiProvider, "gemini-web": gemini_webProvider, cline: clineProvider, diff --git a/open-sse/config/providers/registry/gemini/cli/index.ts b/open-sse/config/providers/registry/gemini/cli/index.ts deleted file mode 100644 index 67c6e796ce..0000000000 --- a/open-sse/config/providers/registry/gemini/cli/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { RegistryEntry } from "../../../shared.ts"; -import { resolvePublicCred } from "../../../shared.ts"; - -export const gemini_cliProvider: RegistryEntry = { - id: "gemini-cli", - alias: "gemini-cli", - format: "gemini-cli", - executor: "gemini-cli", - baseUrl: "https://cloudcode-pa.googleapis.com/v1internal", - urlBuilder: (base, model, stream) => { - const action = stream ? "streamGenerateContent?alt=sse" : "generateContent"; - return `${base}:${action}`; - }, - authType: "apikey", - authHeader: "x-goog-api-key", - defaultContextLength: 1048576, - oauth: { - clientIdEnv: "GEMINI_CLI_OAUTH_CLIENT_ID", - clientIdDefault: resolvePublicCred("gemini_id"), - clientSecretEnv: "GEMINI_CLI_OAUTH_CLIENT_SECRET", - clientSecretDefault: resolvePublicCred("gemini_alt"), - }, - models: [ - { id: "gemini-2.0-flash", name: "Gemini 2.0 Flash" }, - { id: "gemini-2.0-flash-thinking", name: "Gemini 2.0 Flash Thinking" }, - { id: "gemini-2.0-pro-exp-02-05", name: "Gemini 2.0 Pro Experimental" }, - { id: "gemini-1.5-pro", name: "Gemini 1.5 Pro" }, - { id: "gemini-1.5-flash", name: "Gemini 1.5 Flash" }, - { id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview" }, - { id: "gemini-3.1-pro-preview-customtools", name: "Gemini 3.1 Pro Preview Custom Tools" }, - { id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview" }, - { id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite" }, - ], -}; diff --git a/open-sse/executors/antigravity.ts b/open-sse/executors/antigravity.ts index ba318bc6fe..a238f0feb5 100644 --- a/open-sse/executors/antigravity.ts +++ b/open-sse/executors/antigravity.ts @@ -679,7 +679,7 @@ export class AntigravityExecutor extends BaseExecutor { // Auto-discover a missing projectId via loadCodeAssist before failing (#2334/#2541). // A freshly re-added Antigravity account can have an empty stored projectId even when // its Google account already owns a Cloud Code project (the OAuth-time loadCodeAssist - // returned empty/transiently failed). Mirror gemini-cli.ts's bootstrap to recover it + // returned empty/transiently failed). Mirror the Cloud Code bootstrap to recover it // here — the helper memoizes per access-token, so this is a one-time round-trip. if (!projectId && credentials?.accessToken) { const discovered = await ensureAntigravityProjectAssigned(credentials.accessToken); diff --git a/open-sse/executors/gemini-cli.ts b/open-sse/executors/gemini-cli.ts deleted file mode 100644 index 979d157aa1..0000000000 --- a/open-sse/executors/gemini-cli.ts +++ /dev/null @@ -1,587 +0,0 @@ -import { BaseExecutor, mergeUpstreamExtraHeaders, mergeAbortSignals } from "./base.ts"; -import { randomUUID } from "crypto"; -import { PROVIDERS, OAUTH_ENDPOINTS, FETCH_TIMEOUT_MS } from "../config/constants.ts"; -import { getGeminiCliHeaders } from "../services/geminiCliHeaders.ts"; -import { scrubProxyAndFingerprintHeaders } from "../services/antigravityHeaderScrub.ts"; -import { obfuscateSensitiveWords } from "../services/antigravityObfuscation.ts"; -import { - shouldStripCloudCodeThinking, - stripCloudCodeThinkingConfig, -} from "../services/cloudCodeThinking.ts"; - -const LOAD_CODE_ASSIST_URL = "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"; -const ONBOARD_USER_URL = "https://cloudcode-pa.googleapis.com/v1internal:onboardUser"; -const PROJECT_TTL_MS = 30_000; // 30 seconds — matches native Gemini CLI -const MAX_CACHE_SIZE = 100; -const LOAD_CODE_ASSIST_TIMEOUT_MS = 10_000; // 10 seconds timeout -const ONBOARD_TIMEOUT_MS = 30_000; -const ONBOARD_MAX_ATTEMPTS = 10; -const ONBOARD_DELAY_MS = 5_000; -const DEFAULT_PROJECT_ID = "default-project"; -const DEFAULT_ONBOARD_TIER = "free-tier"; -const LOAD_CODE_ASSIST_METADATA = Object.freeze({ - ideType: "IDE_UNSPECIFIED", - platform: "PLATFORM_UNSPECIFIED", - pluginType: "GEMINI", -}); -const ONBOARD_METADATA = Object.freeze({ - ideType: "IDE_UNSPECIFIED", - pluginType: "GEMINI", -}); - -// Per-account cache: accessToken -> { projectId, expiresAt } -const projectCache = new Map(); -// In-flight deduplication: prevents thundering herd on cache miss -const inflightRefresh = new Map>(); - -type LoadCodeAssistResponse = { - cloudaicompanionProject?: string | { id?: string | null } | null; - allowedTiers?: Array<{ id?: string | null; isDefault?: boolean | null }> | null; -}; - -type OnboardOptions = { - attempts?: number; - delayMs?: number; -}; - -function normalizeGeminiModel(model: string): string { - return typeof model === "string" && model.trim().length > 0 - ? model.replace(/^models\//, "").trim() - : "unknown"; -} - -function generateGeminiCliRequestId(): string { - return `agent-${randomUUID()}`; -} - -function generateGeminiCliSessionId(): string { - return `-${Date.now()}`; -} - -function cloneGeminiCliRecord(value: Record): Record { - if (typeof structuredClone === "function") { - return structuredClone(value); - } - - return JSON.parse(JSON.stringify(value)); -} - -function extractProjectId(payload: unknown): string { - if (!payload || typeof payload !== "object") return ""; - const data = payload as LoadCodeAssistResponse; - if (typeof data.cloudaicompanionProject === "string") { - return data.cloudaicompanionProject.trim(); - } - if (typeof data.cloudaicompanionProject?.id === "string") { - return data.cloudaicompanionProject.id.trim(); - } - return ""; -} - -function resolveGeminiCliProjectId(value: unknown): string { - if (typeof value !== "string") return ""; - const trimmed = value.trim(); - if (!trimmed) return ""; - const normalized = trimmed.toLowerCase(); - if (normalized === DEFAULT_PROJECT_ID || normalized === `projects/${DEFAULT_PROJECT_ID}`) { - return ""; - } - return trimmed; -} - -function extractDefaultTierId(payload: unknown): string { - if (!payload || typeof payload !== "object") return DEFAULT_ONBOARD_TIER; - const tiers = Array.isArray((payload as LoadCodeAssistResponse).allowedTiers) - ? (payload as LoadCodeAssistResponse).allowedTiers - : []; - for (const tier of tiers) { - if (tier?.isDefault && typeof tier.id === "string" && tier.id.trim()) { - return tier.id.trim(); - } - } - return DEFAULT_ONBOARD_TIER; -} - -function cacheProject(accessToken: string, projectId: string): void { - if (projectCache.size >= MAX_CACHE_SIZE) { - const now = Date.now(); - for (const [key, val] of projectCache) { - if (val.expiresAt <= now) projectCache.delete(key); - } - if (projectCache.size >= MAX_CACHE_SIZE) { - const firstKey = projectCache.keys().next().value; - if (firstKey !== undefined) projectCache.delete(firstKey); - } - } - - projectCache.set(accessToken, { - projectId, - expiresAt: Date.now() + PROJECT_TTL_MS, - }); -} - -function sleep(ms: number): Promise { - if (!ms || ms <= 0) return Promise.resolve(); - return new Promise((resolve) => setTimeout(resolve, ms)); -} - -export class GeminiCLIExecutor extends BaseExecutor { - constructor() { - super("gemini-cli", PROVIDERS["gemini-cli"]); - } - - buildUrl(model, stream, urlIndex = 0) { - void model; - void urlIndex; - const action = stream ? "streamGenerateContent?alt=sse" : "generateContent"; - return `${this.config.baseUrl}:${action}`; - } - - buildHeaders( - credentials, - stream = true, - clientHeaders?: Record | null, - model?: string - ) { - void clientHeaders; - - const activeModel = model || "unknown"; - - const raw = getGeminiCliHeaders( - normalizeGeminiModel(activeModel), - credentials.accessToken, - stream ? "*/*" : "application/json" - ); - - if (credentials.apiKey) { - raw["x-goog-api-key"] = credentials.apiKey; - // getGeminiCliHeaders adds Authorization: Bearer undefined if accessToken is empty, so we clean it up - if (!credentials.accessToken) { - delete raw["Authorization"]; - } - } - - return scrubProxyAndFingerprintHeaders(raw); - } - - async onboardManagedProject( - accessToken: string, - tierId = DEFAULT_ONBOARD_TIER, - options: OnboardOptions = {}, - model = "unknown" - ): Promise { - const currentModel = normalizeGeminiModel(model); - const attempts = - Number.isInteger(options.attempts) && options.attempts! > 0 - ? Number(options.attempts) - : ONBOARD_MAX_ATTEMPTS; - const delayMs = - typeof options.delayMs === "number" && - Number.isFinite(options.delayMs) && - options.delayMs >= 0 - ? options.delayMs - : ONBOARD_DELAY_MS; - - const requestBody = { - tierId: tierId || DEFAULT_ONBOARD_TIER, - metadata: { ...ONBOARD_METADATA }, - }; - - for (let attempt = 0; attempt < attempts; attempt += 1) { - try { - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), ONBOARD_TIMEOUT_MS); - - let response: Response; - try { - response = await fetch(ONBOARD_USER_URL, { - method: "POST", - headers: getGeminiCliHeaders(currentModel, accessToken, "application/json"), - body: JSON.stringify(requestBody), - signal: controller.signal, - }); - } finally { - clearTimeout(timeoutId); - } - - if (response.ok) { - const payload = await response.json(); - const managedProjectId = extractProjectId(payload?.response); - - if (payload?.done === true && managedProjectId) { - return managedProjectId; - } - - if (payload?.done === true) { - return null; - } - } else { - console.warn( - `[OmniRoute] onboardUser returned ${response.status} on attempt ${attempt + 1}` - ); - } - } catch (error) { - const msg = error instanceof Error ? error.message : String(error); - console.warn(`[OmniRoute] onboardUser attempt ${attempt + 1} failed (${msg})`); - } - - if (attempt < attempts - 1) { - await sleep(delayMs); - } - } - - return null; - } - - /** - * Fetch the current cloudaicompanionProject via loadCodeAssist API. - * Native Gemini CLI refreshes this every 30 seconds — OmniRoute stores it once - * at OAuth connection time, so it goes stale. This method keeps it fresh. - */ - async refreshProject(accessToken: string, model = "unknown"): Promise { - // Check cache - const cached = projectCache.get(accessToken); - if (cached && cached.expiresAt > Date.now()) { - return cached.projectId; - } - - // Deduplicate in-flight requests (thundering herd prevention) - const inflight = inflightRefresh.get(accessToken); - if (inflight) return inflight; - - const promise = this._doRefresh(accessToken, model); - inflightRefresh.set(accessToken, promise); - try { - return await promise; - } finally { - inflightRefresh.delete(accessToken); - } - } - - async _doRefresh(accessToken: string, model = "unknown"): Promise { - const currentModel = normalizeGeminiModel(model); - try { - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), LOAD_CODE_ASSIST_TIMEOUT_MS); - - let response: Response; - try { - response = await fetch(LOAD_CODE_ASSIST_URL, { - method: "POST", - headers: getGeminiCliHeaders(currentModel, accessToken, "application/json"), - body: JSON.stringify({ - metadata: { ...LOAD_CODE_ASSIST_METADATA }, - }), - signal: controller.signal, - }); - } finally { - clearTimeout(timeoutId); - } - - if (!response.ok) { - console.warn( - `[OmniRoute] loadCodeAssist returned ${response.status} — falling back to stored projectId` - ); - return null; - } - - const data = (await response.json()) as LoadCodeAssistResponse; - let projectId = resolveGeminiCliProjectId(extractProjectId(data)); - - if (!projectId) { - console.warn( - "[OmniRoute] loadCodeAssist returned no project — attempting managed project onboarding" - ); - projectId = await this.onboardManagedProject( - accessToken, - extractDefaultTierId(data), - {}, - currentModel - ); - } - - if (!projectId) { - console.warn( - "[OmniRoute] managed project onboarding failed — falling back to stored projectId" - ); - return null; - } - - cacheProject(accessToken, projectId); - - return projectId; - } catch (error) { - const msg = error instanceof Error ? error.message : String(error); - console.warn(`[OmniRoute] loadCodeAssist failed (${msg}) — falling back to stored projectId`); - return null; - } - } - - async transformRequest(model, body, stream, credentials) { - const currentModel = normalizeGeminiModel(model); - const normalizedBody = - shouldStripCloudCodeThinking(this.provider, currentModel) && body && typeof body === "object" - ? stripCloudCodeThinkingConfig(body) - : body; - - const bodyRecord = - normalizedBody && typeof normalizedBody === "object" - ? (normalizedBody as Record) - : { request: {} }; - const requestRecord = - bodyRecord.request && typeof bodyRecord.request === "object" - ? cloneGeminiCliRecord(bodyRecord.request as Record) - : {}; - - const providerSpecificData = credentials.providerSpecificData as Record; - const storedProject = - resolveGeminiCliProjectId(providerSpecificData?.projectId) || - resolveGeminiCliProjectId(credentials.projectId) || - resolveGeminiCliProjectId(bodyRecord.project) || - ""; - - const envelope: Record = { - model: currentModel, - user_prompt_id: bodyRecord.user_prompt_id || generateGeminiCliRequestId(), - request: { - ...requestRecord, - session_id: requestRecord.session_id || generateGeminiCliSessionId(), - }, - }; - - if (typeof storedProject === "string" ? storedProject.trim() : storedProject) { - envelope.project = storedProject; - } - - for (const [key, value] of Object.entries(bodyRecord)) { - if (!(key in envelope) && key !== "request" && key !== "project") { - envelope[key] = value; - } - } - - // Native Gemini CLI refreshes the Cloud Code project periodically because - // stored project IDs can go stale. Keep the stored value as a fallback. - if (credentials.accessToken) { - const freshProject = await this.refreshProject(credentials.accessToken, currentModel); - if (resolveGeminiCliProjectId(freshProject)) { - envelope.project = freshProject; - } - } - - if (envelope.request) { - // Obfuscate sensitive client names in user content - const contents = envelope.request?.contents; - if (Array.isArray(contents)) { - for (const msg of contents) { - if (Array.isArray(msg.parts)) { - for (const part of msg.parts) { - if (typeof part.text === "string") { - part.text = obfuscateSensitiveWords(part.text); - } - } - } - } - } - } - return envelope; - } - - async execute({ - model, - body, - stream, - credentials, - signal, - log, - upstreamExtraHeaders, - }: ExecuteInput) { - const fallbackCount = this.getFallbackCount(); - let lastError = null; - let lastStatus = 0; - const MAX_AUTO_RETRIES = 3; - const retryAttemptsByUrl: Record = {}; - - for (let urlIndex = 0; urlIndex < fallbackCount; urlIndex++) { - const url = this.buildUrl(model, stream, urlIndex); - const headers = this.buildHeaders(credentials, stream, null, model); - mergeUpstreamExtraHeaders(headers, upstreamExtraHeaders); - - const transformed = await this.transformRequest(model, body, stream, credentials); - if (transformed instanceof Response) { - return { response: transformed, url, headers, transformedBody: body }; - } - const transformedBody = transformed; - - if (!retryAttemptsByUrl[urlIndex]) { - retryAttemptsByUrl[urlIndex] = 0; - } - - try { - log?.debug?.( - "TELEMETRY", - `[Gemini CLI] Execute - URL: ${url}, Model: ${model}, Retry: ${retryAttemptsByUrl[urlIndex]}` - ); - - const timeoutSignal = AbortSignal.timeout(FETCH_TIMEOUT_MS); - const mergedSignal = signal ? mergeAbortSignals(signal, timeoutSignal) : timeoutSignal; - const response = await fetch(url, { - method: "POST", - headers, - body: JSON.stringify(transformedBody), - signal: mergedSignal, - }); - - if (!response.ok) { - log?.warn?.( - "TELEMETRY", - `[Gemini CLI] Error Response - URL: ${url}, Status: ${response.status}` - ); - - let retryMs: number | null = null; - if (response.status === 429 || response.status === 503) { - try { - const errorBody = await response.clone().text(); - retryMs = this.parseRetryFromErrorMessage(errorBody); - } catch { - /* ignore parse error */ - } - - if ((!retryMs || retryMs <= 60000) && retryAttemptsByUrl[urlIndex] < MAX_AUTO_RETRIES) { - retryAttemptsByUrl[urlIndex]++; - const backoffMs = - retryMs || Math.min(1000 * 2 ** retryAttemptsByUrl[urlIndex], 30000); - log?.debug?.( - "RETRY", - `Gemini CLI 429 retry ${retryAttemptsByUrl[urlIndex]} after ${backoffMs}ms` - ); - await sleep(backoffMs); - urlIndex--; - continue; - } - } - } - - if (this.shouldRetry(response.status, urlIndex)) { - lastStatus = response.status; - continue; - } - - return { response, url, headers, transformedBody }; - } catch (error) { - lastError = error; - if (urlIndex + 1 < fallbackCount) continue; - throw error; - } - } - - throw lastError || new Error(`All ${fallbackCount} URLs failed with status ${lastStatus}`); - } - - async refreshCredentials(credentials, log) { - if (!credentials.refreshToken) return null; - - try { - const response = await fetch(OAUTH_ENDPOINTS.google.token, { - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Accept: "application/json", - }, - body: new URLSearchParams({ - grant_type: "refresh_token", - refresh_token: credentials.refreshToken, - client_id: this.config.clientId, - client_secret: this.config.clientSecret, - }), - }); - - if (!response.ok) { - const errorText = await response.text().catch(() => ""); - log?.error?.("TOKEN", "Gemini CLI refresh failed", { - status: response.status, - error: errorText.slice(0, 200), - }); - // Match refreshGoogleToken's pattern: invalid_grant means the refresh - // token was revoked / replaced — surface as unrecoverable so the caller - // marks the account expired instead of retrying forever with a dead token. - try { - const errorBody = JSON.parse(errorText); - if (errorBody?.error === "invalid_grant") { - return { error: "unrecoverable_refresh_error", code: "invalid_grant" } as never; - } - } catch { - // not JSON — fall through - } - return null; - } - - const tokens = await response.json(); - log?.info?.("TOKEN", "Gemini CLI refreshed"); - - const refreshed: Record = { - accessToken: tokens.access_token, - refreshToken: tokens.refresh_token || credentials.refreshToken, - expiresIn: tokens.expires_in, - projectId: credentials.projectId, - }; - if (credentials.providerSpecificData !== undefined) { - refreshed.providerSpecificData = credentials.providerSpecificData; - } - return refreshed as never; - } catch (error) { - log?.error?.("TOKEN", `Gemini CLI refresh error: ${error.message}`); - return null; - } - } - - // Parse retry time from Gemini error message body. Two shapes are handled: - // 1. Structured google.rpc.RetryInfo in the 429/503 JSON body: - // { error: { details: [{ "@type": ".../google.rpc.RetryInfo", retryDelay: "30s" }] } } - // 2. Human-readable prose: "Your quota will reset after 2h7m23s" - // The structured hint is authoritative (it is what the Cloud Code Assist API - // sends), so it is checked first and falls through to the prose form on miss. - parseRetryFromErrorMessage(errorMessage: unknown): number | null { - if (!errorMessage || typeof errorMessage !== "string") return null; - - const structuredMs = this.parseStructuredRetryDelay(errorMessage); - if (structuredMs !== null) return structuredMs; - - const match = errorMessage.match(/reset (?:after|in) (\d+h)?(\d+m)?(\d+s)?/i); - if (!match) return null; - - let totalMs = 0; - if (match[1]) totalMs += parseInt(match[1]) * 3600 * 1000; - if (match[2]) totalMs += parseInt(match[2]) * 60 * 1000; - if (match[3]) totalMs += parseInt(match[3]) * 1000; - - return totalMs || 2_000; - } - - // Read google.rpc.RetryInfo.retryDelay from a Google API error JSON body and - // convert the protobuf Duration string ("30s", "1.5s", "0.500s") into ms. - // Returns null when the body is not JSON or carries no RetryInfo detail. - private parseStructuredRetryDelay(bodyText: string): number | null { - if (!bodyText.includes("RetryInfo")) return null; - try { - const parsed = JSON.parse(bodyText); - const details = parsed?.error?.details; - if (!Array.isArray(details)) return null; - for (const detail of details) { - if ( - detail?.["@type"] === "type.googleapis.com/google.rpc.RetryInfo" && - typeof detail?.retryDelay === "string" - ) { - const seconds = parseFloat(detail.retryDelay.replace(/s$/i, "")); - if (Number.isFinite(seconds) && seconds >= 0) { - return Math.round(seconds * 1000) || 2_000; - } - } - } - } catch { - /* not JSON — caller falls back to prose parsing */ - } - return null; - } -} - -export default GeminiCLIExecutor; diff --git a/open-sse/executors/index.ts b/open-sse/executors/index.ts index e01751ade6..456b368240 100644 --- a/open-sse/executors/index.ts +++ b/open-sse/executors/index.ts @@ -1,5 +1,4 @@ import { AntigravityExecutor } from "./antigravity.ts"; -import { GeminiCLIExecutor } from "./gemini-cli.ts"; import { GithubExecutor } from "./github.ts"; import { QoderExecutor } from "./qoder.ts"; import { KiroExecutor } from "./kiro.ts"; @@ -56,11 +55,9 @@ import { GrokCliExecutor } from "./grok-cli.ts"; import { CodeBuddyCnExecutor } from "./codebuddy-cn.ts"; import { ZenmuxFreeExecutor } from "./zenmux-free.ts"; - const executors = { antigravity: new AntigravityExecutor(), agy: new AntigravityExecutor(), - "gemini-cli": new GeminiCLIExecutor(), github: new GithubExecutor(), qoder: new QoderExecutor(), kiro: new KiroExecutor(), @@ -174,7 +171,6 @@ export function hasSpecializedExecutor(provider) { export { BaseExecutor } from "./base.ts"; export { AntigravityExecutor } from "./antigravity.ts"; -export { GeminiCLIExecutor } from "./gemini-cli.ts"; export { GithubExecutor } from "./github.ts"; export { QoderExecutor } from "./qoder.ts"; export { KiroExecutor } from "./kiro.ts"; diff --git a/open-sse/handlers/responseTranslator.ts b/open-sse/handlers/responseTranslator.ts index 95736d5a7e..93f6bc1784 100644 --- a/open-sse/handlers/responseTranslator.ts +++ b/open-sse/handlers/responseTranslator.ts @@ -299,11 +299,7 @@ export function translateNonStreamingResponse( } // Handle Gemini/Antigravity format - else if ( - targetFormat === FORMATS.GEMINI || - targetFormat === FORMATS.ANTIGRAVITY || - targetFormat === FORMATS.GEMINI_CLI - ) { + else if (targetFormat === FORMATS.GEMINI || targetFormat === FORMATS.ANTIGRAVITY) { const root = toRecord(responseBody); const response = toRecord(root.response ?? root); const candidates = Array.isArray(response.candidates) ? response.candidates : []; diff --git a/open-sse/mcp-server/schemas/tools.ts b/open-sse/mcp-server/schemas/tools.ts index 549f68423e..7073c86c55 100644 --- a/open-sse/mcp-server/schemas/tools.ts +++ b/open-sse/mcp-server/schemas/tools.ts @@ -702,7 +702,7 @@ export const testComboTool: McpToolDefinition { "longcat", "cloudflare-ai", "qwen", - "gemini-cli", "nvidia-nim", "cerebras", "groq", diff --git a/open-sse/services/antigravityHeaderScrub.ts b/open-sse/services/antigravityHeaderScrub.ts index 52cbe036c8..985e3fe757 100644 --- a/open-sse/services/antigravityHeaderScrub.ts +++ b/open-sse/services/antigravityHeaderScrub.ts @@ -59,7 +59,7 @@ export function scrubProxyAndFingerprintHeaders( } if (lowerKey === "authorization") { // Defer Authorization so it lands last in the serialized order — matches - // the native Gemini CLI / Antigravity fingerprint where Authorization + // the native Antigravity fingerprint where Authorization // is the final header before the body. authorizationValue = value; continue; diff --git a/open-sse/services/cloudCodeThinking.ts b/open-sse/services/cloudCodeThinking.ts index 92461473f3..443bc6510e 100644 --- a/open-sse/services/cloudCodeThinking.ts +++ b/open-sse/services/cloudCodeThinking.ts @@ -10,7 +10,7 @@ function normalizeCloudCodeModel(model: string): string { return String(model || "") .trim() .replace(/^models\//i, "") - .replace(/^(?:antigravity|gemini-cli)\//i, ""); + .replace(/^antigravity\//i, ""); } function stripGeminiThinkingConfig(value: unknown): unknown { diff --git a/open-sse/services/geminiCliHeaders.ts b/open-sse/services/geminiCliHeaders.ts deleted file mode 100644 index 01a05f3c83..0000000000 --- a/open-sse/services/geminiCliHeaders.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - getCloudCodeNodeApiClientHeader, - normalizeCloudCodeArch, - normalizeCloudCodePlatform, -} from "./cloudCodeHeaders.ts"; - -export const GEMINI_CLI_VERSION = "0.49.0"; -export const GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION = "10.3.0"; - -const GEMINI_CLI_LOAD_CODE_ASSIST_METADATA = Object.freeze({ - ideType: "TERMINAL", - platform: "PLATFORM_UNSPECIFIED", - pluginType: "GEMINI", -}); - -export function getGeminiCliLoadCodeAssistMetadata(): Record { - return { ...GEMINI_CLI_LOAD_CODE_ASSIST_METADATA }; -} - -export function geminiCliUserAgent(model: string): string { - const normalizedModel = model || "unknown"; - return `GeminiCLI/${GEMINI_CLI_VERSION}/${normalizedModel} (${normalizeCloudCodePlatform()}; ${normalizeCloudCodeArch()}; terminal) google-api-nodejs-client/${GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION}`; -} - -export function geminiCliApiClientHeader(): string { - return getCloudCodeNodeApiClientHeader(); -} - -export function getGeminiCliHeaders( - model: string, - accessToken: string, - accept: "application/json" | "*/*" -): Record { - // Order matches the native Gemini CLI fingerprint: Authorization is sent - // last so the request is indistinguishable from the official client. - return { - "Content-Type": "application/json", - "User-Agent": geminiCliUserAgent(model), - "X-Goog-Api-Client": geminiCliApiClientHeader(), - Accept: accept, - Authorization: `Bearer ${accessToken}`, - }; -} diff --git a/open-sse/services/model.ts b/open-sse/services/model.ts index 674ddbe2ce..3150750a56 100644 --- a/open-sse/services/model.ts +++ b/open-sse/services/model.ts @@ -65,10 +65,6 @@ const PROVIDER_MODEL_ALIASES: ProviderModelAliasMap = { "gemini-3.1-pro": "gemini-3.1-pro-preview", "gemini-3-1-pro": "gemini-3.1-pro-preview", }, - "gemini-cli": { - "gemini-3.1-pro": "gemini-3.1-pro-preview", - "gemini-3-1-pro": "gemini-3.1-pro-preview", - }, nvidia: { "gpt-oss-120b": "openai/gpt-oss-120b", "nvidia/gpt-oss-120b": "openai/gpt-oss-120b", diff --git a/open-sse/services/payloadRules.ts b/open-sse/services/payloadRules.ts index 98ad426ee1..12bb32151d 100644 --- a/open-sse/services/payloadRules.ts +++ b/open-sse/services/payloadRules.ts @@ -399,7 +399,7 @@ export function resolvePayloadRuleProtocols({ if (targetFormat === "openai-responses" || targetFormat === "openai-response") { protocols.add("openai"); } - if (targetFormat === "gemini-cli" || targetFormat === "antigravity") { + if (targetFormat === "antigravity") { protocols.add("gemini"); } diff --git a/open-sse/services/provider.ts b/open-sse/services/provider.ts index fddf0daae8..9149c7e70b 100644 --- a/open-sse/services/provider.ts +++ b/open-sse/services/provider.ts @@ -285,7 +285,7 @@ export function buildProviderUrl( if (entry.urlBuilder) return entry.urlBuilder(baseUrl, model, stream); return baseUrl; } - // Custom URL builder (e.g. gemini, gemini-cli) + // Custom URL builder (e.g. gemini, antigravity) if (entry.urlBuilder) { const baseUrl = entry.baseUrl || config.baseUrl; if (baseUrl) { diff --git a/open-sse/services/tierConfig.ts b/open-sse/services/tierConfig.ts index 7bc5945fe8..9bd1939aa6 100644 --- a/open-sse/services/tierConfig.ts +++ b/open-sse/services/tierConfig.ts @@ -52,7 +52,6 @@ export const LEGACY_FREE_PROVIDERS: readonly string[] = [ "longcat", "cloudflare-ai", "qwen", - "gemini-cli", "nvidia-nim", "cerebras", "groq", diff --git a/open-sse/services/tierDefaults.json b/open-sse/services/tierDefaults.json index 7cd15670bd..49be7b08d3 100644 --- a/open-sse/services/tierDefaults.json +++ b/open-sse/services/tierDefaults.json @@ -19,7 +19,6 @@ "longcat", "cloudflare-ai", "qwen", - "gemini-cli", "nvidia-nim", "cerebras", "groq" diff --git a/open-sse/services/tokenRefresh.ts b/open-sse/services/tokenRefresh.ts index 2528c167bc..4d436f4d34 100755 --- a/open-sse/services/tokenRefresh.ts +++ b/open-sse/services/tokenRefresh.ts @@ -43,7 +43,6 @@ export const REFRESH_LEAD_MS: Record = { iflow: 24 * 60 * 60 * 1000, // 24 hours // Google OAuth refresh_tokens are permanent (non-rotating) — longer lead // is safe and reduces unnecessary upstream chatter. - "gemini-cli": 15 * 60 * 1000, antigravity: 15 * 60 * 1000, agy: 15 * 60 * 1000, // same Google backend as antigravity (non-rotating refresh tokens) }; @@ -537,10 +536,7 @@ export async function refreshCodebuddyCnToken( expiresIn: data.data.expiresIn, }; } catch (error) { - log?.error?.( - "TOKEN_REFRESH", - `Network error refreshing CodeBuddy CN token: ${error?.message}` - ); + log?.error?.("TOKEN_REFRESH", `Network error refreshing CodeBuddy CN token: ${error?.message}`); return null; } } @@ -1496,7 +1492,6 @@ export async function refreshCopilotToken(githubAccessToken, log, proxyConfig: u async function _getAccessTokenInternal(provider, credentials, log, proxyConfig: unknown = null) { switch (provider) { case "gemini": - case "gemini-cli": case "antigravity": case "agy": return await refreshGoogleToken( @@ -1574,7 +1569,6 @@ async function _getAccessTokenInternal(provider, credentials, log, proxyConfig: export function supportsTokenRefresh(provider) { const explicitlySupported = new Set([ "gemini", - "gemini-cli", "antigravity", "agy", "claude", @@ -1890,7 +1884,6 @@ export function formatProviderCredentials(provider, credentials, log) { case "antigravity": case "agy": - case "gemini-cli": return { accessToken: credentials.accessToken, refreshToken: credentials.refreshToken, diff --git a/open-sse/services/usage.ts b/open-sse/services/usage.ts index e9814e29c1..3aae5f02c6 100644 --- a/open-sse/services/usage.ts +++ b/open-sse/services/usage.ts @@ -58,9 +58,6 @@ import { // Quota / usage upstream URLs (overridable for testing or relays). const CROF_USAGE_URL = process.env.OMNIROUTE_CROF_USAGE_URL ?? "https://crof.ai/usage_api/"; -const GEMINI_CLI_USAGE_URL = - process.env.OMNIROUTE_GEMINI_CLI_USAGE_URL ?? - "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"; const CODEWHISPERER_BASE_URL = process.env.OMNIROUTE_CODEWHISPERER_BASE_URL ?? "https://codewhisperer.us-east-1.amazonaws.com"; @@ -110,10 +107,6 @@ type UsageProviderConnection = JsonRecord & { projectId?: string; email?: string; }; -type SubscriptionCacheEntry = { - data: unknown; - fetchedAt: number; -}; function shouldDisplayGitHubQuota(quota: UsageQuota | null): quota is UsageQuota { if (!quota) return false; @@ -698,7 +691,6 @@ async function getCursorUsage(accessToken: string, providerSpecificData?: unknow */ export const USAGE_FETCHER_PROVIDERS = [ "github", - "gemini-cli", "antigravity", "agy", "claude", @@ -745,8 +737,6 @@ export async function getUsageForProvider( switch (provider) { case "github": return await getGitHubUsage(accessToken, providerSpecificData); - case "gemini-cli": - return await getGeminiUsage(accessToken, providerSpecificData, projectId); case "antigravity": case "agy": return await getAntigravityUsage( @@ -1021,187 +1011,6 @@ function inferGitHubPlanName(data: JsonRecord, premiumQuota: UsageQuota | null): return "GitHub Copilot"; } -// ── Gemini CLI subscription info cache ────────────────────────────────────── -// Prevents duplicate loadCodeAssist calls within the same quota cycle. -// Key: accessToken → { data, fetchedAt } -const _geminiCliSubCache = new Map(); -const GEMINI_CLI_CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes - -/** - * Normalize a Cloud Code project value into a trimmed string (or null). - * The upstream `loadCodeAssist` endpoint returns the project either as a bare - * string or as an object of the form `{ id: "..." }`, and stored connection - * project ids can carry stray whitespace. Centralized here so the Gemini CLI - * usage path matches the executor/oauth normalization already shipped in - * `open-sse/executors/gemini-cli.ts` and `src/lib/oauth/services/gemini.ts`. - */ -function normalizeCloudCodeProjectId(project: unknown): string | null { - if (typeof project === "string") return project.trim() || null; - if (project && typeof project === "object") { - const candidate = (project as { id?: unknown }).id; - if (typeof candidate === "string") return candidate.trim() || null; - } - return null; -} - -/** - * Gemini CLI Usage — fetch per-model quota from Cloud Code Assist API. - * Gemini CLI and Antigravity share the same upstream (cloudcode-pa.googleapis.com), - * so this follows the same pattern as getAntigravityUsage(). - */ -async function getGeminiUsage( - accessToken?: string, - providerSpecificData?: JsonRecord, - connectionProjectId?: string -) { - if (!accessToken) { - return { plan: "Free", message: "Gemini CLI access token not available." }; - } - - try { - // #1271: the OAuth save path stores `projectId` on the connection (not always in - // `providerSpecificData`), and `loadCodeAssist` may return the project either as a - // bare string or wrapped in `{ id: "..." }`. Normalize both so the quota lookup - // reuses the stored project id and skips a redundant `loadCodeAssist` round-trip - // when it is already known. - let projectId = - normalizeCloudCodeProjectId(connectionProjectId) || - normalizeCloudCodeProjectId(providerSpecificData?.projectId); - let plan = "Free"; - - if (!projectId) { - const subscriptionInfo = await getGeminiCliSubscriptionInfoCached(accessToken); - projectId = normalizeCloudCodeProjectId(toRecord(subscriptionInfo).cloudaicompanionProject); - plan = getGeminiCliPlanLabel(subscriptionInfo); - } - - if (!projectId) { - return { - plan, - message: - "Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota.", - }; - } - - // Use retrieveUserQuota (same endpoint as Gemini CLI /stats command). - // Returns per-model buckets with remainingFraction and resetTime. - const response = await fetch( - "https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota", - { - method: "POST", - headers: { - Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ project: projectId }), - signal: AbortSignal.timeout(10000), - } - ); - - if (!response.ok) { - return { plan, message: `Gemini CLI quota error (${response.status}).` }; - } - - const data = await response.json(); - const quotas: Record = {}; - - const dataRecord = toRecord(data); - if (Array.isArray(dataRecord.buckets)) { - for (const bucketValue of dataRecord.buckets) { - const bucket = toRecord(bucketValue); - if (!bucket.modelId || bucket.remainingFraction == null) continue; - - const remainingFraction = toNumber(bucket.remainingFraction, 0); - const remainingPercentage = remainingFraction * 100; - const QUOTA_NORMALIZED_BASE = 1000; - const total = QUOTA_NORMALIZED_BASE; - const remaining = Math.round(total * remainingFraction); - const used = Math.max(0, total - remaining); - - quotas[String(bucket.modelId)] = { - used, - total, - resetAt: parseResetTime(bucket.resetTime), - remainingPercentage, - unlimited: false, - }; - } - } - - return { plan, quotas }; - } catch (error) { - return { message: `Gemini CLI error: ${(error as Error).message}` }; - } -} - -/** - * Get Gemini CLI subscription info (cached, 5 min TTL) - */ -async function getGeminiCliSubscriptionInfoCached(accessToken: string): Promise { - const cacheKey = accessToken; - const cached = _geminiCliSubCache.get(cacheKey); - - if (cached && Date.now() - cached.fetchedAt < GEMINI_CLI_CACHE_TTL_MS) { - return cached.data; - } - - const data = await getGeminiCliSubscriptionInfo(accessToken); - _geminiCliSubCache.set(cacheKey, { data, fetchedAt: Date.now() }); - return data; -} - -/** - * Get Gemini CLI subscription info using correct headers. - */ -async function getGeminiCliSubscriptionInfo(accessToken: string): Promise { - try { - const response = await fetch(GEMINI_CLI_USAGE_URL, { - method: "POST", - headers: { - Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ - metadata: { - ideType: "IDE_UNSPECIFIED", - platform: "PLATFORM_UNSPECIFIED", - pluginType: "GEMINI", - }, - }), - }); - - if (!response.ok) return null; - - return await response.json(); - } catch { - return null; - } -} - -/** - * Map Gemini CLI subscription tier to display label (same tiers as Antigravity). - */ -function getGeminiCliPlanLabel(subscriptionInfo: unknown): string { - return mapCodeAssistSubscriptionToPlanLabel(subscriptionInfo); -} - -// ── Antigravity subscription info cache ────────────────────────────────────── -// ── Proactive TTL purging for the Gemini CLI subscription cache ──────────── -// Passive TTL evicts on read; this interval proactively purges stale entries so -// keys accessed once and never again don't leak memory. The Antigravity caches -// + their own purge timer were split out into ./usage/antigravity.ts (god-file -// decomposition), so each module now owns its caches and their cleanup. -const _geminiCacheCleanupTimer = setInterval( - () => { - const now = Date.now(); - for (const [key, entry] of _geminiCliSubCache) { - if (now - entry.fetchedAt > GEMINI_CLI_CACHE_TTL_MS) _geminiCliSubCache.delete(key); - } - }, - 5 * 60 * 1000 -); // every 5 minutes -_geminiCacheCleanupTimer.unref?.(); // Don't prevent process exit - /** * Claude Usage - Try to fetch from Anthropic API */ @@ -1886,7 +1695,6 @@ export const __testing = { parseResetTime, formatGitHubQuotaSnapshot, inferGitHubPlanName, - getGeminiCliPlanLabel, getAntigravityPlanLabel, extractCodeAssistSubscriptionTier, extractCodeAssistOnboardTierId, diff --git a/open-sse/services/usage/antigravity.ts b/open-sse/services/usage/antigravity.ts index 02f98b010d..99f246155c 100644 --- a/open-sse/services/usage/antigravity.ts +++ b/open-sse/services/usage/antigravity.ts @@ -5,7 +5,7 @@ * local-usage fallback, code-assist tier/plan mapping, credit-balance probing, the user-quota * + available-models fetchers (with their module-level caches), and getAntigravityUsage. The * 4 data caches + their proactive TTL-purge setInterval move here as a self-contained unit - * (previously the purge timer was shared with the Gemini CLI cache in usage.ts; that timer was + * (previously the purge timer lived in usage.ts; that timer was * split so each module owns its own caches + cleanup). usage.ts imports getAntigravityUsage * (dispatcher) + getAntigravityPlanLabel/mapCodeAssist* (__testing). Behavior-preserving move. */ diff --git a/open-sse/translator/formats.ts b/open-sse/translator/formats.ts index 5ff2098b9d..4e0bd391f0 100644 --- a/open-sse/translator/formats.ts +++ b/open-sse/translator/formats.ts @@ -5,7 +5,6 @@ export const FORMATS = { OPENAI_RESPONSE: "openai-response", CLAUDE: "claude", GEMINI: "gemini", - GEMINI_CLI: "gemini-cli", CODEX: "codex", ANTIGRAVITY: "antigravity", KIRO: "kiro", diff --git a/open-sse/translator/request/claude-to-gemini.ts b/open-sse/translator/request/claude-to-gemini.ts index fadc428731..f7af11ad30 100644 --- a/open-sse/translator/request/claude-to-gemini.ts +++ b/open-sse/translator/request/claude-to-gemini.ts @@ -231,6 +231,6 @@ export function claudeToGeminiRequest(model, body, stream, credentials = null) { } // Register direct path only for plain Gemini API. -// Gemini CLI / Antigravity require Cloud Code envelope wrapping, +// Antigravity requires Cloud Code envelope wrapping, // so they must use the existing hub path (Claude -> OpenAI -> target). register(FORMATS.CLAUDE, FORMATS.GEMINI, claudeToGeminiRequest, null); diff --git a/open-sse/translator/request/gemini-to-openai.ts b/open-sse/translator/request/gemini-to-openai.ts index 8be1012e74..4e968e2671 100644 --- a/open-sse/translator/request/gemini-to-openai.ts +++ b/open-sse/translator/request/gemini-to-openai.ts @@ -159,4 +159,3 @@ function extractGeminiText(content) { // Register register(FORMATS.GEMINI, FORMATS.OPENAI, geminiToOpenAIRequest, null); -register(FORMATS.GEMINI_CLI, FORMATS.OPENAI, geminiToOpenAIRequest, null); diff --git a/open-sse/translator/request/openai-to-gemini.ts b/open-sse/translator/request/openai-to-gemini.ts index 09f1001a16..39a7e16018 100644 --- a/open-sse/translator/request/openai-to-gemini.ts +++ b/open-sse/translator/request/openai-to-gemini.ts @@ -16,12 +16,6 @@ import { getDefaultThinkingBudget, } from "../../../src/lib/modelCapabilities.ts"; -import * as crypto from "node:crypto"; - -function generateUUID() { - return crypto.randomUUID(); -} - import { DEFAULT_SAFETY_SETTINGS, convertOpenAIContentToParts, @@ -113,7 +107,6 @@ type CloudCodeEnvelope = { type GeminiToolNameOptions = { stripNamespace?: boolean; - functionResponseShape?: "result" | "output"; signatureNamespace?: string | null; signaturelessToolCallMode?: "native" | "text" | "context"; // Vertex AI's FunctionCall/FunctionResponse protos have no `id` field; emitting it @@ -121,7 +114,7 @@ type GeminiToolNameOptions = { // Gemini API DOES use `id` for Gemini 3+ signature matching, so this is scoped to // the vertex provider only. stripFunctionCallId?: boolean; - /** Only Antigravity/Gemini CLI support the thoughtSignature field. Standard Gemini rejects it with 400. */ + /** Antigravity supports the thoughtSignature field. Standard Gemini rejects it with 400. */ supportsSignatureBypass?: boolean; }; @@ -549,10 +542,7 @@ function openaiToGeminiBase( functionResponse: { ...(toolNameOptions.stripFunctionCallId ? {} : { id: fid }), name: name, - response: - toolNameOptions.functionResponseShape === "output" - ? { output: typeof resp === "string" ? resp : JSON.stringify(resp) } - : { result: parsedResp }, + response: { result: parsedResp }, }, }); } @@ -677,31 +667,25 @@ export function openaiToGeminiRequest( }); } -// OpenAI -> Gemini CLI (Cloud Code Assist) -export function openaiToGeminiCLIRequest( +// OpenAI -> Cloud Code Gemini payload used by Antigravity. +export function openaiToCloudCodeGeminiRequest( model: string, body: Record, stream: boolean, options: { - functionResponseShape?: "result" | "output"; signatureNamespace?: string | null; signaturelessToolCallMode?: "native" | "text" | "context"; } = {} ) { return openaiToGeminiBase(model, body, stream, { stripNamespace: true, - functionResponseShape: options.functionResponseShape, signatureNamespace: options.signatureNamespace, signaturelessToolCallMode: options.signaturelessToolCallMode, supportsSignatureBypass: true, }); } -// Wrap Gemini CLI format in Cloud Code wrapper -function wrapInCloudCodeEnvelope(model, geminiCLI, credentials = null, isAntigravity = false) { - // Both Antigravity and Gemini CLI need the project field for the Cloud Code API. - // For Gemini CLI, the stored projectId may be stale; the executor's transformRequest - // refreshes it via loadCodeAssist before the request is sent to the API. +function wrapInCloudCodeEnvelope(model, cloudCodeRequest, credentials = null) { // Fall back to providerSpecificData.projectId — some connections (and post-refresh // credentials) store it there rather than at the top level, which otherwise produced a // spurious 422 "Missing Google projectId" on the Antigravity /v1beta path (#2480). @@ -714,7 +698,7 @@ function wrapInCloudCodeEnvelope(model, geminiCLI, credentials = null, isAntigra if (!projectId) { console.warn( - `[OmniRoute] ${isAntigravity ? "Antigravity" : "GeminiCLI"} account is missing projectId. ` + + `[OmniRoute] Antigravity account is missing projectId. ` + `Attempting request with empty project — reconnect OAuth to resolve.` ); projectId = ""; @@ -722,83 +706,61 @@ function wrapInCloudCodeEnvelope(model, geminiCLI, credentials = null, isAntigra const cleanModel = model.includes("/") ? model.split("/").pop()! : model; - const envelope: CloudCodeEnvelope = isAntigravity - ? { - project: projectId, - requestId: generateAntigravityRequestId(), - request: { - sessionId: getAntigravitySessionId(credentials), - contents: geminiCLI.contents, - systemInstruction: geminiCLI.systemInstruction, - generationConfig: applyAntigravityGenerationDefaults(geminiCLI.generationConfig), - tools: geminiCLI.tools, - }, - model: cleanModel, - userAgent: getAntigravityEnvelopeUserAgent(credentials), - requestType: "agent", - enabledCreditTypes: ["GOOGLE_ONE_AI"], - } - : { - model: cleanModel, - project: projectId, - user_prompt_id: generateUUID(), - request: { - contents: geminiCLI.contents, - systemInstruction: geminiCLI.systemInstruction, - generationConfig: geminiCLI.generationConfig, - tools: geminiCLI.tools, - }, - }; - if (geminiCLI._toolNameMap instanceof Map && geminiCLI._toolNameMap.size > 0) { - envelope._toolNameMap = geminiCLI._toolNameMap; + const envelope: CloudCodeEnvelope = { + project: projectId, + requestId: generateAntigravityRequestId(), + request: { + sessionId: getAntigravitySessionId(credentials), + contents: cloudCodeRequest.contents, + systemInstruction: cloudCodeRequest.systemInstruction, + generationConfig: applyAntigravityGenerationDefaults(cloudCodeRequest.generationConfig), + tools: cloudCodeRequest.tools, + }, + model: cleanModel, + userAgent: getAntigravityEnvelopeUserAgent(credentials), + requestType: "agent", + enabledCreditTypes: ["GOOGLE_ONE_AI"], + }; + if (cloudCodeRequest._toolNameMap instanceof Map && cloudCodeRequest._toolNameMap.size > 0) { + envelope._toolNameMap = cloudCodeRequest._toolNameMap; } - // Antigravity specific fields - if (isAntigravity) { - // Inject required default system prompt for Antigravity - const defaultPart: GeminiPart = { text: ANTIGRAVITY_DEFAULT_SYSTEM }; - if (envelope.request.systemInstruction?.parts) { - envelope.request.systemInstruction.parts.unshift(defaultPart); - } else { - envelope.request.systemInstruction = { role: "system", parts: [defaultPart] }; - } - - // Strip Gemini built-in tool *names* out of functionDeclarations: Antigravity's - // v1internal endpoint returns 400 when a built-in tool (google_search etc.) is - // mixed with functionDeclarations in the same request. Native grounding entries - // (e.g. `{ googleSearch: {} }`) are left intact; only the functionDeclarations - // arrays are cleaned, and a declarations entry that becomes empty is dropped. - if (envelope.request.tools && envelope.request.tools.length > 0) { - const cleanedTools = envelope.request.tools - .map((tool) => { - if (!Array.isArray(tool.functionDeclarations)) { - return tool; - } - const customDecls = tool.functionDeclarations.filter( - (fn) => !GEMINI_BUILTIN_TOOL_NAMES.has(fn.name) - ); - return { ...tool, functionDeclarations: customDecls }; - }) - .filter( - (tool) => - !Array.isArray(tool.functionDeclarations) || tool.functionDeclarations.length > 0 - ); - envelope.request.tools = cleanedTools.length > 0 ? cleanedTools : undefined; - } - - // Add toolConfig for Antigravity only when custom functionDeclarations remain. - const hasCustomTools = envelope.request.tools?.some( - (tool) => (tool.functionDeclarations?.length ?? 0) > 0 - ); - if (hasCustomTools) { - envelope.request.toolConfig = { - functionCallingConfig: { mode: "VALIDATED" }, - }; - } + const defaultPart: GeminiPart = { text: ANTIGRAVITY_DEFAULT_SYSTEM }; + if (envelope.request.systemInstruction?.parts) { + envelope.request.systemInstruction.parts.unshift(defaultPart); } else { - // Gemini CLI's native Cloud Code envelope uses snake_case identifiers. - envelope.request.session_id = envelope.user_prompt_id; - envelope.request.safetySettings = geminiCLI.safetySettings; + envelope.request.systemInstruction = { role: "system", parts: [defaultPart] }; + } + + // Strip Gemini built-in tool *names* out of functionDeclarations: Antigravity's + // v1internal endpoint returns 400 when a built-in tool (google_search etc.) is + // mixed with functionDeclarations in the same request. Native grounding entries + // (e.g. `{ googleSearch: {} }`) are left intact; only the functionDeclarations + // arrays are cleaned, and a declarations entry that becomes empty is dropped. + if (envelope.request.tools && envelope.request.tools.length > 0) { + const cleanedTools = envelope.request.tools + .map((tool) => { + if (!Array.isArray(tool.functionDeclarations)) { + return tool; + } + const customDecls = tool.functionDeclarations.filter( + (fn) => !GEMINI_BUILTIN_TOOL_NAMES.has(fn.name) + ); + return { ...tool, functionDeclarations: customDecls }; + }) + .filter( + (tool) => !Array.isArray(tool.functionDeclarations) || tool.functionDeclarations.length > 0 + ); + envelope.request.tools = cleanedTools.length > 0 ? cleanedTools : undefined; + } + + const hasCustomTools = envelope.request.tools?.some( + (tool) => (tool.functionDeclarations?.length ?? 0) > 0 + ); + if (hasCustomTools) { + envelope.request.toolConfig = { + functionCallingConfig: { mode: "VALIDATED" }, + }; } return envelope; @@ -831,16 +793,16 @@ export function openaiToAntigravityRequest(model, body, stream, credentials = nu typeof (credentials as Record)._signatureNamespace === "string" ? ((credentials as Record)._signatureNamespace as string) : null; - const geminiCLI = openaiToGeminiCLIRequest(model, body, stream, { + const cloudCodeRequest = openaiToCloudCodeGeminiRequest(model, body, stream, { signatureNamespace, signaturelessToolCallMode: isThinkingGemini ? "context" : "native", }); if (isClaude) { - geminiCLI.generationConfig.maxOutputTokens = getAntigravityClaudeOutputTokens(body); + cloudCodeRequest.generationConfig.maxOutputTokens = getAntigravityClaudeOutputTokens(body); } - const envelope = wrapInCloudCodeEnvelope(model, geminiCLI, credentials, true); + const envelope = wrapInCloudCodeEnvelope(model, cloudCodeRequest, credentials); // Match real Antigravity client: don't send maxOutputTokens when the user // hasn't explicitly specified max_tokens / max_completion_tokens. @@ -882,24 +844,4 @@ register( }), null ); -register( - FORMATS.OPENAI, - FORMATS.GEMINI_CLI, - (model, body, stream, credentials) => - wrapInCloudCodeEnvelope( - model, - openaiToGeminiCLIRequest(model, body, stream, { - functionResponseShape: "output", - // Forward the signature namespace so streaming thoughtSignatures round-trip (#2504). - signatureNamespace: - credentials && - typeof credentials === "object" && - typeof credentials["_signatureNamespace"] === "string" - ? (credentials["_signatureNamespace"] as string) - : null, - }), - credentials - ), - null -); register(FORMATS.OPENAI, FORMATS.ANTIGRAVITY, openaiToAntigravityRequest, null); diff --git a/open-sse/translator/response/gemini-to-claude.ts b/open-sse/translator/response/gemini-to-claude.ts index 280d1f85cb..2019c46100 100644 --- a/open-sse/translator/response/gemini-to-claude.ts +++ b/open-sse/translator/response/gemini-to-claude.ts @@ -196,5 +196,4 @@ export function geminiToClaudeResponse(chunk, state) { // Register as direct path: Gemini → Claude register(FORMATS.GEMINI, FORMATS.CLAUDE, null, geminiToClaudeResponse); -register(FORMATS.GEMINI_CLI, FORMATS.CLAUDE, null, geminiToClaudeResponse); register(FORMATS.ANTIGRAVITY, FORMATS.CLAUDE, null, geminiToClaudeResponse); diff --git a/open-sse/translator/response/gemini-to-openai.ts b/open-sse/translator/response/gemini-to-openai.ts index 5db0c4507f..dbf608b148 100644 --- a/open-sse/translator/response/gemini-to-openai.ts +++ b/open-sse/translator/response/gemini-to-openai.ts @@ -757,5 +757,4 @@ export function geminiToOpenAIResponse(chunk, state) { // Register register(FORMATS.GEMINI, FORMATS.OPENAI, null, geminiToOpenAIResponse); -register(FORMATS.GEMINI_CLI, FORMATS.OPENAI, null, geminiToOpenAIResponse); register(FORMATS.ANTIGRAVITY, FORMATS.OPENAI, null, geminiToOpenAIResponse); diff --git a/open-sse/translator/response/openai-to-gemini-sse.ts b/open-sse/translator/response/openai-to-gemini-sse.ts index 087af65ee8..430f385a05 100644 --- a/open-sse/translator/response/openai-to-gemini-sse.ts +++ b/open-sse/translator/response/openai-to-gemini-sse.ts @@ -1,7 +1,7 @@ /** * Convert an OpenAI Chat Completions stream/response into the Gemini * `:streamGenerateContent` / `:generateContent` shape used by the - * `@google/genai` SDK (Gemini CLI). + * `@google/genai` SDK. * * Why this exists * --------------- @@ -20,7 +20,7 @@ * "finishReason":"STOP","index":0}],"usageMetadata":{...},"modelVersion":"..."} * (stream closes — no [DONE]) * - * Forwarding the raw OpenAI SSE to Gemini CLI made it crash with + * Forwarding the raw OpenAI SSE to the Gemini SDK made it crash with * `SyntaxError: Unexpected token 'D', "[DONE]" is not valid JSON`, because * the SDK tries to `JSON.parse("[DONE]")`. * @@ -124,8 +124,7 @@ export function openAIChunkToGeminiChunk( }; if (choice.finish_reason) { - candidate.finishReason = - OPENAI_TO_GEMINI_FINISH_REASON[choice.finish_reason] ?? "STOP"; + candidate.finishReason = OPENAI_TO_GEMINI_FINISH_REASON[choice.finish_reason] ?? "STOP"; } const out: GeminiStreamChunk = { candidates: [candidate] }; @@ -156,10 +155,7 @@ export function openAIChunkToGeminiChunk( * Non-OK / no-body responses are passed through unchanged so that callers * upstream of the route can surface the error to the client untouched. */ -export function transformOpenAISSEToGeminiSSE( - upstreamResponse: Response, - model: string -): Response { +export function transformOpenAISSEToGeminiSSE(upstreamResponse: Response, model: string): Response { if (!upstreamResponse.ok || !upstreamResponse.body) { return upstreamResponse; } @@ -317,8 +313,7 @@ export async function convertOpenAIResponseToGemini( } parts.push({ text: String(message.content ?? "") }); - const finishReason = - OPENAI_TO_GEMINI_FINISH_REASON[finish_reason ?? "stop"] ?? "STOP"; + const finishReason = OPENAI_TO_GEMINI_FINISH_REASON[finish_reason ?? "stop"] ?? "STOP"; const geminiResponse: GeminiNonStreamResponse = { candidates: [ diff --git a/open-sse/types.d.ts b/open-sse/types.d.ts index bfb19f7854..89cb7fef48 100644 --- a/open-sse/types.d.ts +++ b/open-sse/types.d.ts @@ -30,7 +30,7 @@ export interface ProviderCredentials { } export interface ModelInfo { - /** Canonical provider ID (e.g., "claude", "gemini-cli") */ + /** Canonical provider ID (e.g., "claude", "antigravity") */ provider: string; /** Model identifier (e.g., "claude-opus-4-6") */ model: string; diff --git a/open-sse/utils/publicCreds.ts b/open-sse/utils/publicCreds.ts index 4862f34c81..bc4d0993e8 100644 --- a/open-sse/utils/publicCreds.ts +++ b/open-sse/utils/publicCreds.ts @@ -1,7 +1,7 @@ /** * Public credentials decoder. * - * Some upstream providers (Gemini CLI, Antigravity, Windsurf/Devin CLI) ship + * Some upstream providers (Gemini, Antigravity, Windsurf/Devin CLI) ship * OAuth client_id / client_secret / Firebase Web API key values inside their * public binaries or web apps. These are credentials by name only — Google * explicitly documents that: @@ -130,7 +130,7 @@ export function decodePublicCredBytes(bytes: readonly number[]): string { * Or use the helper below `embeddedBytesFor()`. */ const EMBEDDED_DEFAULTS = { - // Gemini CLI / Code Assist — google oauth client (public, PKCE) + // Gemini / Code Assist — google oauth client (public, PKCE) gemini_id: [ 89, 85, 95, 91, 71, 90, 77, 68, 92, 30, 73, 64, 79, 3, 6, 91, 75, 2, 3, 0, 29, 28, 13, 0, 1, 5, 77, 0, 30, 17, 4, 4, 90, 8, 21, 30, 30, 92, 11, 4, 12, 88, 65, 90, 31, 90, 4, 93, 0, 6, 76, 11, @@ -176,9 +176,7 @@ const EMBEDDED_DEFAULTS = { 90, 64, 69, 83, 78, 18, 65, 90, 15, 89, 90, 21, ], // GitHub Copilot CLI — github oauth app id (public, device flow) - github_copilot_id: [ - 38, 27, 95, 71, 16, 90, 69, 67, 4, 29, 72, 22, 90, 91, 12, 0, 75, 19, 8, 87, - ], + github_copilot_id: [38, 27, 95, 71, 16, 90, 69, 67, 4, 29, 72, 22, 90, 91, 12, 0, 75, 19, 8, 87], // Grok Build CLI (xAI) — public oauth client id (import-token flow) grok_id: [ 13, 92, 15, 89, 66, 91, 76, 70, 72, 29, 71, 70, 3, 65, 93, 84, 72, 23, 28, 87, 92, 88, 15, 95, @@ -203,7 +201,7 @@ export function resolvePublicCred(key: EmbeddedDefaultKey, envName?: string): st /** * Resolve with multiple env-var aliases (first non-empty wins). Useful for - * providers that support both legacy and new env names (e.g. Gemini CLI). + * providers that support both legacy and new env names. */ export function resolvePublicCredMulti( key: EmbeddedDefaultKey, diff --git a/open-sse/utils/stream.ts b/open-sse/utils/stream.ts index 10b08bca65..046875666a 100644 --- a/open-sse/utils/stream.ts +++ b/open-sse/utils/stream.ts @@ -1934,9 +1934,7 @@ export function createSSEStream(options: StreamOptions = {}) { // Cloud Code API wraps in { response: { candidates: [...] } }, so unwrap. // Only applies to Gemini-family formats — skip for OpenAI, Claude, etc. const isGeminiFormat = - targetFormat === FORMATS.GEMINI || - targetFormat === FORMATS.GEMINI_CLI || - targetFormat === FORMATS.ANTIGRAVITY; + targetFormat === FORMATS.GEMINI || targetFormat === FORMATS.ANTIGRAVITY; const geminiChunk = isGeminiFormat ? unwrapGeminiChunk(parsed) : parsed; if (geminiChunk.candidates?.[0]?.content?.parts) { for (const part of geminiChunk.candidates[0].content.parts) { diff --git a/open-sse/utils/streamPayloadCollector.ts b/open-sse/utils/streamPayloadCollector.ts index 0dc409aeb1..630c964e89 100644 --- a/open-sse/utils/streamPayloadCollector.ts +++ b/open-sse/utils/streamPayloadCollector.ts @@ -596,7 +596,6 @@ export function buildStreamSummaryFromEvents( case FORMATS.CLAUDE: return buildClaudeSummary(events, fallbackModel); case FORMATS.GEMINI: - case FORMATS.GEMINI_CLI: case FORMATS.ANTIGRAVITY: return buildGeminiSummary(events, fallbackModel); default: diff --git a/open-sse/utils/usageTracking.ts b/open-sse/utils/usageTracking.ts index 7528960ace..8fc24f511a 100644 --- a/open-sse/utils/usageTracking.ts +++ b/open-sse/utils/usageTracking.ts @@ -237,7 +237,7 @@ export function filterUsageForFormat(usage, targetFormat) { let fields = formatFields[targetFormat]; // Use same fields for similar formats - if (targetFormat === FORMATS.GEMINI_CLI || targetFormat === FORMATS.ANTIGRAVITY) { + if (targetFormat === FORMATS.ANTIGRAVITY) { fields = formatFields[FORMATS.GEMINI]; } else if (targetFormat === FORMATS.OPENAI_RESPONSE) { fields = formatFields[FORMATS.OPENAI_RESPONSES]; diff --git a/public/providers/gemini-cli.svg b/public/providers/gemini-cli.svg deleted file mode 100644 index 20665d7654..0000000000 --- a/public/providers/gemini-cli.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/scripts/ad-hoc/resolve_all_conflicts.js b/scripts/ad-hoc/resolve_all_conflicts.js index a79942dd11..bf597c8c71 100644 --- a/scripts/ad-hoc/resolve_all_conflicts.js +++ b/scripts/ad-hoc/resolve_all_conflicts.js @@ -76,30 +76,6 @@ async function main() { runCmd("git add open-sse/executors/index.ts"); } - // 5. Resolve tests/unit/t20-t22-provider-headers.test.ts (combine imports) - const testFile1 = path.join(projectRoot, "tests/unit/t20-t22-provider-headers.test.ts"); - if (fs.existsSync(testFile1)) { - let content = fs.readFileSync(testFile1, "utf-8"); - content = content.replace( - /<<<<<<< HEAD\r?\nconst \{ getCodexClientVersion \} = await import\("\.\.\/\.\.\/open-sse\/config\/codexClient\.ts"\);\r?\nconst \{ geminiCliUserAgent, GEMINI_CLI_VERSION \} =\r?\n=======\r?\nconst \{ geminiCliUserAgent, GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION \} =\r?\n>>>>>>> release\/v3\.8\.4/g, - 'const { getCodexClientVersion } = await import("../../open-sse/config/codexClient.ts");\nconst { geminiCliUserAgent, GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION } =' - ); - fs.writeFileSync(testFile1, content); - runCmd("git add tests/unit/t20-t22-provider-headers.test.ts"); - } - - // 6. Resolve tests/integration/chat-pipeline.test.ts (combine imports) - const testFile2 = path.join(projectRoot, "tests/integration/chat-pipeline.test.ts"); - if (fs.existsSync(testFile2)) { - let content = fs.readFileSync(testFile2, "utf-8"); - content = content.replace( - /<<<<<<< HEAD\r?\nconst \{ getCodexClientVersion \} = await import\("\.\.\/\.\.\/open-sse\/config\/codexClient\.ts"\);\r?\nconst \{ GEMINI_CLI_VERSION \} = await import\("\.\.\/\.\.\/open-sse\/services\/geminiCliHeaders\.ts"\);\r?\n=======\r?\nconst \{ GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION \} =\r?\n\s+await import\("\.\.\/\.\.\/open-sse\/services\/geminiCliHeaders\.ts"\);\r?\n>>>>>>> release\/v3\.8\.4/g, - 'const { getCodexClientVersion } = await import("../../open-sse/config/codexClient.ts");\nconst { GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION } =\n await import("../../open-sse/services/geminiCliHeaders.ts");' - ); - fs.writeFileSync(testFile2, content); - runCmd("git add tests/integration/chat-pipeline.test.ts"); - } - // 7. Resolve src/app/api/providers/[id]/models/route.ts (combine imports) const modelsRoute = path.join(projectRoot, "src/app/api/providers/[id]/models/route.ts"); if (fs.existsSync(modelsRoute)) { diff --git a/scripts/build/bootstrap-env.mjs b/scripts/build/bootstrap-env.mjs index 54d4f8d3c6..90ee46ddd6 100644 --- a/scripts/build/bootstrap-env.mjs +++ b/scripts/build/bootstrap-env.mjs @@ -30,10 +30,6 @@ const require = createRequire(import.meta.url); const OPTIONAL_OAUTH_SECRETS = [ { keys: ["ANTIGRAVITY_OAUTH_CLIENT_SECRET"], label: "Antigravity OAuth" }, { keys: ["QODER_OAUTH_CLIENT_SECRET"], label: "Qoder OAuth" }, - { - keys: ["GEMINI_CLI_OAUTH_CLIENT_SECRET", "GEMINI_OAUTH_CLIENT_SECRET"], - label: "Gemini OAuth", - }, ]; // ── Resolve DATA_DIR (mirrors dataPaths.ts logic) ─────────────────────────── diff --git a/scripts/check/check-fabricated-docs.mjs b/scripts/check/check-fabricated-docs.mjs index 3dea3bf5a8..b7d9ca8ba4 100644 --- a/scripts/check/check-fabricated-docs.mjs +++ b/scripts/check/check-fabricated-docs.mjs @@ -107,8 +107,6 @@ const ENV_VAR_ALLOWLIST = new Set([ "NINEROUTER_API_KEY", // injected into the 9router subprocess at spawn (EMBEDDED-SERVICES.md) "CLAUDE_CODE_MAX_OUTPUT_TOKENS", // Claude Code CLI's own env var (CODEX-CLI-CONFIGURATION.md) "CODEX_HOME", // Codex CLI's own config-home env var (CODEX-CLI-CONFIGURATION.md) - "GEMINI_API_KEY", // Gemini CLI's own API-key env var, set by `omniroute setup-gemini` (REMOTE-MODE.md) - "GOOGLE_GEMINI_BASE_URL", // Gemini CLI's own base-URL env var, set by `omniroute setup-gemini` (REMOTE-MODE.md) "OPENAI_API_BASE", // legacy OpenAI base-URL env var some downstream tools (e.g. Aider) read (CLI-INTEGRATIONS.md) "PROMPTFOO_PROVIDER_KEY", // promptfoo's own provider-key env var, used by the red-team suite (GUARDRAILS.md) "REDIS_PORT", // docker-compose host-port override (DOCKER_GUIDE.md) diff --git a/scripts/check/check-known-symbols.ts b/scripts/check/check-known-symbols.ts index b8f49e02c5..d88320ed85 100644 --- a/scripts/check/check-known-symbols.ts +++ b/scripts/check/check-known-symbols.ts @@ -181,8 +181,6 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [ "claude:gemini", "claude:openai", "cursor:openai", - "gemini-cli:claude", - "gemini-cli:openai", "gemini:claude", "gemini:openai", "kiro:openai", @@ -191,7 +189,6 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [ "openai:claude", "openai:cursor", "openai:gemini", - "openai:gemini-cli", "openai:kiro", "openai:openai-responses", ]; @@ -200,10 +197,7 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [ * Pares frozen que sumiram do registry vivo (regressão). frozen = snapshot; * live = pares observados em runtime. Retorna os que estão no frozen mas não no live. */ -export function findMissingTranslatorPairs( - frozen: readonly string[], - live: Set -): string[] { +export function findMissingTranslatorPairs(frozen: readonly string[], live: Set): string[] { return frozen.filter((pair) => !live.has(pair)); } @@ -375,10 +369,7 @@ export type A2ASkillDiff = { * - inHandlersNotCard: skill is routable but agents can't discover it * - inCardNotHandlers: skill is advertised but calling it fails silently */ -export function diffA2ASkills( - handlers: Set, - agentCard: Set -): A2ASkillDiff { +export function diffA2ASkills(handlers: Set, agentCard: Set): A2ASkillDiff { const inHandlersNotCard = [...handlers].filter((s) => !agentCard.has(s)).sort(); const inCardNotHandlers = [...agentCard].filter((s) => !handlers.has(s)).sort(); return { inHandlersNotCard, inCardNotHandlers }; @@ -456,13 +447,12 @@ async function main(): Promise { const executorsMod = await import("@omniroute/open-sse/executors/index.ts"); const getExecutor = executorsMod.getExecutor as (alias: string) => ExecutorLike; const BaseExecutor = executorsMod.BaseExecutor as new (...args: never[]) => unknown; - const indexSource = readFileSync( - resolvePath(REPO_ROOT, "open-sse/executors/index.ts"), - "utf8" - ); + const indexSource = readFileSync(resolvePath(REPO_ROOT, "open-sse/executors/index.ts"), "utf8"); const aliases = extractExecutorAliases(indexSource); if (aliases.length === 0) { - failures.push("[executor] parse do mapa `executors` não encontrou nenhum alias (regex quebrada?)"); + failures.push( + "[executor] parse do mapa `executors` não encontrou nenhum alias (regex quebrada?)" + ); } const isExecutorInstance = (value: unknown) => value instanceof BaseExecutor; const badExecutors = findNonConformingExecutors(aliases, getExecutor, isExecutorInstance); @@ -493,7 +483,11 @@ async function main(): Promise { // EMPTY implicit-defaults map). An entry whose key IS already in `handled` suppresses // nothing → it is stale and the gate must fail asking for its removal. const liveImplicitNeeded = diffComboStrategies(canonical, handled, {}).canonicalNotHandled; - assertNoStale(Object.keys(IMPLICIT_DEFAULT_STRATEGIES), liveImplicitNeeded, "known-symbols:combo"); + assertNoStale( + Object.keys(IMPLICIT_DEFAULT_STRATEGIES), + liveImplicitNeeded, + "known-symbols:combo" + ); const { canonicalNotHandled, handledNotCanonical } = diffComboStrategies( canonical, @@ -554,9 +548,8 @@ async function main(): Promise { const { MCP_TOOLS } = await import("@omniroute/open-sse/mcp-server/schemas/tools.ts"); const { memoryTools } = await import("@omniroute/open-sse/mcp-server/tools/memoryTools.ts"); const { skillTools } = await import("@omniroute/open-sse/mcp-server/tools/skillTools.ts"); - const { gamificationTools } = await import( - "@omniroute/open-sse/mcp-server/tools/gamificationTools.ts" - ); + const { gamificationTools } = + await import("@omniroute/open-sse/mcp-server/tools/gamificationTools.ts"); const { pluginTools } = await import("@omniroute/open-sse/mcp-server/tools/pluginTools.ts"); const { notionTools } = await import("@omniroute/open-sse/mcp-server/tools/notionTools.ts"); const { obsidianTools } = await import("@omniroute/open-sse/mcp-server/tools/obsidianTools.ts"); @@ -669,7 +662,9 @@ async function main(): Promise { // ── Resultado ───────────────────────────────────────────────────────────── if (failures.length) { - console.error(`[known-symbols] ${failures.length} sub-checagem(ns) falharam:\n\n${failures.join("\n\n")}`); + console.error( + `[known-symbols] ${failures.length} sub-checagem(ns) falharam:\n\n${failures.join("\n\n")}` + ); process.exit(1); } // assertNoStale (combo) seta process.exitCode=1 sem lançar — não imprima o OK @@ -695,7 +690,9 @@ async function main(): Promise { if (import.meta.url === pathToFileURL(process.argv[1] || "").href) { main().catch((err) => { - console.error(`[known-symbols] erro fatal: ${err instanceof Error ? err.message : String(err)}`); + console.error( + `[known-symbols] erro fatal: ${err instanceof Error ? err.message : String(err)}` + ); process.exit(1); }); } diff --git a/scripts/dev/system-info.mjs b/scripts/dev/system-info.mjs index 6d112a11e9..d0b51e3e23 100644 --- a/scripts/dev/system-info.mjs +++ b/scripts/dev/system-info.mjs @@ -90,7 +90,6 @@ lines.push(section("Agent CLI Tools")); const cliTools = [ { name: "qoder-cli", cmd: "qoder", args: "--version" }, - { name: "gemini-cli", cmd: "gemini", args: "--version" }, { name: "claude-code", cmd: "claude", args: "--version" }, { name: "openai-codex", cmd: "codex", args: "--version" }, { name: "antigravity", cmd: "antigravity", args: "--version" }, diff --git a/scripts/i18n/i18n_autotranslate.py b/scripts/i18n/i18n_autotranslate.py index 1ff8c1c617..417e66b592 100755 --- a/scripts/i18n/i18n_autotranslate.py +++ b/scripts/i18n/i18n_autotranslate.py @@ -134,7 +134,7 @@ def main(): parser = argparse.ArgumentParser(description="OmniRoute Auto-Translator for i18n Markdown") parser.add_argument("--api-url", default="http://localhost:20128/v1", help="Base URL of OmniRoute or target provider") parser.add_argument("--api-key", default="sk-test", help="API Key for the provider") - parser.add_argument("--model", default="gc/gemini-3-flash", help="Model name to use") + parser.add_argument("--model", default="gemini/gemini-3-flash", help="Model name to use") parser.add_argument("--lang", default=None, help="Process only a specific language code (e.g. pt-BR)") args = parser.parse_args() diff --git a/src/app/(dashboard)/dashboard/acp-agents/page.tsx b/src/app/(dashboard)/dashboard/acp-agents/page.tsx index 79d4d90f34..47773ac768 100644 --- a/src/app/(dashboard)/dashboard/acp-agents/page.tsx +++ b/src/app/(dashboard)/dashboard/acp-agents/page.tsx @@ -30,7 +30,6 @@ const AGENT_ICON_MAP: Record = { claude: "anthropic", "claude-code": "anthropic", codex: "openai", - "gemini-cli": "google", gemini: "google", opencode: "opencode", openclaw: "openclaw", diff --git a/src/app/(dashboard)/dashboard/combos/page.tsx b/src/app/(dashboard)/dashboard/combos/page.tsx index 350ec88e79..ca3a4e105f 100644 --- a/src/app/(dashboard)/dashboard/combos/page.tsx +++ b/src/app/(dashboard)/dashboard/combos/page.tsx @@ -406,7 +406,7 @@ const COMBO_TEMPLATE_FALLBACK = { balancedDesc: "Least-used routing to spread demand over time.", freeStackTitle: "Free Stack ($0)", freeStackDesc: - "Round-robin across all free providers: Kiro, Qoder, Qwen, Gemini CLI. Zero cost, never stops.", + "Round-robin across free providers: Kiro, Qoder, Qwen, Antigravity CLI. Zero cost, never stops.", paidPremiumTitle: "Paid Premium", paidPremiumDesc: "Round-robin across paid subscriptions: Cursor, Antigravity. Top-tier models, distributed load.", @@ -2641,7 +2641,7 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders, combo }; const FREE_STACK_PRESET_MODELS = [ - { model: "gemini-cli/gemini-3-flash-preview", weight: 0 }, + { model: "agy/gemini-3.5-flash-medium", weight: 0 }, { model: "kr/claude-sonnet-4.5", weight: 0 }, { model: "if/kimi-k2-thinking", weight: 0 }, { model: "if/qwen3-coder-plus", weight: 0 }, diff --git a/src/app/(dashboard)/dashboard/onboarding/steps/TierTour.tsx b/src/app/(dashboard)/dashboard/onboarding/steps/TierTour.tsx index b2fd769ebe..02f0d3d286 100644 --- a/src/app/(dashboard)/dashboard/onboarding/steps/TierTour.tsx +++ b/src/app/(dashboard)/dashboard/onboarding/steps/TierTour.tsx @@ -60,7 +60,7 @@ export function TierTour() { colorClass="border-indigo-500/60 bg-indigo-500/[0.06]" label={t("tier3.label")} description={t("tier3.description")} - examples={["Kiro", "OpenCode", "Gemini CLI", "Vertex"]} + examples={["Kiro", "OpenCode", "Antigravity CLI", "Vertex"]} /> diff --git a/src/app/(dashboard)/dashboard/providers/[id]/ProviderDetailPageClient.tsx b/src/app/(dashboard)/dashboard/providers/[id]/ProviderDetailPageClient.tsx index 1fa5504c8a..7d4ef42403 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/ProviderDetailPageClient.tsx +++ b/src/app/(dashboard)/dashboard/providers/[id]/ProviderDetailPageClient.tsx @@ -360,12 +360,6 @@ export default function ProviderDetailPageClient() { exportingClaudeAuthId, handleApplyClaudeAuthLocal, handleExportClaudeAuthFile, - applyingGeminiAuthId, - applyGeminiModalConnectionId, - setApplyGeminiModalConnectionId, - exportingGeminiAuthId, - handleApplyGeminiAuthLocal, - handleExportGeminiAuthFile, } = useAuthFileHandlers({ parseApiErrorMessage, getAttachmentFilename, notify, t }); // Phase 1e: compat-state derivations @@ -568,8 +562,6 @@ export default function ProviderDetailPageClient() { exportingCodexAuthId={exportingCodexAuthId} applyingClaudeAuthId={applyingClaudeAuthId} exportingClaudeAuthId={exportingClaudeAuthId} - applyingGeminiAuthId={applyingGeminiAuthId} - exportingGeminiAuthId={exportingGeminiAuthId} emailsVisible={emailsVisible} setSelectedIds={setSelectedIds} setPage={setPage} @@ -602,8 +594,6 @@ export default function ProviderDetailPageClient() { onExportCodexAuthFile={handleExportCodexAuthFile} onOpenApplyClaudeModal={setApplyClaudeModalConnectionId} onExportClaudeAuthFile={handleExportClaudeAuthFile} - onOpenApplyGeminiModal={setApplyGeminiModalConnectionId} - onExportGeminiAuthFile={handleExportGeminiAuthFile} gateConnectionFlow={gateConnectionFlow} t={t} /> @@ -756,12 +746,6 @@ export default function ProviderDetailPageClient() { handleApplyClaudeAuthLocal={handleApplyClaudeAuthLocal} importClaudeModalOpen={importClaudeModalOpen} setImportClaudeModalOpen={setImportClaudeModalOpen} - applyGeminiModalConnectionId={applyGeminiModalConnectionId} - setApplyGeminiModalConnectionId={setApplyGeminiModalConnectionId} - applyingGeminiAuthId={applyingGeminiAuthId} - handleApplyGeminiAuthLocal={handleApplyGeminiAuthLocal} - importGeminiModalOpen={importGeminiModalOpen} - setImportGeminiModalOpen={setImportGeminiModalOpen} importGrokCliModalOpen={importGrokCliModalOpen} setImportGrokCliModalOpen={setImportGrokCliModalOpen} batchTestResults={batchTestResults} diff --git a/src/app/(dashboard)/dashboard/providers/[id]/components/ConnectionRow.tsx b/src/app/(dashboard)/dashboard/providers/[id]/components/ConnectionRow.tsx index 2487e4d80a..28ec0886c0 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/components/ConnectionRow.tsx +++ b/src/app/(dashboard)/dashboard/providers/[id]/components/ConnectionRow.tsx @@ -15,11 +15,7 @@ import { getCodexEffectiveServiceTier, type CodexGlobalServiceMode, } from "@/lib/providers/codexFastTier"; -import { - normalizeCodexLimitPolicy, - providerText, - ERROR_TYPE_LABELS, -} from "../providerPageHelpers"; +import { normalizeCodexLimitPolicy, providerText, ERROR_TYPE_LABELS } from "../providerPageHelpers"; // --------------------------------------------------------------------------- // Types (exported so the client can reference them without re-importing) @@ -54,7 +50,6 @@ export interface ConnectionRowProps { isOAuth: boolean; isClaude?: boolean; isCodex?: boolean; - isGeminiCli?: boolean; codexGlobalServiceMode?: CodexGlobalServiceMode; isFirst: boolean; isLast: boolean; @@ -93,10 +88,6 @@ export interface ConnectionRowProps { isApplyingClaudeAuthLocal?: boolean; onExportClaudeAuthFile?: () => void; isExportingClaudeAuthFile?: boolean; - onApplyGeminiAuthLocal?: () => void; - isApplyingGeminiAuthLocal?: boolean; - onExportGeminiAuthFile?: () => void; - isExportingGeminiAuthFile?: boolean; } // --------------------------------------------------------------------------- @@ -340,7 +331,6 @@ export default function ConnectionRow({ isOAuth, isClaude, isCodex, - isGeminiCli, codexGlobalServiceMode, isCcCompatible, cliproxyapiEnabled, @@ -375,10 +365,6 @@ export default function ConnectionRow({ isApplyingClaudeAuthLocal, onExportClaudeAuthFile, isExportingClaudeAuthFile, - onApplyGeminiAuthLocal, - isApplyingGeminiAuthLocal, - onExportGeminiAuthFile, - isExportingGeminiAuthFile, perKeyProxyEnabled, onTogglePerKeyProxyEnabled, proxyEnabled, @@ -409,15 +395,6 @@ export default function ConnectionRow({ typeof t.has === "function" && t.has("exportClaudeAuthFile") ? t("exportClaudeAuthFile") : "Export auth"; - const applyGeminiAuthLabel = - typeof t.has === "function" && t.has("applyGeminiAuthLocal") - ? t("applyGeminiAuthLocal") - : "Apply auth"; - const exportGeminiAuthLabel = - typeof t.has === "function" && t.has("exportGeminiAuthFile") - ? t("exportGeminiAuthFile") - : "Export auth"; - // Use useState + useEffect for impure Date.now() to avoid calling during render const [isCooldown, setIsCooldown] = useState(false); // T12: token expiry status — lazy init avoids calling Date.now() during render; @@ -869,34 +846,6 @@ export default function ConnectionRow({ {exportClaudeAuthLabel} )} - {isGeminiCli && onApplyGeminiAuthLocal && ( - - )} - {isGeminiCli && onExportGeminiAuthFile && ( - - )} )} - {providerId === "gemini-cli" && ( - - )} {providerId === "grok-cli" && ( )} - {providerId === "gemini-cli" && ( - - )} {providerId === "grok-cli" && ( - ))} - - - {topTab === "single" && ( -
-
- {(["upload", "paste"] as const).map((sub) => ( - - ))} -
- {singleSubTab === "upload" ? ( -
- - - {singleJson && previewGeminiJson(singleJson).valid && ( -

- Valid Gemini OAuth credentials - {previewGeminiJson(singleJson).email - ? ` (${previewGeminiJson(singleJson).email})` - : ""} -

- )} - {singleJson && !previewGeminiJson(singleJson).valid && ( -

- {typeof t.has === "function" && t.has("geminiImportInvalidShape") - ? t("geminiImportInvalidShape") - : "The file is not a valid oauth_creds.json"} -

- )} -
- ) : ( -
- -