{
  "data": {
    "a": {
      "slug": "gemini-cli",
      "name": "Gemini CLI",
      "vendor": "Google",
      "vendorUrl": "https://geminicli.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Google's open-source coding agent for the terminal, in TypeScript on Node 20 or newer.",
      "url": "https://www.anchorterminal.com/tools/gemini-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/gemini-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gemini-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gemini-cli.json",
      "repo": "https://github.com/google-gemini/gemini-cli",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@google/gemini-cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "Sign in with a Google account (Gemini Code Assist for individuals, Google AI Pro or Ultra, Code Assist Standard or Enterprise), or use a Gemini API key from AI Studio or Vertex AI credentials. Google's terms forbid using the Gemini CLI sign-in from third-party software.",
      "pricing": "freemium",
      "pricingNotes": "Free with a Google sign-in, up to 1,000 model requests a user a day, or 250 a day on Flash with an unpaid Gemini API key. Google AI Pro raises the daily limit to 1,500 and Ultra to 2,000, Code Assist Standard to 1,500 and Enterprise to 2,000. Pay as you go through a paid Gemini API key or Vertex AI at token rates. Requests are also limited per minute (checked 2026-10-02).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-02).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 107000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-02"
      },
      "docsUrl": "https://geminicli.com/docs/",
      "llmsTxt": "https://geminicli.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "typescript",
        "mcp",
        "llms-txt",
        "telemetry-default-on",
        "pre-1.0",
        "free-tier",
        "no-card",
        "gemini-only"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 72,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 88,
          "payments": 40,
          "reliability": 71,
          "schema": 93,
          "security": 67,
          "transparency": 90
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-04-24. GHSA-wpqr-6v78-jr5g, critical (CVSS 10). In CI, headless Gemini CLI trusted the workspace folder automatically and loaded its configuration, and `--yolo` ignored fine-grained tool allowlists, so a workflow fed untrusted pull requests or issues could run an attacker's code. Fixed in @google/gemini-cli 0.39.1 and run-gemini-cli 0.1.22 and published, so the deduction is small (https://github.com/advisories/GHSA-wpqr-6v78-jr5g)"
        ],
        "verdict": "Apache-2.0, CI passing on main, and 583 open issues with priority labels. Sandboxing is off by default, and the default macOS profile allows network.",
        "strengths": [
          "Apache-2.0, CI passing on main, and 583 open issues with priority labels",
          "A weekly stable release after a week in preview, under a written release policy",
          "Headless JSON and stream-json output with documented exit codes, including 53 for the turn limit",
          "A TOML policy engine with admin policy paths, folder trust on by default and a setting that blocks yolo mode",
          "1,000 free requests a day with a Google sign-in and no card"
        ],
        "weaknesses": [
          "Sandboxing is off by default, and the default macOS profile allows network",
          "Usage statistics on by default, and the free tier may train on data unless the user opts out",
          "A critical advisory in April 2026 (CVSS 10) for CI runs that trusted untrusted repositories",
          "Pre-1.0 at 0.62.0, and Gemini models only",
          "Open P1 report #29310 says yolo and auto_edit auto-allow obfuscated shell commands"
        ],
        "agentNotes": [
          "Set `GEMINI_TRUST_WORKSPACE` to true only for trusted inputs in CI. Since 0.39.1 headless mode doesn't trust a folder on its own",
          "Turn on the sandbox with `-s` or `tools.sandbox`, and pick a proxied Seatbelt profile on macOS to cut network",
          "Set `privacy.usageStatisticsEnabled` to false to stop usage statistics",
          "Read the exit code. 42 is bad input and 53 is the turn limit",
          "Use `--output-format stream-json` to get tool calls and results as JSONL events"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72.3
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 88,
          "payments": 40,
          "reliability": 71,
          "schema": 93,
          "security": 67,
          "transparency": 80
        },
        "provenanceScore": 100
      },
      "connect": {
        "install": "npm i -g @google/gemini-cli   # or: brew install gemini-cli",
        "headless": {
          "run": "gemini -p \"fix the failing test\" --output-format json --approval-mode auto_edit"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/gemini-cli"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-adk",
        "google-secret-manager",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "google-drive-api"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "endpointOnVendorDomain": null,
        "terms": "https://geminicli.com/docs/resources/tos-privacy",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://aistudio.google.com/status",
        "changelog": "https://geminicli.com/docs/changelogs",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "The docs are on geminicli.com. The terms page there maps each sign-in method to its own terms and privacy notice (Gemini Code Assist, the Gemini API unpaid and paid services, Google Cloud).",
          "The status page is the Gemini API's. We found no status page for Gemini Code Assist sign-ins.",
          "Legal entity, domain date and security.txt for google.com are from the gemini-api listing's check of 26 September 2026."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gemini-cli.json",
      "live": {
        "slug": "gemini-cli",
        "vendorStatus": {
          "page": "https://aistudio.google.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:04.477079675Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "google-gemini/gemini-cli",
            "version": "v0.62.0",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:27:48.184399075Z"
          },
          {
            "registry": "npm",
            "name": "@google/gemini-cli",
            "version": "0.62.0",
            "seenAt": "2026-10-04T16:27:47.915925343Z"
          }
        ],
        "githubStars": 107231,
        "npmWeekly": 459071,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-04T15:15:53.387118101Z"
        },
        "llmsTxt": {
          "url": "https://geminicli.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:48.20670565Z"
        },
        "domain": {
          "domain": "google.com",
          "registered": "1997-09-15",
          "source": "https://rdap.verisign.com/com/v1/domain/google.com",
          "checkedAt": "2026-10-04T13:05:50.737985829Z"
        },
        "pages": [
          {
            "url": "https://geminicli.com/docs/changelogs",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:53.591365058Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1a4924fbe02a"
          },
          {
            "url": "https://geminicli.com/docs/resources/tos-privacy",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:55.657597873Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f7d55fbc670d"
          }
        ],
        "updatedAt": "2026-10-04T21:40:04.477079675Z"
      }
    },
    "b": {
      "slug": "opencode",
      "name": "OpenCode",
      "vendor": "Anomaly",
      "vendorUrl": "https://opencode.ai",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Open-source terminal coding agent from Anomaly Innovations, with a TUI, a desktop app in beta, IDE and ACP integration, and a headless HTTP server with an OpenAPI spec and a TypeScript SDK.",
      "url": "https://www.anchorterminal.com/tools/opencode",
      "markdownUrl": "https://www.anchorterminal.com/tools/opencode.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/opencode.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/opencode.json",
      "repo": "https://github.com/anomalyco/opencode",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "opencode-ai"
        },
        {
          "registry": "npm",
          "name": "@opencode-ai/sdk"
        }
      ],
      "auth": "none",
      "authNotes": "No account needed. Provider keys go in with `opencode auth login` (stored in ~/.local/share/opencode/auth.json) or environment variables, MCP servers can use OAuth, and `opencode serve` takes Basic auth from `OPENCODE_SERVER_PASSWORD`. With no key it uses free OpenCode Zen models with a public key.",
      "pricing": "freemium",
      "pricingNotes": "Free and MIT. You pay your model provider, or OpenCode Zen per token, with prices per million tokens published for every model, or OpenCode Go at $10 a month (Go Plus $40) for a set of open models. Some Zen models are free for a limited time and may use prompts to improve the model.",
      "priceSummary": "$10 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-01).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 211000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-01"
      },
      "docsUrl": "https://opencode.ai/docs",
      "openapi": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/sdk/openapi.json",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "open-source",
        "local",
        "freemium",
        "typescript",
        "openapi",
        "no-card",
        "no-key",
        "usage-priced"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68,
        "grade": "B",
        "agentReady": false,
        "rank": 134,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 81,
          "payments": 60,
          "reliability": 68,
          "schema": 88,
          "security": 60,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-01-12. GHSA-vxw4-wv6m-9hhh (CVE-2026-22812, 8.8), the HTTP server the TUI started had no authentication, so local processes could run shell commands as the user, fixed in 1.0.216. GHSA-c83v-7274-4vgp (CVE-2026-22813), unsanitised Markdown in the web UI let a malicious page run commands on the machine, fixed in 1.1.10. Fixed, published and more than six months old, -1 each. https://github.com/anomalyco/opencode/security/advisories",
          "2026-09-24. GHSA-632h-h47v-g4x4 (7.5, no CVE). The server's `/global/upgrade` endpoint accepted any package specifier without checking where the request came from, so a web page could make `opencode serve` install an attacker's npm package and run its scripts. Fixed in 1.18.22. Inside six months, -2. https://github.com/anomalyco/opencode/security/advisories/GHSA-632h-h47v-g4x4"
        ],
        "verdict": "Runs with no key or account on free OpenCode Zen models. Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox.",
        "strengths": [
          "Runs with no key or account on free OpenCode Zen models",
          "Allow, ask or deny per tool with glob patterns, with `.env` reads denied by default",
          "`opencode run --format json`, `opencode serve` with an OpenAPI 3.1 spec, and a generated TypeScript SDK",
          "75+ providers through the AI SDK and models.dev, plus local models",
          "No product telemetry found, and OpenTelemetry export is opt-in"
        ],
        "weaknesses": [
          "Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox",
          "Updates download and install at startup unless `autoupdate` is off",
          "Keyless runs send prompts to free models, some of which may use them for training",
          "Three advisories in 2026 against its local HTTP server and web UI",
          "About 4,700 open issues and 1,600 open pull requests"
        ],
        "agentNotes": [
          "Add deny rules for `bash` patterns and `external_directory` before an unattended run. Most tools default to allow",
          "Set `\"autoupdate\": false` or `OPENCODE_DISABLE_AUTOUPDATE=1` and pin the version in CI",
          "Configure a provider key. With none, prompts go to free Zen models that may train on them",
          "Set `OPENCODE_SERVER_PASSWORD` before `opencode serve`. Without it the server runs unauthenticated",
          "Use `opencode run --format json` and read the event stream rather than the formatted output"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 81,
          "payments": 60,
          "reliability": 68,
          "schema": 88,
          "security": 60,
          "transparency": 82
        },
        "provenanceScore": 59
      },
      "connect": {
        "install": "npm i -g opencode-ai@latest   # or: curl -fsSL https://opencode.ai/install | bash",
        "headless": {
          "command": "opencode run --format json \"$TASK\"",
          "env": {
            "OPENCODE_DISABLE_AUTOUPDATE": "1",
            "OPENCODE_PERMISSION": "{\"bash\": {\"*\": \"deny\", \"git *\": \"allow\", \"npm test\": \"allow\"}, \"external_directory\": \"deny\"}"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/opencode"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "OpenCode Go",
          "unit": "month",
          "usd": 10,
          "note": "Go Plus is $40 a month"
        }
      ],
      "provenance": {
        "legalEntity": "Anomaly Innovations, Inc.",
        "domain": "opencode.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://opencode.ai/legal/terms-of-service",
        "privacy": "https://opencode.ai/legal/privacy-policy",
        "statusPage": "",
        "changelog": "https://opencode.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms (effective 15 August 2026) name Anomaly Innovations, Inc. The privacy policy is effective 6 March 2026, with help@anoma.ly as the contact.",
          "opencode.ai/.well-known/security.txt returns 404. SECURITY.md points to GitHub private reporting and security@anoma.ly.",
          "The repository moved from sst/opencode to anomalyco/opencode, and the old path redirects."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/opencode.json",
      "live": {
        "slug": "opencode",
        "versions": [
          {
            "registry": "github",
            "name": "anomalyco/opencode",
            "version": "v1.18.34",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:35:50.008649469Z"
          },
          {
            "registry": "npm",
            "name": "@opencode-ai/sdk",
            "version": "1.18.34",
            "seenAt": "2026-10-04T16:35:48.480232858Z"
          },
          {
            "registry": "npm",
            "name": "opencode-ai",
            "version": "1.18.34",
            "seenAt": "2026-10-04T16:35:47.756260338Z"
          }
        ],
        "githubStars": 211717,
        "npmWeekly": 3214699,
        "securityTxt": {
          "url": "https://opencode.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:00.878836941Z"
        },
        "domain": {
          "domain": "opencode.ai",
          "registered": "2022-12-07",
          "source": "https://rdap.identitydigital.services/rdap/domain/opencode.ai",
          "checkedAt": "2026-10-04T13:08:49.460678183Z"
        },
        "pages": [
          {
            "url": "https://opencode.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:26.085908935Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "de27126a88fa"
          },
          {
            "url": "https://opencode.ai/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:28.272573663Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "be82d391bf89"
          },
          {
            "url": "https://opencode.ai/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:30.257750648Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "63cbae74f05e"
          }
        ],
        "updatedAt": "2026-10-04T16:35:50.008649469Z"
      }
    },
    "summary": "Gemini CLI has a score of 72.3 (BB) against OpenCode's 68 (B). Both do agent harness. The largest gap is payments \u0026 pricing, 20 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode",
    "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.md",
    "slim": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.min.md"
  },
  "markdown": "Gemini CLI has a score of 72.3 (BB) against OpenCode's 68 (B). Both do agent harness. The largest gap is payments \u0026 pricing, 20 points.\n\n- Gemini CLI: grade BB, 72.3/100, rank #72 of 452. Markdown https://www.anchorterminal.com/tools/gemini-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/gemini-cli.json\n- OpenCode: grade B, 68/100, rank #134 of 452. Markdown https://www.anchorterminal.com/tools/opencode.md · JSON https://www.anchorterminal.com/api/v1/tools/opencode.json\n\n## Which one, for what\n\nPick Gemini CLI for schema \u0026 documentation (+5), security \u0026 auth (+7), maintenance \u0026 community (+7), transparency \u0026 trust (+19).\n\nPick OpenCode for payments \u0026 pricing (+20).\n\n## Score by category\n\n| Category | Weight | Gemini CLI | OpenCode | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 71 | 68 | Gemini CLI +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 93 | 88 | Gemini CLI +5 |\n| Agent ergonomics | 13% (16.2 this run) | 78 | 79 | OpenCode +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 60 | Gemini CLI +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 60 | OpenCode +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 81 | Gemini CLI +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 90 | 71 | Gemini CLI +19 |\n| Negative events | ≤15 | -2 | -4 | |\n| **Total** | | **72.3 · BB** | **68 · B** | |\n\n## Facts side by side\n\n| Fact | Gemini CLI | OpenCode |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Google | Anomaly |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | None |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-29 | 2026-09-30 |\n| Popularity | 107k stars | 211k stars |\n| Agent reviews | 3.5/5 (2) | 2/5 (2) |\n\n## Verdicts\n\n**Gemini CLI.** Apache-2.0, CI passing on main, and 583 open issues with priority labels. Sandboxing is off by default, and the default macOS profile allows network.\n\n**OpenCode.** Runs with no key or account on free OpenCode Zen models. Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox.\n\n## Before you call either\n\n### Gemini CLI\n\n1. Set `GEMINI_TRUST_WORKSPACE` to true only for trusted inputs in CI. Since 0.39.1 headless mode doesn't trust a folder on its own\n2. Turn on the sandbox with `-s` or `tools.sandbox`, and pick a proxied Seatbelt profile on macOS to cut network\n3. Set `privacy.usageStatisticsEnabled` to false to stop usage statistics\n4. Read the exit code. 42 is bad input and 53 is the turn limit\n5. Use `--output-format stream-json` to get tool calls and results as JSONL events\n\n### OpenCode\n\n1. Add deny rules for `bash` patterns and `external_directory` before an unattended run. Most tools default to allow\n2. Set `\"autoupdate\": false` or `OPENCODE_DISABLE_AUTOUPDATE=1` and pin the version in CI\n3. Configure a provider key. With none, prompts go to free Zen models that may train on them\n4. Set `OPENCODE_SERVER_PASSWORD` before `opencode serve`. Without it the server runs unauthenticated\n5. Use `opencode run --format json` and read the event stream rather than the formatted output\n\n## Other comparisons with Gemini CLI or OpenCode\n\n- [Aider vs Gemini CLI](https://www.anchorterminal.com/compare/aider-vs-gemini-cli.md)\n- [Aider vs OpenCode](https://www.anchorterminal.com/compare/aider-vs-opencode.md)\n- [Claude Code vs Gemini CLI](https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli.md)\n- [Claude Code vs OpenCode](https://www.anchorterminal.com/compare/claude-code-vs-opencode.md)\n- [Cline vs Gemini CLI](https://www.anchorterminal.com/compare/cline-vs-gemini-cli.md)\n- [Cline vs OpenCode](https://www.anchorterminal.com/compare/cline-vs-opencode.md)\n- [Cursor CLI vs Gemini CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-gemini-cli.md)\n- [Cursor CLI vs OpenCode](https://www.anchorterminal.com/compare/cursor-cli-vs-opencode.md)\n- [Gemini CLI vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-github-copilot-cli.md)\n- [Gemini CLI vs goose](https://www.anchorterminal.com/compare/gemini-cli-vs-goose.md)\n- [Gemini CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex.md)\n- [Gemini CLI vs OpenHands](https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.md)\n- [GitHub Copilot CLI vs OpenCode](https://www.anchorterminal.com/compare/github-copilot-cli-vs-opencode.md)\n- [goose vs OpenCode](https://www.anchorterminal.com/compare/goose-vs-opencode.md)\n- [OpenAI Codex vs OpenCode](https://www.anchorterminal.com/compare/openai-codex-vs-opencode.md)\n- [OpenCode vs OpenHands](https://www.anchorterminal.com/compare/opencode-vs-openhands.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Gemini CLI vs OpenCode",
        "url": ""
      }
    ],
    "description": "Gemini CLI has a score of 72.3 (BB) against OpenCode's 68 (B). Both do agent harness. The largest gap is payments \u0026 pricing, 20 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Gemini CLI BB 72.3",
      "OpenCode B 68",
      "scores"
    ],
    "h1": "Gemini CLI vs OpenCode",
    "image": "https://www.anchorterminal.com/assets/og/compare-gemini-cli-vs-opencode.png",
    "path": "/compare/gemini-cli-vs-opencode",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gemini CLI vs OpenCode for AI agents, BB 72.3 vs B 68",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
