{
  "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": 233,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.3.0",
            "released": "2026-10-15",
            "seenAt": "2026-10-18T02:44:53.997039564Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.3.0",
            "seenAt": "2026-10-18T02:44:53.784724198Z"
          }
        ],
        "githubStars": 115982,
        "npmWeekly": 2612036,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-18T15:53:35.560404115Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-18T13:28:47.513502795Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:35:04.783143423Z",
            "changedAt": "2026-10-16T22:28:32.441702707Z",
            "fingerprint": "2c7a827b9676"
          }
        ],
        "updatedAt": "2026-10-18T23:35:04.783143423Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against mini-swe-agent's 56.7 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "mini-swe-agent",
      "name": "mini-swe-agent",
      "vendor": "SWE-bench team (Princeton and Stanford)",
      "vendorUrl": "https://mini-swe-agent.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Minimal open-source coding agent from the Princeton and Stanford team behind SWE-bench, shipped as the `mini` CLI and a Python library. It gives the model one bash tool, works with any model through LiteLLM, and is a common SWE-bench baseline.",
      "url": "https://www.anchorterminal.com/tools/mini-swe-agent",
      "markdownUrl": "https://www.anchorterminal.com/tools/mini-swe-agent.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mini-swe-agent.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mini-swe-agent.json",
      "repo": "https://github.com/SWE-agent/mini-swe-agent",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "mini-swe-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No account of its own. A model key goes in an environment variable or the global `.env` file that `mini-extra config setup` writes, and is passed to the provider through LiteLLM, OpenRouter, Portkey or Requesty. Local models work through LiteLLM's `api_base`.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with nothing to buy. The owner pays the model provider, or nothing with a local model. Each run stops at a $3 cost limit by default, and a local model needs `MSWEA_COST_TRACKING=ignore_errors`.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 8600,
        "npmWeekly": null,
        "pypiWeekly": 4437981,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://mini-swe-agent.com/latest/",
      "capabilities": [
        "agent.harness"
      ],
      "tags": [
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "python",
        "free",
        "no-card",
        "local",
        "docker"
      ],
      "lastRelease": "2026-07-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.7,
        "grade": "C",
        "agentReady": false,
        "rank": 698,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 25,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 49,
          "payments": 60,
          "reliability": 70,
          "schema": 58,
          "security": 56,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-10-10. CVE-2026-108592 (CVSS 4.0 score 6.0, from VulnCheck). The bubblewrap environment builds its `bwrap` command without `--clearenv` or `--unshare-net`, so commands inherit the host environment, model keys included, and can send them out over the network after a prompt injection in task content. Confirmed in src/minisweagent/environments/extra/bubblewrap.py at 2.4.6 and on main (3 September). The environment is opt-in and marked experimental, but it's the documented lightweight sandbox and no release fixes it, -4. https://nvd.nist.gov/vuln/detail/CVE-2026-108592"
        ],
        "verdict": "A small, readable harness with one bash tool, a linear trajectory saved as JSON, and step, cost and wall-time limits that stop unattended runs cleanly. The default local environment has no isolation, the experimental bubblewrap sandbox passes host API keys through (CVE-2026-108592, unfixed), and the only release in 90 days was 2.4.6 on 23 July 2026.",
        "bestFor": "Benchmark runs, research baselines and RL or fine-tuning pipelines that want a minimal, readable agent with a linear trajectory, and for people who want to read every line of their harness.",
        "strengths": [
          "MIT, with an agent class of about 190 lines that a reviewer can read in one sitting",
          "Step, cost ($3 by default) and wall-time limits, each ending the run with its own exit status in the trajectory",
          "Any model through LiteLLM, OpenRouter, Portkey or Requesty, local ones included, with no account",
          "Docker, Podman and Singularity environments, where the Docker one forwards no host variables unless listed",
          "No telemetry found in the source"
        ],
        "weaknesses": [
          "The default local environment runs commands on the host with no isolation and the full host environment",
          "CVE-2026-108592, published 10 October 2026, leaves the experimental bubblewrap sandbox passing host API keys and network through, unfixed in 2.4.6",
          "One release in the 90 days to 18 October 2026, and three commits on main since 23 July",
          "No MCP client, no ACP and no server mode",
          "No changelog file, and the PyPI classifier still says 3 - Alpha at 2.4.6"
        ],
        "agentNotes": [
          "Run with `-y --exit-immediately` for unattended use. Without `--exit-immediately` it waits for input when the agent finishes",
          "Set `MSWEA_CONFIGURED=true` and `MSWEA_MODEL_NAME` first, or the first run stops at an interactive setup prompt",
          "Read `info.exit_status` in the `-o` trajectory file. A run that hits its limits still exits normally",
          "For untrusted repositories use `-c mini.yaml -c environment.environment_class=docker -c environment.image=\u003cimage\u003e`. The local and bubblewrap environments both expose host variables",
          "Strip model keys from the environment commands see, since the local environment passes every host variable to each command"
        ],
        "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": 56.7
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 49,
          "payments": 60,
          "reliability": 70,
          "schema": 58,
          "security": 56,
          "transparency": 62
        },
        "provenanceScore": 40
      },
      "connect": {
        "install": "pip install mini-swe-agent   # or: uvx mini-swe-agent",
        "headless": {
          "command": "mini -t \"$TASK\" -y --exit-immediately -m \u003cprovider/model\u003e -l 3 -o run.traj.json",
          "env": {
            "ANTHROPIC_API_KEY": "\u003ckey\u003e",
            "MSWEA_CONFIGURED": "true"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/mini-swe-agent"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "No legal entity named. The MIT licence names Kilian A. Lieret and Carlos E. Jimenez",
        "domain": "mini-swe-agent.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "The docs site is GitHub Pages built from the repository. It has no terms, privacy policy or security.txt (/.well-known/security.txt returned 404 on 18 October 2026).",
          "The security page names four contacts at Princeton and Stanford by email, with no response time.",
          "The repository has no changelog file and tags carry only a version bump. Release notes, if any, are on GitHub releases, which we couldn't read because GitHub's web pages refused this run."
        ],
        "score": 40
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mini-swe-agent.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "SWE-bench team (Princeton and Stanford)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-07-23",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "8.6k stars, 4.4M PyPI/wk",
        "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 mini-swe-agent's 56.7 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Pi or mini-swe-agent?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). mini-swe-agent is open source (MIT).",
        "question": "Are Pi and mini-swe-agent open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 70",
          "Schema \u0026 documentation, 84 against 58",
          "Agent ergonomics, 76 against 69",
          "Security \u0026 auth, 61 against 56",
          "Maintenance \u0026 community, 87 against 49",
          "Transparency \u0026 trust, 64 against 51"
        ],
        "also": null,
        "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": null,
        "goodFor": "Benchmark runs, research baselines and RL or fine-tuning pipelines that want a minimal, readable agent with a linear trajectory, and for people who want to read every line of their harness.",
        "slug": "mini-swe-agent",
        "watchFor": "The default local environment runs commands on the host with no isolation and the full host environment"
      }
    ],
    "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-mini-swe-agent.json",
        "title": "Agent Zero vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Aider vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/aider-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Amp vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/amp-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Antigravity CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.json",
        "title": "Auggie CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-mini-swe-agent.json",
        "title": "Auggie CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Claude Code vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Cline vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/cline-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi.json",
        "title": "Crush vs Pi",
        "url": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.json",
        "title": "Crush vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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-mini-swe-agent.json",
        "title": "Cursor CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.json",
        "title": "DeepSeek Harness (dsh) vs Pi",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent.json",
        "title": "DeepSeek Harness (dsh) vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Devin vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/devin-vs-mini-swe-agent"
      },
      {
        "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-mini-swe-agent.json",
        "title": "Droid CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.json",
        "title": "Pi vs Harness²",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules.json",
        "title": "Pi vs Jules",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
        "title": "Pi vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
        "title": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-mini-swe-agent.json",
        "title": "Gemini CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-mini-swe-agent.json",
        "title": "GitHub Copilot CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-mini-swe-agent.json",
        "title": "goose vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/goose-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-mini-swe-agent.json",
        "title": "Harness² vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent.json",
        "title": "HarnessRouter vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-mini-swe-agent.json",
        "title": "Jules vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/jules-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent.json",
        "title": "Junie CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-mini-swe-agent.json",
        "title": "Kilo Code CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.json",
        "title": "Kimi Code CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-mini-swe-agent.json",
        "title": "Kiro CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-mistral-vibe-cli.json",
        "title": "mini-swe-agent vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-muse-code.json",
        "title": "mini-swe-agent vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex.json",
        "title": "mini-swe-agent vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-opencode.json",
        "title": "mini-swe-agent vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands.json",
        "title": "mini-swe-agent vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-prime-agent.json",
        "title": "mini-swe-agent vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli.json",
        "title": "mini-swe-agent vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qwen-code.json",
        "title": "mini-swe-agent vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-reflection-mirror.json",
        "title": "mini-swe-agent vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-rovo-dev-cli.json",
        "title": "mini-swe-agent vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp.json",
        "title": "mini-swe-agent vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp"
      }
    ],
    "scores": [
      {
        "by": 5,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "mini-swe-agent": 70,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "mini-swe-agent": 58,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 7,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "mini-swe-agent": 69,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 5,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "mini-swe-agent": 56,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "earendil-pi": 60,
        "edge": "",
        "key": "payments",
        "mini-swe-agent": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 38,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "mini-swe-agent": 49,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 13,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "mini-swe-agent": 51,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against mini-swe-agent's 56.7 (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.",
      "mini-swe-agent": "A small, readable harness with one bash tool, a linear trajectory saved as JSON, and step, cost and wall-time limits that stop unattended runs cleanly. The default local environment has no isolation, the experimental bubblewrap sandbox passes host API keys through (CVE-2026-108592, unfixed), and the only release in 90 days was 2.4.6 on 23 July 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against mini-swe-agent's 56.7 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.\n\n- Pi: grade B, 68.4/100, rank #233 of 1146. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- mini-swe-agent: grade C, 56.7/100, rank #698 of 1146. Markdown https://www.anchorterminal.com/tools/mini-swe-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/mini-swe-agent.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 713 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### 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 70\n- Schema \u0026 documentation, 84 against 58\n- Agent ergonomics, 76 against 69\n- Security \u0026 auth, 61 against 56\n- Maintenance \u0026 community, 87 against 49\n- Transparency \u0026 trust, 64 against 51\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n### mini-swe-agent (C)\n\nGood for: Benchmark runs, research baselines and RL or fine-tuning pipelines that want a minimal, readable agent with a linear trajectory, and for people who want to read every line of their harness.\n\nWatch for: The default local environment runs commands on the host with no isolation and the full host environment\n\n\n## Score by category\n\n| Category | Weight | Pi | mini-swe-agent | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 70 | Pi +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 58 | Pi +26 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 69 | Pi +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 56 | Pi +5 |\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 | 49 | Pi +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 51 | Pi +13 |\n| Negative events | ≤15 | -4 | -4 | |\n| **Total** | | **68.4 · B** | **56.7 · C** | |\n\n## Facts side by side\n\n| Fact | Pi | mini-swe-agent |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | SWE-bench team (Princeton and Stanford) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-07 | 2026-07-23 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 113k stars, 5.2M npm/wk | 8.6k stars, 4.4M PyPI/wk |\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**mini-swe-agent.** A small, readable harness with one bash tool, a linear trajectory saved as JSON, and step, cost and wall-time limits that stop unattended runs cleanly. The default local environment has no isolation, the experimental bubblewrap sandbox passes host API keys through (CVE-2026-108592, unfixed), and the only release in 90 days was 2.4.6 on 23 July 2026.\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### mini-swe-agent\n\n1. Run with `-y --exit-immediately` for unattended use. Without `--exit-immediately` it waits for input when the agent finishes\n2. Set `MSWEA_CONFIGURED=true` and `MSWEA_MODEL_NAME` first, or the first run stops at an interactive setup prompt\n3. Read `info.exit_status` in the `-o` trajectory file. A run that hits its limits still exits normally\n4. For untrusted repositories use `-c mini.yaml -c environment.environment_class=docker -c environment.image=\u003cimage\u003e`. The local and bubblewrap environments both expose host variables\n5. Strip model keys from the environment commands see, since the local environment passes every host variable to each command\n\n## Questions\n\n### Which is better for AI agents, Pi or mini-swe-agent?\n\nPi scores 68.4 (B) on agent readiness against mini-swe-agent's 56.7 (C), and leads in 6 of 7 scored categories.\n\n### Are Pi and mini-swe-agent open source?\n\nYes. Pi is open source (MIT). mini-swe-agent is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"mini-swe-agent\"}`. From a terminal: `anchor compare earendil-pi mini-swe-agent`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/mini-swe-agent.json\n\n## Other comparisons with Pi or mini-swe-agent\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs mini-swe-agent](https://www.anchorterminal.com/compare/agent-zero-vs-mini-swe-agent.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs mini-swe-agent](https://www.anchorterminal.com/compare/aider-vs-mini-swe-agent.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs mini-swe-agent](https://www.anchorterminal.com/compare/amp-vs-mini-swe-agent.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/antigravity-cli-vs-mini-swe-agent.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/auggie-vs-mini-swe-agent.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs mini-swe-agent](https://www.anchorterminal.com/compare/claude-code-vs-mini-swe-agent.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs mini-swe-agent](https://www.anchorterminal.com/compare/cline-vs-mini-swe-agent.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs mini-swe-agent](https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/cursor-cli-vs-mini-swe-agent.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs mini-swe-agent](https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs mini-swe-agent](https://www.anchorterminal.com/compare/devin-vs-mini-swe-agent.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/droid-cli-vs-mini-swe-agent.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md)\n- [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md)\n- [Gemini CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/gemini-cli-vs-mini-swe-agent.md)\n- [GitHub Copilot CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/github-copilot-cli-vs-mini-swe-agent.md)\n- [goose vs mini-swe-agent](https://www.anchorterminal.com/compare/goose-vs-mini-swe-agent.md)\n- [Harness² vs mini-swe-agent](https://www.anchorterminal.com/compare/harness2-vs-mini-swe-agent.md)\n- [HarnessRouter vs mini-swe-agent](https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent.md)\n- [Jules vs mini-swe-agent](https://www.anchorterminal.com/compare/jules-vs-mini-swe-agent.md)\n- [Junie CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent.md)\n- [Kilo Code CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/kilo-code-cli-vs-mini-swe-agent.md)\n- [Kimi Code CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.md)\n- [Kiro CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/kiro-cli-vs-mini-swe-agent.md)\n- [mini-swe-agent vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/mini-swe-agent-vs-mistral-vibe-cli.md)\n- [mini-swe-agent vs Muse Code](https://www.anchorterminal.com/compare/mini-swe-agent-vs-muse-code.md)\n- [mini-swe-agent vs OpenAI Codex](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex.md)\n- [mini-swe-agent vs OpenCode](https://www.anchorterminal.com/compare/mini-swe-agent-vs-opencode.md)\n- [mini-swe-agent vs OpenHands](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands.md)\n- [mini-swe-agent vs Prime Agent](https://www.anchorterminal.com/compare/mini-swe-agent-vs-prime-agent.md)\n- [mini-swe-agent vs Qoder CLI](https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli.md)\n- [mini-swe-agent vs Qwen Code](https://www.anchorterminal.com/compare/mini-swe-agent-vs-qwen-code.md)\n- [mini-swe-agent vs Mirror CLI](https://www.anchorterminal.com/compare/mini-swe-agent-vs-reflection-mirror.md)\n- [mini-swe-agent vs Rovo Dev CLI](https://www.anchorterminal.com/compare/mini-swe-agent-vs-rovo-dev-cli.md)\n- [mini-swe-agent vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-19",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pi vs mini-swe-agent",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to mini-swe-agent's 56.7 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "mini-swe-agent C 56.7",
      "scores"
    ],
    "h1": "Pi vs mini-swe-agent",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-mini-swe-agent.png",
    "path": "/compare/earendil-pi-vs-mini-swe-agent",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs mini-swe-agent for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
  },
  "tokens": {
    "markdown": 3350,
    "slim": 530
  },
  "version": 1
}
