{
  "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-23).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or the docs (checked 2026-10-23).",
        "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-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.6,
        "grade": "B",
        "agentReady": false,
        "rank": 236,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-23"
        },
        "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.4.0 is dated 21 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 breaking changes ship in patch and minor releases (1.0.3, 1.2.0)"
        ],
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.6
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 69,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-23",
            "maintenance": "2026-10-23",
            "payments": "2026-10-23",
            "reliability": "2026-10-23",
            "schema": "2026-10-23",
            "security": "2026-10-23",
            "transparency": "2026-10-23"
          },
          "last": "2026-10-23",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-23",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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-23",
        "notes": [
          "The pi.dev, earendil.com and radius.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, earendil.com/privacy and radius.earendil.com/privacy return 404 (23 October 2026). 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 (23 October 2026). 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": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.4.0",
            "released": "2026-10-21",
            "seenAt": "2026-10-30T14:10:34.828590705Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.4.0",
            "seenAt": "2026-10-30T14:10:34.554734963Z"
          }
        ],
        "githubStars": 118962,
        "npmWeekly": 5977988,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-30T15:39:11.958686527Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-25T13:57:24.370263488Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-30T05:45:30.918445259Z",
            "changedAt": "2026-10-22T01:22:51.91550917Z",
            "fingerprint": "f3dfbad8123c"
          }
        ],
        "github": {
          "repo": "earendil-works/pi",
          "checkedAt": "2026-10-26T07:24:56.680369301Z",
          "stars": 117866,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-25T08:05:44Z",
          "openIssues": 300,
          "openPRs": 87,
          "issuesOpened90d": 2994,
          "issuesClosed90d": 2780,
          "prsMerged90d": 367,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 34,
            "failure": 3,
            "other": 13,
            "latest": "success",
            "latestAt": "2026-10-25T08:13:34Z"
          },
          "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-30T15:39:11.958686527Z"
      }
    },
    "answer": "Pi scores 68.6 (B) on agent readiness against OpenMausBot's 65.4 (B), and leads in 5 of 7 scored categories. OpenMausBot leads on schema \u0026 documentation.",
    "b": {
      "slug": "openmausbot",
      "name": "OpenMausBot",
      "vendor": "Supamaus Software Private Limited",
      "vendorUrl": "https://mausbot.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "OpenMausBot, now branded MausBot, is an open-source desktop app that runs Claude Code, Codex and other agent CLIs as a team of chat bots with their own computers. Other agents drive it through a stdio MCP server and CLI.",
      "url": "https://www.anchorterminal.com/tools/openmausbot",
      "markdownUrl": "https://www.anchorterminal.com/tools/openmausbot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openmausbot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openmausbot.json",
      "repo": "https://github.com/milind-soni/OpenMausBot",
      "license": "Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "openmausbot"
        }
      ],
      "auth": "mixed",
      "authNotes": "No account for the free app. The harness binds to 127.0.0.1. In packaged builds, read-only MCP tools work on loopback without a token, while tools that create, send, switch, interrupt or run need a paired session token (`omb_sess_...`) from a single-use pairing code in Settings \u003e Phone, passed as `OPENMAUSBOT_TOKEN` and revocable there. Agent CLIs use the owner's own logins or API keys. Cloud plans need a MausBot account.",
      "pricing": "freemium",
      "pricingNotes": "The app is free under Apache 2.0, with model usage billed by the owner's own provider. MausBot Cloud, an always-on hosted workspace, is $15, $49 or $99 a month (Starter, Pro, Max) with 100, 300 or 800 cloud computer-hours. Team is $169 a month; Business plans start with a call. Extra computer-hours are $0.05 each. Prices from https://mausbot.com/pricing, read on 30 October 2026.",
      "priceSummary": "$15 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the MCP and CLI docs, the pricing page or the file tree of the repository (checked 2026-10-30). Cloud plans are paid by monthly subscription.",
        "endpoints": []
      },
      "toolCount": 20,
      "popularity": {
        "githubStars": 8181,
        "npmWeekly": 3518,
        "pypiWeekly": null,
        "asOf": "2026-10-30"
      },
      "docsUrl": "https://github.com/milind-soni/OpenMausBot/blob/main/docs/mcp-server.md",
      "capabilities": [
        "agent.multi-agent",
        "agent.harness",
        "agent.mcp-client",
        "desktop.control"
      ],
      "tags": [
        "open-source",
        "apache-2.0",
        "self-hosted",
        "local",
        "freemium",
        "no-card",
        "mcp",
        "stdio",
        "cli",
        "typescript",
        "desktop-app",
        "macos",
        "windows",
        "linux",
        "docker"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.4,
        "grade": "B",
        "agentReady": false,
        "rank": 368,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 74,
          "payments": 50,
          "reliability": 60,
          "schema": 90,
          "security": 59,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-30"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-18. The privacy policy (last updated 18 October 2026) says the desktop and companion apps contain no third-party analytics SDKs, while the app's source loads posthog-js and sends events to us.i.posthog.com unless the owner switches analytics off, as docs/analytics.md describes. Disclosed in the README and docs, so a misleading claim rather than undisclosed telemetry, -2. https://mausbot.com/privacy, https://github.com/milind-soni/OpenMausBot/blob/main/src/lib/analytics.ts"
        ],
        "verdict": "A bounded 20-tool MCP server with typed schemas, annotations and idempotent sends, and a headless CLI with JSON output and exit codes, let another agent hand work to a bot team and wait on it. New bots start at Full access, so provider permission requests pass without a card, and usage analytics stay on until switched off.",
        "bestFor": "A person or an outside agent who wants several CLI agents (Claude Code, Codex, Grok, ACP CLIs) organised as named bots with their own computers, routines and approvals, driven by MCP or a CLI.",
        "strengths": [
          "20 MCP tools with typed inputs, `additionalProperties: false`, limits and readOnlyHint, destructiveHint and idempotentHint on every tool",
          "`wait_for_conversation` holds until the job changes and returns settled, needs-user, failed, stalled or timed-out with the job tree",
          "`send_id` makes a repeated send return the first receipt instead of posting twice",
          "The `openmausbot` CLI prints one JSON document with `--json` and uses documented exit codes, 3 for a pending approval and 4 for a timeout",
          "128 desktop releases between 11 August and 30 October 2026, published to npm by GitHub Actions trusted publishing with provenance"
        ],
        "weaknesses": [
          "New bots start at Full access, which approves provider permission requests without a card",
          "Usage analytics to PostHog are on by default, while the privacy policy says the apps carry no third-party analytics SDKs",
          "Pre-1.0 (0.1.134), with new capabilities shipped in patch versions and no breaking-change section in release notes",
          "The MCP server answers only while the desktop app or `openmausbot serve` is running, and mutating tools need a paired token",
          "Not in the official MCP registry. The Windows installer is not code-signed"
        ],
        "agentNotes": [
          "Ask the owner for a pairing code from Settings \u003e Phone, exchange it at `POST /api/auth/pair`, and set `OPENMAUSBOT_TOKEN` with an explicit `OMB_PORT`",
          "Pass a `send_id` with every `send_bot_message` and `send_channel_message`, so a retry returns the first receipt",
          "Use `wait_for_conversation` instead of polling, and on `needs-user` stop and tell the owner a card is waiting",
          "Check a bot's access level with the owner before sending work. New bots run at Full access unless defaults were changed",
          "Ask the owner to switch off Settings \u003e General \u003e Usage analytics if nothing beyond model calls should leave the machine"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.4
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 74,
          "payments": 50,
          "reliability": 60,
          "schema": 90,
          "security": 59,
          "transparency": 57
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-30",
            "maintenance": "2026-10-30",
            "payments": "2026-10-30",
            "reliability": "2026-10-30",
            "schema": "2026-10-30",
            "security": "2026-10-30",
            "transparency": "2026-10-30"
          },
          "last": "2026-10-30",
          "oldest": "2026-10-30",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g openmausbot   # Node.js 24 or newer, or download the desktop app from https://github.com/milind-soni/OpenMausBot/releases/latest",
        "config": {
          "mcpServers": {
            "openmausbot": {
              "args": [
                "mcp"
              ],
              "command": "openmausbot",
              "env": {
                "OMB_PORT": "8799"
              }
            }
          }
        },
        "headless": {
          "command": "openmausbot run \"Room Lead\" \"$TASK\" --json --export ./out",
          "env": {
            "OMB_PORT": "8799"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.multi-agent",
        "tool": "https://letme.dev/openmausbot"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "MausBot Cloud Starter (100 computer-hours)",
          "unit": "month",
          "usd": 15,
          "note": "Model usage billed by the owner's provider"
        },
        {
          "item": "MausBot Cloud Pro (300 computer-hours, $10 Claude credit)",
          "unit": "month",
          "usd": 49,
          "note": "Model usage beyond the credit billed by the owner's provider"
        },
        {
          "item": "MausBot Cloud Max (800 computer-hours, $20 Claude credit)",
          "unit": "month",
          "usd": 99,
          "note": "Model usage beyond the credit billed by the owner's provider"
        },
        {
          "item": "MausBot Team (up to 5 people)",
          "unit": "month",
          "usd": 169,
          "note": "$135 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Supamaus Software Private Limited",
        "domain": "mausbot.com",
        "domainRegistered": "2026-09-30",
        "endpointOnVendorDomain": null,
        "terms": "https://mausbot.com/terms",
        "privacy": "https://mausbot.com/privacy",
        "statusPage": "",
        "changelog": "https://github.com/milind-soni/OpenMausBot/releases",
        "securityTxt": "none",
        "checked": "2026-10-30",
        "notes": [
          "The terms name Supamaus Software Private Limited, a company incorporated in India, with the laws of India and the courts at Pune. The contact page gives CIN U62011PN2026PTC259029 and names Milind Soni, Director, as grievance officer.",
          "The licence file and the enterprise licence read Copyright 2026 Milind Soni. LICENSING.md says the OpenMausBot and MausBot names and the mascot are trademarks of Supamaus Software Private Limited.",
          "RDAP at Verisign gives 2026-08-12 for openmausbot.com and 2026-09-30 for mausbot.com. The GitHub repository was created on 11 August 2026.",
          "www.openmausbot.com and docs.openmausbot.com disallow our crawler in robots.txt (ClaudeBot and anthropic-ai on www, every user agent on docs), so neither was read. mausbot.com allows all and was read. The docs site's source is in the repository under apps/docs and was read there.",
          "mausbot.com/.well-known/security.txt returned 404 on 30 October 2026. SECURITY.md in the repository gives an email and GitHub private vulnerability reporting.",
          "The software runs on the owner's machine, so there is no vendor endpoint or status page to check for the listed surface. MausBot Cloud is a hosted option with no status page found."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openmausbot.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "Supamaus Software Private Limited",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "stdio",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "20",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-21",
        "b": "2026-10-30",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-10-10",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-10-18",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "8.2k stars, 3.5k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.6 (B) on agent readiness against OpenMausBot's 65.4 (B), and leads in 5 of 7 scored categories. OpenMausBot leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, Pi or OpenMausBot?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). OpenMausBot is open source (Apache-2.0).",
        "question": "Are Pi and OpenMausBot open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 60",
          "Payments \u0026 pricing, 60 against 50",
          "Maintenance \u0026 community, 87 against 74",
          "Transparency \u0026 trust, 67 against 59"
        ],
        "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": [
          "Schema \u0026 documentation, 90 against 84"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "A person or an outside agent who wants several CLI agents (Claude Code, Codex, Grok, ACP CLIs) organised as named bots with their own computers, routines and approvals, driven by MCP or a CLI.",
        "slug": "openmausbot",
        "watchFor": "New bots start at Full access, which approves provider permission requests without a card"
      }
    ],
    "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-openmausbot.json",
        "title": "Agent Zero vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Aider vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/aider-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Amp vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/amp-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Antigravity CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Auggie CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Claude Code vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Cline vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/cline-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Crush vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Cursor CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "DeepSeek Harness (dsh) vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Devin vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/devin-vs-openmausbot"
      },
      {
        "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-openmausbot.json",
        "title": "Droid CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openmausbot"
      },
      {
        "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-minimax-code.json",
        "title": "Pi vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code"
      },
      {
        "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-unstoppable.json",
        "title": "Pi vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading.json",
        "title": "Pi vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading"
      },
      {
        "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-openmausbot.json",
        "title": "Gemini CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openmausbot.json",
        "title": "GitHub Copilot CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-openmausbot.json",
        "title": "goose vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/goose-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-openmausbot.json",
        "title": "Harness² vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openmausbot.json",
        "title": "HarnessRouter vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-openmausbot.json",
        "title": "Jules vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/jules-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openmausbot.json",
        "title": "Junie CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openmausbot.json",
        "title": "Kilo Code CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot.json",
        "title": "Kimi Code CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-openmausbot.json",
        "title": "Kiro CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openmausbot.json",
        "title": "mini-swe-agent vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openmausbot.json",
        "title": "MiniMax Code vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openmausbot.json",
        "title": "Mistral Vibe CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openmausbot.json",
        "title": "Muse Code vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot.json",
        "title": "OpenAI Codex vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencode-vs-openmausbot.json",
        "title": "OpenCode vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/opencode-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-openmausbot.json",
        "title": "OpenHands vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-openmausbot.json",
        "title": "CLI Manager vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-openmausbot.json",
        "title": "Harness vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-paperclip.json",
        "title": "OpenMausBot vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-parallax-agents.json",
        "title": "OpenMausBot vs Parallax",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-parallax-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-prime-agent.json",
        "title": "OpenMausBot vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-qoder-cli.json",
        "title": "OpenMausBot vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-qwen-code.json",
        "title": "OpenMausBot vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-reflection-mirror.json",
        "title": "OpenMausBot vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-rovo-dev-cli.json",
        "title": "OpenMausBot vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-unstoppable.json",
        "title": "OpenMausBot vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-vibe-trading.json",
        "title": "OpenMausBot vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openmausbot-vs-warp.json",
        "title": "OpenMausBot vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openmausbot-vs-warp"
      }
    ],
    "scores": [
      {
        "by": 15,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "openmausbot": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "earendil-pi": 84,
        "edge": "openmausbot",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openmausbot": 90,
        "weight": 13
      },
      {
        "by": 1,
        "earendil-pi": 76,
        "edge": "openmausbot",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openmausbot": 77,
        "weight": 13
      },
      {
        "by": 2,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "name": "Security \u0026 auth",
        "openmausbot": 59,
        "weight": 14
      },
      {
        "by": 10,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openmausbot": 50,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openmausbot": 74,
        "weight": 7
      },
      {
        "by": 8,
        "earendil-pi": 67,
        "edge": "earendil-pi",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openmausbot": 59,
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.6 (B) on agent readiness against OpenMausBot's 65.4 (B), and leads in 5 of 7 scored categories. OpenMausBot leads on schema \u0026 documentation. 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.4.0 is dated 21 October 2026.",
      "openmausbot": "A bounded 20-tool MCP server with typed schemas, annotations and idempotent sends, and a headless CLI with JSON output and exit codes, let another agent hand work to a bot team and wait on it. New bots start at Full access, so provider permission requests pass without a card, and usage analytics stay on until switched off."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.min.md"
  },
  "markdown": "Pi scores 68.6 (B) on agent readiness against OpenMausBot's 65.4 (B), and leads in 5 of 7 scored categories. OpenMausBot leads on schema \u0026 documentation. Both do agent harnesses.\n\n- Pi: grade B, 68.6/100, rank #236 of 1239. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- OpenMausBot: grade B, 65.4/100, rank #368 of 1239. Markdown https://www.anchorterminal.com/tools/openmausbot.md · JSON https://www.anchorterminal.com/api/v1/tools/openmausbot.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 875 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 60\n- Payments \u0026 pricing, 60 against 50\n- Maintenance \u0026 community, 87 against 74\n- Transparency \u0026 trust, 67 against 59\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### OpenMausBot (B)\n\nGood for: A person or an outside agent who wants several CLI agents (Claude Code, Codex, Grok, ACP CLIs) organised as named bots with their own computers, routines and approvals, driven by MCP or a CLI.\n\nAhead on:\n- Schema \u0026 documentation, 90 against 84\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: New bots start at Full access, which approves provider permission requests without a card\n\n\n## Score by category\n\n| Category | Weight | Pi | OpenMausBot | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 60 | Pi +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 90 | OpenMausBot +6 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 77 | OpenMausBot +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 59 | Pi +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 50 | Pi +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 74 | Pi +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 59 | Pi +8 |\n| Negative events | ≤15 | -4 | -2 | |\n| **Total** | | **68.6 · B** | **65.4 · B** | |\n\n## Facts side by side\n\n| Fact | Pi | OpenMausBot |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | Supamaus Software Private Limited |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | stdio |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Tools exposed | none | 20 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-21 | 2026-10-30 |\n| Terms last updated | no document linked | 2026-10-10 |\n| Privacy policy last updated | no document linked | 2026-10-18 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 113k stars, 5.2M npm/wk | 8.2k stars, 3.5k npm/wk |\n| Agent reviews | 3.3/5 (4) | none |\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.4.0 is dated 21 October 2026.\n\n**OpenMausBot.** A bounded 20-tool MCP server with typed schemas, annotations and idempotent sends, and a headless CLI with JSON output and exit codes, let another agent hand work to a bot team and wait on it. New bots start at Full access, so provider permission requests pass without a card, and usage analytics stay on until switched off.\n\n## Before you call either\n\n### Pi\n\n1. Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands\n2. Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode\n3. Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings\n4. Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit\n5. Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev\n\n### OpenMausBot\n\n1. Ask the owner for a pairing code from Settings \u003e Phone, exchange it at `POST /api/auth/pair`, and set `OPENMAUSBOT_TOKEN` with an explicit `OMB_PORT`\n2. Pass a `send_id` with every `send_bot_message` and `send_channel_message`, so a retry returns the first receipt\n3. Use `wait_for_conversation` instead of polling, and on `needs-user` stop and tell the owner a card is waiting\n4. Check a bot's access level with the owner before sending work. New bots run at Full access unless defaults were changed\n5. Ask the owner to switch off Settings \u003e General \u003e Usage analytics if nothing beyond model calls should leave the machine\n\n## Questions\n\n### Which is better for AI agents, Pi or OpenMausBot?\n\nPi scores 68.6 (B) on agent readiness against OpenMausBot's 65.4 (B), and leads in 5 of 7 scored categories. OpenMausBot leads on schema \u0026 documentation.\n\n### Are Pi and OpenMausBot open source?\n\nYes. Pi is open source (MIT). OpenMausBot is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"openmausbot\"}`. From a terminal: `anchor compare earendil-pi openmausbot`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/openmausbot.json\n\n## Other comparisons with Pi or OpenMausBot\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs OpenMausBot](https://www.anchorterminal.com/compare/agent-zero-vs-openmausbot.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs OpenMausBot](https://www.anchorterminal.com/compare/aider-vs-openmausbot.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs OpenMausBot](https://www.anchorterminal.com/compare/amp-vs-openmausbot.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs OpenMausBot](https://www.anchorterminal.com/compare/antigravity-cli-vs-openmausbot.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs OpenMausBot](https://www.anchorterminal.com/compare/auggie-vs-openmausbot.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs OpenMausBot](https://www.anchorterminal.com/compare/claude-code-vs-openmausbot.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs OpenMausBot](https://www.anchorterminal.com/compare/cline-vs-openmausbot.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs OpenMausBot](https://www.anchorterminal.com/compare/crush-vs-openmausbot.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs OpenMausBot](https://www.anchorterminal.com/compare/cursor-cli-vs-openmausbot.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs OpenMausBot](https://www.anchorterminal.com/compare/deepseek-harness-vs-openmausbot.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs OpenMausBot](https://www.anchorterminal.com/compare/devin-vs-openmausbot.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs OpenMausBot](https://www.anchorterminal.com/compare/droid-cli-vs-openmausbot.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 MiniMax Code](https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.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 Unstoppable](https://www.anchorterminal.com/compare/earendil-pi-vs-unstoppable.md)\n- [Pi vs Vibe-Trading](https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading.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 OpenMausBot](https://www.anchorterminal.com/compare/gemini-cli-vs-openmausbot.md)\n- [GitHub Copilot CLI vs OpenMausBot](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openmausbot.md)\n- [goose vs OpenMausBot](https://www.anchorterminal.com/compare/goose-vs-openmausbot.md)\n- [Harness² vs OpenMausBot](https://www.anchorterminal.com/compare/harness2-vs-openmausbot.md)\n- [HarnessRouter vs OpenMausBot](https://www.anchorterminal.com/compare/harnessrouter-vs-openmausbot.md)\n- [Jules vs OpenMausBot](https://www.anchorterminal.com/compare/jules-vs-openmausbot.md)\n- [Junie CLI vs OpenMausBot](https://www.anchorterminal.com/compare/junie-vs-openmausbot.md)\n- [Kilo Code CLI vs OpenMausBot](https://www.anchorterminal.com/compare/kilo-code-cli-vs-openmausbot.md)\n- [Kimi Code CLI vs OpenMausBot](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot.md)\n- [Kiro CLI vs OpenMausBot](https://www.anchorterminal.com/compare/kiro-cli-vs-openmausbot.md)\n- [mini-swe-agent vs OpenMausBot](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openmausbot.md)\n- [MiniMax Code vs OpenMausBot](https://www.anchorterminal.com/compare/minimax-code-vs-openmausbot.md)\n- [Mistral Vibe CLI vs OpenMausBot](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openmausbot.md)\n- [Muse Code vs OpenMausBot](https://www.anchorterminal.com/compare/muse-code-vs-openmausbot.md)\n- [OpenAI Codex vs OpenMausBot](https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot.md)\n- [OpenCode vs OpenMausBot](https://www.anchorterminal.com/compare/opencode-vs-openmausbot.md)\n- [OpenHands vs OpenMausBot](https://www.anchorterminal.com/compare/openhands-vs-openmausbot.md)\n- [CLI Manager vs OpenMausBot](https://www.anchorterminal.com/compare/cli-manager-vs-openmausbot.md)\n- [Harness vs OpenMausBot](https://www.anchorterminal.com/compare/harness-autonomous-vs-openmausbot.md)\n- [OpenMausBot vs Paperclip](https://www.anchorterminal.com/compare/openmausbot-vs-paperclip.md)\n- [OpenMausBot vs Parallax](https://www.anchorterminal.com/compare/openmausbot-vs-parallax-agents.md)\n- [OpenMausBot vs Prime Agent](https://www.anchorterminal.com/compare/openmausbot-vs-prime-agent.md)\n- [OpenMausBot vs Qoder CLI](https://www.anchorterminal.com/compare/openmausbot-vs-qoder-cli.md)\n- [OpenMausBot vs Qwen Code](https://www.anchorterminal.com/compare/openmausbot-vs-qwen-code.md)\n- [OpenMausBot vs Mirror CLI](https://www.anchorterminal.com/compare/openmausbot-vs-reflection-mirror.md)\n- [OpenMausBot vs Rovo Dev CLI](https://www.anchorterminal.com/compare/openmausbot-vs-rovo-dev-cli.md)\n- [OpenMausBot vs Unstoppable](https://www.anchorterminal.com/compare/openmausbot-vs-unstoppable.md)\n- [OpenMausBot vs Vibe-Trading](https://www.anchorterminal.com/compare/openmausbot-vs-vibe-trading.md)\n- [OpenMausBot vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openmausbot-vs-warp.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-31",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "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 OpenMausBot",
        "url": ""
      }
    ],
    "description": "Pi scores 68.6 (B) to OpenMausBot's 65.4 (B) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.6",
      "OpenMausBot B 65.4",
      "scores"
    ],
    "h1": "Pi vs OpenMausBot",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-openmausbot.png",
    "path": "/compare/earendil-pi-vs-openmausbot",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs OpenMausBot for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-30",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot"
  },
  "tokens": {
    "markdown": 3650,
    "slim": 680
  },
  "version": 1
}
