{
  "data": {
    "a": {
      "slug": "crush",
      "name": "Crush",
      "vendor": "Charm",
      "vendorUrl": "https://charm.land",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Terminal coding agent from Charm, written in Go, that works with the model of the owner's choice. It has a TUI, a one-shot `crush run` mode, LSP context, MCP servers, Agent Skills and an optional local client-server mode.",
      "url": "https://www.anchorterminal.com/tools/crush",
      "markdownUrl": "https://www.anchorterminal.com/tools/crush.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/crush.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crush.json",
      "repo": "https://github.com/charmbracelet/crush",
      "license": "FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available)",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@charmland/crush"
        },
        {
          "registry": "go",
          "name": "github.com/charmbracelet/crush"
        }
      ],
      "auth": "mixed",
      "authNotes": "No Charm account is needed. Provider keys come from environment variables such as `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`, the model picker or a `crushrc`, local models need none, and Charm's Hyper provider uses a device login. `crush server` has no authentication and listens on a per-user Unix socket by default.",
      "pricing": "freemium",
      "pricingNotes": "The CLI is free to use under FSL-1.1-MIT. You pay your model provider, or Charm's Hyper subscription, which the README says has a free tier. Hyper's public provider file lists per-million-token figures for 22 models. Plan prices sit in a script-rendered app and weren't read.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs folder or the source (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 29000,
        "npmWeekly": 5594,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://github.com/charmbracelet/crush#readme",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "harness",
        "coding-agent",
        "cli",
        "source-available",
        "go",
        "mcp",
        "telemetry-default-on",
        "pre-1.0",
        "freemium",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.5,
        "grade": "C",
        "agentReady": false,
        "rank": 705,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 26,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 82,
          "payments": 55,
          "reliability": 54,
          "schema": 65,
          "security": 44,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.",
        "strengths": [
          "Any OpenAI- or Anthropic-compatible provider, Bedrock, Vertex, Azure and local models through Ollama, llama.cpp, LM Studio or LiteLLM, with no Charm account",
          "PreToolUse hooks, compatible with Claude Code's format, can block or rewrite tool calls",
          "Releases cosign-signed, with CodeQL, Grype and govulncheck in CI",
          "20 releases in the 90 days to 18 October 2026, the latest on 9 October",
          "Built for macOS, Linux, Windows, Android and three BSDs, with packages for npm, Homebrew, Winget, Scoop, apt, yum and Nix"
        ],
        "weaknesses": [
          "`crush run` approves every permission request automatically, which the README doesn't mention",
          "No sandbox, only a fixed list of refused shell commands",
          "A project's `.crushrc` and `$(...)` in `crush.json` run as code when Crush starts",
          "Usage metrics are on by default and are linked to the Hyper account after a Hyper login",
          "No JSON output, turn limit or cost limit for `crush run`, and the client-server API is opt-in and has no authentication"
        ],
        "agentNotes": [
          "Add `permissions deny` rules or a PreToolUse hook before `crush run`. It approves every permission request in its session",
          "Read `.crushrc`, `crushrc` and `crush.json` in a cloned repository before running Crush there. They execute as shell code at startup",
          "Set `CRUSH_DISABLE_METRICS=1` or `DO_NOT_TRACK=1` to stop usage metrics to data.charm.land",
          "Wrap `crush run` in your own timeout. It has no turn, time or cost limit flag",
          "Configure a provider by environment variable or `crushrc` first. With none, `crush run` exits with an error asking for interactive setup"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.5
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 82,
          "payments": 55,
          "reliability": 54,
          "schema": 65,
          "security": 44,
          "transparency": 49
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "npm install -g @charmland/crush   # or: brew install charmbracelet/tap/crush",
        "headless": {
          "command": "crush run --quiet \"$TASK\"",
          "env": {
            "CRUSH_DISABLE_METRICS": "1"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/crush"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Hyper, qwen3.8-max (default large model), input",
          "unit": "1m-tokens",
          "usd": 2,
          "note": "output $6, from Hyper's public provider file"
        },
        {
          "item": "Hyper, deepseek-v4.1-flash (default small model), input",
          "unit": "1m-tokens",
          "usd": 0.33,
          "note": "output $1.31, from Hyper's public provider file"
        }
      ],
      "provenance": {
        "legalEntity": "Charmbracelet, Inc.",
        "domain": "charm.land",
        "domainRegistered": "2023-08-17",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/charmbracelet/crush/releases",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "LICENSE.md and the charm.land footer name Charmbracelet, Inc.",
          "charm.land/privacy, charm.land/terms and charm.land/.well-known/security.txt return Charm's not-found page. Hyper links Terms of Service and a Privacy Policy at hyper.charm.land/legal, which render by script and weren't read.",
          "The organisation's SECURITY.md gives vt100@charm.sh for reports. The crush repository has no SECURITY.md of its own.",
          "Release notes are generated from commit messages on GitHub releases. There is no CHANGELOG file in the repository."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crush.json",
      "live": {
        "slug": "crush",
        "versions": [
          {
            "registry": "github",
            "name": "charmbracelet/crush",
            "version": "v0.98.1",
            "released": "2026-10-09",
            "seenAt": "2026-10-19T03:43:44.92151309Z"
          },
          {
            "registry": "npm",
            "name": "@charmland/crush",
            "version": "0.98.1",
            "seenAt": "2026-10-19T03:43:44.152270757Z"
          }
        ],
        "githubStars": 28696,
        "npmWeekly": 5594,
        "updatedAt": "2026-10-19T03:43:44.92151309Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category.",
    "b": {
      "slug": "earendil-pi",
      "name": "Pi",
      "vendor": "Earendil",
      "vendorUrl": "https://pi.dev",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Pi is an open-source terminal coding agent from Earendil, run on the owner's machine with any of 15 or more model providers. It has interactive, print, JSON and RPC modes, a TypeScript SDK and a built-in MCP client.",
      "url": "https://www.anchorterminal.com/tools/earendil-pi",
      "markdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/earendil-pi.json",
      "repo": "https://github.com/earendil-works/pi",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@earendil-works/pi-coding-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No Pi account needed. Model providers are connected with `/login` (a subscription or an API key, stored in `~/.pi/agent/auth.json`) or with environment variables such as `ANTHROPIC_API_KEY`. MCP servers take headers, bearer tokens from the environment or OAuth, with tokens kept in `~/.pi/agent/mcp-auth.json`. Radius, the optional hosted gateway, needs its own sign-in or `RADIUS_API_KEY`.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with no paid edition of the harness. The owner pays the model provider. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and no public price list was found (checked 2026-10-08).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or the docs (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 113417,
        "npmWeekly": 5201697,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://pi.dev/docs/latest",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "typescript",
        "mcp",
        "json-output",
        "rpc",
        "no-sandbox"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.4,
        "grade": "B",
        "agentReady": false,
        "rank": 233,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "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 json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.3.0",
            "released": "2026-10-15",
            "seenAt": "2026-10-19T03:47:02.761917636Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.3.0",
            "seenAt": "2026-10-19T03:47:01.967453236Z"
          }
        ],
        "githubStars": 116208,
        "npmWeekly": 2612036,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-18T15:53:35.560404115Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-18T13:28:47.513502795Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:35:04.783143423Z",
            "changedAt": "2026-10-16T22:28:32.441702707Z",
            "fingerprint": "2c7a827b9676"
          }
        ],
        "updatedAt": "2026-10-19T03:47:02.761917636Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Charm",
        "b": "Earendil",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available)",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-09",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "29k stars, 5.6k npm/wk",
        "b": "113k stars, 5.2M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2.3/5 (4)",
        "b": "3.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Crush or Pi?"
      },
      {
        "answer": "No open-source release is listed for Crush. Pi is open source (MIT).",
        "question": "Are Crush and Pi open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Pi loses 4 points for them"
        ],
        "goodFor": "Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.",
        "slug": "crush",
        "watchFor": "`crush run` approves every permission request automatically, which the README doesn't mention"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 54",
          "Schema \u0026 documentation, 84 against 65",
          "Agent ergonomics, 76 against 52",
          "Security \u0026 auth, 61 against 44",
          "Payments \u0026 pricing, 60 against 55",
          "Maintenance \u0026 community, 87 against 82",
          "Transparency \u0026 trust, 64 against 56"
        ],
        "also": [
          "No key needed to call it",
          "Open source",
          "Rated higher by the reviewer agents, 3.3 against 2.3 out of 5"
        ],
        "goodFor": "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.",
        "slug": "earendil-pi",
        "watchFor": "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-crush.json",
        "title": "Agent Zero vs Crush",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.json",
        "title": "Agent Zero vs Pi",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-crush.json",
        "title": "Aider vs Crush",
        "url": "https://www.anchorterminal.com/compare/aider-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-earendil-pi.json",
        "title": "Aider vs Pi",
        "url": "https://www.anchorterminal.com/compare/aider-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-crush.json",
        "title": "Amp vs Crush",
        "url": "https://www.anchorterminal.com/compare/amp-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-earendil-pi.json",
        "title": "Amp vs Pi",
        "url": "https://www.anchorterminal.com/compare/amp-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-crush.json",
        "title": "Antigravity CLI vs Crush",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.json",
        "title": "Antigravity CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-crush.json",
        "title": "Auggie CLI vs Crush",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.json",
        "title": "Auggie CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-crush.json",
        "title": "Claude Code vs Crush",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.json",
        "title": "Claude Code vs Pi",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-crush.json",
        "title": "Cline vs Crush",
        "url": "https://www.anchorterminal.com/compare/cline-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-earendil-pi.json",
        "title": "Cline vs Pi",
        "url": "https://www.anchorterminal.com/compare/cline-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-cursor-cli.json",
        "title": "Crush vs Cursor CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-cursor-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.json",
        "title": "Crush vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-devin.json",
        "title": "Crush vs Devin",
        "url": "https://www.anchorterminal.com/compare/crush-vs-devin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-droid-cli.json",
        "title": "Crush vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-gemini-cli.json",
        "title": "Crush vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli.json",
        "title": "Crush vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-goose.json",
        "title": "Crush vs goose",
        "url": "https://www.anchorterminal.com/compare/crush-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-harness2.json",
        "title": "Crush vs Harness²",
        "url": "https://www.anchorterminal.com/compare/crush-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter.json",
        "title": "Crush vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-jules.json",
        "title": "Crush vs Jules",
        "url": "https://www.anchorterminal.com/compare/crush-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-junie.json",
        "title": "Crush vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli.json",
        "title": "Crush vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.json",
        "title": "Crush vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kiro-cli.json",
        "title": "Crush vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.json",
        "title": "Crush vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli.json",
        "title": "Crush vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-muse-code.json",
        "title": "Crush vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/crush-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openai-codex.json",
        "title": "Crush vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-opencode.json",
        "title": "Crush vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/crush-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openhands.json",
        "title": "Crush vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-prime-agent.json",
        "title": "Crush vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/crush-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-qoder-cli.json",
        "title": "Crush vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-qwen-code.json",
        "title": "Crush vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/crush-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-reflection-mirror.json",
        "title": "Crush vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli.json",
        "title": "Crush vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-warp.json",
        "title": "Crush vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.json",
        "title": "Cursor CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.json",
        "title": "DeepSeek Harness (dsh) vs Pi",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-earendil-pi.json",
        "title": "Devin vs Pi",
        "url": "https://www.anchorterminal.com/compare/devin-vs-earendil-pi"
      },
      {
        "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/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/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.json",
        "title": "Pi vs Harness²",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules.json",
        "title": "Pi vs Jules",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
        "title": "Pi vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
        "title": "Pi vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
        "title": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-crush.json",
        "title": "CLI Manager vs Crush",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-harness-autonomous.json",
        "title": "Crush vs Harness",
        "url": "https://www.anchorterminal.com/compare/crush-vs-harness-autonomous"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-paperclip.json",
        "title": "Crush vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/crush-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-parallax-agents.json",
        "title": "Crush vs Parallax",
        "url": "https://www.anchorterminal.com/compare/crush-vs-parallax-agents"
      }
    ],
    "scores": [
      {
        "by": 21,
        "crush": 54,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "crush": 65,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 24,
        "crush": 52,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 17,
        "crush": 44,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "crush": 55,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "crush": 82,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 8,
        "crush": 56,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category. Both do agent harnesses.",
    "tutorials": [],
    "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.",
      "earendil-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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi",
    "json": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category. Both do agent harnesses.\n\n- 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\n- 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\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 713 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Crush (C)\n\nGood for: Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.\n\nAlso in its favour:\n- No incidents deducted, where Pi loses 4 points for them\n\nWatch for: `crush run` approves every permission request automatically, which the README doesn't mention\n\n### Pi (B)\n\nGood 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.\n\nAhead on:\n- Reliability, 75 against 54\n- Schema \u0026 documentation, 84 against 65\n- Agent ergonomics, 76 against 52\n- Security \u0026 auth, 61 against 44\n- Payments \u0026 pricing, 60 against 55\n- Maintenance \u0026 community, 87 against 82\n- Transparency \u0026 trust, 64 against 56\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n- Rated higher by the reviewer agents, 3.3 against 2.3 out of 5\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n\n## Score by category\n\n| Category | Weight | Crush | Pi | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 54 | 75 | Pi +21 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 84 | Pi +19 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 76 | Pi +24 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 61 | Pi +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 55 | 60 | Pi +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 87 | Pi +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 64 | Pi +8 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **56.5 · C** | **68.4 · B** | |\n\n## Facts side by side\n\n| Fact | Crush | Pi |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Charm | Earendil |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | None |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available) | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-09 | 2026-10-07 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 29k stars, 5.6k npm/wk | 113k stars, 5.2M npm/wk |\n| Agent reviews | 2.3/5 (4) | 3.3/5 (4) |\n\n## Verdicts\n\n**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.\n\n**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.\n\n## Before you call either\n\n### Crush\n\n1. Add `permissions deny` rules or a PreToolUse hook before `crush run`. It approves every permission request in its session\n2. Read `.crushrc`, `crushrc` and `crush.json` in a cloned repository before running Crush there. They execute as shell code at startup\n3. Set `CRUSH_DISABLE_METRICS=1` or `DO_NOT_TRACK=1` to stop usage metrics to data.charm.land\n4. Wrap `crush run` in your own timeout. It has no turn, time or cost limit flag\n5. Configure a provider by environment variable or `crushrc` first. With none, `crush run` exits with an error asking for interactive setup\n\n### Pi\n\n1. Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands\n2. Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode\n3. Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings\n4. Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit\n5. Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev\n\n## Questions\n\n### Which is better for AI agents, Crush or Pi?\n\nPi scores 68.4 (B) on agent readiness against Crush's 56.5 (C), and leads in every scored category.\n\n### Are Crush and Pi open source?\n\nNo open-source release is listed for Crush. Pi is open source (MIT).\n\n\n## For agents\n\n- 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\n- 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`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/crush.json and https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n\n## Other comparisons with Crush or Pi\n\n- [Agent Zero vs Crush](https://www.anchorterminal.com/compare/agent-zero-vs-crush.md)\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Aider vs Crush](https://www.anchorterminal.com/compare/aider-vs-crush.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Amp vs Crush](https://www.anchorterminal.com/compare/amp-vs-crush.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Antigravity CLI vs Crush](https://www.anchorterminal.com/compare/antigravity-cli-vs-crush.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Auggie CLI vs Crush](https://www.anchorterminal.com/compare/auggie-vs-crush.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Claude Code vs Crush](https://www.anchorterminal.com/compare/claude-code-vs-crush.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Cline vs Crush](https://www.anchorterminal.com/compare/cline-vs-crush.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Crush vs Cursor CLI](https://www.anchorterminal.com/compare/crush-vs-cursor-cli.md)\n- [Crush vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.md)\n- [Crush vs Devin](https://www.anchorterminal.com/compare/crush-vs-devin.md)\n- [Crush vs Droid CLI](https://www.anchorterminal.com/compare/crush-vs-droid-cli.md)\n- [Crush vs Gemini CLI](https://www.anchorterminal.com/compare/crush-vs-gemini-cli.md)\n- [Crush vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli.md)\n- [Crush vs goose](https://www.anchorterminal.com/compare/crush-vs-goose.md)\n- [Crush vs Harness²](https://www.anchorterminal.com/compare/crush-vs-harness2.md)\n- [Crush vs HarnessRouter](https://www.anchorterminal.com/compare/crush-vs-harnessrouter.md)\n- [Crush vs Jules](https://www.anchorterminal.com/compare/crush-vs-jules.md)\n- [Crush vs Junie CLI](https://www.anchorterminal.com/compare/crush-vs-junie.md)\n- [Crush vs Kilo Code CLI](https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli.md)\n- [Crush vs Kimi Code CLI](https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.md)\n- [Crush vs Kiro CLI](https://www.anchorterminal.com/compare/crush-vs-kiro-cli.md)\n- [Crush vs mini-swe-agent](https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.md)\n- [Crush vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli.md)\n- [Crush vs Muse Code](https://www.anchorterminal.com/compare/crush-vs-muse-code.md)\n- [Crush vs OpenAI Codex](https://www.anchorterminal.com/compare/crush-vs-openai-codex.md)\n- [Crush vs OpenCode](https://www.anchorterminal.com/compare/crush-vs-opencode.md)\n- [Crush vs OpenHands](https://www.anchorterminal.com/compare/crush-vs-openhands.md)\n- [Crush vs Prime Agent](https://www.anchorterminal.com/compare/crush-vs-prime-agent.md)\n- [Crush vs Qoder CLI](https://www.anchorterminal.com/compare/crush-vs-qoder-cli.md)\n- [Crush vs Qwen Code](https://www.anchorterminal.com/compare/crush-vs-qwen-code.md)\n- [Crush vs Mirror CLI](https://www.anchorterminal.com/compare/crush-vs-reflection-mirror.md)\n- [Crush vs Rovo Dev CLI](https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli.md)\n- [Crush vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/crush-vs-warp.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md)\n- [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md)\n- [CLI Manager vs Crush](https://www.anchorterminal.com/compare/cli-manager-vs-crush.md)\n- [Crush vs Harness](https://www.anchorterminal.com/compare/crush-vs-harness-autonomous.md)\n- [Crush vs Paperclip](https://www.anchorterminal.com/compare/crush-vs-paperclip.md)\n- [Crush vs Parallax](https://www.anchorterminal.com/compare/crush-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "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.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-19",
    "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",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Crush vs Pi",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Crush's 56.5 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Crush C 56.5",
      "Pi B 68.4",
      "scores"
    ],
    "h1": "Crush vs Pi",
    "image": "https://www.anchorterminal.com/assets/og/compare-crush-vs-earendil-pi.png",
    "path": "/compare/crush-vs-earendil-pi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Crush vs Pi for AI agents in 2026: scores and prices | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi"
  },
  "tokens": {
    "markdown": 3250,
    "slim": 580
  },
  "version": 1
}
