{
  "data": {
    "a": {
      "slug": "claude-code",
      "name": "Claude Code",
      "vendor": "Anthropic",
      "vendorUrl": "https://www.anthropic.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Anthropic's coding agent as a terminal program, also in VS Code, JetBrains, the desktop app and Anthropic-hosted cloud sessions.",
      "url": "https://www.anchorterminal.com/tools/claude-code",
      "markdownUrl": "https://www.anchorterminal.com/tools/claude-code.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/claude-code.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/claude-code.json",
      "repo": "https://github.com/anthropics/claude-code",
      "license": "Proprietary. `LICENSE.md` says All rights reserved, with use under Anthropic's Commercial Terms. The GitHub repository holds the changelog, plugins and examples, not the source",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@anthropic-ai/claude-code"
        }
      ],
      "auth": "mixed",
      "authNotes": "Sign in through the browser with a Pro, Max, Team or Enterprise claude.ai account, or use a Claude Console API key (`ANTHROPIC_API_KEY`), or Amazon Bedrock, Google Cloud, Microsoft Foundry or Claude Platform on AWS credentials. The free claude.ai plan doesn't include Claude Code.",
      "pricing": "paid",
      "pricingNotes": "Free to download, and it needs a paid plan or API tokens to run. Pro is $17 a month billed annually or $20 monthly, Max from $100 a month, Team $20 or $25 a standard seat and $100 or $125 a premium seat, Enterprise $20 a seat plus usage at API rates, or pay as you go at Claude API token prices. On a plan Claude Code shares the plan's usage limits, and the pricing page gives no number for them (checked 2026-10-02).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the pricing page (checked 2026-10-02).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 141000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-02"
      },
      "docsUrl": "https://code.claude.com/docs/en/overview",
      "llmsTxt": "https://code.claude.com/docs/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "claude-only",
        "mcp",
        "llms-txt",
        "telemetry-default-on",
        "status-page",
        "card-required"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "disclosure": "Anthropic makes the models this research run and the review panel run on. This listing was graded by agents running on Claude, by the same published checklist as every other listing, and the panel doesn't review it, because every reviewer runs on Claude too.",
      "anchor": {
        "graded": true,
        "score": 61.9,
        "grade": "C",
        "agentReady": false,
        "rank": 316,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 87,
          "maintenance": 82,
          "payments": 20,
          "reliability": 50,
          "schema": 80,
          "security": 80,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -6,
        "negativeNotes": [
          "2025-10-03 to 2026-06-25. 22 published advisories, 16 high, 4 moderate and 2 low, among them approval-prompt bypasses through command injection (GHSA-qgqw-h4xq-7w8w, GHSA-mhg7-666j-cqg4, GHSA-66q4-vfjg-2qhh, GHSA-xq4m-mc3c-vvg3), sandbox escapes (GHSA-ff64-7w26-62rf, GHSA-vp62-r36r-9xqp, GHSA-7835-87q9-rgvv), workspace-trust prompt bypasses that ran code from a cloned repository (GHSA-5hhx-v7f6-x7gv, GHSA-mmgp-wc2j-qcv7, GHSA-q5hj-mxqh-vv77) and a WebFetch exfiltration path through a pre-approved domain (GHSA-fg94-h982-f3mm). All fixed and published, so each high counts 2 points inside six months and 1 point after, which passes our cap of -6 for fixed and published advisories, the same cap the Claude Agent SDK listing used for the same advisories. None published since 25 June 2026 (https://github.com/anthropics/claude-code/security/advisories)"
        ],
        "verdict": "Six permission modes, allow, ask and deny rules down to command arguments, PreToolUse hooks, and managed settings that can disable bypass and auto mode. The sandbox is off by default and native Windows has none.",
        "bestFor": "A developer or a pipeline that wants Claude doing repository work with fine-grained, centrally managed permissions and an SDK for the same loop.",
        "disclosure": "Anthropic makes the models this research run and the review panel run on. This listing was graded by agents running on Claude, by the same published checklist as every other listing, and the panel doesn't review it, because every reviewer runs on Claude too.",
        "strengths": [
          "Six permission modes, allow, ask and deny rules down to command arguments, PreToolUse hooks, and managed settings that can disable bypass and auto mode",
          "An OS sandbox (Seatbelt, bubblewrap) whose network proxy denies every host outside an allowlist that starts empty",
          "`claude -p` with json and stream-json output, `--max-turns`, `--max-budget-usd`, resume and fork, and Python and TypeScript SDKs for the same loop",
          "Signed apt, dnf and apk repositories, a GPG-signed checksum manifest and a stable channel that skips releases with major regressions",
          "Telemetry documented per provider and per service, each with its own opt-out"
        ],
        "weaknesses": [
          "The sandbox is off by default and native Windows has none",
          "Auto mode, a classifier rather than a person, has been the starting mode for interactive sessions on every plan since 28 September 2026",
          "22 security advisories in the year to 25 June 2026, 16 rated high",
          "Usage metrics on by default on the Claude API, and error reports on Pro and Max sign-ins",
          "Closed source, Claude models only, and no free plan includes it"
        ],
        "agentNotes": [
          "Pass `--permission-mode` on every `claude -p` run. An unset mode can start in auto mode, depending on version, plan, provider and telemetry",
          "Turn on the sandbox with `sandbox.enabled` and set `allowUnsandboxedCommands` to false, or Claude can retry a blocked command outside it",
          "Set `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` on a Claude login to stop metrics and error reports in one go",
          "Set `autoUpdatesChannel` to stable or `DISABLE_AUTOUPDATER=1` in CI. Native installs update themselves about once a day",
          "Cap pipeline runs with `--max-turns` and `--max-budget-usd`"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.9
          }
        ],
        "editorialScores": {
          "ergonomics": 87,
          "maintenance": 82,
          "payments": 20,
          "reliability": 50,
          "schema": 80,
          "security": 80,
          "transparency": 68
        },
        "provenanceScore": 94
      },
      "connect": {
        "install": "curl -fsSL https://claude.ai/install.sh | bash   # or: brew install --cask claude-code",
        "headless": {
          "run": "claude -p \"fix the failing test\" --output-format json --permission-mode acceptEdits --max-turns 20"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/claude-code"
      },
      "sameCompany": [
        "anthropic-api",
        "claude-agent-sdk"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "$17 a month billed annually"
        },
        {
          "item": "Max plan",
          "unit": "month",
          "usd": 100,
          "note": "lowest Max tier"
        }
      ],
      "provenance": {
        "legalEntity": "Anthropic, PBC",
        "domain": "claude.com",
        "domainRegistered": "1995-05-24",
        "domainNote": "claude.com was registered in 1995, long before Anthropic bought it. Free, Pro and Max users are under the Consumer Terms, Team, Enterprise and API users under the Commercial Terms. The security.txt state is from the claude-agent-sdk listing's check of 26 September 2026.",
        "endpointOnVendorDomain": null,
        "terms": "https://www.anthropic.com/legal/commercial-terms",
        "privacy": "https://www.anthropic.com/legal/privacy",
        "statusPage": "https://status.claude.com",
        "changelog": "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/claude-code.json",
      "live": {
        "slug": "claude-code",
        "vendorStatus": {
          "page": "https://status.claude.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-08T17:38:16.741883162Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "anthropics/claude-code",
            "version": "v2.1.294",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:05:28.571690038Z"
          },
          {
            "registry": "npm",
            "name": "@anthropic-ai/claude-code",
            "version": "2.1.293",
            "seenAt": "2026-10-08T16:05:25.416280478Z"
          }
        ],
        "githubStars": 149871,
        "npmWeekly": 14786283,
        "securityTxt": {
          "url": "https://claude.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:46.229446919Z"
        },
        "llmsTxt": {
          "url": "https://code.claude.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:13.323627435Z"
        },
        "domain": {
          "domain": "claude.com",
          "registered": "1995-05-24",
          "source": "https://rdap.verisign.com/com/v1/domain/claude.com",
          "checkedAt": "2026-10-04T13:04:27.501644209Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-07T18:08:56.603683021Z",
            "changedAt": "2026-10-07T18:08:56.603683021Z",
            "fingerprint": "b6cbbc1a0d93"
          }
        ],
        "updatedAt": "2026-10-08T17:38:16.741883162Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust.",
    "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": 170,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 6,
        "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": 0,
        "avgRating": 0,
        "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.1.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:09:44.573412777Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.1.0",
            "seenAt": "2026-10-08T16:09:41.369786574Z"
          }
        ],
        "githubStars": 113482,
        "npmWeekly": 5201697,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:42.51766104Z"
        },
        "updatedAt": "2026-10-08T16:09:44.573412777Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Anthropic",
        "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": "Paid",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary. `LICENSE.md` says All rights reserved, with use under Anthropic's Commercial Terms. The GitHub repository holds the changelog, plugins and examples, not the source",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "141k stars",
        "b": "113k stars, 5.2M npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Claude Code or Pi?"
      },
      {
        "answer": "No open-source release is listed for Claude Code. Pi is open source (MIT).",
        "question": "Are Claude Code and Pi open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 87 against 76",
          "Security \u0026 auth, 80 against 61",
          "Transparency \u0026 trust, 81 against 64"
        ],
        "also": null,
        "goodFor": "A developer or a pipeline that wants Claude doing repository work with fine-grained, centrally managed permissions and an SDK for the same loop.",
        "slug": "claude-code",
        "watchFor": "The sandbox is off by default and native Windows has none"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 50",
          "Payments \u0026 pricing, 60 against 20",
          "Maintenance \u0026 community, 87 against 82"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card",
          "Open source"
        ],
        "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 harness"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-claude-code.json",
        "title": "Aider vs Claude Code",
        "url": "https://www.anchorterminal.com/compare/aider-vs-claude-code"
      },
      {
        "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-claude-code.json",
        "title": "Amp vs Claude Code",
        "url": "https://www.anchorterminal.com/compare/amp-vs-claude-code"
      },
      {
        "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/claude-code-vs-cline.json",
        "title": "Claude Code vs Cline",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-cline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-cursor-cli.json",
        "title": "Claude Code vs Cursor CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-cursor-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-devin.json",
        "title": "Claude Code vs Devin",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-devin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli.json",
        "title": "Claude Code vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-github-copilot-cli.json",
        "title": "Claude Code vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-goose.json",
        "title": "Claude Code vs goose",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-kiro-cli.json",
        "title": "Claude Code vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-openai-codex.json",
        "title": "Claude Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-opencode.json",
        "title": "Claude Code vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-openhands.json",
        "title": "Claude Code vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-prime-agent.json",
        "title": "Claude Code vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-qwen-code.json",
        "title": "Claude Code vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-qwen-code"
      },
      {
        "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/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/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/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-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-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-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/claude-code-vs-paperclip.json",
        "title": "Claude Code vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-paperclip"
      }
    ],
    "scores": [
      {
        "by": 25,
        "claude-code": 50,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "claude-code": 80,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 11,
        "claude-code": 87,
        "earendil-pi": 76,
        "edge": "claude-code",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 19,
        "claude-code": 80,
        "earendil-pi": 61,
        "edge": "claude-code",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 40,
        "claude-code": 20,
        "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,
        "claude-code": 82,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 17,
        "claude-code": 81,
        "earendil-pi": 64,
        "edge": "claude-code",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust. Both do agent harness.",
    "verdicts": {
      "claude-code": "Six permission modes, allow, ask and deny rules down to command arguments, PreToolUse hooks, and managed settings that can disable bypass and auto mode. The sandbox is off by default and native Windows has none.",
      "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/claude-code-vs-earendil-pi",
    "json": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md",
    "slim": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust. Both do agent harness.\n\n- Claude Code: grade C, 61.9/100, rank #316 of 629. Markdown https://www.anchorterminal.com/tools/claude-code.md · JSON https://www.anchorterminal.com/api/v1/tools/claude-code.json\n- Pi: grade B, 68.4/100, rank #170 of 629. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n\n## Which one, for what\n\n### Claude Code (C)\n\nGood for: A developer or a pipeline that wants Claude doing repository work with fine-grained, centrally managed permissions and an SDK for the same loop.\n\nAhead on:\n- Agent ergonomics, 87 against 76\n- Security \u0026 auth, 80 against 61\n- Transparency \u0026 trust, 81 against 64\n\nWatch for: The sandbox is off by default and native Windows has none\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 50\n- Payments \u0026 pricing, 60 against 20\n- Maintenance \u0026 community, 87 against 82\n\nAlso in its favour:\n- No key needed to call it\n- Free to start without a card\n- Open source\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 | Claude Code | Pi | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 75 | Pi +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 84 | Pi +4 |\n| Agent ergonomics | 13% (16.2 this run) | 87 | 76 | Claude Code +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 80 | 61 | Claude Code +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 60 | Pi +40 |\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) | 81 | 64 | Claude Code +17 |\n| Negative events | ≤15 | -6 | -4 | |\n| **Total** | | **61.9 · C** | **68.4 · B** | |\n\n## Facts side by side\n\n| Fact | Claude Code | Pi |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Anthropic | Earendil |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | None |\n| Pricing | Paid | Free |\n| x402 | no | no |\n| Licence | Proprietary. `LICENSE.md` says All rights reserved, with use under Anthropic's Commercial Terms. The GitHub repository holds the changelog, plugins and examples, not the source | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-01 | 2026-10-07 |\n| Terms last updated | no date given | no document linked |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | yes, with an opt-out |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | yes |  |\n| Popularity | 141k stars | 113k stars, 5.2M npm/wk |\n\n## Verdicts\n\n**Claude Code.** Six permission modes, allow, ask and deny rules down to command arguments, PreToolUse hooks, and managed settings that can disable bypass and auto mode. The sandbox is off by default and native Windows has none.\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### Claude Code\n\n1. Pass `--permission-mode` on every `claude -p` run. An unset mode can start in auto mode, depending on version, plan, provider and telemetry\n2. Turn on the sandbox with `sandbox.enabled` and set `allowUnsandboxedCommands` to false, or Claude can retry a blocked command outside it\n3. Set `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` on a Claude login to stop metrics and error reports in one go\n4. Set `autoUpdatesChannel` to stable or `DISABLE_AUTOUPDATER=1` in CI. Native installs update themselves about once a day\n5. Cap pipeline runs with `--max-turns` and `--max-budget-usd`\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, Claude Code or Pi?\n\nPi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust.\n\n### Are Claude Code and Pi open source?\n\nNo open-source release is listed for Claude Code. Pi is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"claude-code\", \"b\": \"earendil-pi\"}`. From a terminal: `anchor compare claude-code earendil-pi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/claude-code.json and https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n\n## Other comparisons with Claude Code or Pi\n\n- [Aider vs Claude Code](https://www.anchorterminal.com/compare/aider-vs-claude-code.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Amp vs Claude Code](https://www.anchorterminal.com/compare/amp-vs-claude-code.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Claude Code vs Cline](https://www.anchorterminal.com/compare/claude-code-vs-cline.md)\n- [Claude Code vs Cursor CLI](https://www.anchorterminal.com/compare/claude-code-vs-cursor-cli.md)\n- [Claude Code vs Devin](https://www.anchorterminal.com/compare/claude-code-vs-devin.md)\n- [Claude Code vs Gemini CLI](https://www.anchorterminal.com/compare/claude-code-vs-gemini-cli.md)\n- [Claude Code vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/claude-code-vs-github-copilot-cli.md)\n- [Claude Code vs goose](https://www.anchorterminal.com/compare/claude-code-vs-goose.md)\n- [Claude Code vs Kiro CLI](https://www.anchorterminal.com/compare/claude-code-vs-kiro-cli.md)\n- [Claude Code vs OpenAI Codex](https://www.anchorterminal.com/compare/claude-code-vs-openai-codex.md)\n- [Claude Code vs OpenCode](https://www.anchorterminal.com/compare/claude-code-vs-opencode.md)\n- [Claude Code vs OpenHands](https://www.anchorterminal.com/compare/claude-code-vs-openhands.md)\n- [Claude Code vs Prime Agent](https://www.anchorterminal.com/compare/claude-code-vs-prime-agent.md)\n- [Claude Code vs Qwen Code](https://www.anchorterminal.com/compare/claude-code-vs-qwen-code.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-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 Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.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 Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Claude Code vs Paperclip](https://www.anchorterminal.com/compare/claude-code-vs-paperclip.md)\n\n## Disclosure\n\n- Anthropic makes the models this research run and the review panel run on. This listing was graded by agents running on Claude, by the same published checklist as every other listing, and the panel doesn't review it, because every reviewer runs on Claude too.\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Claude Code vs Pi",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) on agent readiness against Claude Code's 61.9 (C), and leads in 4 of 7 scored categories. Claude Code leads on agent ergonomics, security \u0026 auth and transparency \u0026 trust. Both do agent harness. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Claude Code C 61.9",
      "Pi B 68.4",
      "scores"
    ],
    "h1": "Claude Code vs Pi",
    "image": "https://www.anchorterminal.com/assets/og/compare-claude-code-vs-earendil-pi.png",
    "path": "/compare/claude-code-vs-earendil-pi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Claude Code vs Pi for AI agents, C 61.9 vs B 68.4 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 680
  },
  "version": 1
}
