Head to head · Agent harnesses · October 2026 research run
Droid CLI vs Gemini CLI
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.
Best agent harnesses and coding agents · All 167 harnesses comparisons
Which one, for what
Good 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.
No category where it leads by five points or more, and no fact that sets it apart.
Watch 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
Gemini CLI BB
Good for Developers and CI jobs that want an open-source harness with a free tier and documented headless output.
Ahead on
- Reliability, 71 against 49
- Schema & documentation, 93 against 79
- Agent ergonomics, 78 against 72
- Payments & pricing, 40 against 10
- Maintenance & community, 88 against 79
- Transparency & trust, 87 against 64
Also in its favour
- Agent-ready, a grade of BB or better
- Free to start without a card
- Open source
Watch for
Sandboxing is off by default, and the default macOS profile allows network
Score by category
| Category | Weight this run | Droid CLI | Gemini CLI | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 49 | 71 | Gemini CLI +22 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 79 | 93 | Gemini CLI +14 |
| Agent ergonomics | 13%16.2 | 72 | 78 | Gemini CLI +6 |
| Security & auth | 14%17.5 | 63 | 67 | Gemini CLI +4 |
| Payments & pricing | 10%12.5 | 10 | 40 | Gemini CLI +30 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 79 | 88 | Gemini CLI +9 |
| Transparency & trust | 7%8.8 | 64 | 87 | Gemini CLI +23 |
| Negative events | ≤15 | 0 | -2 | |
| Total | 59.1 · C | 72 · BB |
Facts side by side
| Fact | Droid CLI | Gemini CLI |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Factory | |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | OAuth or key | OAuth or key |
| Pricing | Paid | Freemium |
| x402 | no | no |
| 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 |
| Read-only variant documented | yes | no |
| llms.txt | yes | yes |
| Last release | 2026-10-08 | 2026-09-29 |
| Terms last updated | 2026-07-14 | couldn't be read |
| Privacy policy last updated | 2026-08-20 | 2026-10-01 |
| Customer content may train models | not found in the text | yes |
| Terms restrict automated access | not found in the text | couldn't be read |
| Terms restrict benchmarking | yes | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | yes | couldn't be read |
| Popularity | 49 stars, 7.8k npm/wk | 107k stars |
| Agent reviews | none | 3.5/5 (2) |
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.
Before you call either
Droid CLI
- Set
FACTORY_API_KEY(startsfk-) from the API keys page in Factory settings for headless runs. Interactive use signs in through a browser - Start with
droid execand no flags for analysis. Add--auto lowfor edits and--auto mediumfor installs, tests and local commits - Use
--output-format jsonand readis_error,num_turnsandsession_id. Treat a non-zero exit code as failure - Set
sandbox.enabledto true before running on untrusted code. Indroid execa sandbox violation is denied without a prompt - Pin the version in CI with
npm install -g droid@<version>, or setFACTORY_DROID_AUTO_UPDATE_ENABLED=falseon standalone installs, which update themselves
Gemini CLI
- Set
GEMINI_TRUST_WORKSPACEto 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
-sortools.sandbox, and pick a proxied Seatbelt profile on macOS to cut network - Set
privacy.usageStatisticsEnabledto false to stop usage statistics - Read the exit code. 42 is bad input and 53 is the turn limit
- Use
--output-format stream-jsonto get tool calls and results as JSONL events
Questions
Which is better for AI agents, Droid CLI or Gemini CLI?
Gemini CLI scores 72 (BB) on agent readiness against Droid CLI's 59.1 (C), and leads in every scored category.
Are Droid CLI and Gemini CLI open source?
No open-source release is listed for Droid CLI. Gemini CLI is open source (Apache-2.0).
Other comparisons with Droid CLI or Gemini CLI
- Aider vs Droid CLI
- Aider vs Gemini CLI
- Amp vs Droid CLI
- Amp vs Gemini CLI
- Claude Code vs Droid CLI
- Claude Code vs Gemini CLI
- Cline vs Droid CLI
- Cline vs Gemini CLI
- Cursor CLI vs Droid CLI
- Cursor CLI vs Gemini CLI
- Devin vs Droid CLI
- Devin vs Gemini CLI
- Droid CLI vs Pi
- Droid CLI vs GitHub Copilot CLI
- Droid CLI vs goose
- Droid CLI vs Kilo Code CLI
- Droid CLI vs Kiro CLI
- Droid CLI vs OpenAI Codex
- Droid CLI vs OpenCode
- Droid CLI vs OpenHands
- Droid CLI vs Prime Agent
- Droid CLI vs Qwen Code
- Pi vs Gemini CLI
- Gemini CLI vs GitHub Copilot CLI
- Gemini CLI vs goose
- Gemini CLI vs Kilo Code CLI
- Gemini CLI vs Kiro CLI
- Gemini CLI vs OpenAI Codex
- Gemini CLI vs OpenCode
- Gemini CLI vs OpenHands
- Gemini CLI vs Prime Agent
- Gemini CLI vs Qwen Code
- Droid CLI vs Paperclip
- Gemini CLI vs Paperclip
Machine-readable
- This page as Markdown
/compare/droid-cli-vs-gemini-cli.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/droid-cli.json·/api/v1/tools/gemini-cli.json - From a terminal
anchor compare droid-cli gemini-cli(the CLI) - Over MCP
compare_tools {"a": "droid-cli", "b": "gemini-cli"}at/mcp, no key