{
  "data": {
    "a": {
      "slug": "agent-zero",
      "name": "Agent Zero",
      "vendor": "Agent Zero, s.r.o.",
      "vendorUrl": "https://www.agent-zero.ai",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Agent Zero is an open-source agent framework that runs in a Docker container with a Linux desktop, a browser, a task scheduler and memory. Its owner reaches it through a web interface, Telegram, WhatsApp or email.",
      "url": "https://www.anchorterminal.com/tools/agent-zero",
      "markdownUrl": "https://www.anchorterminal.com/tools/agent-zero.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/agent-zero.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/agent-zero.json",
      "repo": "https://github.com/agent0ai/agent-zero",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "oci",
          "name": "agent0ai/agent-zero"
        }
      ],
      "auth": "none",
      "authNotes": "No account. The web interface has no login until the owner sets a username and password in Settings or as `AUTH_LOGIN` and `AUTH_PASSWORD`, which are stored in `/a0/usr/.env` (https://github.com/agent0ai/agent-zero/blob/main/docs/setup/vps-deployment.md). The external API takes an `X-API-KEY` header, and the optional MCP server and A2A endpoint carry the same token in the URL path. The token is derived from the instance id and the login, so it changes when either changes (https://github.com/agent0ai/agent-zero/blob/main/docs/guides/a2a-setup.md). Model access uses provider API keys or OAuth sign-in to ChatGPT (Codex), GitHub Copilot, Google Cloud Gemini or xAI (https://github.com/agent0ai/agent-zero/blob/main/plugins/_oauth/README.md).",
      "pricing": "free",
      "pricingNotes": "Free under MIT, with nothing to buy for the software. The owner pays the model provider they configure, or nothing with a local model. A beta LLM API on the vendor's site gives a daily quota to people who stake its A0T token and is separate from the software (checked 2026-10-12).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 19429,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://github.com/agent0ai/agent-zero/tree/main/docs",
      "llmsTxt": "https://www.agent-zero.ai/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "python",
        "mit",
        "llms-txt",
        "docker"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.2,
        "grade": "C",
        "agentReady": false,
        "rank": 709,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 19,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 75,
          "payments": 60,
          "reliability": 57,
          "schema": 64,
          "security": 54,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": -6,
        "negativeNotes": [
          "2026-03-17. CVE-2026-4307 (path traversal in `get_abs_path`, CVSS 4.3) and CVE-2026-4308 (server-side request forgery in document queries, CVSS 6.3), both against 0.9.7, with public exploits. The NVD entries say the vendor was contacted and did not respond. The v2.9 notes of 12 August 2026 list a fix for an SSRF regression under CVE-2026-4308. Whether CVE-2026-4307 is fixed was not established. -2. https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-4308",
          "2026-05-27. CVE-2026-47119, stored cross-site scripting through SVG files served by the `image_get` endpoint, CVSS 6.1, in versions before 1.15. The report (#1609) was closed as completed on 12 May 2026. Fixed, and no GitHub advisory was published. -1. https://github.com/agent0ai/agent-zero/issues/1609",
          "2026-09-30. CVE-2026-51852 and CVE-2026-51853, directory traversal in the file browser of versions 1.7 to 1.10, CVSS 7.5 each. Reported as issues #1539 and #1540 on 20 April 2026 and closed as completed on 24 July 2026. The file browser still starts at the container root by design. -1. https://github.com/agent0ai/agent-zero/issues/1540",
          "2026-09-09. Two flaws recorded in the project's own security-review ledger and fixed in v2.12 the same day. An unauthenticated Telegram webhook accepted forged updates, and WhatsApp document names could overwrite files outside the media cache before the sender check ran. The ledger rates both high. Named in the release notes, with no advisory. -2. https://github.com/agent0ai/agent-zero/blob/main/security-review/LEDGER.md"
        ],
        "verdict": "Self-hosted under the MIT licence, with nine releases in the 90 days to 12 October 2026 and breaking changes listed in the release notes. The agent runs shell commands in its container with no approval step, the web interface has no login by default, and five CVEs from the past year have no published GitHub advisory.",
        "bestFor": "A technical owner who wants an agent with its own Linux machine, reachable from Telegram, WhatsApp or email, with scheduled tasks and editable memory.",
        "strengths": [
          "MIT licence, with prompts, tools, plugins and settings readable and editable in one public repository",
          "Nine tagged releases between 17 July and 23 September 2026, and Breaking Changes sections in the v2.11, v2.12 and v2.13 notes",
          "Memory dashboard to search, edit, delete and bulk-delete entries, with memory kept apart for each project by default",
          "No usage telemetry found in the source. The one call home is an update check that a setting turns off",
          "Tool Access policy can allow or block each built-in and MCP tool for a project or an agent profile"
        ],
        "weaknesses": [
          "No approval step before shell commands, file changes or outgoing messages. Tool Access defaults to allow",
          "The web interface has no login until the owner sets a username, and the README command publishes port 80",
          "Five CVEs published between 17 March and 30 September 2026, none as a GitHub advisory, and no SECURITY.md or security.txt",
          "Infection Check, the prompt-injection audit before tool calls, ships turned off",
          "Empty allow-lists in the Telegram, WhatsApp and email integrations accept messages from anyone",
          "No public CI runs the 191 test files. The only workflows publish Docker images and close inactive issues"
        ],
        "agentNotes": [
          "Set a UI login and password in Settings before publishing the port or opening a tunnel. The default has none",
          "Fill `allowed_users`, `allowed_numbers` or `sender_whitelist` before enabling a channel. An empty list accepts every sender",
          "Enable the Infection Check plugin when the agent reads mail, web pages or MCP results. It ships disabled",
          "Run v2.12 or later. It fixes a Telegram webhook authentication bypass and a WhatsApp media path traversal",
          "Call `POST /api_message` with the `X-API-KEY` header. The token changes when the UI login or password changes"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.2
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 75,
          "payments": 60,
          "reliability": 57,
          "schema": 64,
          "security": 54,
          "transparency": 56
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "docker run -p 80:80 -v a0_usr:/a0/usr agent0ai/agent-zero   # or: curl -fsSL https://bash.agent-zero.ai | bash"
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/agent-zero"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Agent Zero, s.r.o.",
        "domain": "agent-zero.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/agent0ai/agent-zero/releases",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "The site footer names Agent Zero, s.r.o., ID no. 231 46 508, Nové sady 988/2, 602 00 Brno, Czech Republic, and the `LICENSE` file carries the same company's copyright.",
          "No terms or privacy policy for the software was found. The site's terms page covers its community platform and its cookie page covers the website, so neither is linked here and the MIT licence stands in.",
          "`/.well-known/security.txt` on www.agent-zero.ai answered 404 on 12 October 2026, and the repository has no SECURITY.md.",
          "robots.txt on www.agent-zero.ai answered 404, read as no rules. agent-zero.ai redirects to www.agent-zero.ai.",
          "There is no hosted endpoint. An instance answers on its owner's own host.",
          "The domain's registration date was not looked up."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/agent-zero.json"
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Agent Zero's 54.2 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "earendil-pi",
      "name": "Pi",
      "vendor": "Earendil",
      "vendorUrl": "https://pi.dev",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Pi is an open-source terminal coding agent from Earendil, run on the owner's machine with any of 15 or more model providers. It has interactive, print, JSON and RPC modes, a TypeScript SDK and a built-in MCP client.",
      "url": "https://www.anchorterminal.com/tools/earendil-pi",
      "markdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/earendil-pi.json",
      "repo": "https://github.com/earendil-works/pi",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@earendil-works/pi-coding-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No Pi account needed. Model providers are connected with `/login` (a subscription or an API key, stored in `~/.pi/agent/auth.json`) or with environment variables such as `ANTHROPIC_API_KEY`. MCP servers take headers, bearer tokens from the environment or OAuth, with tokens kept in `~/.pi/agent/mcp-auth.json`. Radius, the optional hosted gateway, needs its own sign-in or `RADIUS_API_KEY`.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with no paid edition of the harness. The owner pays the model provider. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and no public price list was found (checked 2026-10-08).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or the docs (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 113417,
        "npmWeekly": 5201697,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://pi.dev/docs/latest",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "typescript",
        "mcp",
        "json-output",
        "rpc",
        "no-sandbox"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.4,
        "grade": "B",
        "agentReady": false,
        "rank": 219,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.1.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-11T19:28:38.412663265Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.1.0",
            "seenAt": "2026-10-11T19:28:38.184031473Z"
          }
        ],
        "githubStars": 114297,
        "npmWeekly": 4185174,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-12T15:43:42.802724889Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-11T13:19:49.150714299Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-11T19:31:42.430866035Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "82f9cb8bddf7"
          }
        ],
        "updatedAt": "2026-10-12T15:43:42.802724889Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Agent Zero, s.r.o.",
        "b": "Earendil",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-23",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "19k stars",
        "b": "113k stars, 5.2M npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Agent Zero's 54.2 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Agent Zero or Pi?"
      },
      {
        "answer": "Yes. Agent Zero is open source (MIT). Pi is open source (MIT).",
        "question": "Are Agent Zero and Pi open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "A technical owner who wants an agent with its own Linux machine, reachable from Telegram, WhatsApp or email, with scheduled tasks and editable memory.",
        "slug": "agent-zero",
        "watchFor": "No approval step before shell commands, file changes or outgoing messages. Tool Access defaults to allow"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 57",
          "Schema \u0026 documentation, 84 against 64",
          "Agent ergonomics, 76 against 62",
          "Security \u0026 auth, 61 against 54",
          "Maintenance \u0026 community, 87 against 75",
          "Transparency \u0026 trust, 64 against 55"
        ],
        "also": [
          "Free to start without a card"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-aider.json",
        "title": "Agent Zero vs Aider",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-aider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-amp.json",
        "title": "Agent Zero vs Amp",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-amp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-antigravity-cli.json",
        "title": "Agent Zero vs Antigravity CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-antigravity-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-claude-code.json",
        "title": "Agent Zero vs Claude Code",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-claude-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-cline.json",
        "title": "Agent Zero vs Cline",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-cline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-cursor-cli.json",
        "title": "Agent Zero vs Cursor CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-cursor-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-devin.json",
        "title": "Agent Zero vs Devin",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-devin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-droid-cli.json",
        "title": "Agent Zero vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-gemini-cli.json",
        "title": "Agent Zero vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-github-copilot-cli.json",
        "title": "Agent Zero vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-goose.json",
        "title": "Agent Zero vs goose",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-kilo-code-cli.json",
        "title": "Agent Zero vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-kiro-cli.json",
        "title": "Agent Zero vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex.json",
        "title": "Agent Zero vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-opencode.json",
        "title": "Agent Zero vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-openhands.json",
        "title": "Agent Zero vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-prime-agent.json",
        "title": "Agent Zero vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-qwen-code.json",
        "title": "Agent Zero vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-qwen-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/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/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/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/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/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/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/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/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      }
    ],
    "scores": [
      {
        "agent-zero": 57,
        "by": 18,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "agent-zero": 64,
        "by": 20,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "agent-zero": 62,
        "by": 14,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "agent-zero": 54,
        "by": 7,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "agent-zero": 60,
        "by": 0,
        "earendil-pi": 60,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "agent-zero": 75,
        "by": 12,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "agent-zero": 55,
        "by": 9,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Agent Zero's 54.2 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.",
    "verdicts": {
      "agent-zero": "Self-hosted under the MIT licence, with nine releases in the 90 days to 12 October 2026 and breaking changes listed in the release notes. The agent runs shell commands in its container with no approval step, the web interface has no login by default, and five CVEs from the past year have no published GitHub advisory.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi",
    "json": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md",
    "slim": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Agent Zero's 54.2 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.\n\n- Agent Zero: grade C, 54.2/100, rank #709 of 986. Markdown https://www.anchorterminal.com/tools/agent-zero.md · JSON https://www.anchorterminal.com/api/v1/tools/agent-zero.json\n- Pi: grade B, 68.4/100, rank #219 of 986. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 205 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Agent Zero (C)\n\nGood for: A technical owner who wants an agent with its own Linux machine, reachable from Telegram, WhatsApp or email, with scheduled tasks and editable memory.\n\nWatch for: No approval step before shell commands, file changes or outgoing messages. Tool Access defaults to allow\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 57\n- Schema \u0026 documentation, 84 against 64\n- Agent ergonomics, 76 against 62\n- Security \u0026 auth, 61 against 54\n- Maintenance \u0026 community, 87 against 75\n- Transparency \u0026 trust, 64 against 55\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n\n## Score by category\n\n| Category | Weight | Agent Zero | Pi | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 57 | 75 | Pi +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 64 | 84 | Pi +20 |\n| Agent ergonomics | 13% (16.2 this run) | 62 | 76 | Pi +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 61 | Pi +7 |\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) | 75 | 87 | Pi +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 64 | Pi +9 |\n| Negative events | ≤15 | -6 | -4 | |\n| **Total** | | **54.2 · C** | **68.4 · B** | |\n\n## Facts side by side\n\n| Fact | Agent Zero | Pi |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Agent Zero, s.r.o. | Earendil |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-09-23 | 2026-10-07 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 19k stars | 113k stars, 5.2M npm/wk |\n\n## Verdicts\n\n**Agent Zero.** Self-hosted under the MIT licence, with nine releases in the 90 days to 12 October 2026 and breaking changes listed in the release notes. The agent runs shell commands in its container with no approval step, the web interface has no login by default, and five CVEs from the past year have no published GitHub advisory.\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## Before you call either\n\n### Agent Zero\n\n1. Set a UI login and password in Settings before publishing the port or opening a tunnel. The default has none\n2. Fill `allowed_users`, `allowed_numbers` or `sender_whitelist` before enabling a channel. An empty list accepts every sender\n3. Enable the Infection Check plugin when the agent reads mail, web pages or MCP results. It ships disabled\n4. Run v2.12 or later. It fixes a Telegram webhook authentication bypass and a WhatsApp media path traversal\n5. Call `POST /api_message` with the `X-API-KEY` header. The token changes when the UI login or password changes\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## Questions\n\n### Which is better for AI agents, Agent Zero or Pi?\n\nPi scores 68.4 (B) on agent readiness against Agent Zero's 54.2 (C), and leads in 6 of 7 scored categories.\n\n### Are Agent Zero and Pi open source?\n\nYes. Agent Zero is open source (MIT). Pi is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"agent-zero\", \"b\": \"earendil-pi\"}`. From a terminal: `anchor compare agent-zero earendil-pi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/agent-zero.json and https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n\n## Other comparisons with Agent Zero or Pi\n\n- [Agent Zero vs Aider](https://www.anchorterminal.com/compare/agent-zero-vs-aider.md)\n- [Agent Zero vs Amp](https://www.anchorterminal.com/compare/agent-zero-vs-amp.md)\n- [Agent Zero vs Antigravity CLI](https://www.anchorterminal.com/compare/agent-zero-vs-antigravity-cli.md)\n- [Agent Zero vs Claude Code](https://www.anchorterminal.com/compare/agent-zero-vs-claude-code.md)\n- [Agent Zero vs Cline](https://www.anchorterminal.com/compare/agent-zero-vs-cline.md)\n- [Agent Zero vs Cursor CLI](https://www.anchorterminal.com/compare/agent-zero-vs-cursor-cli.md)\n- [Agent Zero vs Devin](https://www.anchorterminal.com/compare/agent-zero-vs-devin.md)\n- [Agent Zero vs Droid CLI](https://www.anchorterminal.com/compare/agent-zero-vs-droid-cli.md)\n- [Agent Zero vs Gemini CLI](https://www.anchorterminal.com/compare/agent-zero-vs-gemini-cli.md)\n- [Agent Zero vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/agent-zero-vs-github-copilot-cli.md)\n- [Agent Zero vs goose](https://www.anchorterminal.com/compare/agent-zero-vs-goose.md)\n- [Agent Zero vs Kilo Code CLI](https://www.anchorterminal.com/compare/agent-zero-vs-kilo-code-cli.md)\n- [Agent Zero vs Kiro CLI](https://www.anchorterminal.com/compare/agent-zero-vs-kiro-cli.md)\n- [Agent Zero vs OpenAI Codex](https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex.md)\n- [Agent Zero vs OpenCode](https://www.anchorterminal.com/compare/agent-zero-vs-opencode.md)\n- [Agent Zero vs OpenHands](https://www.anchorterminal.com/compare/agent-zero-vs-openhands.md)\n- [Agent Zero vs Prime Agent](https://www.anchorterminal.com/compare/agent-zero-vs-prime-agent.md)\n- [Agent Zero vs Qwen Code](https://www.anchorterminal.com/compare/agent-zero-vs-qwen-code.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-12",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Agent Zero vs Pi",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Agent Zero's 54.2 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Agent Zero C 54.2",
      "Pi B 68.4",
      "scores"
    ],
    "h1": "Agent Zero vs Pi",
    "image": "https://www.anchorterminal.com/assets/og/compare-agent-zero-vs-earendil-pi.png",
    "path": "/compare/agent-zero-vs-earendil-pi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Agent Zero vs Pi for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 480
  },
  "version": 1
}
