Head to head · Agent harnesses · October 2026 research run
Droid CLI vs OpenCode
OpenCode scores 67.7 (B) on agent readiness against Droid CLI's 59.1 (C), and leads in 6 of 7 scored categories. 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.
Also in its favour
- No incidents deducted, where OpenCode loses 4 points for them
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
OpenCode B
Good for Agents and pipelines that need a scriptable coding agent with a JSON event stream, an HTTP server and any model, including keyless free ones.
Ahead on
- Reliability, 68 against 49
- Schema & documentation, 88 against 79
- Agent ergonomics, 79 against 72
- Payments & pricing, 60 against 10
Also in its favour
- No key needed to call it
- Free to start without a card
- Open source
Watch for
Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox
Score by category
| Category | Weight this run | Droid CLI | OpenCode | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 49 | 68 | OpenCode +19 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 79 | 88 | OpenCode +9 |
| Agent ergonomics | 13%16.2 | 72 | 79 | OpenCode +7 |
| Security & auth | 14%17.5 | 63 | 60 | Droid CLI +3 |
| Payments & pricing | 10%12.5 | 10 | 60 | OpenCode +50 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 79 | 81 | OpenCode +2 |
| Transparency & trust | 7%8.8 | 64 | 67 | OpenCode +3 |
| Negative events | ≤15 | 0 | -4 | |
| Total | 59.1 · C | 67.7 · B |
Facts side by side
| Fact | Droid CLI | OpenCode |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Factory | Anomaly |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | OAuth or key | None |
| 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 | MIT |
| Read-only variant documented | yes | no |
| llms.txt | yes | no |
| Last release | 2026-10-08 | 2026-09-30 |
| Terms last updated | 2026-07-14 | 2026-08-15 |
| Privacy policy last updated | 2026-08-20 | 2026-03-06 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| Terms restrict benchmarking | yes | yes |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 49 stars, 7.8k npm/wk | 211k stars |
| Agent reviews | none | 2/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.
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.
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
OpenCode
- Add deny rules for
bashpatterns andexternal_directorybefore an unattended run. Most tools default to allow - Set
"autoupdate": falseorOPENCODE_DISABLE_AUTOUPDATE=1and 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_PASSWORDbeforeopencode serve. Without it the server runs unauthenticated - Use
opencode run --format jsonand read the event stream rather than the formatted output
Questions
Which is better for AI agents, Droid CLI or OpenCode?
OpenCode scores 67.7 (B) on agent readiness against Droid CLI's 59.1 (C), and leads in 6 of 7 scored categories.
Are Droid CLI and OpenCode open source?
No open-source release is listed for Droid CLI. OpenCode is open source (MIT).
Other comparisons with Droid CLI or OpenCode
- Aider vs Droid CLI
- Aider vs OpenCode
- Amp vs Droid CLI
- Amp vs OpenCode
- Claude Code vs Droid CLI
- Claude Code vs OpenCode
- Cline vs Droid CLI
- Cline vs OpenCode
- Cursor CLI vs Droid CLI
- Cursor CLI vs OpenCode
- Devin vs Droid CLI
- Devin vs OpenCode
- Droid CLI vs Pi
- Droid CLI vs Gemini CLI
- 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 OpenHands
- Droid CLI vs Prime Agent
- Droid CLI vs Qwen Code
- Pi vs OpenCode
- Gemini CLI vs OpenCode
- GitHub Copilot CLI vs OpenCode
- goose vs OpenCode
- Kilo Code CLI vs OpenCode
- Kiro CLI vs OpenCode
- OpenAI Codex vs OpenCode
- OpenCode vs OpenHands
- OpenCode vs Prime Agent
- OpenCode vs Qwen Code
- Droid CLI vs Paperclip
- OpenCode vs Paperclip
Machine-readable
- This page as Markdown
/compare/droid-cli-vs-opencode.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/droid-cli.json·/api/v1/tools/opencode.json - From a terminal
anchor compare droid-cli opencode(the CLI) - Over MCP
compare_tools {"a": "droid-cli", "b": "opencode"}at/mcp, no key