{
  "data": {
    "a": {
      "slug": "earendil-pi",
      "name": "Pi",
      "vendor": "Earendil",
      "vendorUrl": "https://pi.dev",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Pi is an open-source terminal coding agent from Earendil, run on the owner's machine with any of 15 or more model providers. It has interactive, print, JSON and RPC modes, a TypeScript SDK and a built-in MCP client.",
      "url": "https://www.anchorterminal.com/tools/earendil-pi",
      "markdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/earendil-pi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/earendil-pi.json",
      "repo": "https://github.com/earendil-works/pi",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@earendil-works/pi-coding-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No Pi account needed. Model providers are connected with `/login` (a subscription or an API key, stored in `~/.pi/agent/auth.json`) or with environment variables such as `ANTHROPIC_API_KEY`. MCP servers take headers, bearer tokens from the environment or OAuth, with tokens kept in `~/.pi/agent/mcp-auth.json`. Radius, the optional hosted gateway, needs its own sign-in or `RADIUS_API_KEY`.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with no paid edition of the harness. The owner pays the model provider. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and no public price list was found (checked 2026-10-08).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or the docs (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 113417,
        "npmWeekly": 5201697,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://pi.dev/docs/latest",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "typescript",
        "mcp",
        "json-output",
        "rpc",
        "no-sandbox"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.4,
        "grade": "B",
        "agentReady": false,
        "rank": 233,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-08. GHSA-jfgx-wxx8-mp94 (CVE-2026-54328, high). Temporary extension installs used predictable paths under the system temp directory, so another local user on a shared Linux host could plant extension code that Pi then loaded. Fixed in 0.78.1. Fixed, published and four months old, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-jfgx-wxx8-mp94",
          "2026-06-08. GHSA-mqxh-6gq7-558m (CVE-2026-54325, medium). Before 0.79.0 Pi loaded a repository's `.pi` settings and extensions without asking, so starting it in a cloned repository could run that repository's code. Fixed in 0.79.0 with project trust. Fixed and published, -2. https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m",
          "2026-06-08. GHSA-7v5m-pr3q-6453 (CVE-2026-54326, low, XSS in HTML session exports) and GHSA-r95r-rj6r-c39x (CVE-2026-54327, low, a race in `auth.json` permissions). Both fixed in 0.78.1. Recorded without a deduction. https://github.com/earendil-works/pi/security/advisories"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published on 8 June 2026, one rated high and one medium, all fixed by 0.79.0",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and a breaking provider rename shipped in patch release 1.0.3"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The pi.dev and earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy and earendil.com/privacy return 404. Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt and earendil.com/.well-known/security.txt return 404. SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.3.0",
            "released": "2026-10-15",
            "seenAt": "2026-10-18T02:44:53.997039564Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.3.0",
            "seenAt": "2026-10-18T02:44:53.784724198Z"
          }
        ],
        "githubStars": 115982,
        "npmWeekly": 2612036,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-18T15:53:35.560404115Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-10-18T13:28:47.513502795Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:35:04.783143423Z",
            "changedAt": "2026-10-16T22:28:32.441702707Z",
            "fingerprint": "2c7a827b9676"
          }
        ],
        "updatedAt": "2026-10-18T23:35:04.783143423Z"
      }
    },
    "answer": "Pi scores 68.4 (B) on agent readiness against Warp (Warp Agent CLI and the Oz Agent API)'s 59.8 (C), and leads in 5 of 7 scored categories. Warp (Warp Agent CLI and the Oz Agent API) leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "warp",
      "name": "Warp (Warp Agent CLI and the Oz Agent API)",
      "vendor": "Warp",
      "vendorUrl": "https://www.warp.dev",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Warp's coding agent, run interactively in any terminal as the Warp Agent CLI (`warp`), or started from scripts through the Warp Platform API (the Oz Agent API) and the legacy Oz CLI, on Warp-hosted or self-hosted workers.",
      "url": "https://www.anchorterminal.com/tools/warp",
      "markdownUrl": "https://www.anchorterminal.com/tools/warp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/warp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/warp.json",
      "repo": "https://github.com/warpdotdev/warp",
      "license": "Mixed. The client, including the `warp` and `oz` binaries, is AGPL-3.0 with the `warpui_core` and `warpui` crates under MIT. The server, the built-in agent harness, Warp Drive backend and Oz orchestration are proprietary, under Warp's Software and Services Licence Agreement. The SDKs are Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "warp-platform-sdk"
        },
        {
          "registry": "npm",
          "name": "@warp-dot-dev/warp-platform-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "A Warp account is required. The `warp` CLI signs in with a device code in the browser, or takes a Warp API key in `WARP_API_KEY` (or `--api-key`). The Oz CLI uses `oz login` or the same key. The API takes the key as a bearer token. Personal keys act as the user, agent keys run as one cloud agent on the team, and each key expires after 1, 30 or 90 days or never.",
      "pricing": "freemium",
      "pricingNotes": "Free is $0 with Warp Agent CLI access and limited cloud agent use, but no bundled Warp inference, so the agent needs purchased usage (at a premium on Free) or your own provider key. Build is $20 a month with $20 of usage at API rates, Max $200 with $200, Business $50 a seat a month with $20 a seat, and Enterprise by quote. Cloud runs add compute and agent-hour platform charges, and no agent-hour rate was found on the pricing page (checked 2026-10-18).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs bundles, the OpenAPI file or the pricing page (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://docs.warp.dev/agents/cli/",
      "llmsTxt": "https://docs.warp.dev/llms.txt",
      "openapi": "https://docs.warp.dev/openapi.json",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "cloud-agent",
        "mcp",
        "llms-txt",
        "openapi",
        "sdk",
        "python",
        "typescript",
        "status-page",
        "free-tier",
        "open-source",
        "rust",
        "telemetry-default-on",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.8,
        "grade": "C",
        "agentReady": false,
        "rank": 592,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 18,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 84,
          "payments": 20,
          "reliability": 52,
          "schema": 89,
          "security": 52,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": -1,
        "negativeNotes": [
          "2026-05-06. The release of 6 May 2026 fixed a command injection vulnerability when opening files in external editors on Linux. It is recorded as one changelog line with no advisory, CVE or affected versions that we found, and api.osv.dev listed no advisories for the project's packages on 18 October 2026 (our GitHub record). Fixed, so 1 point. Judgement call. Dependency updates for GHSA-5pmw-9j92-3c4c (15 April) and CVE-2026-50185 (31 July) were not counted (https://docs.warp.dev/changelog/2026/)"
        ],
        "verdict": "The Warp Platform API has a public OpenAPI file, RFC 7807 errors with a `retryable` flag and Python and TypeScript SDKs. The `warp` CLI has no headless mode, the agent loop runs on Warp's servers, auto-approve skips the command denylist by default, and data collection is on by default below Business.",
        "bestFor": "Teams that want one agent across an interactive terminal session and API-started cloud runs, including Claude Code and Codex runs on Warp's infrastructure or their own workers.",
        "strengths": [
          "An OpenAPI 3.0 file for the Warp Platform API with 293 schemas, and RFC 7807 errors that carry a machine-readable code and a `retryable` flag",
          "Runs can be started, listed, followed up, interrupted and cancelled over HTTP, with cursor pagination and filters by state, task status and name",
          "Execution profiles set shell, edit, read, MCP and child-agent permissions separately, and the default denylist covers `rm`, `curl`, `wget`, `eval` and `ssh`",
          "Weekly dated releases, 15 between 23 July and 15 October 2026, from an AGPL-3.0 client repository with CI on pull requests",
          "Cloud runs can use the Warp Agent, Claude Code or Codex harness, on Warp-hosted or self-hosted workers"
        ],
        "weaknesses": [
          "The `warp` CLI has no print or headless mode. Scripts go through the legacy Oz CLI or the API, both of which need a Warp account",
          "Auto-approve bypasses the command denylist by default, and no local OS sandbox is documented for the CLI",
          "AI interactions and console inputs are collected by default on Free and on paid plans below Business, and the documented opt-out is in the desktop app",
          "The agent harness and Oz orchestration are proprietary and run server-side. Only the client is open source",
          "The install script checks no checksum, and no security.txt, bug bounty or SLA was found",
          "The terms forbid accessing the Services by robot, scraper or other automated means and using them to build a competitive product"
        ],
        "agentNotes": [
          "For unattended work, call `POST https://app.warp.dev/api/v1/agent/runs` with `Authorization: Bearer $WARP_API_KEY`. The `warp` CLI is interactive only",
          "Use an agent key, scoped to one cloud agent and given an expiry, for CI rather than a personal key. Keys are created in the Oz web app or the Warp app",
          "Set `auto_approve_bypasses_command_denylist = false` under `[agents.warp_agent.other]` before starting `warp --auto-approve`",
          "Read `code` and `retryable` in error bodies. A 429 `resource_unavailable` means capacity is full and the platform retries the task itself",
          "Pin a version with `WARP_TUI_VERSION` at install, or set `general.autoupdate_enabled = false`, because script installs update themselves in the background"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.8
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 84,
          "payments": 20,
          "reliability": 52,
          "schema": 89,
          "security": 52,
          "transparency": 57
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "curl -fsSL https://app.warp.dev/download/agent-cli | bash   # or: brew install --cask warp-agent-cli",
        "http": "curl -X POST https://app.warp.dev/api/v1/agent/runs \\\n  -H \"Authorization: Bearer $WARP_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"Scan the repo for outdated dependencies and summarize the findings.\", \"config\": {\"environment_id\": \"\u003cENV_ID\u003e\"}}'",
        "headless": {
          "command": "oz agent run --prompt \"$TASK\"",
          "env": {
            "WARP_API_KEY": "wk-..."
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/warp"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Build plan",
          "unit": "month",
          "usd": 20,
          "note": "includes $20 of agent usage at API rates"
        },
        {
          "item": "Max plan",
          "unit": "month",
          "usd": 200,
          "note": "includes $200 of agent usage"
        },
        {
          "item": "Business seat",
          "unit": "seat-month",
          "usd": 50,
          "note": "includes $20 of usage a seat, up to 25 seats"
        }
      ],
      "provenance": {
        "legalEntity": "Denver Technologies, Inc. (d/b/a Warp)",
        "domain": "warp.dev",
        "domainRegistered": "2020-08-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.warp.dev/legal/terms-of-service",
        "privacy": "https://www.warp.dev/legal/privacy-policy",
        "statusPage": "https://status.warp.dev",
        "changelog": "https://docs.warp.dev/changelog/",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "The Software and Services Licence Agreement names Denver Technologies, Inc. d/b/a Warp.dev, and the privacy notice names Denver Technologies, Inc., d.b.a. Warp. Neither page shows an update date.",
          "Google Registry RDAP gives warp.dev a registration date of 2020-08-24.",
          "The API is served from app.warp.dev, on the vendor's domain.",
          "www.warp.dev/.well-known/security.txt and docs.warp.dev/.well-known/security.txt answered 404 on 18 October 2026, and app.warp.dev returns its web app for that path. SECURITY.md in the repository names security@warp.dev and private GitHub advisories.",
          "Subprocessors are listed at https://www.warp.dev/legal/subprocessors, which answered but was not read in full."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/warp.json",
      "live": {
        "slug": "warp",
        "vendorStatus": {
          "page": "https://status.warp.dev",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-19T00:05:54.91162396Z"
        },
        "pages": [
          {
            "url": "https://docs.warp.dev/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:30:03.195087321Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1c834a16b833"
          },
          {
            "url": "https://www.warp.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:49:41.116041757Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6dfc754a2e88"
          },
          {
            "url": "https://www.warp.dev/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-18T23:49:43.524624062Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b87c7cf7e26c"
          }
        ],
        "updatedAt": "2026-10-19T00:05:54.91162396Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "Warp",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Mixed. The client, including the `warp` and `oz` binaries, is AGPL-3.0 with the `warpui_core` and `warpui` crates under MIT. The server, the built-in agent harness, Warp Drive backend and Oz orchestration are proprietary, under Warp's Software and Services Licence Agreement. The SDKs are Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "3.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Warp (Warp Agent CLI and the Oz Agent API)'s 59.8 (C), and leads in 5 of 7 scored categories. Warp (Warp Agent CLI and the Oz Agent API) leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Pi or Warp (Warp Agent CLI and the Oz Agent API)?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). Warp (Warp Agent CLI and the Oz Agent API) is open source (Mixed. The client, including the `warp` and `oz` binaries, is AGPL-3.0 with the `warpui_core` and `warpui` crates under MIT. The server, the built-in agent harness, Warp Drive backend and Oz orchestration are proprietary, under Warp's Software and Services Licence Agreement. The SDKs are Apache-2.0).",
        "question": "Are Pi and Warp (Warp Agent CLI and the Oz Agent API) open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 52",
          "Agent ergonomics, 76 against 66",
          "Security \u0026 auth, 61 against 52",
          "Payments \u0026 pricing, 60 against 20"
        ],
        "also": [
          "No key needed to call it",
          "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 89 against 84",
          "Transparency \u0026 trust, 72 against 64"
        ],
        "also": null,
        "goodFor": "Teams that want one agent across an interactive terminal session and API-started cloud runs, including Claude Code and Codex runs on Warp's infrastructure or their own workers.",
        "slug": "warp",
        "watchFor": "The `warp` CLI has no print or headless mode. Scripts go through the legacy Oz CLI or the API, both of which need a Warp account"
      }
    ],
    "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-warp.json",
        "title": "Agent Zero vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Aider vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/aider-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Amp vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/amp-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Antigravity CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Auggie CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Claude Code vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Cline vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/cline-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Crush vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Cursor CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-warp"
      },
      {
        "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-warp.json",
        "title": "DeepSeek Harness (dsh) vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Devin vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/devin-vs-warp"
      },
      {
        "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-warp.json",
        "title": "Droid CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.json",
        "title": "Pi vs Harness²",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules.json",
        "title": "Pi vs Jules",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
        "title": "Pi vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
        "title": "Pi vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-warp.json",
        "title": "Gemini CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-warp.json",
        "title": "GitHub Copilot CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-warp.json",
        "title": "goose vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/goose-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-warp.json",
        "title": "Harness² vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-warp.json",
        "title": "HarnessRouter vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-warp.json",
        "title": "Jules vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/jules-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-warp.json",
        "title": "Junie CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/junie-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-warp.json",
        "title": "Kilo Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.json",
        "title": "Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-warp.json",
        "title": "Kiro CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp.json",
        "title": "mini-swe-agent vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-warp.json",
        "title": "Mistral Vibe CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-warp.json",
        "title": "Muse Code vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-warp.json",
        "title": "OpenAI Codex vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencode-vs-warp.json",
        "title": "OpenCode vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/opencode-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-warp.json",
        "title": "OpenHands vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prime-agent-vs-warp.json",
        "title": "Prime Agent vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/prime-agent-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qoder-cli-vs-warp.json",
        "title": "Qoder CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/qoder-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qwen-code-vs-warp.json",
        "title": "Qwen Code vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/qwen-code-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/reflection-mirror-vs-warp.json",
        "title": "Mirror CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/reflection-mirror-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rovo-dev-cli-vs-warp.json",
        "title": "Rovo Dev CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/rovo-dev-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-warp.json",
        "title": "CLI Manager vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-warp.json",
        "title": "Harness vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paperclip-vs-warp.json",
        "title": "Paperclip vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/paperclip-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallax-agents-vs-warp.json",
        "title": "Parallax vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/parallax-agents-vs-warp"
      }
    ],
    "scores": [
      {
        "by": 23,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "warp": 52,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "earendil-pi": 84,
        "edge": "warp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "warp": 89,
        "weight": 13
      },
      {
        "by": 10,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "warp": 66,
        "weight": 13
      },
      {
        "by": 9,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "name": "Security \u0026 auth",
        "warp": 52,
        "weight": 14
      },
      {
        "by": 40,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "warp": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "warp": 84,
        "weight": 7
      },
      {
        "by": 8,
        "earendil-pi": 64,
        "edge": "warp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "warp": 72,
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Warp (Warp Agent CLI and the Oz Agent API)'s 59.8 (C), and leads in 5 of 7 scored categories. Warp (Warp Agent CLI and the Oz Agent API) leads on schema \u0026 documentation and transparency \u0026 trust. Both do agent harnesses.",
    "tutorials": [],
    "verdicts": {
      "earendil-pi": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.",
      "warp": "The Warp Platform API has a public OpenAPI file, RFC 7807 errors with a `retryable` flag and Python and TypeScript SDKs. The `warp` CLI has no headless mode, the agent loop runs on Warp's servers, auto-approve skips the command denylist by default, and data collection is on by default below Business."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Warp (Warp Agent CLI and the Oz Agent API)'s 59.8 (C), and leads in 5 of 7 scored categories. Warp (Warp Agent CLI and the Oz Agent API) leads on schema \u0026 documentation and transparency \u0026 trust. Both do agent harnesses.\n\n- Pi: grade B, 68.4/100, rank #233 of 1146. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- Warp (Warp Agent CLI and the Oz Agent API): grade C, 59.8/100, rank #592 of 1146. Markdown https://www.anchorterminal.com/tools/warp.md · JSON https://www.anchorterminal.com/api/v1/tools/warp.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 713 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Pi (B)\n\nGood for: Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.\n\nAhead on:\n- Reliability, 75 against 52\n- Agent ergonomics, 76 against 66\n- Security \u0026 auth, 61 against 52\n- Payments \u0026 pricing, 60 against 20\n\nAlso in its favour:\n- No key needed to call it\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### Warp (Warp Agent CLI and the Oz Agent API) (C)\n\nGood for: Teams that want one agent across an interactive terminal session and API-started cloud runs, including Claude Code and Codex runs on Warp's infrastructure or their own workers.\n\nAhead on:\n- Schema \u0026 documentation, 89 against 84\n- Transparency \u0026 trust, 72 against 64\n\nWatch for: The `warp` CLI has no print or headless mode. Scripts go through the legacy Oz CLI or the API, both of which need a Warp account\n\n\n## Score by category\n\n| Category | Weight | Pi | Warp (Warp Agent CLI and the Oz Agent API) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 52 | Pi +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 89 | Warp (Warp Agent CLI and the Oz Agent API) +5 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 66 | Pi +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 52 | Pi +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 20 | Pi +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 84 | Pi +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 72 | Warp (Warp Agent CLI and the Oz Agent API) +8 |\n| Negative events | ≤15 | -4 | -1 | |\n| **Total** | | **68.4 · B** | **59.8 · C** | |\n\n## Facts side by side\n\n| Fact | Pi | Warp (Warp Agent CLI and the Oz Agent API) |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | Warp |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | Mixed. The client, including the `warp` and `oz` binaries, is AGPL-3.0 with the `warpui_core` and `warpui` crates under MIT. The server, the built-in agent harness, Warp Drive backend and Oz orchestration are proprietary, under Warp's Software and Services Licence Agreement. The SDKs are Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-15 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked |  |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 113k stars, 5.2M npm/wk | none |\n| Agent reviews | 3.3/5 (4) | 3.3/5 (4) |\n\n## Verdicts\n\n**Pi.** Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.\n\n**Warp (Warp Agent CLI and the Oz Agent API).** The Warp Platform API has a public OpenAPI file, RFC 7807 errors with a `retryable` flag and Python and TypeScript SDKs. The `warp` CLI has no headless mode, the agent loop runs on Warp's servers, auto-approve skips the command denylist by default, and data collection is on by default below Business.\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### Warp (Warp Agent CLI and the Oz Agent API)\n\n1. For unattended work, call `POST https://app.warp.dev/api/v1/agent/runs` with `Authorization: Bearer $WARP_API_KEY`. The `warp` CLI is interactive only\n2. Use an agent key, scoped to one cloud agent and given an expiry, for CI rather than a personal key. Keys are created in the Oz web app or the Warp app\n3. Set `auto_approve_bypasses_command_denylist = false` under `[agents.warp_agent.other]` before starting `warp --auto-approve`\n4. Read `code` and `retryable` in error bodies. A 429 `resource_unavailable` means capacity is full and the platform retries the task itself\n5. Pin a version with `WARP_TUI_VERSION` at install, or set `general.autoupdate_enabled = false`, because script installs update themselves in the background\n\n## Questions\n\n### Which is better for AI agents, Pi or Warp (Warp Agent CLI and the Oz Agent API)?\n\nPi scores 68.4 (B) on agent readiness against Warp (Warp Agent CLI and the Oz Agent API)'s 59.8 (C), and leads in 5 of 7 scored categories. Warp (Warp Agent CLI and the Oz Agent API) leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Are Pi and Warp (Warp Agent CLI and the Oz Agent API) open source?\n\nYes. Pi is open source (MIT). Warp (Warp Agent CLI and the Oz Agent API) is open source (Mixed. The client, including the `warp` and `oz` binaries, is AGPL-3.0 with the `warpui_core` and `warpui` crates under MIT. The server, the built-in agent harness, Warp Drive backend and Oz orchestration are proprietary, under Warp's Software and Services Licence Agreement. The SDKs are Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-warp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"warp\"}`. From a terminal: `anchor compare earendil-pi warp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/warp.json\n\n## Other comparisons with Pi or Warp (Warp Agent CLI and the Oz Agent API)\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/agent-zero-vs-warp.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/aider-vs-warp.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/amp-vs-warp.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/antigravity-cli-vs-warp.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/auggie-vs-warp.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/claude-code-vs-warp.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/cline-vs-warp.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/crush-vs-warp.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/cursor-cli-vs-warp.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/deepseek-harness-vs-warp.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/devin-vs-warp.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/droid-cli-vs-warp.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md)\n- [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Gemini CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/gemini-cli-vs-warp.md)\n- [GitHub Copilot CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/github-copilot-cli-vs-warp.md)\n- [goose vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/goose-vs-warp.md)\n- [Harness² vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/harness2-vs-warp.md)\n- [HarnessRouter vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/harnessrouter-vs-warp.md)\n- [Jules vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/jules-vs-warp.md)\n- [Junie CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/junie-vs-warp.md)\n- [Kilo Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/kilo-code-cli-vs-warp.md)\n- [Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.md)\n- [Kiro CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/kiro-cli-vs-warp.md)\n- [mini-swe-agent vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/mini-swe-agent-vs-warp.md)\n- [Mistral Vibe CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-warp.md)\n- [Muse Code vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/muse-code-vs-warp.md)\n- [OpenAI Codex vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openai-codex-vs-warp.md)\n- [OpenCode vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/opencode-vs-warp.md)\n- [OpenHands vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openhands-vs-warp.md)\n- [Prime Agent vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/prime-agent-vs-warp.md)\n- [Qoder CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/qoder-cli-vs-warp.md)\n- [Qwen Code vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/qwen-code-vs-warp.md)\n- [Mirror CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/reflection-mirror-vs-warp.md)\n- [Rovo Dev CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/rovo-dev-cli-vs-warp.md)\n- [CLI Manager vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/cli-manager-vs-warp.md)\n- [Harness vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/harness-autonomous-vs-warp.md)\n- [Paperclip vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/paperclip-vs-warp.md)\n- [Parallax vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/parallax-agents-vs-warp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-19",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Warp's 59.8 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "Warp (Warp Agent CLI and the Oz Agent API) C 59.8",
      "scores"
    ],
    "h1": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-warp.png",
    "path": "/compare/earendil-pi-vs-warp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs Warp for AI agents in 2026: scores and prices | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
  },
  "tokens": {
    "markdown": 3900,
    "slim": 680
  },
  "version": 1
}
