{
  "data": {
    "a": {
      "slug": "droid-cli",
      "name": "Droid CLI",
      "vendor": "Factory",
      "vendorUrl": "https://factory.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Droid CLI is Factory's closed-source coding agent for the terminal. It runs interactively or headless through `droid exec`, connects MCP servers, runs multi-agent Missions, and can be driven by TypeScript and Python SDKs. A paid Factory plan is required.",
      "url": "https://www.anchorterminal.com/tools/droid-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/droid-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/droid-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/droid-cli.json",
      "repo": "https://github.com/Factory-AI/factory",
      "license": "Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "droid"
        },
        {
          "registry": "npm",
          "name": "@factory/droid-sdk"
        },
        {
          "registry": "pypi",
          "name": "droid-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "A Factory account is required. The interactive CLI signs in through a browser with OAuth, and the docs say stored tokens rotate every 30 days. Headless runs set `FACTORY_API_KEY` to a key starting `fk-` created on the API keys page in Factory settings. Organisations can use service accounts whose keys can be rotated and revoked through an API.",
      "pricing": "paid",
      "pricingNotes": "Pro is $20 a month, Plus $100 and Max $200, each with the CLI, the Factory App and the SDK. Teams is $60 a month per team plus $40 a seat, and Business and Enterprise are by quote. Usage is capped by rolling 5-hour, 7-day and 30-day rate limits stated without numbers. Extra usage is prepaid credit from $10. No free tier or trial was found (checked 2026-10-09).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing pages or the terms (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 49,
        "npmWeekly": 7766,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.factory.com/droid-cli/overview",
      "llmsTxt": "https://docs.factory.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "acp",
        "llms-txt",
        "sdk",
        "sandbox",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.1,
        "grade": "C",
        "agentReady": false,
        "rank": 560,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 10,
          "reliability": 49,
          "schema": 79,
          "security": 63,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "`droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.",
        "bestFor": "Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.",
        "strengths": [
          "`droid exec` is read-only by default. `--auto low`, `medium` or `high` opens edits and commands by risk tier, and a run that exceeds its level exits non-zero",
          "Optional OS sandbox using Seatbelt on macOS and bubblewrap with seccomp on Linux, with writes limited to the working directory and network limited to allowed domains",
          "Text, JSON and JSON-RPC output, exit codes 0, 1 and 2, session resume and fork, and tool lists that can be restricted per run",
          "llms.txt with a Markdown copy of every docs page, and a dated changelog with 62 entries between 11 July and 8 October 2026",
          "The install script verifies a SHA-256 checksum, and the `droid` npm package is published from GitHub Actions through a trusted publisher"
        ],
        "weaknesses": [
          "No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers",
          "The sandbox is off until `sandbox.enabled` is set, and `--skip-permissions-unsafe` skips every permission prompt",
          "Usage metrics go to Factory's collector by default. The pages read give no opt-out outside an airgapped deployment",
          "Closed source on a 0.x version line with near-daily releases. The public tracker had 33 open issues on 9 October 2026, most with no reply",
          "No status page and no security.txt were found. The trust centre is drawn by script and was not read",
          "The individual terms forbid using the service for benchmarking or competitive analysis, which matters before any probe is run"
        ],
        "agentNotes": [
          "Set `FACTORY_API_KEY` (starts `fk-`) from the API keys page in Factory settings for headless runs. Interactive use signs in through a browser",
          "Start with `droid exec` and no flags for analysis. Add `--auto low` for edits and `--auto medium` for installs, tests and local commits",
          "Use `--output-format json` and read `is_error`, `num_turns` and `session_id`. Treat a non-zero exit code as failure",
          "Set `sandbox.enabled` to true before running on untrusted code. In `droid exec` a sandbox violation is denied without a prompt",
          "Pin the version in CI with `npm install -g droid@\u003cversion\u003e`, or set `FACTORY_DROID_AUTO_UPDATE_ENABLED=false` on standalone installs, which update themselves"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.1
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 10,
          "reliability": 49,
          "schema": 79,
          "security": 63,
          "transparency": 55
        },
        "provenanceScore": 72
      },
      "connect": {
        "install": "curl -fsSL https://app.factory.ai/cli | sh   # or: npm install -g droid",
        "headless": {
          "command": "droid exec --auto low --output-format json \"$TASK\"",
          "env": {
            "FACTORY_API_KEY": "fk-..."
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/droid-cli"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "rolling rate limits, numbers not published"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 100,
          "note": "about 5 times Pro usage"
        },
        {
          "item": "Max plan",
          "unit": "month",
          "usd": 200,
          "note": "about 10 times Pro usage"
        },
        {
          "item": "Teams seat",
          "unit": "seat-month",
          "usd": 40,
          "note": "plus $60 a month per team, up to 10 seats"
        }
      ],
      "provenance": {
        "legalEntity": "The San Francisco AI Factory, Inc.",
        "domain": "factory.com",
        "domainRegistered": "1999-03-09",
        "endpointOnVendorDomain": null,
        "terms": "https://factory.com/legal/terms-individual",
        "privacy": "https://factory.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://docs.factory.com/changelog/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Terms and Conditions for Individual Plans (last updated 14 July 2026) name The San Francisco AI Factory, Inc., a Delaware corporation in San Francisco. The privacy policy (last updated 20 August 2026) names the same company.",
          "RDAP (Verisign) gives factory.com a registration date of 1999-03-09, long before the company.",
          "The CLI installs from app.factory.ai and downloads.factory.ai and signs in to app.factory.ai, a second domain of the vendor's.",
          "factory.com/.well-known/security.txt answered 404 on 9 October 2026.",
          "No status page is linked from the home page, the docs support page or the other pages read. factory.com/sla states a 99 per cent availability target.",
          "The terms linked are those for individual plans. Organisation plans are sold under separate orders, which we did not read."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/droid-cli.json",
      "live": {
        "slug": "droid-cli",
        "versions": [
          {
            "registry": "npm",
            "name": "@factory/droid-sdk",
            "version": "0.9.1",
            "seenAt": "2026-10-09T16:50:37.734856262Z"
          },
          {
            "registry": "npm",
            "name": "droid",
            "version": "0.237.0",
            "seenAt": "2026-10-09T16:50:36.904664611Z"
          },
          {
            "registry": "pypi",
            "name": "droid-sdk",
            "version": "0.5.0",
            "released": "2026-09-24",
            "seenAt": "2026-10-09T16:50:39.131992485Z"
          }
        ],
        "githubStars": 49,
        "npmWeekly": 7766,
        "pypiWeekly": 8371,
        "pages": [
          {
            "url": "https://docs.factory.com/changelog/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:19.435901865Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "79ac0e23f836"
          },
          {
            "url": "https://factory.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:19.155213369Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5ef46e9f3c4f"
          },
          {
            "url": "https://factory.com/legal/terms-individual",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:16.902019177Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ebfbb9d9f0ab"
          }
        ],
        "updatedAt": "2026-10-09T18:39:19.155213369Z"
      }
    },
    "answer": "Gemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category.",
    "b": {
      "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,
        "grade": "BB",
        "agentReady": true,
        "rank": 114,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 88,
          "payments": 40,
          "reliability": 71,
          "schema": 93,
          "security": 67,
          "transparency": 87
        },
        "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.",
        "bestFor": "Developers and CI jobs that want an open-source harness with a free tier and documented headless output.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 88,
          "payments": 40,
          "reliability": 71,
          "schema": 93,
          "security": 67,
          "transparency": 80
        },
        "provenanceScore": 93
      },
      "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",
        "gemini-live",
        "google-adk",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-drive-api",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "gmail-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": 93
      },
      "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-08T19:38:35.286753508Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "google-gemini/gemini-cli",
            "version": "v0.63.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-09T16:54:23.970311031Z"
          },
          {
            "registry": "npm",
            "name": "@google/gemini-cli",
            "version": "0.63.0",
            "seenAt": "2026-10-09T16:54:23.71662664Z"
          }
        ],
        "githubStars": 107270,
        "npmWeekly": 378433,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-09T15:39:28.443612679Z"
        },
        "llmsTxt": {
          "url": "https://geminicli.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:59.931803251Z"
        },
        "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-09T18:39:46.568243747Z",
            "changedAt": "2026-10-07T18:06:22.906677126Z",
            "fingerprint": "52b85a91ab8e"
          },
          {
            "url": "https://geminicli.com/docs/resources/tos-privacy",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:39:48.609963533Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f7d55fbc670d"
          }
        ],
        "updatedAt": "2026-10-09T18:39:48.609963533Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Factory",
        "b": "Google",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "b": "2026-09-29",
        "name": "Last release"
      },
      {
        "a": "2026-07-14",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-20",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "49 stars, 7.8k npm/wk",
        "b": "107k stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Gemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Droid CLI or Gemini CLI?"
      },
      {
        "answer": "No open-source release is listed for Droid CLI. Gemini CLI is open source (Apache-2.0).",
        "question": "Are Droid CLI and Gemini CLI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.",
        "slug": "droid-cli",
        "watchFor": "No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers"
      },
      {
        "aheadOn": [
          "Reliability, 71 against 49",
          "Schema \u0026 documentation, 93 against 79",
          "Agent ergonomics, 78 against 72",
          "Payments \u0026 pricing, 40 against 10",
          "Maintenance \u0026 community, 88 against 79",
          "Transparency \u0026 trust, 87 against 64"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Developers and CI jobs that want an open-source harness with a free tier and documented headless output.",
        "slug": "gemini-cli",
        "watchFor": "Sandboxing is off by default, and the default macOS profile allows network"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-droid-cli.json",
        "title": "Aider vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-gemini-cli.json",
        "title": "Aider vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-droid-cli.json",
        "title": "Amp vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-gemini-cli.json",
        "title": "Amp vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-droid-cli.json",
        "title": "Claude Code vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli.json",
        "title": "Claude Code vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-droid-cli.json",
        "title": "Cline vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-gemini-cli.json",
        "title": "Cline vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-droid-cli.json",
        "title": "Cursor CLI vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-gemini-cli.json",
        "title": "Cursor CLI vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-droid-cli.json",
        "title": "Devin vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-gemini-cli.json",
        "title": "Devin vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.json",
        "title": "Droid CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli.json",
        "title": "Droid CLI vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-goose.json",
        "title": "Droid CLI vs goose",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli.json",
        "title": "Droid CLI vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli.json",
        "title": "Droid CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.json",
        "title": "Droid CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-opencode.json",
        "title": "Droid CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openhands.json",
        "title": "Droid CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent.json",
        "title": "Droid CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code.json",
        "title": "Droid CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-github-copilot-cli.json",
        "title": "Gemini CLI vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-goose.json",
        "title": "Gemini CLI vs goose",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-kilo-code-cli.json",
        "title": "Gemini CLI vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-kiro-cli.json",
        "title": "Gemini CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex.json",
        "title": "Gemini CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.json",
        "title": "Gemini CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.json",
        "title": "Gemini CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-prime-agent.json",
        "title": "Gemini CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-qwen-code.json",
        "title": "Gemini CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-paperclip.json",
        "title": "Droid CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-paperclip.json",
        "title": "Gemini CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-paperclip"
      }
    ],
    "scores": [
      {
        "by": 22,
        "droid-cli": 49,
        "edge": "gemini-cli",
        "gemini-cli": 71,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "droid-cli": 79,
        "edge": "gemini-cli",
        "gemini-cli": 93,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 6,
        "droid-cli": 72,
        "edge": "gemini-cli",
        "gemini-cli": 78,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 4,
        "droid-cli": 63,
        "edge": "gemini-cli",
        "gemini-cli": 67,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 30,
        "droid-cli": 10,
        "edge": "gemini-cli",
        "gemini-cli": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "droid-cli": 79,
        "edge": "gemini-cli",
        "gemini-cli": 88,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 23,
        "droid-cli": 64,
        "edge": "gemini-cli",
        "gemini-cli": 87,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category. Both do agent harnesses.",
    "verdicts": {
      "droid-cli": "`droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli",
    "json": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.md",
    "slim": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.min.md"
  },
  "markdown": "Gemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category. Both do agent harnesses.\n\n- Droid CLI: grade C, 59.1/100, rank #560 of 950. Markdown https://www.anchorterminal.com/tools/droid-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/droid-cli.json\n- Gemini CLI: grade BB, 72/100, rank #114 of 950. Markdown https://www.anchorterminal.com/tools/gemini-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/gemini-cli.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 167 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Droid CLI (C)\n\nGood for: Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.\n\nWatch for: No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers\n\n### Gemini CLI (BB)\n\nGood for: Developers and CI jobs that want an open-source harness with a free tier and documented headless output.\n\nAhead on:\n- Reliability, 71 against 49\n- Schema \u0026 documentation, 93 against 79\n- Agent ergonomics, 78 against 72\n- Payments \u0026 pricing, 40 against 10\n- Maintenance \u0026 community, 88 against 79\n- Transparency \u0026 trust, 87 against 64\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n- Open source\n\nWatch for: Sandboxing is off by default, and the default macOS profile allows network\n\n\n## Score by category\n\n| Category | Weight | Droid CLI | Gemini CLI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 49 | 71 | Gemini CLI +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 93 | Gemini CLI +14 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 78 | Gemini CLI +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 67 | Gemini CLI +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 40 | Gemini CLI +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 79 | 88 | Gemini CLI +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 87 | Gemini CLI +23 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **59.1 · C** | **72 · BB** | |\n\n## Facts side by side\n\n| Fact | Droid CLI | Gemini CLI |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Factory | Google |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0 | Apache-2.0 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-08 | 2026-09-29 |\n| Terms last updated | 2026-07-14 | couldn't be read |\n| Privacy policy last updated | 2026-08-20 | 2026-10-01 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 49 stars, 7.8k npm/wk | 107k stars |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\n\n**Droid CLI.** `droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.\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## Before you call either\n\n### Droid CLI\n\n1. Set `FACTORY_API_KEY` (starts `fk-`) from the API keys page in Factory settings for headless runs. Interactive use signs in through a browser\n2. Start with `droid exec` and no flags for analysis. Add `--auto low` for edits and `--auto medium` for installs, tests and local commits\n3. Use `--output-format json` and read `is_error`, `num_turns` and `session_id`. Treat a non-zero exit code as failure\n4. Set `sandbox.enabled` to true before running on untrusted code. In `droid exec` a sandbox violation is denied without a prompt\n5. Pin the version in CI with `npm install -g droid@\u003cversion\u003e`, or set `FACTORY_DROID_AUTO_UPDATE_ENABLED=false` on standalone installs, which update themselves\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## Questions\n\n### Which is better for AI agents, Droid CLI or Gemini CLI?\n\nGemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category.\n\n### Are Droid CLI and Gemini CLI open source?\n\nNo open-source release is listed for Droid CLI. Gemini CLI is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.json, and with the fewest tokens: https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"droid-cli\", \"b\": \"gemini-cli\"}`. From a terminal: `anchor compare droid-cli gemini-cli`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/droid-cli.json and https://www.anchorterminal.com/api/v1/tools/gemini-cli.json\n\n## Other comparisons with Droid CLI or Gemini CLI\n\n- [Aider vs Droid CLI](https://www.anchorterminal.com/compare/aider-vs-droid-cli.md)\n- [Aider vs Gemini CLI](https://www.anchorterminal.com/compare/aider-vs-gemini-cli.md)\n- [Amp vs Droid CLI](https://www.anchorterminal.com/compare/amp-vs-droid-cli.md)\n- [Amp vs Gemini CLI](https://www.anchorterminal.com/compare/amp-vs-gemini-cli.md)\n- [Claude Code vs Droid CLI](https://www.anchorterminal.com/compare/claude-code-vs-droid-cli.md)\n- [Claude Code vs Gemini CLI](https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli.md)\n- [Cline vs Droid CLI](https://www.anchorterminal.com/compare/cline-vs-droid-cli.md)\n- [Cline vs Gemini CLI](https://www.anchorterminal.com/compare/cline-vs-gemini-cli.md)\n- [Cursor CLI vs Droid CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-droid-cli.md)\n- [Cursor CLI vs Gemini CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-gemini-cli.md)\n- [Devin vs Droid CLI](https://www.anchorterminal.com/compare/devin-vs-droid-cli.md)\n- [Devin vs Gemini CLI](https://www.anchorterminal.com/compare/devin-vs-gemini-cli.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli.md)\n- [Droid CLI vs goose](https://www.anchorterminal.com/compare/droid-cli-vs-goose.md)\n- [Droid CLI vs Kilo Code CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli.md)\n- [Droid CLI vs Kiro CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli.md)\n- [Droid CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.md)\n- [Droid CLI vs OpenCode](https://www.anchorterminal.com/compare/droid-cli-vs-opencode.md)\n- [Droid CLI vs OpenHands](https://www.anchorterminal.com/compare/droid-cli-vs-openhands.md)\n- [Droid CLI vs Prime Agent](https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent.md)\n- [Droid CLI vs Qwen Code](https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.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 Kilo Code CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-kilo-code-cli.md)\n- [Gemini CLI vs Kiro CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-kiro-cli.md)\n- [Gemini CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex.md)\n- [Gemini CLI vs OpenCode](https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.md)\n- [Gemini CLI vs OpenHands](https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.md)\n- [Gemini CLI vs Prime Agent](https://www.anchorterminal.com/compare/gemini-cli-vs-prime-agent.md)\n- [Gemini CLI vs Qwen Code](https://www.anchorterminal.com/compare/gemini-cli-vs-qwen-code.md)\n- [Droid CLI vs Paperclip](https://www.anchorterminal.com/compare/droid-cli-vs-paperclip.md)\n- [Gemini CLI vs Paperclip](https://www.anchorterminal.com/compare/gemini-cli-vs-paperclip.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Droid CLI vs Gemini CLI",
        "url": ""
      }
    ],
    "description": "Gemini CLI scores 72 (BB) to Droid CLI's 59.1 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Droid CLI C 59.1",
      "Gemini CLI BB 72",
      "scores"
    ],
    "h1": "Droid CLI vs Gemini CLI",
    "image": "https://www.anchorterminal.com/assets/og/compare-droid-cli-vs-gemini-cli.png",
    "path": "/compare/droid-cli-vs-gemini-cli",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Droid CLI vs Gemini CLI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 680
  },
  "version": 1
}
