{
  "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",
      "dns": "earendil-pi.grade.anchorterminal.com",
      "repo": "https://github.com/earendil-works/pi",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@earendil-works/pi-coding-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No Pi account needed. Model providers are connected with `/login` (a subscription or an API key, stored in `~/.pi/agent/auth.json`) or with environment variables such as `ANTHROPIC_API_KEY`. MCP servers take headers, bearer tokens from the environment or OAuth, with tokens kept in `~/.pi/agent/mcp-auth.json`. Radius, the optional hosted gateway, needs its own sign-in or `RADIUS_API_KEY`.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with no paid edition of the harness. The owner pays the model provider. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and no public price list was found (checked 2026-10-23).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository or the docs (checked 2026-10-23).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 113417,
        "npmWeekly": 5201697,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://pi.dev/docs/latest",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "typescript",
        "mcp",
        "json-output",
        "rpc",
        "no-sandbox"
      ],
      "lastRelease": "2026-10-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.6,
        "grade": "B",
        "agentReady": false,
        "rank": 498,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -10,
        "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",
          "2026-10-12. Minor release 1.2.0 listed four breaking changes under Breaking Changes (the theme schema location, `before_agent_start` firing for custom-message runs, the busy-session behaviour and `pi mcp list --json` output), after patch release 1.0.3 on 5 October renamed the Azure provider, with no advance notice found for either. The changelog follows semantic versioning and these are 1.x releases. One term for breaking changes in minor and patch releases without notice, -3, as microsoft-agent-framework and agno took. https://github.com/earendil-works/pi/blob/main/packages/coding-agent/CHANGELOG.md",
          "2026-10-23 to 2026-10-29. Security fixes to Pi's own code are on main and in no release on 1 November 2026, the latest being 1.4.0 of 21 October. The unreleased changelog says MCP sign-in now rejects OAuth metadata URLs that aren't http or https (\"Before, a malicious MCP server could supply a `file:` or custom protocol URL\", commit 9ffd27c, 23 October), that the login dialog no longer opens non-web URLs or prints control characters (89c921d, 26 October), and that a saved \"Do not trust\" decision is no longer ignored (31ade0e, 29 October). No advisory was found. -3, as growthbook's unreleased fixes took. https://github.com/earendil-works/pi/blob/main/packages/coding-agent/CHANGELOG.md"
        ],
        "verdict": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.4.0 is dated 21 October 2026.",
        "bestFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "strengths": [
          "Four default tools (read, bash, edit, write), with MCP tools reachable through codemode scripts and not declared to the model by default",
          "`--mode json` streams JSONL events and `--mode rpc` takes JSONL commands, both documented record by record, with a Python client example",
          "Built-in MCP client for stdio and streamable HTTP servers with OAuth, per-tool exposure settings and a conformance job in CI",
          "Project trust stops a repository's `.pi` settings, extensions and MCP servers loading until approved, and non-interactive modes skip them by default",
          "npm releases carry SLSA provenance from GitHub Actions trusted publishing, and the installer pins transitive dependencies"
        ],
        "weaknesses": [
          "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt",
          "An anonymous install and update ping to pi.dev and a latest-version request are on by default",
          "Four advisories published in June 2026, one rated high and one medium, all fixed by 0.79.0. Fixes made since 23 October were unreleased on 1 November",
          "No privacy policy for pi.dev or the CLI found, and pi.dev has no security.txt",
          "Eight of the last 15 CI runs on main failed on 7 and 8 October 2026, and breaking changes ship in patch and minor releases (1.0.3, 1.2.0)"
        ],
        "agentNotes": [
          "Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands",
          "Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode",
          "Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings",
          "Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit",
          "Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.6
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 87,
          "payments": 60,
          "reliability": 75,
          "schema": 84,
          "security": 61,
          "transparency": 64
        },
        "provenanceScore": 69,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "curl -fsSL https://pi.dev/install.sh | sh   # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent",
        "headless": {
          "command": "pi --mode json --no-session --no-approve \"$TASK\"",
          "env": {
            "PI_SKIP_VERSION_CHECK": "1",
            "PI_TELEMETRY": "0"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/earendil-pi"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Earendil Inc.",
        "domain": "pi.dev",
        "domainRegistered": "2024-01-30",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://pi.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-11-01",
        "notes": [
          "The pi.dev, earendil.com and radius.earendil.com footers read Earendil Inc. The Radius alpha terms of 1 September 2026 name Earendil Works Co., and the README calls the company Earendil Works.",
          "We found no terms or privacy page for pi.dev or the CLI. pi.dev/terms, pi.dev/privacy, earendil.com/privacy and radius.earendil.com/privacy return 404 (23 October 2026; pi.dev/terms and pi.dev/privacy again on 1 November 2026). Terms exist only for Radius, at radius.earendil.com/terms.",
          "pi.dev/.well-known/security.txt returns 404 (23 October and 1 November 2026) and earendil.com/.well-known/security.txt returned 404 (23 October 2026). SECURITY.md gives security@earendil.com and GitHub private reporting.",
          "RDAP for pi.dev gives a registration date of 2024-01-30 with Cloudflare as registrar. The README says the domain was donated by exe.dev.",
          "The repository moved from badlogic/pi-mono to earendil-works/pi, and the npm package from @mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent at 0.74.0, per the advisories."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/earendil-pi.json",
      "live": {
        "slug": "earendil-pi",
        "versions": [
          {
            "registry": "github",
            "name": "earendil-works/pi",
            "version": "v1.5.0",
            "released": "2026-11-02",
            "seenAt": "2026-11-05T21:28:05.587047393Z"
          },
          {
            "registry": "npm",
            "name": "@earendil-works/pi-coding-agent",
            "version": "1.5.0",
            "seenAt": "2026-11-05T21:28:05.307099046Z"
          }
        ],
        "githubStars": 120296,
        "npmWeekly": 5945182,
        "securityTxt": {
          "url": "https://pi.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-05T15:54:57.592880769Z"
        },
        "domain": {
          "domain": "pi.dev",
          "registered": "2024-01-30",
          "source": "https://pubapi.registry.google/rdap/domain/pi.dev",
          "checkedAt": "2026-11-01T14:24:30.063651336Z"
        },
        "pages": [
          {
            "url": "https://pi.dev/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-05T13:01:09.478477822Z",
            "changedAt": "2026-11-03T07:55:44.918705875Z",
            "fingerprint": "8f309eae070e"
          }
        ],
        "github": {
          "repo": "earendil-works/pi",
          "checkedAt": "2026-11-02T08:45:40.305774501Z",
          "stars": 119451,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T08:38:33Z",
          "openIssues": 243,
          "openPRs": 73,
          "issuesOpened90d": 2943,
          "issuesClosed90d": 2773,
          "prsMerged90d": 349,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 36,
            "failure": 5,
            "other": 9,
            "latest": "success",
            "latestAt": "2026-11-01T23:16:53Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-mqxh-6gq7-558m",
              "cve": "CVE-2026-54325",
              "severity": "medium",
              "published": "2026-06-08T15:54:14Z"
            },
            {
              "ghsa": "GHSA-jfgx-wxx8-mp94",
              "cve": "CVE-2026-54328",
              "severity": "high",
              "published": "2026-06-08T15:54:13Z"
            },
            {
              "ghsa": "GHSA-r95r-rj6r-c39x",
              "cve": "CVE-2026-54327",
              "severity": "low",
              "published": "2026-06-08T15:54:12Z"
            },
            {
              "ghsa": "GHSA-7v5m-pr3q-6453",
              "cve": "CVE-2026-54326",
              "severity": "low",
              "published": "2026-06-08T15:54:11Z"
            }
          ]
        },
        "updatedAt": "2026-11-05T21:28:05.587047393Z"
      }
    },
    "answer": "OpenAI Agents API scores 73.3 (BB) on agent readiness against Pi's 62.6 (B), and leads in 4 of 7 scored categories. Pi leads on reliability and payments \u0026 pricing.",
    "b": {
      "slug": "openai-agents-api",
      "name": "OpenAI Agents API",
      "vendor": "OpenAI",
      "vendorUrl": "https://openai.com/index/introducing-the-agents-api/",
      "kind": "http-api",
      "category": "agent-harnesses",
      "summary": "The OpenAI Agents API runs OpenAI's managed Codex harness as a hosted service. One call creates a session with a model, tools, MCP servers, subagents and an OpenAI-hosted or self-hosted sandbox, and OpenAI runs the loop.",
      "url": "https://www.anchorterminal.com/tools/openai-agents-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/openai-agents-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openai-agents-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json",
      "dns": "openai-agents-api.grade.anchorterminal.com",
      "license": "Proprietary hosted API under OpenAI's Services Agreement. The SDKs are Apache 2.0",
      "transports": [
        "https"
      ],
      "remoteUrl": "https://api.openai.com/v1/agents/sessions",
      "packages": [
        {
          "registry": "pypi",
          "name": "openai"
        },
        {
          "registry": "npm",
          "name": "openai"
        }
      ],
      "auth": "api-key",
      "authNotes": "An OpenAI project API key as a Bearer token, with the header `OpenAI-Beta: agents=v1`. Project keys can be restricted per endpoint or read-only, and service accounts and workload identity federation are available, per the openai-api listing. Signing up and creating a key need a person in a browser.",
      "pricing": "usage",
      "pricingNotes": "No fee for the API itself. Model tokens are billed at the chosen model's API rates, OpenAI tools at their built-in rates (web search $10.00 per 1,000 calls plus content tokens), and OpenAI-hosted sandboxes at container rates, $0.03 for 1 GB, $0.12 for 4 GB, $0.48 for 16 GB and $1.92 for 64 GB per 20-minute session, billed by the minute with a 5-minute minimum. Since 9 October sandbox compute is billed only during active turns (checked 2026-11-06).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Agents API guides or on OpenAI's pricing page; billing is to an OpenAI account (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developers.openai.com/api/docs/guides/agents-api/overview",
      "llmsTxt": "https://developers.openai.com/api/docs/llms.txt",
      "capabilities": [
        "agent.harness"
      ],
      "tags": [
        "official",
        "hosted",
        "beta",
        "usage-priced",
        "llms-txt",
        "status-page",
        "mcp-client",
        "sandbox",
        "subagents",
        "webhooks",
        "soc2",
        "iso27001",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 99,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 30,
          "reliability": 60,
          "schema": 88,
          "security": 87,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only.",
        "bestFor": "Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.",
        "strengths": [
          "One session call configures the model, tools, MCP servers, subagents and the sandbox, and OpenAI runs and recovers the loop",
          "Sandboxes on OpenAI or self-hosted, with guides for ten providers including E2B, Daytona, Modal, Cloudflare and Vercel",
          "An errors guide with codes per status and turn, Retry-After and a check-before-retry procedure",
          "Webhooks, streamed events, tracing and usage views for each session",
          "SDK examples in Python, JavaScript, Go, Java and Ruby",
          "Status page with its own Agents component"
        ],
        "weaknesses": [
          "Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date",
          "Not eligible for Zero Data Retention, and data residency is United States only",
          "No idempotency key for session or turn requests; retries depend on checking state first",
          "One API-wide major outage on 29 September included it, plus several smaller incidents since release",
          "No retention period stated for published artifacts after a sandbox expires"
        ],
        "agentNotes": [
          "POST https://api.openai.com/v1/agents/sessions with a project key and the header OpenAI-Beta: agents=v1, or use client.beta.agents in the SDKs",
          "Before retrying, retrieve the session and turn and check which actions completed, since there's no idempotency key",
          "Set the sandbox network to restricted with an allowlist of up to 100 hosts when the agent doesn't need the open web",
          "Save files from /workspace/outputs before deleting a session; no retention period is stated for artifacts",
          "Don't send data that needs Zero Data Retention or non-US residency; the Agents API supports neither"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.3
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 30,
          "reliability": 60,
          "schema": 88,
          "security": 87,
          "transparency": 75
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.openai.com/v1/agents/sessions \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"OpenAI-Beta: agents=v1\" \\\n  -H \"Content-Type: application/json\" \\\n  -d @session.json   # model, tools, environment and input, per the quickstart"
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/openai-agents-api"
      },
      "sameCompany": [
        "openai-api",
        "openai-embeddings",
        "openai-guardrails",
        "openai-moderation",
        "openai-image-api",
        "openai-sora",
        "openai-speech-to-text",
        "gpt-live",
        "openai-realtime",
        "openai-agents-sdk",
        "openai-decisions-api",
        "openai-codex",
        "gpt-oss-120b",
        "gpt-oss-20b"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "OpenAI OpCo, LLC",
        "domain": "openai.com",
        "domainRegistered": "2007-01-19",
        "domainNote": "openai.com was registered in 2007, before OpenAI existed, per the openai-api listing.",
        "endpointOnVendorDomain": true,
        "terms": "https://openai.com/policies/services-agreement/",
        "privacy": "https://openai.com/policies/privacy-policy/",
        "statusPage": "https://status.openai.com",
        "changelog": "https://developers.openai.com/api/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The endpoint is on api.openai.com, the same host as the rest of the OpenAI API. Terms, privacy, security.txt and the domain are the openai-api listing's readings."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openai-agents-api.json",
      "live": {
        "slug": "openai-agents-api",
        "probe": {
          "target": "https://api.openai.com/v1/agents/sessions",
          "method": "get",
          "lastAt": "2026-11-06T09:47:41.371658489Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 162,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 148,
          "p95ms24h": 166,
          "samples24h": 47,
          "samples30d": 47,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 47,
              "ok": 47
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.openai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-06T09:43:26.425829944Z"
        },
        "updatedAt": "2026-11-06T09:47:41.371658489Z"
      }
    },
    "edges": [
      {
        "by": 30,
        "category": "payments",
        "leads": "earendil-pi",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No payment protocol in the repository or docs (0). Read with the self-hosted rule. Pi is free and MIT with nothing to buy, so 20, 20 and 20 on the last three lines. Model costs go to whichever provider the owner configures. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and we found no public price list for it (radius.earendil.com/pricing returns 404 on 23 October 2026).",
          "b": "No machine payment protocol (0). Model, tool and container prices published without a login, and no fee for the API itself (20). The Free tier reading of the openai-api listing, half (10). Sign-up in a browser (0). 0 + 20 + 10 + 0 = 30."
        },
        "scores": {
          "a": 60,
          "b": 30
        }
      },
      {
        "by": 26,
        "category": "security",
        "leads": "openai-agents-api",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Harness reading of the framework checklist, used for the harnesses in this category. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. An anonymous install and update ping to pi.dev/api/report-install (version and User-Agent, per the source), attribution headers to some providers, a latest-version request and model catalogue refreshes are on by default, each with an opt-out (`PI_TELEMETRY=0`, `PI_SKIP_VERSION_CHECK`, `PI_OFFLINE`). Since 1.4.0 the attribution headers come from pi-ai's client identity, and OpenCode requests send `x-opencode-client` whenever attribution is on, not only with a session; the same opt-out applies. Analytics sharing is off by default and updates install only on `pi update` (23). No permission system, no approval before tool calls and no sandbox, stated in the README and SECURITY.md. Project trust gates a repository's `.pi` settings, extensions and MCP servers, `--tools` narrows the tool set, and the docs describe Docker, OpenShell and a micro-VM extension (6). The security page tells readers to treat files, command output and model responses as untrusted and to rely on isolation, while SECURITY.md puts prompt injection out of scope and context files such as AGENTS.md load whatever the trust decision (7). Sessions are JSONL files on disk with HTML export, MCP server logs go to `~/.pi/agent/mcp.log`, and the JSON stream records each tool call (11). SECURITY.md gives security@earendil.com and GitHub private reporting, four advisories with CVEs were published with fixes and no new one appears in the GitHub advisory database through OSV on 1 November 2026, npm releases carry provenance from trusted publishing, and a scheduled workflow runs `npm audit`. Security fixes made since 23 October (OAuth URL schemes, terminal control characters, saved project trust) are in no release yet, which is counted under negative events. No security.txt and no bounty found (14).",
          "b": "Project keys with restricted per-endpoint permissions, service accounts and workload identity, per the openai-api listing; we didn't confirm a key can be limited to /v1/agents (27 of 30). Automatic review for approvals, a sandbox network restricted to a host allowlist, vaults for secrets and a sandbox security guide (17 of 20). The agent reads web pages, MCP results and browser content; the sandbox security guide and approval flow are the mitigations, with no prompt-injection guide of its own found (8 of 15). Tracing, observability and usage per session and admin audit logs (15). SOC 2 Type 2, ISO 27001 family, Bugcrowd bounty and a disclosure policy, per the openai-api listing (20). Not ZDR-eligible and US residency only, recorded under transparency. 27 + 17 + 8 + 15 + 20 = 87."
        },
        "scores": {
          "a": 61,
          "b": 87
        }
      },
      {
        "by": 18,
        "category": "transparency",
        "leads": "openai-agents-api",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT (30). No privacy policy for pi.dev or the CLI was found (pi.dev/privacy, earendil.com/privacy and radius.earendil.com/privacy return 404 on 23 October 2026, and pi.dev/privacy and pi.dev/terms again on 1 November). The docs say where sessions and credentials are stored and what `/share` and `/bug` upload. The Radius alpha terms of 1 September 2026 name Earendil Works Co. and refer to a Privacy Notice we couldn't locate (10). Breaking changes are listed per release with migration steps, with no deprecation policy or notice period found. Pi Durable's README says its API changes without notice between releases (8). Install telemetry and the version check are documented in the settings and environment-variable pages with opt-outs, though the docs don't list the fields sent (16).",
          "b": "Closed service with clear terms, Apache-2.0 SDKs (15). Session state retained until deleted, deletable sessions and artifacts, not ZDR-eligible, US residency only, and the data-controls guide agrees; no retention period for artifacts after a sandbox expires (25 of 30). Dated deprecation notices with minimum periods for GA models; a beta API can change faster (15 of 20). Subprocessors and processing countries listed, per the openai-api listing (20). 15 + 25 + 15 + 20 = 75."
        },
        "scores": {
          "a": 67,
          "b": 85
        }
      },
      {
        "by": 15,
        "category": "reliability",
        "leads": "earendil-pi",
        "name": "Reliability",
        "reasons": {
          "a": "Read as a local package. `@earendil-works/pi-coding-agent` 1.4.0 on npm (still the latest on 1 November 2026) with Node.js 22.19 or newer stated, install scripts for macOS, Linux and Windows, Nix and standalone binaries (20). A public CI workflow builds, checks and tests on every push to main and runs an MCP client conformance job. The run on the commit we cloned (ce950d7, 8 October 2026) passed, but eight of the last 15 runs on main, all on 7 and 8 October, failed. Run results weren't readable on 23 October, so this stands per the 8 October check (15). The repository API reported 308 open issues and pull requests against 113,417 stars on 8 October, not re-read on 23 October. Issues from new contributors are closed automatically and reviewed daily by maintainers, per CONTRIBUTING.md, so the open count understates what is reported, and we couldn't sample reply times (16). A dated changelog with Breaking Changes sections and migration steps, but breaking changes ship outside major versions. The Azure provider rename shipped in patch release 1.0.3 on 5 October 2026, minor release 1.2.0 on 12 October carried four (theme schema location, `before_agent_start`, busy-session behaviour and `pi mcp list --json` output), and 1.3.0 required `/v1` on `kimi-coding` base URL overrides under Changed. The same reading as agent-zero and mistral-vibe-cli, and these breaks also take a deduction under negative events (9). 1.4.0 on 21 October 2026, with 1.0.0 dated 1 October 2026 (15).",
          "b": "Read as a hosted API. status.openai.com has an Agents component under APIs (20). Since release on 10 September (57 days, not 90), the feed names the Agents API in a degraded-performance incident on 14 September, the elevated errors across ChatGPT, Codex and the API on 29 September (the openai-api listing reads that one as a major, 17:52 to 23:14 UTC), computer use issues and degraded workspace agents on 6 and 7 October, degraded performance across the APIs for 22 minutes on 21 October, and overbilling for hosted containers on 19 September. One major, the rest minor (10). Rate limits come from the shared guide, published per tier and model with headers, and the errors page adds a Files API allowance on session creation (15). 429 and 503 guidance with Retry-After, capped backoff and a check-then-retry procedure for turns (15). The Scale Tier SLA in the openai-api listing isn't shown to cover a beta API (0). Public beta behind the agents=v1 header (0). 20 + 10 + 15 + 15 + 0 + 0 = 60."
        },
        "scores": {
          "a": 75,
          "b": 60
        }
      }
    ],
    "facts": [
      {
        "a": "Agent harness",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "OpenAI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.openai.com/v1/agents/sessions",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "https",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary hosted API under OpenAI's Services 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-21",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenAI Agents API scores 73.3 (BB) on agent readiness against Pi's 62.6 (B), and leads in 4 of 7 scored categories. Pi leads on reliability and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Pi or OpenAI Agents API?"
      },
      {
        "answer": "No hosted endpoint is listed for Pi. OpenAI Agents API has a hosted endpoint at https://api.openai.com/v1/agents/sessions.",
        "question": "Can an agent call Pi and OpenAI Agents API without installing anything?"
      },
      {
        "answer": "Pi is open source (MIT). No open-source release is listed for OpenAI Agents API.",
        "question": "Are Pi and OpenAI Agents API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 60",
          "Payments \u0026 pricing, 60 against 30"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card",
          "Open source"
        ],
        "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": [
          "Security \u0026 auth, 87 against 61",
          "Transparency \u0026 trust, 85 against 67"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where Pi loses 10 points for them"
        ],
        "goodFor": "Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.",
        "slug": "openai-agents-api",
        "watchFor": "Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date"
      }
    ],
    "history": {
      "earendil-pi": [
        {
          "causes": [
            "event"
          ],
          "date": "2026-11-01",
          "delta": -6,
          "from": 68.6,
          "fromGrade": "B",
          "to": 62.6,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 68.4,
          "fromGrade": "B",
          "to": 68.6,
          "toGrade": "B"
        }
      ],
      "openai-agents-api": null
    },
    "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-openai-agents-api.json",
        "title": "Agent Zero vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Aider vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/aider-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Amp vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/amp-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Antigravity CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Auggie CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-earendil-pi.json",
        "title": "AXLR vs Pi",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api.json",
        "title": "AXLR vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Claude Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Cline vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/cline-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Crush vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Cursor CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "DeepSeek Harness (dsh) vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-earendil-pi.json",
        "title": "dsh-superagent (DeepSeek) vs Pi",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api.json",
        "title": "dsh-superagent (DeepSeek) vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Devin vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/devin-vs-openai-agents-api"
      },
      {
        "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-openai-agents-api.json",
        "title": "Droid CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.json",
        "title": "Pi vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.json",
        "title": "Pi vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose.json",
        "title": "Pi vs goose",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.json",
        "title": "Pi vs Harness²",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules.json",
        "title": "Pi vs Jules",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
        "title": "Pi vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
        "title": "Pi vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.json",
        "title": "Pi vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.json",
        "title": "Pi vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-unstoppable.json",
        "title": "Pi vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading.json",
        "title": "Pi vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
        "title": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api.json",
        "title": "Gemini CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api.json",
        "title": "GitHub Copilot CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-openai-agents-api.json",
        "title": "goose vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/goose-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api.json",
        "title": "Harness² vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api.json",
        "title": "HarnessRouter vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-openai-agents-api.json",
        "title": "Jules vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/jules-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openai-agents-api.json",
        "title": "Junie CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api.json",
        "title": "Kilo Code CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.json",
        "title": "Kimi Code CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api.json",
        "title": "Kiro CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api.json",
        "title": "mini-swe-agent vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api.json",
        "title": "MiniMax Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api.json",
        "title": "Mistral Vibe CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api.json",
        "title": "Muse Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.json",
        "title": "OpenAI Agents API vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode.json",
        "title": "OpenAI Agents API vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands.json",
        "title": "OpenAI Agents API vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot.json",
        "title": "OpenAI Agents API vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent.json",
        "title": "OpenAI Agents API vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli.json",
        "title": "OpenAI Agents API vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code.json",
        "title": "OpenAI Agents API vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror.json",
        "title": "OpenAI Agents API vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli.json",
        "title": "OpenAI Agents API vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable.json",
        "title": "OpenAI Agents API vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading.json",
        "title": "OpenAI Agents API vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-warp.json",
        "title": "OpenAI Agents API vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-warp"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 15,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "name": "Reliability",
        "openai-agents-api": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "earendil-pi": 84,
        "edge": "openai-agents-api",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openai-agents-api": 88,
        "weight": 13
      },
      {
        "by": 4,
        "earendil-pi": 76,
        "edge": "openai-agents-api",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openai-agents-api": 80,
        "weight": 13
      },
      {
        "by": 26,
        "earendil-pi": 61,
        "edge": "openai-agents-api",
        "key": "security",
        "name": "Security \u0026 auth",
        "openai-agents-api": 87,
        "weight": 14
      },
      {
        "by": 30,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openai-agents-api": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "earendil-pi": 87,
        "edge": "",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openai-agents-api": 87,
        "weight": 7
      },
      {
        "by": 18,
        "earendil-pi": 67,
        "edge": "openai-agents-api",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openai-agents-api": 85,
        "weight": 7
      }
    ],
    "summary": "OpenAI Agents API scores 73.3 (BB) on agent readiness against Pi's 62.6 (B), and leads in 4 of 7 scored categories. Pi leads on reliability and payments \u0026 pricing. Both do agent harnesses.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "earendil-pi": "Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.4.0 is dated 21 October 2026.",
      "openai-agents-api": "OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.min.md"
  },
  "markdown": "OpenAI Agents API scores 73.3 (BB) on agent readiness against Pi's 62.6 (B), and leads in 4 of 7 scored categories. Pi leads on reliability and payments \u0026 pricing. Both do agent harnesses.\n\n- Pi: grade B, 62.6/100, rank #498 of 1354. Markdown https://www.anchorterminal.com/tools/earendil-pi.md · JSON https://www.anchorterminal.com/api/v1/tools/earendil-pi.json\n- OpenAI Agents API: grade BB, 73.3/100, rank #99 of 1354. Markdown https://www.anchorterminal.com/tools/openai-agents-api.md · JSON https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 1041 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Pi (B)\n\nGood for: Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.\n\nAhead on:\n- Reliability, 75 against 60\n- Payments \u0026 pricing, 60 against 30\n\nAlso in its favour:\n- No key needed to call it\n- Free to start without a card\n- Open source\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n### OpenAI Agents API (BB)\n\nGood for: Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.\n\nAhead on:\n- Security \u0026 auth, 87 against 61\n- Transparency \u0026 trust, 85 against 67\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where Pi loses 10 points for them\n\nWatch for: Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Pi +30\n\n- Pi (60): No payment protocol in the repository or docs (0). Read with the self-hosted rule. Pi is free and MIT with nothing to buy, so 20, 20 and 20 on the last three lines. Model costs go to whichever provider the owner configures. Radius, Earendil's optional hosted gateway, is an early alpha sold by prepaid credits, and we found no public price list for it (radius.earendil.com/pricing returns 404 on 23 October 2026).\n- OpenAI Agents API (30): No machine payment protocol (0). Model, tool and container prices published without a login, and no fee for the API itself (20). The Free tier reading of the openai-api listing, half (10). Sign-up in a browser (0). 0 + 20 + 10 + 0 = 30.\n\n### Security \u0026 auth: OpenAI Agents API +26\n\n- Pi (61): Harness reading of the framework checklist, used for the harnesses in this category. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. An anonymous install and update ping to pi.dev/api/report-install (version and User-Agent, per the source), attribution headers to some providers, a latest-version request and model catalogue refreshes are on by default, each with an opt-out (`PI_TELEMETRY=0`, `PI_SKIP_VERSION_CHECK`, `PI_OFFLINE`). Since 1.4.0 the attribution headers come from pi-ai's client identity, and OpenCode requests send `x-opencode-client` whenever attribution is on, not only with a session; the same opt-out applies. Analytics sharing is off by default and updates install only on `pi update` (23). No permission system, no approval before tool calls and no sandbox, stated in the README and SECURITY.md. Project trust gates a repository's `.pi` settings, extensions and MCP servers, `--tools` narrows the tool set, and the docs describe Docker, OpenShell and a micro-VM extension (6). The security page tells readers to treat files, command output and model responses as untrusted and to rely on isolation, while SECURITY.md puts prompt injection out of scope and context files such as AGENTS.md load whatever the trust decision (7). Sessions are JSONL files on disk with HTML export, MCP server logs go to `~/.pi/agent/mcp.log`, and the JSON stream records each tool call (11). SECURITY.md gives security@earendil.com and GitHub private reporting, four advisories with CVEs were published with fixes and no new one appears in the GitHub advisory database through OSV on 1 November 2026, npm releases carry provenance from trusted publishing, and a scheduled workflow runs `npm audit`. Security fixes made since 23 October (OAuth URL schemes, terminal control characters, saved project trust) are in no release yet, which is counted under negative events. No security.txt and no bounty found (14).\n- OpenAI Agents API (87): Project keys with restricted per-endpoint permissions, service accounts and workload identity, per the openai-api listing; we didn't confirm a key can be limited to /v1/agents (27 of 30). Automatic review for approvals, a sandbox network restricted to a host allowlist, vaults for secrets and a sandbox security guide (17 of 20). The agent reads web pages, MCP results and browser content; the sandbox security guide and approval flow are the mitigations, with no prompt-injection guide of its own found (8 of 15). Tracing, observability and usage per session and admin audit logs (15). SOC 2 Type 2, ISO 27001 family, Bugcrowd bounty and a disclosure policy, per the openai-api listing (20). Not ZDR-eligible and US residency only, recorded under transparency. 27 + 17 + 8 + 15 + 20 = 87.\n\n### Transparency \u0026 trust: OpenAI Agents API +18\n\n- Pi (67): MIT (30). No privacy policy for pi.dev or the CLI was found (pi.dev/privacy, earendil.com/privacy and radius.earendil.com/privacy return 404 on 23 October 2026, and pi.dev/privacy and pi.dev/terms again on 1 November). The docs say where sessions and credentials are stored and what `/share` and `/bug` upload. The Radius alpha terms of 1 September 2026 name Earendil Works Co. and refer to a Privacy Notice we couldn't locate (10). Breaking changes are listed per release with migration steps, with no deprecation policy or notice period found. Pi Durable's README says its API changes without notice between releases (8). Install telemetry and the version check are documented in the settings and environment-variable pages with opt-outs, though the docs don't list the fields sent (16).\n- OpenAI Agents API (85): Closed service with clear terms, Apache-2.0 SDKs (15). Session state retained until deleted, deletable sessions and artifacts, not ZDR-eligible, US residency only, and the data-controls guide agrees; no retention period for artifacts after a sandbox expires (25 of 30). Dated deprecation notices with minimum periods for GA models; a beta API can change faster (15 of 20). Subprocessors and processing countries listed, per the openai-api listing (20). 15 + 25 + 15 + 20 = 75.\n\n### Reliability: Pi +15\n\n- Pi (75): Read as a local package. `@earendil-works/pi-coding-agent` 1.4.0 on npm (still the latest on 1 November 2026) with Node.js 22.19 or newer stated, install scripts for macOS, Linux and Windows, Nix and standalone binaries (20). A public CI workflow builds, checks and tests on every push to main and runs an MCP client conformance job. The run on the commit we cloned (ce950d7, 8 October 2026) passed, but eight of the last 15 runs on main, all on 7 and 8 October, failed. Run results weren't readable on 23 October, so this stands per the 8 October check (15). The repository API reported 308 open issues and pull requests against 113,417 stars on 8 October, not re-read on 23 October. Issues from new contributors are closed automatically and reviewed daily by maintainers, per CONTRIBUTING.md, so the open count understates what is reported, and we couldn't sample reply times (16). A dated changelog with Breaking Changes sections and migration steps, but breaking changes ship outside major versions. The Azure provider rename shipped in patch release 1.0.3 on 5 October 2026, minor release 1.2.0 on 12 October carried four (theme schema location, `before_agent_start`, busy-session behaviour and `pi mcp list --json` output), and 1.3.0 required `/v1` on `kimi-coding` base URL overrides under Changed. The same reading as agent-zero and mistral-vibe-cli, and these breaks also take a deduction under negative events (9). 1.4.0 on 21 October 2026, with 1.0.0 dated 1 October 2026 (15).\n- OpenAI Agents API (60): Read as a hosted API. status.openai.com has an Agents component under APIs (20). Since release on 10 September (57 days, not 90), the feed names the Agents API in a degraded-performance incident on 14 September, the elevated errors across ChatGPT, Codex and the API on 29 September (the openai-api listing reads that one as a major, 17:52 to 23:14 UTC), computer use issues and degraded workspace agents on 6 and 7 October, degraded performance across the APIs for 22 minutes on 21 October, and overbilling for hosted containers on 19 September. One major, the rest minor (10). Rate limits come from the shared guide, published per tier and model with headers, and the errors page adds a Files API allowance on session creation (15). 429 and 503 guidance with Retry-After, capped backoff and a check-then-retry procedure for turns (15). The Scale Tier SLA in the openai-api listing isn't shown to cover a beta API (0). Public beta behind the agents=v1 header (0). 20 + 10 + 15 + 15 + 0 + 0 = 60.\n\n## Score by category\n\n| Category | Weight | Pi | OpenAI Agents API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 60 | Pi +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 88 | OpenAI Agents API +4 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 80 | OpenAI Agents API +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 87 | OpenAI Agents API +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | Pi +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 87 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 85 | OpenAI Agents API +18 |\n| Negative events | ≤15 | -10 | 0 | |\n| **Total** | | **62.6 · B** | **73.3 · BB** | |\n\n## Facts side by side\n\n| Fact | Pi | OpenAI Agents API |\n| --- | --- | --- |\n| Kind | Agent harness | HTTP API |\n| Vendor | Earendil | OpenAI |\n| Hosted endpoint | no (local only) | `https://api.openai.com/v1/agents/sessions` |\n| Transports |  | https |\n| Auth | None | API key |\n| Pricing | Free | Pay per use |\n| x402 | no | no |\n| Licence | MIT | Proprietary hosted API under OpenAI's Services Agreement. The SDKs are Apache 2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-21 | 2026-10-16 |\n| Terms last updated | no document linked | couldn't be read |\n| Privacy policy last updated | no document linked | couldn't be read |\n| Customer content may train models | not read yet | couldn't be read |\n| Terms restrict automated access | not read yet | couldn't be read |\n| Terms restrict benchmarking | not read yet | couldn't be read |\n| Terms or service can change without notice | not read yet | couldn't be read |\n| Arbitration or class-action waiver | not read yet | couldn't be read |\n| Popularity | 113k stars, 5.2M npm/wk | none |\n| Agent reviews | 3.3/5 (4) | none |\n\n## How the scores have moved\n\n### Pi\n\n- -6.0 on 1 November 2026: negative event\n- +0.2 on 27 October 2026: checklist\n\n### OpenAI Agents API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Pi.** Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.4.0 is dated 21 October 2026.\n\n**OpenAI Agents API.** OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only.\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### OpenAI Agents API\n\n1. POST https://api.openai.com/v1/agents/sessions with a project key and the header OpenAI-Beta: agents=v1, or use client.beta.agents in the SDKs\n2. Before retrying, retrieve the session and turn and check which actions completed, since there's no idempotency key\n3. Set the sandbox network to restricted with an allowlist of up to 100 hosts when the agent doesn't need the open web\n4. Save files from /workspace/outputs before deleting a session; no retention period is stated for artifacts\n5. Don't send data that needs Zero Data Retention or non-US residency; the Agents API supports neither\n\n## Questions\n\n### Which is better for AI agents, Pi or OpenAI Agents API?\n\nOpenAI Agents API scores 73.3 (BB) on agent readiness against Pi's 62.6 (B), and leads in 4 of 7 scored categories. Pi leads on reliability and payments \u0026 pricing.\n\n### Can an agent call Pi and OpenAI Agents API without installing anything?\n\nNo hosted endpoint is listed for Pi. OpenAI Agents API has a hosted endpoint at https://api.openai.com/v1/agents/sessions.\n\n### Are Pi and OpenAI Agents API open source?\n\nPi is open source (MIT). No open-source release is listed for OpenAI Agents API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"openai-agents-api\"}`. From a terminal: `anchor compare earendil-pi openai-agents-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json\n\n## Other comparisons with Pi or OpenAI Agents API\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs OpenAI Agents API](https://www.anchorterminal.com/compare/agent-zero-vs-openai-agents-api.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs OpenAI Agents API](https://www.anchorterminal.com/compare/aider-vs-openai-agents-api.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs OpenAI Agents API](https://www.anchorterminal.com/compare/amp-vs-openai-agents-api.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-agents-api.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/auggie-vs-openai-agents-api.md)\n- [AXLR vs Pi](https://www.anchorterminal.com/compare/axlr-vs-earendil-pi.md)\n- [AXLR vs OpenAI Agents API](https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/claude-code-vs-openai-agents-api.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs OpenAI Agents API](https://www.anchorterminal.com/compare/cline-vs-openai-agents-api.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs OpenAI Agents API](https://www.anchorterminal.com/compare/crush-vs-openai-agents-api.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/cursor-cli-vs-openai-agents-api.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs OpenAI Agents API](https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.md)\n- [dsh-superagent (DeepSeek) vs Pi](https://www.anchorterminal.com/compare/deepseek-superagent-vs-earendil-pi.md)\n- [dsh-superagent (DeepSeek) vs OpenAI Agents API](https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs OpenAI Agents API](https://www.anchorterminal.com/compare/devin-vs-openai-agents-api.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/droid-cli-vs-openai-agents-api.md)\n- [Pi vs Gemini CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-gemini-cli.md)\n- [Pi vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-github-copilot-cli.md)\n- [Pi vs goose](https://www.anchorterminal.com/compare/earendil-pi-vs-goose.md)\n- [Pi vs Harness²](https://www.anchorterminal.com/compare/earendil-pi-vs-harness2.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Pi vs Jules](https://www.anchorterminal.com/compare/earendil-pi-vs-jules.md)\n- [Pi vs Junie CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md)\n- [Pi vs Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md)\n- [Pi vs MiniMax Code](https://www.anchorterminal.com/compare/earendil-pi-vs-minimax-code.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs OpenMausBot](https://www.anchorterminal.com/compare/earendil-pi-vs-openmausbot.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Pi vs Unstoppable](https://www.anchorterminal.com/compare/earendil-pi-vs-unstoppable.md)\n- [Pi vs Vibe-Trading](https://www.anchorterminal.com/compare/earendil-pi-vs-vibe-trading.md)\n- [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md)\n- [Gemini CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api.md)\n- [GitHub Copilot CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api.md)\n- [goose vs OpenAI Agents API](https://www.anchorterminal.com/compare/goose-vs-openai-agents-api.md)\n- [Harness² vs OpenAI Agents API](https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api.md)\n- [HarnessRouter vs OpenAI Agents API](https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api.md)\n- [Jules vs OpenAI Agents API](https://www.anchorterminal.com/compare/jules-vs-openai-agents-api.md)\n- [Junie CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/junie-vs-openai-agents-api.md)\n- [Kilo Code CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api.md)\n- [Kimi Code CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.md)\n- [Kiro CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api.md)\n- [mini-swe-agent vs OpenAI Agents API](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api.md)\n- [MiniMax Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api.md)\n- [Mistral Vibe CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api.md)\n- [Muse Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api.md)\n- [OpenAI Agents API vs OpenAI Codex](https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.md)\n- [OpenAI Agents API vs OpenCode](https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode.md)\n- [OpenAI Agents API vs OpenHands](https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands.md)\n- [OpenAI Agents API vs OpenMausBot](https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot.md)\n- [OpenAI Agents API vs Prime Agent](https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent.md)\n- [OpenAI Agents API vs Qoder CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli.md)\n- [OpenAI Agents API vs Qwen Code](https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code.md)\n- [OpenAI Agents API vs Mirror CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror.md)\n- [OpenAI Agents API vs Rovo Dev CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli.md)\n- [OpenAI Agents API vs Unstoppable](https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable.md)\n- [OpenAI Agents API vs Vibe-Trading](https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading.md)\n- [OpenAI Agents API vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openai-agents-api-vs-warp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-06",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pi vs OpenAI Agents API",
        "url": ""
      }
    ],
    "description": "OpenAI Agents scores 73.3 (BB) to Pi's 62.6 (B) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 62.6",
      "OpenAI Agents API BB 73.3",
      "scores"
    ],
    "h1": "Pi vs OpenAI Agents API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/earendil-pi-vs-openai-agents-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs OpenAI Agents for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-06",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api"
  },
  "tokens": {
    "markdown": 5850,
    "slim": 2630
  },
  "version": 1
}
