{
  "data": {
    "a": {
      "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": 219,
        "ranked": true,
        "rankOf": 993,
        "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-12T21:59:27.480170747Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.1.0",
            "seenAt": "2026-10-12T21:59:27.239603218Z"
          }
        ],
        "githubStars": 114597,
        "npmWeekly": 4156854,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-12T15:43:42.802724889Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-11T13:19:49.150714299Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-12T19:56:08.809309582Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "82f9cb8bddf7"
          }
        ],
        "updatedAt": "2026-10-12T21:59:27.480170747Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Muse Code's 61.3 (C), and leads in 4 of 7 scored categories. Muse Code leads on security \u0026 auth.",
    "b": {
      "slug": "muse-code",
      "name": "Muse Code",
      "vendor": "Meta",
      "vendorUrl": "https://dev.meta.ai/products/muse-code",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Muse Code is Meta's coding agent for the terminal and CI, built for its Muse models. It plans, edits files and runs commands under approvals and an OS sandbox, interactively, headless through `muse exec` or from an SDK.",
      "url": "https://www.anchorterminal.com/tools/muse-code",
      "markdownUrl": "https://www.anchorterminal.com/tools/muse-code.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/muse-code.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/muse-code.json",
      "repo": "https://github.com/meta-models/muse-code-sdk",
      "license": "Proprietary binary, used under the Meta Model API Terms of Service, which cover Meta's coding harness. Subscriptions are also under the Meta Subscription Terms of Service. The TypeScript and Python SDKs in the linked repository are MIT.",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@muse-code/sdk"
        },
        {
          "registry": "pypi",
          "name": "muse-code-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "A browser sign-in to a Meta Model API account on first run, or a Meta Model API key in `META_API_KEY` or stored with `muse auth set`. A key takes priority over a browser session. CI runs and Meta Managed Accounts must use a key.",
      "pricing": "paid",
      "pricingNotes": "Pay-as-you-go at Meta Model API token prices, or a monthly plan at $5 (Everyday Usage), $15 (High Usage), $50 (Power Usage) or $200 (Maximum Usage), checked 2026-10-12. Muse Wonder Full needs Power Usage or Maximum Usage. No free plan or trial was found.",
      "priceSummary": "$5 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Muse Code docs, the subscription pages or dev.meta.ai/llms.txt, checked 12 October 2026. Plans are paid through Meta Accounts Centre and pay-as-you-go through Model API billing.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 63119,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://dev.meta.ai/docs/muse-code",
      "llmsTxt": "https://dev.meta.ai/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "llms-txt",
        "sandbox",
        "approvals",
        "card-required"
      ],
      "lastRelease": "2026-10-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.3,
        "grade": "C",
        "agentReady": false,
        "rank": 487,
        "ranked": true,
        "rankOf": 993,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 75,
          "payments": 20,
          "reliability": 45,
          "schema": 84,
          "security": 67,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": 0,
        "verdict": "Muse Code runs with approvals and an OS sandbox on by default, per-host network approval, an append-only event log and a headless mode with documented exit codes. It is the only route to Muse Wonder Full. It is closed source with undated release notes and no free route, and subscriptions allow training on code unless Contributor mode is turned off.",
        "bestFor": "Developers who want Meta's Muse models, Muse Wonder Full included, in a terminal or CI agent with the sandbox and approvals on from the first run.",
        "strengths": [
          "Sandbox on by default (Seatbelt on macOS, bubblewrap on Linux), with `.git`, `.muse` and `.agents` read-only and shell commands refused if containment can't be confirmed",
          "Network access is proxy-only by default, and the first connection to each new host, port or protocol stops for review",
          "`muse exec --json` streams JSONL events, with exit codes 0, 1, 2, 130 and 143 documented and `--max-model-steps` to cap a run",
          "A versioned session protocol (`muse serve`, `muse schema`) with MIT-licensed TypeScript and Python SDKs released in step with the CLI",
          "MCP over stdio and streamable HTTP with OAuth 2.1 sign-in, and named toolsets that select MCP tools by name or prefix"
        ],
        "weaknesses": [
          "Closed source, with no public CI or issue tracker for the CLI found and release notes that carry no dates",
          "Subscriptions default to Contributor mode, which lets Meta train on prompts, code and responses until it's turned off",
          "No free route. Plans run from $5 to $200 a month, and pay-as-you-go billing needs a card",
          "New sessions start in Auto-review, where an automated judge clears eligible approvals rather than a person",
          "MCP tools run outside the sandbox, and settings list telemetry options without documenting what is sent or the defaults"
        ],
        "agentNotes": [
          "Set `META_API_KEY` for headless runs. Browser sign-in isn't available in CI or for Meta Managed Accounts",
          "Gate on your own test command, not the exit code. `muse exec` returns 0 when the turn completes even if tests still fail",
          "Pass `--max-model-steps` on unattended runs so a stuck task can't loop",
          "Prefer `--disable-approval` to `--yolo` in CI so the sandbox stays on. On Linux the runner needs a working bubblewrap and a non-musl build",
          "Turn Contributor mode off in `/settings` before a subscription session touches private code"
        ],
        "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.3
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 75,
          "payments": 20,
          "reliability": 45,
          "schema": 84,
          "security": 67,
          "transparency": 46
        },
        "provenanceScore": 68
      },
      "connect": {
        "install": "curl -fsSL https://dev.meta.ai/install.sh | sh   # Windows: irm https://dev.meta.ai/install.ps1 | iex",
        "headless": {
          "env": {
            "META_API_KEY": "\u003cyour-key\u003e"
          },
          "run": "muse exec --json \"Refactor the auth module and run the tests.\""
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/muse-code"
      },
      "sameCompany": [
        "meta-model-api"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Everyday Usage plan",
          "unit": "month",
          "usd": 5,
          "note": "10 to 50 prompts every 5 hours."
        },
        {
          "item": "High Usage plan",
          "unit": "month",
          "usd": 15,
          "note": "5x the Everyday Usage plan."
        },
        {
          "item": "Power Usage plan",
          "unit": "month",
          "usd": 50,
          "note": "20x the Everyday Usage plan, with Muse Wonder Full."
        },
        {
          "item": "Maximum Usage plan",
          "unit": "month",
          "usd": 200,
          "note": "80x the Everyday Usage plan, with Muse Wonder Full."
        }
      ],
      "provenance": {
        "legalEntity": "Meta Platforms, Inc.",
        "domain": "meta.ai",
        "domainRegistered": "2017-12-16",
        "endpointOnVendorDomain": null,
        "terms": "https://dev.meta.ai/legal/terms-of-service",
        "privacy": "https://www.facebook.com/privacy/policy/",
        "statusPage": "",
        "changelog": "https://dev.meta.ai/docs/muse-code/changelog",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "The Meta Model API Terms of Service (last updated 9 October 2026) cover an artificial intelligence coding harness and name Meta Platforms, Inc., or Meta Platforms Ireland Limited in the European Region. The subscription page adds the Meta Subscription Terms of Service.",
          "The privacy field is the Meta Privacy Policy, which the terms link. www.facebook.com's robots.txt asks readers like ours not to fetch it, as the 8 October policy reading records, so it wasn't read.",
          "RDAP for meta.ai gives a registration date of 16 December 2017. The model calls go to api.meta.ai, and the binaries download from lookaside.facebook.com.",
          "No status page for Meta Model API was found. dev.meta.ai/status redirects to the home page.",
          "dev.meta.ai/.well-known/security.txt returns 404. The SDK repository's SECURITY.md sends vulnerability reports to bugbounty.meta.com.",
          "dev.meta.ai/code and developer.meta.com/ai/products/muse-code redirect to dev.meta.ai/products/muse-code."
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/muse-code.json",
      "live": {
        "slug": "muse-code",
        "versions": [
          {
            "registry": "npm",
            "name": "@muse-code/sdk",
            "version": "1.4.6",
            "seenAt": "2026-10-12T22:16:21.710476766Z"
          },
          {
            "registry": "pypi",
            "name": "muse-code-sdk",
            "version": "1.4.6",
            "released": "2026-10-11",
            "seenAt": "2026-10-12T22:16:21.971934495Z"
          }
        ],
        "githubStars": 57,
        "npmWeekly": 63119,
        "pypiWeekly": 198,
        "updatedAt": "2026-10-12T22:16:22.08500268Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "Meta",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary binary, used under the Meta Model API Terms of Service, which cover Meta's coding harness. Subscriptions are also under the Meta Subscription Terms of Service. The TypeScript and Python SDKs in the linked repository are MIT.",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-11",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "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": "113k stars, 5.2M npm/wk",
        "b": "63k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Muse Code's 61.3 (C), and leads in 4 of 7 scored categories. Muse Code leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Pi or Muse Code?"
      },
      {
        "answer": "Pi is open source (MIT). No open-source release is listed for Muse Code.",
        "question": "Are Pi and Muse Code open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 45",
          "Payments \u0026 pricing, 60 against 20",
          "Maintenance \u0026 community, 87 against 75",
          "Transparency \u0026 trust, 64 against 57"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 67 against 61"
        ],
        "also": [
          "No incidents deducted, where Pi loses 4 points for them"
        ],
        "goodFor": "Developers who want Meta's Muse models, Muse Wonder Full included, in a terminal or CI agent with the sandbox and approvals on from the first run.",
        "slug": "muse-code",
        "watchFor": "Closed source, with no public CI or issue tracker for the CLI found and release notes that carry no dates"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "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/agent-zero-vs-muse-code.json",
        "title": "Agent Zero vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-muse-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/aider-vs-muse-code.json",
        "title": "Aider vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/aider-vs-muse-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/amp-vs-muse-code.json",
        "title": "Amp vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/amp-vs-muse-code"
      },
      {
        "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/antigravity-cli-vs-muse-code.json",
        "title": "Antigravity CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-muse-code"
      },
      {
        "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/claude-code-vs-muse-code.json",
        "title": "Claude Code vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-muse-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/cline-vs-muse-code.json",
        "title": "Cline vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/cline-vs-muse-code"
      },
      {
        "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/cursor-cli-vs-muse-code.json",
        "title": "Cursor CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-muse-code"
      },
      {
        "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/devin-vs-muse-code.json",
        "title": "Devin vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/devin-vs-muse-code"
      },
      {
        "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/droid-cli-vs-muse-code.json",
        "title": "Droid CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-muse-code"
      },
      {
        "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-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-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/gemini-cli-vs-muse-code.json",
        "title": "Gemini CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-muse-code.json",
        "title": "GitHub Copilot CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-muse-code.json",
        "title": "goose vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/goose-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-muse-code.json",
        "title": "Kilo Code CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-muse-code.json",
        "title": "Kiro CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openai-codex.json",
        "title": "Muse Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-opencode.json",
        "title": "Muse Code vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openhands.json",
        "title": "Muse Code vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-prime-agent.json",
        "title": "Muse Code vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-qwen-code.json",
        "title": "Muse Code vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-paperclip.json",
        "title": "Muse Code vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-paperclip"
      }
    ],
    "scores": [
      {
        "by": 30,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "muse-code": 45,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "earendil-pi": 84,
        "edge": "",
        "key": "schema",
        "muse-code": 84,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 3,
        "earendil-pi": 76,
        "edge": "muse-code",
        "key": "ergonomics",
        "muse-code": 79,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "earendil-pi": 61,
        "edge": "muse-code",
        "key": "security",
        "muse-code": 67,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 40,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "key": "payments",
        "muse-code": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "muse-code": 75,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 7,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "muse-code": 57,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Muse Code's 61.3 (C), and leads in 4 of 7 scored categories. Muse Code leads on security \u0026 auth. Both do agent harnesses.",
    "verdicts": {
      "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.",
      "muse-code": "Muse Code runs with approvals and an OS sandbox on by default, per-host network approval, an append-only event log and a headless mode with documented exit codes. It is the only route to Muse Wonder Full. It is closed source with undated release notes and no free route, and subscriptions allow training on code unless Contributor mode is turned off."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Muse Code's 61.3 (C), and leads in 4 of 7 scored categories. Muse Code leads on security \u0026 auth. Both do agent harnesses.\n\n- Pi: grade B, 68.4/100, rank #219 of 993. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- Muse Code: grade C, 61.3/100, rank #487 of 993. Markdown https://www.anchorterminal.com/tools/muse-code.md · JSON https://www.anchorterminal.com/api/v1/tools/muse-code.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 226 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\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 45\n- Payments \u0026 pricing, 60 against 20\n- Maintenance \u0026 community, 87 against 75\n- Transparency \u0026 trust, 64 against 57\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### Muse Code (C)\n\nGood for: Developers who want Meta's Muse models, Muse Wonder Full included, in a terminal or CI agent with the sandbox and approvals on from the first run.\n\nAhead on:\n- Security \u0026 auth, 67 against 61\n\nAlso in its favour:\n- No incidents deducted, where Pi loses 4 points for them\n\nWatch for: Closed source, with no public CI or issue tracker for the CLI found and release notes that carry no dates\n\n\n## Score by category\n\n| Category | Weight | Pi | Muse Code | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 45 | Pi +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 84 | even |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 79 | Muse Code +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 67 | Muse Code +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 20 | Pi +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 75 | Pi +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 57 | Pi +7 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **68.4 · B** | **61.3 · C** | |\n\n## Facts side by side\n\n| Fact | Pi | Muse Code |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | Meta |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | OAuth or key |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | MIT | Proprietary binary, used under the Meta Model API Terms of Service, which cover Meta's coding harness. Subscriptions are also under the Meta Subscription Terms of Service. The TypeScript and Python SDKs in the linked repository are MIT. |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-11 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked | couldn't be read |\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 | 113k stars, 5.2M npm/wk | 63k npm/wk |\n\n## Verdicts\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**Muse Code.** Muse Code runs with approvals and an OS sandbox on by default, per-host network approval, an append-only event log and a headless mode with documented exit codes. It is the only route to Muse Wonder Full. It is closed source with undated release notes and no free route, and subscriptions allow training on code unless Contributor mode is turned off.\n\n## Before you call either\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### Muse Code\n\n1. Set `META_API_KEY` for headless runs. Browser sign-in isn't available in CI or for Meta Managed Accounts\n2. Gate on your own test command, not the exit code. `muse exec` returns 0 when the turn completes even if tests still fail\n3. Pass `--max-model-steps` on unattended runs so a stuck task can't loop\n4. Prefer `--disable-approval` to `--yolo` in CI so the sandbox stays on. On Linux the runner needs a working bubblewrap and a non-musl build\n5. Turn Contributor mode off in `/settings` before a subscription session touches private code\n\n## Questions\n\n### Which is better for AI agents, Pi or Muse Code?\n\nPi scores 68.4 (B) on agent readiness against Muse Code's 61.3 (C), and leads in 4 of 7 scored categories. Muse Code leads on security \u0026 auth.\n\n### Are Pi and Muse Code open source?\n\nPi is open source (MIT). No open-source release is listed for Muse Code.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"muse-code\"}`. From a terminal: `anchor compare earendil-pi muse-code`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/muse-code.json\n\n## Other comparisons with Pi or Muse Code\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs Muse Code](https://www.anchorterminal.com/compare/agent-zero-vs-muse-code.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs Muse Code](https://www.anchorterminal.com/compare/aider-vs-muse-code.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs Muse Code](https://www.anchorterminal.com/compare/amp-vs-muse-code.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs Muse Code](https://www.anchorterminal.com/compare/antigravity-cli-vs-muse-code.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs Muse Code](https://www.anchorterminal.com/compare/claude-code-vs-muse-code.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs Muse Code](https://www.anchorterminal.com/compare/cline-vs-muse-code.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs Muse Code](https://www.anchorterminal.com/compare/cursor-cli-vs-muse-code.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs Muse Code](https://www.anchorterminal.com/compare/devin-vs-muse-code.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Muse Code](https://www.anchorterminal.com/compare/droid-cli-vs-muse-code.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 Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.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- [Gemini CLI vs Muse Code](https://www.anchorterminal.com/compare/gemini-cli-vs-muse-code.md)\n- [GitHub Copilot CLI vs Muse Code](https://www.anchorterminal.com/compare/github-copilot-cli-vs-muse-code.md)\n- [goose vs Muse Code](https://www.anchorterminal.com/compare/goose-vs-muse-code.md)\n- [Kilo Code CLI vs Muse Code](https://www.anchorterminal.com/compare/kilo-code-cli-vs-muse-code.md)\n- [Kiro CLI vs Muse Code](https://www.anchorterminal.com/compare/kiro-cli-vs-muse-code.md)\n- [Muse Code vs OpenAI Codex](https://www.anchorterminal.com/compare/muse-code-vs-openai-codex.md)\n- [Muse Code vs OpenCode](https://www.anchorterminal.com/compare/muse-code-vs-opencode.md)\n- [Muse Code vs OpenHands](https://www.anchorterminal.com/compare/muse-code-vs-openhands.md)\n- [Muse Code vs Prime Agent](https://www.anchorterminal.com/compare/muse-code-vs-prime-agent.md)\n- [Muse Code vs Qwen Code](https://www.anchorterminal.com/compare/muse-code-vs-qwen-code.md)\n- [Muse Code vs Paperclip](https://www.anchorterminal.com/compare/muse-code-vs-paperclip.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-12",
    "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": "Pi vs Muse Code",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Muse Code's 61.3 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "Muse Code C 61.3",
      "scores"
    ],
    "h1": "Pi vs Muse Code",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-muse-code.png",
    "path": "/compare/earendil-pi-vs-muse-code",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs Muse Code for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 630
  },
  "version": 1
}
