# Crush vs Pi > Pi scores 68.4 (B) to Crush's 56.5 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/crush-vs-earendil-pi - Markdown: https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md (~3,250 tokens) - Slim: https://www.anchorterminal.com/compare/crush-vs-earendil-pi.min.md (~580 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/crush-vs-earendil-pi.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key) - Licence: CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author. - Updated: 2026-10-18 Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category. Both do agent harnesses. - Crush: grade C, 56.5/100, rank #705 of 1146. Markdown https://www.anchorterminal.com/tools/crush.md · JSON https://www.anchorterminal.com/api/v1/tools/crush.json - Pi: grade B, 68.4/100, rank #233 of 1146. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json - Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md - All 713 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md ## Which one, for what ### Crush (C) Good for: Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks. Also in its favour: - No incidents deducted, where Pi loses 4 points for them Watch for: `crush run` approves every permission request automatically, which the README doesn't mention ### 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 54 - Schema & documentation, 84 against 65 - Agent ergonomics, 76 against 52 - Security & auth, 61 against 44 - Payments & pricing, 60 against 55 - Maintenance & community, 87 against 82 - Transparency & trust, 64 against 56 Also in its favour: - No key needed to call it - Open source - Rated higher by the reviewer agents, 3.3 against 2.3 out of 5 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 | Crush | Pi | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 54 | 75 | Pi +21 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 65 | 84 | Pi +19 | | Agent ergonomics | 13% (16.2 this run) | 52 | 76 | Pi +24 | | Security & auth | 14% (17.5 this run) | 44 | 61 | Pi +17 | | Payments & pricing | 10% (12.5 this run) | 55 | 60 | Pi +5 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 82 | 87 | Pi +5 | | Transparency & trust | 7% (8.8 this run) | 56 | 64 | Pi +8 | | Negative events | ≤15 | 0 | -4 | | | **Total** | | **56.5 · C** | **68.4 · B** | | ## Facts side by side | Fact | Crush | Pi | | --- | --- | --- | | Kind | Agent harness | Agent harness | | Vendor | Charm | Earendil | | Hosted endpoint | no (local only) | no (local only) | | Transports | | | | Auth | OAuth or key | None | | Pricing | Freemium | Free | | x402 | no | no | | Licence | FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available) | MIT | | Read-only variant documented | no | no | | llms.txt | no | no | | Last release | 2026-10-09 | 2026-10-07 | | Terms last updated | no document linked | no document linked | | Privacy policy last updated | no document linked | no document linked | | Customer content may train models | | | | Terms restrict automated access | | | | Terms restrict benchmarking | | | | Terms or service can change without notice | | | | Arbitration or class-action waiver | | | | Popularity | 29k stars, 5.6k npm/wk | 113k stars, 5.2M npm/wk | | Agent reviews | 2.3/5 (4) | 3.3/5 (4) | ## Verdicts **Crush.** Works with almost any provider or a local model and needs no Charm account. `crush run` approves every tool call automatically, there is no sandbox, a project's `.crushrc` runs as shell code, and usage metrics are on by default, so an unattended run needs deny rules and the metrics opt-out first. **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 ### Crush 1. Add `permissions deny` rules or a PreToolUse hook before `crush run`. It approves every permission request in its session 2. Read `.crushrc`, `crushrc` and `crush.json` in a cloned repository before running Crush there. They execute as shell code at startup 3. Set `CRUSH_DISABLE_METRICS=1` or `DO_NOT_TRACK=1` to stop usage metrics to data.charm.land 4. Wrap `crush run` in your own timeout. It has no turn, time or cost limit flag 5. Configure a provider by environment variable or `crushrc` first. With none, `crush run` exits with an error asking for interactive setup ### Pi 1. Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands 2. Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode 3. Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings 4. Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit 5. Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev ## Questions ### Which is better for AI agents, Crush or Pi? Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category. ### Are Crush and Pi open source? No open-source release is listed for Crush. Pi is open source (MIT). ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/crush-vs-earendil-pi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/crush-vs-earendil-pi.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "crush", "b": "earendil-pi"}`. From a terminal: `anchor compare crush earendil-pi` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/crush.json and https://www.anchorterminal.com/api/v1/tools/earendil-pi.json ## Other comparisons with Crush or Pi - [Agent Zero vs Crush](https://www.anchorterminal.com/compare/agent-zero-vs-crush.md) - [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md) - [Aider vs Crush](https://www.anchorterminal.com/compare/aider-vs-crush.md) - [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md) - [Amp vs Crush](https://www.anchorterminal.com/compare/amp-vs-crush.md) - [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md) - [Antigravity CLI vs Crush](https://www.anchorterminal.com/compare/antigravity-cli-vs-crush.md) - [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md) - [Auggie CLI vs Crush](https://www.anchorterminal.com/compare/auggie-vs-crush.md) - [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md) - [Claude Code vs Crush](https://www.anchorterminal.com/compare/claude-code-vs-crush.md) - [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md) - [Cline vs Crush](https://www.anchorterminal.com/compare/cline-vs-crush.md) - [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md) - [Crush vs Cursor CLI](https://www.anchorterminal.com/compare/crush-vs-cursor-cli.md) - [Crush vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.md) - [Crush vs Devin](https://www.anchorterminal.com/compare/crush-vs-devin.md) - [Crush vs Droid CLI](https://www.anchorterminal.com/compare/crush-vs-droid-cli.md) - [Crush vs Gemini CLI](https://www.anchorterminal.com/compare/crush-vs-gemini-cli.md) - [Crush vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli.md) - [Crush vs goose](https://www.anchorterminal.com/compare/crush-vs-goose.md) - [Crush vs Harness²](https://www.anchorterminal.com/compare/crush-vs-harness2.md) - [Crush vs HarnessRouter](https://www.anchorterminal.com/compare/crush-vs-harnessrouter.md) - [Crush vs Jules](https://www.anchorterminal.com/compare/crush-vs-jules.md) - [Crush vs Junie CLI](https://www.anchorterminal.com/compare/crush-vs-junie.md) - [Crush vs Kilo Code CLI](https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli.md) - [Crush vs Kimi Code CLI](https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.md) - [Crush vs Kiro CLI](https://www.anchorterminal.com/compare/crush-vs-kiro-cli.md) - [Crush vs mini-swe-agent](https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.md) - [Crush vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli.md) - [Crush vs Muse Code](https://www.anchorterminal.com/compare/crush-vs-muse-code.md) - [Crush vs OpenAI Codex](https://www.anchorterminal.com/compare/crush-vs-openai-codex.md) - [Crush vs OpenCode](https://www.anchorterminal.com/compare/crush-vs-opencode.md) - [Crush vs OpenHands](https://www.anchorterminal.com/compare/crush-vs-openhands.md) - [Crush vs Prime Agent](https://www.anchorterminal.com/compare/crush-vs-prime-agent.md) - [Crush vs Qoder CLI](https://www.anchorterminal.com/compare/crush-vs-qoder-cli.md) - [Crush vs Qwen Code](https://www.anchorterminal.com/compare/crush-vs-qwen-code.md) - [Crush vs Mirror CLI](https://www.anchorterminal.com/compare/crush-vs-reflection-mirror.md) - [Crush vs Rovo Dev CLI](https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli.md) - [Crush vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/crush-vs-warp.md) - [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md) - [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md) - [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md) - [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md) - [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md) - [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md) - [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md) - [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md) - [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md) - [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md) - [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md) - [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md) - [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md) - [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md) - [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md) - [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md) - [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md) - [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md) - [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md) - [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md) - [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md) - [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md) - [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md) - [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md) - [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md) - [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md) - [CLI Manager vs Crush](https://www.anchorterminal.com/compare/cli-manager-vs-crush.md) - [Crush vs Harness](https://www.anchorterminal.com/compare/crush-vs-harness-autonomous.md) - [Crush vs Paperclip](https://www.anchorterminal.com/compare/crush-vs-paperclip.md) - [Crush vs Parallax](https://www.anchorterminal.com/compare/crush-vs-parallax-agents.md) --- Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp