{
  "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": 235,
        "ranked": true,
        "rankOf": 1175,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.3.0",
            "released": "2026-10-15",
            "seenAt": "2026-10-19T03:47:02.761917636Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.3.0",
            "seenAt": "2026-10-19T03:47:01.967453236Z"
          }
        ],
        "githubStars": 116208,
        "npmWeekly": 2612036,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-19T15:54:57.065084865Z"
        },
        "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"
          }
        ],
        "github": {
          "repo": "earendil-works/pi",
          "checkedAt": "2026-10-19T06:07:44.86986124Z",
          "stars": 116234,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-18T20:43:40Z",
          "openIssues": 261,
          "openPRs": 86,
          "issuesOpened90d": 2990,
          "issuesClosed90d": 2786,
          "prsMerged90d": 365,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 35,
            "failure": 10,
            "other": 5,
            "latest": "success",
            "latestAt": "2026-10-18T20:51:20Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-mqxh-6gq7-558m",
              "cve": "CVE-2026-54325",
              "severity": "medium",
              "published": "2026-06-08T15:54:14Z"
            },
            {
              "ghsa": "GHSA-jfgx-wxx8-mp94",
              "cve": "CVE-2026-54328",
              "severity": "high",
              "published": "2026-06-08T15:54:13Z"
            },
            {
              "ghsa": "GHSA-r95r-rj6r-c39x",
              "cve": "CVE-2026-54327",
              "severity": "low",
              "published": "2026-06-08T15:54:12Z"
            },
            {
              "ghsa": "GHSA-7v5m-pr3q-6453",
              "cve": "CVE-2026-54326",
              "severity": "low",
              "published": "2026-06-08T15:54:11Z"
            }
          ]
        },
        "updatedAt": "2026-10-19T15:54:57.065084865Z"
      }
    },
    "answer": "Pi and MiniMax Code score within a point of each other on agent readiness, 68.4 (B) and 67.5 (B).",
    "b": {
      "slug": "minimax-code",
      "name": "MiniMax Code",
      "vendor": "MiniMax",
      "vendorUrl": "https://agent.minimax.io",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "MiniMax's coding agent, as an open-source terminal CLI (`mcode`) and a closed desktop app. The CLI runs MiniMax models through M Plan or an API key, or any compatible model, headless with `mcode exec` or as an ACP server.",
      "url": "https://www.anchorterminal.com/tools/minimax-code",
      "markdownUrl": "https://www.anchorterminal.com/tools/minimax-code.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/minimax-code.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/minimax-code.json",
      "repo": "https://github.com/MiniMax-AI/minimax-code",
      "license": "MIT for first-party code, with the bundled sandbox runtime under Apache-2.0. The desktop app's source isn't published",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@minimax-ai/code"
        }
      ],
      "auth": "mixed",
      "authNotes": "MiniMax sign-in in a browser (`mcode login --region global`) for M Plan or Token Plan usage, a MiniMax API key read from an environment variable (`mcode provider set-minimax-key`), or a key for any OpenAI- or Anthropic-compatible provider (BYOK), which needs no MiniMax login. Provider keys are stored in `config.yaml` in the data directory, `~/.minimax` by default.",
      "pricing": "free",
      "pricingNotes": "The CLI is free and MIT-licensed. Model use is paid separately, through an M Plan (Go $22, Explore $55, Build $132 a month), MiniMax's pay-as-you-go API, or another provider's key. M Plan usage is shared between MiniMax Code and other tools on the same subscription (https://platform.minimax.io/docs/m-plan/monthly-offer, checked 19 October 2026).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the CLI docs, README or the 0.6.12 npm metadata (checked 2026-10-19).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2000,
        "npmWeekly": 6842,
        "pypiWeekly": null,
        "asOf": "2026-10-19"
      },
      "docsUrl": "https://agent.minimax.io/docs/cli/quick-start",
      "llmsTxt": "https://agent.minimax.io/docs/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "typescript",
        "mcp",
        "acp",
        "llms-txt",
        "free",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 277,
        "ranked": true,
        "rankOf": 1175,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 77,
          "payments": 60,
          "reliability": 63,
          "schema": 81,
          "security": 57,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-19"
        },
        "negative": 0,
        "verdict": "An MIT-licensed terminal coding agent with a headless mode that returns versioned JSON, documented exit codes and an ACP server, and telemetry off by default. It's pre-1.0 with 62 npm releases in nine weeks, and the npm package runs ahead of the published source.",
        "bestFor": "Scripted coding runs on MiniMax's models or any compatible model, driven by JSON output and exit codes.",
        "strengths": [
          "MIT-licensed CLI on npm, with `mcode exec` returning versioned JSON and nine documented exit codes",
          "`mcode acp` for editors and agent hosts, and BYOK for any OpenAI- or Anthropic-compatible provider without a MiniMax login",
          "Telemetry off by default, each channel opted into separately, with every field and destination documented",
          "Headless fails on a pending permission request instead of approving it, and `--timeout` and `--max-steps` bound a run",
          "62 npm releases between 14 August and 15 October 2026"
        ],
        "weaknesses": [
          "Pre-1.0 and labelled a source preview, with npm at 0.6.12 and the public source at 0.6.5",
          "The default headless policy sends actions to a cloud classifier, and what it sends isn't documented",
          "Which actions run inside the sandbox by default isn't documented",
          "The CLI changelog trails npm by five releases",
          "The MiniMax Agent terms take a perpetual, irrevocable licence over what users submit through MiniMax's services and what they generate, and the privacy policy states no retention period"
        ],
        "agentNotes": [
          "Run `mcode exec --cwd \u003crepo\u003e --output-format json --timeout 10m --max-steps 50` and check both the exit code and the JSON `status`",
          "Keep `--permission full` and `off` for a container or throwaway workspace. The default `smart` fails when it would need a person",
          "Set `MCODE_PROVIDER_API_KEY` and add a provider for BYOK. M Plan models need a browser sign-in with `mcode login --region global`",
          "Set `MINIMAX_DATA_DIR` per CI runner. Keys and sessions live in `~/.minimax` by default",
          "Pin a version. npm published 62 releases in nine weeks and the public source trails it"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 77,
          "payments": 60,
          "reliability": 63,
          "schema": 81,
          "security": 57,
          "transparency": 56
        },
        "provenanceScore": 65
      },
      "connect": {
        "install": "npm install -g @minimax-ai/code@latest   # or: curl -fsSL https://filecdn.minimax.chat/public/install.sh | bash",
        "headless": {
          "command": "mcode exec --cwd . --output-format json --timeout 10m --max-steps 50 \"$TASK\"",
          "env": {
            "MCODE_DISABLE_TELEMETRY": "1",
            "MCODE_PROVIDER_API_KEY": "\u003ckey\u003e"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/minimax-code"
      },
      "sameCompany": [
        "minimax-api",
        "minimax-video",
        "minimax-voice-cloning"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Nanonoble Pte. Ltd.",
        "domain": "minimax.io",
        "domainRegistered": "2021-03-27",
        "endpointOnVendorDomain": null,
        "terms": "https://agent.minimax.io/doc/en/terms-of-service.html",
        "privacy": "https://agent.minimax.io/doc/en/privacy-policy.html",
        "statusPage": "",
        "changelog": "https://agent.minimax.io/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-10-19",
        "notes": [
          "The MiniMax Agent terms of use and privacy policy, both updated 19 January 2026 and linked from the download page, name Nanonoble Pte. Ltd., as do the MiniMax API terms. The repository's MIT licence names 'MiniMax Code' as the copyright holder.",
          "SECURITY.md takes private reports at a dedicated MiniMax Code security address and through GitHub's private advisories, with no response SLA. platform.minimax.io answers 404 for /.well-known/security.txt and www.minimax.io redirects it to the home page.",
          "RDAP for minimax.io gives a registration date of 2021-03-27, as recorded on the MiniMax Video API listing."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/minimax-code.json",
      "live": {
        "slug": "minimax-code",
        "securityTxt": {
          "url": "https://minimax.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-19T15:55:03.5197794Z"
        },
        "updatedAt": "2026-10-19T15:55:03.5197794Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "MiniMax",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "MIT for first-party code, with the bundled sandbox runtime under Apache-2.0. The desktop app's source isn't published",
        "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-15",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-01-19",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-01-19",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "2k stars, 6.8k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "3.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi and MiniMax Code score within a point of each other on agent readiness, 68.4 (B) and 67.5 (B).",
        "question": "Which is better for AI agents, Pi or MiniMax Code?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). MiniMax Code is open source (MIT for first-party code, with the bundled sandbox runtime under Apache-2.0. The desktop app's source isn't published).",
        "question": "Are Pi and MiniMax Code open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 63",
          "Maintenance \u0026 community, 87 against 77"
        ],
        "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": "Scripted coding runs on MiniMax's models or any compatible model, driven by JSON output and exit codes.",
        "slug": "minimax-code",
        "watchFor": "Pre-1.0 and labelled a source preview, with npm at 0.6.12 and the public source at 0.6.5"
      }
    ],
    "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-minimax-code.json",
        "title": "Agent Zero vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-earendil-pi.json",
        "title": "Aider vs Pi",
        "url": "https://www.anchorterminal.com/compare/aider-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-minimax-code.json",
        "title": "Aider vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/aider-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-earendil-pi.json",
        "title": "Amp vs Pi",
        "url": "https://www.anchorterminal.com/compare/amp-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-minimax-code.json",
        "title": "Amp vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/amp-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.json",
        "title": "Antigravity CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-minimax-code.json",
        "title": "Antigravity CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-minimax-code"
      },
      {
        "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-minimax-code.json",
        "title": "Auggie CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.json",
        "title": "Claude Code vs Pi",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-minimax-code.json",
        "title": "Claude Code vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-earendil-pi.json",
        "title": "Cline vs Pi",
        "url": "https://www.anchorterminal.com/compare/cline-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-minimax-code.json",
        "title": "Cline vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/cline-vs-minimax-code"
      },
      {
        "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-minimax-code.json",
        "title": "Crush vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/crush-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.json",
        "title": "Cursor CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-minimax-code.json",
        "title": "Cursor CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-minimax-code"
      },
      {
        "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-minimax-code.json",
        "title": "DeepSeek Harness (dsh) vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-earendil-pi.json",
        "title": "Devin vs Pi",
        "url": "https://www.anchorterminal.com/compare/devin-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-minimax-code.json",
        "title": "Devin vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/devin-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.json",
        "title": "Droid CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-minimax-code.json",
        "title": "Droid CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.json",
        "title": "Pi vs Harness²",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules.json",
        "title": "Pi vs Jules",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
        "title": "Pi vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
        "title": "Pi vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
        "title": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-minimax-code.json",
        "title": "Gemini CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-minimax-code.json",
        "title": "GitHub Copilot CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-minimax-code.json",
        "title": "goose vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/goose-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-minimax-code.json",
        "title": "Harness² vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-minimax-code.json",
        "title": "HarnessRouter vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-minimax-code.json",
        "title": "Jules vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/jules-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-minimax-code.json",
        "title": "Junie CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/junie-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-minimax-code.json",
        "title": "Kilo Code CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code.json",
        "title": "Kimi Code CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-minimax-code.json",
        "title": "Kiro CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-minimax-code.json",
        "title": "mini-swe-agent vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-mistral-vibe-cli.json",
        "title": "MiniMax Code vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-muse-code.json",
        "title": "MiniMax Code vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex.json",
        "title": "MiniMax Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-opencode.json",
        "title": "MiniMax Code vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openhands.json",
        "title": "MiniMax Code vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-prime-agent.json",
        "title": "MiniMax Code vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-qoder-cli.json",
        "title": "MiniMax Code vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-qwen-code.json",
        "title": "MiniMax Code vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-reflection-mirror.json",
        "title": "MiniMax Code vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-rovo-dev-cli.json",
        "title": "MiniMax Code vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-warp.json",
        "title": "MiniMax Code vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-minimax-code.json",
        "title": "CLI Manager vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-minimax-code.json",
        "title": "Harness vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-paperclip.json",
        "title": "MiniMax Code vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-parallax-agents.json",
        "title": "MiniMax Code vs Parallax",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-parallax-agents"
      }
    ],
    "scores": [
      {
        "by": 12,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "minimax-code": 63,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "minimax-code": 81,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 1,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "minimax-code": 75,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 4,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "minimax-code": 57,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "earendil-pi": 60,
        "edge": "",
        "key": "payments",
        "minimax-code": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "minimax-code": 77,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 3,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "minimax-code": 61,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi and MiniMax Code score within a point of each other on agent readiness, 68.4 (B) and 67.5 (B). 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.",
      "minimax-code": "An MIT-licensed terminal coding agent with a headless mode that returns versioned JSON, documented exit codes and an ACP server, and telemetry off by default. It's pre-1.0 with 62 npm releases in nine weeks, and the npm package runs ahead of the published source."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.min.md"
  },
  "markdown": "Pi and MiniMax Code score within a point of each other on agent readiness, 68.4 (B) and 67.5 (B). Both do agent harnesses.\n\n- Pi: grade B, 68.4/100, rank #235 of 1175. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- MiniMax Code: grade B, 67.5/100, rank #277 of 1175. Markdown https://www.anchorterminal.com/tools/minimax-code.md · JSON https://www.anchorterminal.com/api/v1/tools/minimax-code.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 752 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 63\n- Maintenance \u0026 community, 87 against 77\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### MiniMax Code (B)\n\nGood for: Scripted coding runs on MiniMax's models or any compatible model, driven by JSON output and exit codes.\n\nAlso in its favour:\n- No incidents deducted, where Pi loses 4 points for them\n\nWatch for: Pre-1.0 and labelled a source preview, with npm at 0.6.12 and the public source at 0.6.5\n\n\n## Score by category\n\n| Category | Weight | Pi | MiniMax Code | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 63 | Pi +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 81 | Pi +3 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 75 | Pi +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 57 | Pi +4 |\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 | 77 | Pi +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 61 | Pi +3 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **68.4 · B** | **67.5 · B** | |\n\n## Facts side by side\n\n| Fact | Pi | MiniMax Code |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | MiniMax |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | OAuth or key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT for first-party code, with the bundled sandbox runtime under Apache-2.0. The desktop app's source isn't published |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-15 |\n| Terms last updated | no document linked | 2026-01-19 |\n| Privacy policy last updated | no document linked | 2026-01-19 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | yes |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | yes |\n| Arbitration or class-action waiver |  | yes |\n| Popularity | 113k stars, 5.2M npm/wk | 2k stars, 6.8k npm/wk |\n| Agent reviews | 3.3/5 (4) | 3.5/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**MiniMax Code.** An MIT-licensed terminal coding agent with a headless mode that returns versioned JSON, documented exit codes and an ACP server, and telemetry off by default. It's pre-1.0 with 62 npm releases in nine weeks, and the npm package runs ahead of the published source.\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### MiniMax Code\n\n1. Run `mcode exec --cwd \u003crepo\u003e --output-format json --timeout 10m --max-steps 50` and check both the exit code and the JSON `status`\n2. Keep `--permission full` and `off` for a container or throwaway workspace. The default `smart` fails when it would need a person\n3. Set `MCODE_PROVIDER_API_KEY` and add a provider for BYOK. M Plan models need a browser sign-in with `mcode login --region global`\n4. Set `MINIMAX_DATA_DIR` per CI runner. Keys and sessions live in `~/.minimax` by default\n5. Pin a version. npm published 62 releases in nine weeks and the public source trails it\n\n## Questions\n\n### Which is better for AI agents, Pi or MiniMax Code?\n\nPi and MiniMax Code score within a point of each other on agent readiness, 68.4 (B) and 67.5 (B).\n\n### Are Pi and MiniMax Code open source?\n\nYes. Pi is open source (MIT). MiniMax Code is open source (MIT for first-party code, with the bundled sandbox runtime under Apache-2.0. The desktop app's source isn't published).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"minimax-code\"}`. From a terminal: `anchor compare earendil-pi minimax-code`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/minimax-code.json\n\n## Other comparisons with Pi or MiniMax Code\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs MiniMax Code](https://www.anchorterminal.com/compare/agent-zero-vs-minimax-code.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs MiniMax Code](https://www.anchorterminal.com/compare/aider-vs-minimax-code.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs MiniMax Code](https://www.anchorterminal.com/compare/amp-vs-minimax-code.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs MiniMax Code](https://www.anchorterminal.com/compare/antigravity-cli-vs-minimax-code.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs MiniMax Code](https://www.anchorterminal.com/compare/auggie-vs-minimax-code.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs MiniMax Code](https://www.anchorterminal.com/compare/claude-code-vs-minimax-code.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs MiniMax Code](https://www.anchorterminal.com/compare/cline-vs-minimax-code.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs MiniMax Code](https://www.anchorterminal.com/compare/crush-vs-minimax-code.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs MiniMax Code](https://www.anchorterminal.com/compare/cursor-cli-vs-minimax-code.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs MiniMax Code](https://www.anchorterminal.com/compare/deepseek-harness-vs-minimax-code.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs MiniMax Code](https://www.anchorterminal.com/compare/devin-vs-minimax-code.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs MiniMax Code](https://www.anchorterminal.com/compare/droid-cli-vs-minimax-code.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md)\n- [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md)\n- [Gemini CLI vs MiniMax Code](https://www.anchorterminal.com/compare/gemini-cli-vs-minimax-code.md)\n- [GitHub Copilot CLI vs MiniMax Code](https://www.anchorterminal.com/compare/github-copilot-cli-vs-minimax-code.md)\n- [goose vs MiniMax Code](https://www.anchorterminal.com/compare/goose-vs-minimax-code.md)\n- [Harness² vs MiniMax Code](https://www.anchorterminal.com/compare/harness2-vs-minimax-code.md)\n- [HarnessRouter vs MiniMax Code](https://www.anchorterminal.com/compare/harnessrouter-vs-minimax-code.md)\n- [Jules vs MiniMax Code](https://www.anchorterminal.com/compare/jules-vs-minimax-code.md)\n- [Junie CLI vs MiniMax Code](https://www.anchorterminal.com/compare/junie-vs-minimax-code.md)\n- [Kilo Code CLI vs MiniMax Code](https://www.anchorterminal.com/compare/kilo-code-cli-vs-minimax-code.md)\n- [Kimi Code CLI vs MiniMax Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code.md)\n- [Kiro CLI vs MiniMax Code](https://www.anchorterminal.com/compare/kiro-cli-vs-minimax-code.md)\n- [mini-swe-agent vs MiniMax Code](https://www.anchorterminal.com/compare/mini-swe-agent-vs-minimax-code.md)\n- [MiniMax Code vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/minimax-code-vs-mistral-vibe-cli.md)\n- [MiniMax Code vs Muse Code](https://www.anchorterminal.com/compare/minimax-code-vs-muse-code.md)\n- [MiniMax Code vs OpenAI Codex](https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex.md)\n- [MiniMax Code vs OpenCode](https://www.anchorterminal.com/compare/minimax-code-vs-opencode.md)\n- [MiniMax Code vs OpenHands](https://www.anchorterminal.com/compare/minimax-code-vs-openhands.md)\n- [MiniMax Code vs Prime Agent](https://www.anchorterminal.com/compare/minimax-code-vs-prime-agent.md)\n- [MiniMax Code vs Qoder CLI](https://www.anchorterminal.com/compare/minimax-code-vs-qoder-cli.md)\n- [MiniMax Code vs Qwen Code](https://www.anchorterminal.com/compare/minimax-code-vs-qwen-code.md)\n- [MiniMax Code vs Mirror CLI](https://www.anchorterminal.com/compare/minimax-code-vs-reflection-mirror.md)\n- [MiniMax Code vs Rovo Dev CLI](https://www.anchorterminal.com/compare/minimax-code-vs-rovo-dev-cli.md)\n- [MiniMax Code vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/minimax-code-vs-warp.md)\n- [CLI Manager vs MiniMax Code](https://www.anchorterminal.com/compare/cli-manager-vs-minimax-code.md)\n- [Harness vs MiniMax Code](https://www.anchorterminal.com/compare/harness-autonomous-vs-minimax-code.md)\n- [MiniMax Code vs Paperclip](https://www.anchorterminal.com/compare/minimax-code-vs-paperclip.md)\n- [MiniMax Code vs Parallax](https://www.anchorterminal.com/compare/minimax-code-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "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 MiniMax Code",
        "url": ""
      }
    ],
    "description": "Pi and MiniMax Code score within a point of each other for agent harnesses, 68.4 and 67.5 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "MiniMax Code B 67.5",
      "scores"
    ],
    "h1": "Pi vs MiniMax Code",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-minimax-code.png",
    "path": "/compare/earendil-pi-vs-minimax-code",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs MiniMax Code for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-19",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code"
  },
  "tokens": {
    "markdown": 3450,
    "slim": 630
  },
  "version": 1
}
