Head to head · Agent harnesses · October 2026 research run
Droid CLI vs Pi
Pi scores 68.4 (B) on agent readiness against Droid CLI's 59.1 (C), and leads in 5 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 Pi 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
Pi B
Good for Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.
Ahead on
- Reliability, 75 against 49
- Schema & documentation, 84 against 79
- Payments & pricing, 60 against 10
- Maintenance & community, 87 against 79
Also in its favour
- No key needed to call it
- Free to start without a card
- Open source
Watch for
No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt
Score by category
| Category | Weight this run | Droid CLI | Pi | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 49 | 75 | Pi +26 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 79 | 84 | Pi +5 |
| Agent ergonomics | 13%16.2 | 72 | 76 | Pi +4 |
| Security & auth | 14%17.5 | 63 | 61 | Droid CLI +2 |
| Payments & pricing | 10%12.5 | 10 | 60 | Pi +50 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 79 | 87 | Pi +8 |
| Transparency & trust | 7%8.8 | 64 | 64 | even |
| Negative events | ≤15 | 0 | -4 | |
| Total | 59.1 · C | 68.4 · B |
Facts side by side
| Fact | Droid CLI | Pi |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Factory | Earendil |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | OAuth or key | None |
| Pricing | Paid | Free |
| 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-10-07 |
| Terms last updated | 2026-07-14 | no document linked |
| Privacy policy last updated | 2026-08-20 | no document linked |
| Customer content may train models | not found in the text | |
| Terms restrict automated access | not found in the text | |
| Terms restrict benchmarking | yes | |
| Terms or service can change without notice | not found in the text | |
| Arbitration or class-action waiver | yes | |
| Popularity | 49 stars, 7.8k npm/wk | 113k stars, 5.2M npm/wk |
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.
Pi
Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.
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
Pi
- Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands
- Use
pi --mode jsonand wait foragent_settled. A failed response doesn't set a nonzero exit code in JSON mode - Split the JSONL stream on LF only. Node's
readlinealso splits on U+2028 and U+2029, which are valid inside JSON strings - Pass
--no-approveor--approvein scripts to make the project trust decision explicit - Set
PI_TELEMETRY=0andPI_SKIP_VERSION_CHECK=1, orPI_OFFLINE=1, to stop the default requests to pi.dev
Questions
Which is better for AI agents, Droid CLI or Pi?
Pi scores 68.4 (B) on agent readiness against Droid CLI's 59.1 (C), and leads in 5 of 7 scored categories.
Are Droid CLI and Pi open source?
No open-source release is listed for Droid CLI. Pi is open source (MIT).
Other comparisons with Droid CLI or Pi
- Aider vs Droid CLI
- Aider vs Pi
- Amp vs Droid CLI
- Amp vs Pi
- Claude Code vs Droid CLI
- Claude Code vs Pi
- Cline vs Droid CLI
- Cline vs Pi
- Cursor CLI vs Droid CLI
- Cursor CLI vs Pi
- Devin vs Droid CLI
- Devin 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 OpenCode
- Droid CLI vs OpenHands
- Droid CLI vs Prime Agent
- Droid CLI vs Qwen Code
- Pi vs Gemini CLI
- Pi vs GitHub Copilot CLI
- Pi vs goose
- Pi vs Kilo Code CLI
- Pi vs Kiro CLI
- Pi vs OpenAI Codex
- Pi vs OpenCode
- Pi vs OpenHands
- Pi vs Prime Agent
- Pi vs Qwen Code
- Droid CLI vs Paperclip
Machine-readable
- This page as Markdown
/compare/droid-cli-vs-earendil-pi.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/droid-cli.json·/api/v1/tools/earendil-pi.json - From a terminal
anchor compare droid-cli earendil-pi(the CLI) - Over MCP
compare_tools {"a": "droid-cli", "b": "earendil-pi"}at/mcp, no key