{
  "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": 232,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.3.0",
            "released": "2026-10-15",
            "seenAt": "2026-10-17T01:46:05.672383527Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.3.0",
            "seenAt": "2026-10-17T01:46:05.215722484Z"
          }
        ],
        "githubStars": 115743,
        "npmWeekly": 4145028,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-17T15:51:29.308856623Z"
        },
        "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-17T23:07:27.814844587Z",
            "changedAt": "2026-10-16T22:28:32.441702707Z",
            "fingerprint": "2c7a827b9676"
          }
        ],
        "updatedAt": "2026-10-17T23:07:27.814844587Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Mirror CLI's 54.2 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "reflection-mirror",
      "name": "Mirror CLI",
      "vendor": "Reflection",
      "vendorUrl": "https://developers.reflection.ai/mirror-overview",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Mirror CLI is Reflection's open-source coding agent for the terminal, in early beta. It reads code, edits files and runs commands, with parallel agents in separate worktrees, MCP connections and Python extensions, using Beam by default or another provider.",
      "url": "https://www.anchorterminal.com/tools/reflection-mirror",
      "markdownUrl": "https://www.anchorterminal.com/tools/reflection-mirror.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/reflection-mirror.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/reflection-mirror.json",
      "repo": "https://github.com/reflection-oss/mirror",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "reflection-mirror"
        }
      ],
      "auth": "api-key",
      "authNotes": "The default provider is the Reflection API, with a key from platform.reflection.ai in `REFLECTION_API_KEY` or pasted at first start and saved to `~/.mirror/reflection_api_key`. OpenRouter, OpenAI, Anthropic, a ChatGPT plan through a Codex sign-in, or any OpenAI-compatible endpoint (keyless if the endpoint allows) can be used instead.",
      "pricing": "free",
      "pricingNotes": "Free and Apache-2.0. Model calls are billed by the provider chosen. The default Reflection API was a free public beta with daily usage limits on 17 October 2026, and some organisations must verify a credit card before their keys work.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Mirror docs, the README or the source at commit f938033 (checked 17 October 2026).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://developers.reflection.ai/mirror-overview",
      "llmsTxt": "https://developers.reflection.ai/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "python",
        "rust",
        "mcp",
        "llms-txt",
        "beta",
        "pre-1.0",
        "telemetry-default-on",
        "approvals",
        "free",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.2,
        "grade": "C",
        "agentReady": false,
        "rank": 765,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 22,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 47,
          "payments": 60,
          "reliability": 37,
          "schema": 65,
          "security": 58,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": 0,
        "verdict": "Mirror CLI is Apache-2.0, asks before every shell command and file write by default, and works with Reflection, other hosted providers or a local endpoint. It is a one-day-old 0.1.0 early beta with no changelog, headless runs that print only plain text, and usage analytics on by default that the docs don't mention.",
        "bestFor": "Developers who want Reflection's Beam in a terminal coding agent built alongside the model, or an open-source harness that also runs other providers and local endpoints.",
        "strengths": [
          "Apache-2.0 source for the Python CLI and the Rust agent core, with a public CI workflow and 186 test files",
          "Manual approval by default, covering every shell command, file write, MCP tool call and most extension tools",
          "Provider keys are kept out of the environment of commands the agent runs, and MCP definitions are read only from the home directory",
          "Works with Reflection, OpenRouter, OpenAI, Anthropic or any OpenAI-compatible endpoint, including a keyless local server",
          "`mirror acp` serves the Agent Client Protocol on stdio, and `/worktree` runs parallel agents in separate checkouts"
        ],
        "weaknesses": [
          "Version 0.1.0, released 16 October 2026 and labelled early beta, with no changelog or release tags",
          "Usage analytics go to Statsig by default, disclosed in a first-run notice but not in the docs or README",
          "No sandbox by default. The opt-in microVM sandbox covers file and shell tools only, and extensions and local MCP servers run on the host",
          "`mirror exec` prints only the final answer as plain text, with exit codes not documented and no budget or time limit",
          "Approval mode is saved globally, so switching to auto in one directory applies to later launches everywhere"
        ],
        "agentNotes": [
          "Open Mirror interactively once in each directory before `mirror exec` or `mirror acp`. Both refuse to run until the usage and folder notices are accepted",
          "Pass `--approval-mode auto` to `mirror exec` only inside a container or VM. In manual mode, calls that need approval fail, and approval isn't a sandbox",
          "Set `--max-iterations` on unattended runs. Turns are unlimited by default",
          "Check the result with your own tests. `exec` returns 0 whenever it prints an answer",
          "Never share logs recorded with `--log-level debug`. The docs say they contain request headers with the API key"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.2
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 47,
          "payments": 60,
          "reliability": 37,
          "schema": 65,
          "security": 58,
          "transparency": 56
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "uv tool install reflection-mirror",
        "headless": {
          "command": "mirror exec --approval-mode auto --max-iterations 50 \"$TASK\"",
          "env": {
            "REFLECTION_API_KEY": "\u003cyour-key\u003e"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/reflection-mirror"
      },
      "sameCompany": [
        "reflection-beam"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Reflection AI, Inc.",
        "domain": "reflection.ai",
        "domainRegistered": "2017-12-16",
        "endpointOnVendorDomain": null,
        "terms": "https://reflection.ai/legal/commercial-terms-of-service",
        "privacy": "https://reflection.ai/legal/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-17",
        "notes": [
          "The software is under Apache-2.0 (LICENSE and NOTICE in the repository). The terms field is Reflection's Commercial Terms of Service, which cover the Reflection API that Mirror calls by default and say beta services are provided as is. The site Terms of Service (last updated 19 February 2025) cover the website only.",
          "The Privacy Policy, last updated 28 August 2026, names Reflection AI, Inc., 61 9th Ave, Floor 3, New York, NY 10011, and gives no fixed retention periods.",
          "RDAP for reflection.ai gives a registration date of 16 December 2017.",
          "No changelog or release notes were found for Mirror. The repository has no tags.",
          "reflection.ai/.well-known/security.txt and developers.reflection.ai/.well-known/security.txt return 404. The repository's SECURITY.md sends vulnerability reports to developers@reflection.ai.",
          "Mirror is software the owner runs, so no status page applies to it. The Reflection API's status page wasn't looked for here."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/reflection-mirror.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "Reflection",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "",
        "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": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Mirror CLI's 54.2 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Pi or Mirror CLI?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). Mirror CLI is open source (Apache-2.0).",
        "question": "Are Pi and Mirror CLI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 37",
          "Schema \u0026 documentation, 84 against 65",
          "Agent ergonomics, 76 against 58",
          "Maintenance \u0026 community, 87 against 47",
          "Transparency \u0026 trust, 64 against 58"
        ],
        "also": [
          "No key needed to call it"
        ],
        "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": null,
        "also": [
          "No incidents deducted, where Pi loses 4 points for them"
        ],
        "goodFor": "Developers who want Reflection's Beam in a terminal coding agent built alongside the model, or an open-source harness that also runs other providers and local endpoints.",
        "slug": "reflection-mirror",
        "watchFor": "Version 0.1.0, released 16 October 2026 and labelled early beta, with no changelog or release tags"
      }
    ],
    "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-reflection-mirror.json",
        "title": "Agent Zero vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Aider vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Amp vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Antigravity CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Claude Code vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Cline vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Cursor CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Devin vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-reflection-mirror"
      },
      {
        "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-reflection-mirror.json",
        "title": "Droid CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-reflection-mirror"
      },
      {
        "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-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-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-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-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-reflection-mirror.json",
        "title": "Gemini CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-reflection-mirror.json",
        "title": "GitHub Copilot CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-reflection-mirror.json",
        "title": "goose vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/goose-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror.json",
        "title": "HarnessRouter vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-reflection-mirror.json",
        "title": "Kilo Code CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-reflection-mirror.json",
        "title": "Kiro CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-reflection-mirror.json",
        "title": "Muse Code vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror.json",
        "title": "OpenAI Codex vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencode-vs-reflection-mirror.json",
        "title": "OpenCode vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/opencode-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror.json",
        "title": "OpenHands vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prime-agent-vs-reflection-mirror.json",
        "title": "Prime Agent vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/prime-agent-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qwen-code-vs-reflection-mirror.json",
        "title": "Qwen Code vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/qwen-code-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-reflection-mirror.json",
        "title": "CLI Manager vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-reflection-mirror.json",
        "title": "Harness vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paperclip-vs-reflection-mirror.json",
        "title": "Paperclip vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/paperclip-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallax-agents-vs-reflection-mirror.json",
        "title": "Parallax vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/parallax-agents-vs-reflection-mirror"
      }
    ],
    "scores": [
      {
        "by": 38,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "reflection-mirror": 37,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "reflection-mirror": 65,
        "weight": 13
      },
      {
        "by": 18,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "reflection-mirror": 58,
        "weight": 13
      },
      {
        "by": 3,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "name": "Security \u0026 auth",
        "reflection-mirror": 58,
        "weight": 14
      },
      {
        "by": 0,
        "earendil-pi": 60,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "reflection-mirror": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 40,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "reflection-mirror": 47,
        "weight": 7
      },
      {
        "by": 6,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "reflection-mirror": 58,
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Mirror CLI's 54.2 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.",
    "tutorials": [],
    "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.",
      "reflection-mirror": "Mirror CLI is Apache-2.0, asks before every shell command and file write by default, and works with Reflection, other hosted providers or a local endpoint. It is a one-day-old 0.1.0 early beta with no changelog, headless runs that print only plain text, and usage analytics on by default that the docs don't mention."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Mirror CLI's 54.2 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.\n\n- Pi: grade B, 68.4/100, rank #232 of 1133. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- Mirror CLI: grade C, 54.2/100, rank #765 of 1133. Markdown https://www.anchorterminal.com/tools/reflection-mirror.md · JSON https://www.anchorterminal.com/api/v1/tools/reflection-mirror.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 331 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 37\n- Schema \u0026 documentation, 84 against 65\n- Agent ergonomics, 76 against 58\n- Maintenance \u0026 community, 87 against 47\n- Transparency \u0026 trust, 64 against 58\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n### Mirror CLI (C)\n\nGood for: Developers who want Reflection's Beam in a terminal coding agent built alongside the model, or an open-source harness that also runs other providers and local endpoints.\n\nAlso in its favour:\n- No incidents deducted, where Pi loses 4 points for them\n\nWatch for: Version 0.1.0, released 16 October 2026 and labelled early beta, with no changelog or release tags\n\n\n## Score by category\n\n| Category | Weight | Pi | Mirror CLI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 37 | Pi +38 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 65 | Pi +19 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 58 | Pi +18 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 58 | Pi +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 47 | Pi +40 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 58 | Pi +6 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **68.4 · B** | **54.2 · C** | |\n\n## Facts side by side\n\n| Fact | Pi | Mirror CLI |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | Reflection |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-16 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked |  |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 113k stars, 5.2M npm/wk | none |\n| Agent reviews | 3.3/5 (4) | 3/5 (4) |\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**Mirror CLI.** Mirror CLI is Apache-2.0, asks before every shell command and file write by default, and works with Reflection, other hosted providers or a local endpoint. It is a one-day-old 0.1.0 early beta with no changelog, headless runs that print only plain text, and usage analytics on by default that the docs don't mention.\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### Mirror CLI\n\n1. Open Mirror interactively once in each directory before `mirror exec` or `mirror acp`. Both refuse to run until the usage and folder notices are accepted\n2. Pass `--approval-mode auto` to `mirror exec` only inside a container or VM. In manual mode, calls that need approval fail, and approval isn't a sandbox\n3. Set `--max-iterations` on unattended runs. Turns are unlimited by default\n4. Check the result with your own tests. `exec` returns 0 whenever it prints an answer\n5. Never share logs recorded with `--log-level debug`. The docs say they contain request headers with the API key\n\n## Questions\n\n### Which is better for AI agents, Pi or Mirror CLI?\n\nPi scores 68.4 (B) on agent readiness against Mirror CLI's 54.2 (C), and leads in 6 of 7 scored categories.\n\n### Are Pi and Mirror CLI open source?\n\nYes. Pi is open source (MIT). Mirror CLI is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"reflection-mirror\"}`. From a terminal: `anchor compare earendil-pi reflection-mirror`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/reflection-mirror.json\n\n## Other comparisons with Pi or Mirror CLI\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs Mirror CLI](https://www.anchorterminal.com/compare/agent-zero-vs-reflection-mirror.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs Mirror CLI](https://www.anchorterminal.com/compare/aider-vs-reflection-mirror.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs Mirror CLI](https://www.anchorterminal.com/compare/amp-vs-reflection-mirror.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs Mirror CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-reflection-mirror.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs Mirror CLI](https://www.anchorterminal.com/compare/claude-code-vs-reflection-mirror.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs Mirror CLI](https://www.anchorterminal.com/compare/cline-vs-reflection-mirror.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs Mirror CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-reflection-mirror.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs Mirror CLI](https://www.anchorterminal.com/compare/devin-vs-reflection-mirror.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Mirror CLI](https://www.anchorterminal.com/compare/droid-cli-vs-reflection-mirror.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 HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.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 Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Gemini CLI vs Mirror CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-reflection-mirror.md)\n- [GitHub Copilot CLI vs Mirror CLI](https://www.anchorterminal.com/compare/github-copilot-cli-vs-reflection-mirror.md)\n- [goose vs Mirror CLI](https://www.anchorterminal.com/compare/goose-vs-reflection-mirror.md)\n- [HarnessRouter vs Mirror CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror.md)\n- [Kilo Code CLI vs Mirror CLI](https://www.anchorterminal.com/compare/kilo-code-cli-vs-reflection-mirror.md)\n- [Kiro CLI vs Mirror CLI](https://www.anchorterminal.com/compare/kiro-cli-vs-reflection-mirror.md)\n- [Muse Code vs Mirror CLI](https://www.anchorterminal.com/compare/muse-code-vs-reflection-mirror.md)\n- [OpenAI Codex vs Mirror CLI](https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror.md)\n- [OpenCode vs Mirror CLI](https://www.anchorterminal.com/compare/opencode-vs-reflection-mirror.md)\n- [OpenHands vs Mirror CLI](https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror.md)\n- [Prime Agent vs Mirror CLI](https://www.anchorterminal.com/compare/prime-agent-vs-reflection-mirror.md)\n- [Qwen Code vs Mirror CLI](https://www.anchorterminal.com/compare/qwen-code-vs-reflection-mirror.md)\n- [CLI Manager vs Mirror CLI](https://www.anchorterminal.com/compare/cli-manager-vs-reflection-mirror.md)\n- [Harness vs Mirror CLI](https://www.anchorterminal.com/compare/harness-autonomous-vs-reflection-mirror.md)\n- [Paperclip vs Mirror CLI](https://www.anchorterminal.com/compare/paperclip-vs-reflection-mirror.md)\n- [Parallax vs Mirror CLI](https://www.anchorterminal.com/compare/parallax-agents-vs-reflection-mirror.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-18",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pi vs Mirror CLI",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Mirror CLI's 54.2 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "Mirror CLI C 54.2",
      "scores"
    ],
    "h1": "Pi vs Mirror CLI",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-reflection-mirror.png",
    "path": "/compare/earendil-pi-vs-reflection-mirror",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs Mirror CLI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
  },
  "tokens": {
    "markdown": 2800,
    "slim": 530
  },
  "version": 1
}
