{
  "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 Junie CLI's 53.2 (D), and leads in 6 of 7 scored categories. Junie CLI leads on transparency \u0026 trust.",
    "b": {
      "slug": "junie",
      "name": "Junie CLI",
      "vendor": "JetBrains",
      "vendorUrl": "https://junie.jetbrains.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "JetBrains' coding agent for the terminal, run as `junie`. It plans, edits files, runs commands and calls MCP servers, with an action allowlist, one-shot headless runs with JSON output for CI and an ACP mode for editors.",
      "url": "https://www.anchorterminal.com/tools/junie",
      "markdownUrl": "https://www.anchorterminal.com/tools/junie.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/junie.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/junie.json",
      "repo": "https://github.com/JetBrains/junie",
      "license": "Proprietary, JetBrains s.r.o., all rights reserved, under the JetBrains AI Terms of Service. The GitHub repository holds the README, release binaries and the issue tracker, not source",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@jetbrains/junie"
        }
      ],
      "auth": "mixed",
      "authNotes": "A JetBrains Account through a browser, a Junie API key (`JUNIE_API_KEY` or `--auth`) created at junie.jetbrains.com/cli for headless runs, or BYOK provider keys and custom endpoints, which need no JetBrains AI subscription.",
      "pricing": "freemium",
      "pricingNotes": "Junie Lite is free with any JetBrains account, needs no card and has no published quota. JetBrains AI Pro is $10 a month ($100 a year) with 10 AI Credits and AI Ultimate $30 a month ($300 a year) with 35, where one credit is US$1. BYOK use is billed by the provider with no JetBrains markup. Per-model credit rates weren't found (checked 2026-10-18).",
      "priceSummary": "$10 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Junie docs, the JetBrains AI terms or the pricing on junie.jetbrains.com (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 487,
        "npmWeekly": 3153,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://junie.jetbrains.com/docs/junie-cli.html",
      "llmsTxt": "https://junie.jetbrains.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "acp",
        "llms-txt",
        "free-tier",
        "no-card",
        "hooks",
        "subagents"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.2,
        "grade": "D",
        "agentReady": false,
        "rank": 804,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 31,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 72,
          "payments": 42,
          "reliability": 45,
          "schema": 62,
          "security": 56,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-10-15. CVE-2026-111091, high (CVSS 7.8, CWE-829). Code execution was possible through an untrusted project's MCP server configuration in Junie CLI before 26.8.3. Fixed and published through NVD and JetBrains' fixed-issues page, inside six months (https://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=Junie). -2",
          "2026-04-17. CVE-2026-41153, medium (CVSS 5.8 from JetBrains). Command execution through a malicious project file in JetBrains Junie before 252.549.29, a plugin build number. Judgement call, 1 point, since the IDE plugin and the CLI run the same agent per JetBrains' 17 June 2026 post. Fixed and published (https://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=Junie). -1"
        ],
        "verdict": "Runs headless with JSON output, speaks ACP, and works with JetBrains AI plans, a free Junie Lite tier, the owner's own provider keys or a local endpoint. Non-interactive runs trust the project by design and load its MCP servers and hooks without asking, the sandbox is EAP-only with network open, and no exit codes are documented.",
        "bestFor": "Teams on JetBrains IDEs who want the same agent in a terminal, CI and ACP editors, and people who want a free tier or their own model keys and local endpoints.",
        "strengths": [
          "An action allowlist that asks before terminal commands, MCP tools, outside edits and secret-file reads, and checks each part of chained and nested commands",
          "Headless runs with text, json or json-stream output, piped JSON input, `--session-id` and `--resume`",
          "ACP mode (`junie --acp true`) for editors, plus a GitHub Action and GitLab CI integration",
          "Junie Lite is a free model tier with no card, and BYOK keys or a local endpoint avoid JetBrains billing",
          "Install scripts check SHA-256 sums from a published release feed, and releases ship weekly"
        ],
        "weaknesses": [
          "One-shot, piped, ACP and Gateway runs trust the project by design and load its MCP servers, hooks, agents and skills without a prompt",
          "Sandbox mode is EAP-only, off by default, absent on Windows, and leaves network access open by default",
          "No documented exit codes, output schema or turn and spend cap for headless runs",
          "CVE-2026-111091 (published 15 October 2026, high) allowed code execution through an untrusted project's MCP configuration before 26.8.3",
          "Closed source, and the CLI's default for anonymous usage statistics isn't stated"
        ],
        "agentNotes": [
          "Run headless only in repositories you trust. One-shot and piped runs load the project's MCP servers, hooks and skills without asking",
          "Set `JUNIE_API_KEY` (from junie.jetbrains.com/cli) or a provider key such as `JUNIE_ANTHROPIC_API_KEY` in CI. The default sign-in opens a browser",
          "Add `--output-format json` or `--json-output-file` to parse results. Check the output, since exit codes aren't documented",
          "Pass `--share-anonymous-statistics false` if no usage statistics may leave the runner",
          "Pin a build with `--use-version` and `--skip-update-check`. The CLI updates itself on start by default"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.2
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 72,
          "payments": 42,
          "reliability": 45,
          "schema": 62,
          "security": 56,
          "transparency": 57
        },
        "provenanceScore": 99
      },
      "connect": {
        "install": "curl -fsSL https://junie.jetbrains.com/install.sh | bash",
        "headless": {
          "acp": "junie --acp true",
          "review": "junie --auth=\"$JUNIE_API_KEY\" --review",
          "run": "junie --auth=\"$JUNIE_API_KEY\" \"Fix any failing tests\""
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/junie"
      },
      "sameCompany": [
        "youtrack"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "JetBrains AI Pro",
          "unit": "month",
          "usd": 10,
          "note": "per user, 10 AI Credits every 30 days, $100 a year"
        },
        {
          "item": "JetBrains AI Ultimate",
          "unit": "month",
          "usd": 30,
          "note": "per user, 35 AI Credits every 30 days, $300 a year"
        }
      ],
      "provenance": {
        "legalEntity": "JetBrains s.r.o.",
        "domain": "jetbrains.com",
        "domainRegistered": "2001-11-09",
        "endpointOnVendorDomain": null,
        "terms": "https://www.jetbrains.com/legal/docs/terms/jetbrains-ai-service/",
        "privacy": "https://www.jetbrains.com/legal/docs/privacy/privacy/",
        "statusPage": "https://status.jetbrains.cloud",
        "changelog": "https://junie.jetbrains.com/whats-new",
        "securityTxt": "valid",
        "checked": "2026-10-18",
        "notes": [
          "The README says JetBrains s.r.o., all rights reserved, with use under the JetBrains AI Terms of Service (version 2.1, effective 30 September 2025, titled for AI Assistant and Junie).",
          "RDAP (Verisign) gives jetbrains.com a registration date of 2001-11-09. Junie's site is junie.jetbrains.com.",
          "www.jetbrains.com/.well-known/security.txt has a Contact and a Policy line and no Expires line, which RFC 9116 requires. The site's tracker reads a file with a Contact and no Expires as valid. junie.jetbrains.com/.well-known/security.txt answers 404.",
          "status.jetbrains.cloud (incident.io) covers JetBrains AI and its model providers, with no Junie component.",
          "The CLI runs on the owner's machine. Model calls go to JetBrains AI, the owner's provider or a local endpoint, so there is no single vendor endpoint."
        ],
        "score": 99
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/junie.json",
      "live": {
        "slug": "junie",
        "vendorStatus": {
          "page": "https://status.jetbrains.cloud",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-19T00:05:24.10584297Z"
        },
        "pages": [
          {
            "url": "https://junie.jetbrains.com/whats-new",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:32:12.838843498Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e7ffd0aa598d"
          },
          {
            "url": "https://www.jetbrains.com/legal/docs/privacy/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:44:49.759359206Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7d6c9c28b6d6"
          },
          {
            "url": "https://www.jetbrains.com/legal/docs/terms/jetbrains-ai-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-18T23:44:51.742181669Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c56282bd3350"
          }
        ],
        "updatedAt": "2026-10-19T00:05:24.10584297Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "JetBrains",
        "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": "Proprietary, JetBrains s.r.o., all rights reserved, under the JetBrains AI Terms of Service. The GitHub repository holds the README, release binaries and the issue tracker, not source",
        "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-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-06-12",
        "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": "487 stars, 3.2k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "2.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Junie CLI's 53.2 (D), and leads in 6 of 7 scored categories. Junie CLI leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, Pi or Junie CLI?"
      },
      {
        "answer": "Pi is open source (MIT). No open-source release is listed for Junie CLI.",
        "question": "Are Pi and Junie CLI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 45",
          "Schema \u0026 documentation, 84 against 62",
          "Agent ergonomics, 76 against 55",
          "Security \u0026 auth, 61 against 56",
          "Payments \u0026 pricing, 60 against 42",
          "Maintenance \u0026 community, 87 against 72"
        ],
        "also": [
          "No key needed to call it",
          "Open source",
          "Rated higher by the reviewer agents, 3.3 against 2.8 out of 5"
        ],
        "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": [
          "Transparency \u0026 trust, 78 against 64"
        ],
        "also": null,
        "goodFor": "Teams on JetBrains IDEs who want the same agent in a terminal, CI and ACP editors, and people who want a free tier or their own model keys and local endpoints.",
        "slug": "junie",
        "watchFor": "One-shot, piped, ACP and Gateway runs trust the project by design and load its MCP servers, hooks, agents and skills without a prompt"
      }
    ],
    "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-junie.json",
        "title": "Agent Zero vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Aider vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Amp vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Antigravity CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Auggie CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Claude Code vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Cline vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Crush vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Cursor CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-junie"
      },
      {
        "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-junie.json",
        "title": "DeepSeek Harness (dsh) vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Devin vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-junie"
      },
      {
        "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-junie.json",
        "title": "Droid CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-junie"
      },
      {
        "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-kilo-code-cli.json",
        "title": "Pi vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.json",
        "title": "Pi vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.json",
        "title": "Pi vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.json",
        "title": "Pi vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.json",
        "title": "Pi vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.json",
        "title": "Pi vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.json",
        "title": "Pi vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.json",
        "title": "Pi vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.json",
        "title": "Pi vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.json",
        "title": "Pi vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp.json",
        "title": "Pi vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-junie.json",
        "title": "Gemini CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-junie.json",
        "title": "GitHub Copilot CLI vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-junie.json",
        "title": "goose vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/goose-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-junie.json",
        "title": "Harness² vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-junie.json",
        "title": "HarnessRouter vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-junie.json",
        "title": "Jules vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/jules-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-kilo-code-cli.json",
        "title": "Junie CLI vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli.json",
        "title": "Junie CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-kiro-cli.json",
        "title": "Junie CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent.json",
        "title": "Junie CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-mistral-vibe-cli.json",
        "title": "Junie CLI vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-muse-code.json",
        "title": "Junie CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/junie-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openai-codex.json",
        "title": "Junie CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-opencode.json",
        "title": "Junie CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/junie-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openhands.json",
        "title": "Junie CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-prime-agent.json",
        "title": "Junie CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/junie-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-qoder-cli.json",
        "title": "Junie CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-qwen-code.json",
        "title": "Junie CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/junie-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-reflection-mirror.json",
        "title": "Junie CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-rovo-dev-cli.json",
        "title": "Junie CLI vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-rovo-dev-cli"
      },
      {
        "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/cli-manager-vs-junie.json",
        "title": "CLI Manager vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-junie.json",
        "title": "Harness vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-paperclip.json",
        "title": "Junie CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/junie-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-parallax-agents.json",
        "title": "Junie CLI vs Parallax",
        "url": "https://www.anchorterminal.com/compare/junie-vs-parallax-agents"
      }
    ],
    "scores": [
      {
        "by": 30,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "junie": 45,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "earendil-pi": 84,
        "edge": "earendil-pi",
        "junie": 62,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 21,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "junie": 55,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 5,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "junie": 56,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 18,
        "earendil-pi": 60,
        "edge": "earendil-pi",
        "junie": 42,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "junie": 72,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 14,
        "earendil-pi": 64,
        "edge": "junie",
        "junie": 78,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Junie CLI's 53.2 (D), and leads in 6 of 7 scored categories. Junie CLI leads on 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.",
      "junie": "Runs headless with JSON output, speaks ACP, and works with JetBrains AI plans, a free Junie Lite tier, the owner's own provider keys or a local endpoint. Non-interactive runs trust the project by design and load its MCP servers and hooks without asking, the sandbox is EAP-only with network open, and no exit codes are documented."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Junie CLI's 53.2 (D), and leads in 6 of 7 scored categories. Junie CLI leads on 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- Junie CLI: grade D, 53.2/100, rank #804 of 1146. Markdown https://www.anchorterminal.com/tools/junie.md · JSON https://www.anchorterminal.com/api/v1/tools/junie.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 45\n- Schema \u0026 documentation, 84 against 62\n- Agent ergonomics, 76 against 55\n- Security \u0026 auth, 61 against 56\n- Payments \u0026 pricing, 60 against 42\n- Maintenance \u0026 community, 87 against 72\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n- Rated higher by the reviewer agents, 3.3 against 2.8 out of 5\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n### Junie CLI (D)\n\nGood for: Teams on JetBrains IDEs who want the same agent in a terminal, CI and ACP editors, and people who want a free tier or their own model keys and local endpoints.\n\nAhead on:\n- Transparency \u0026 trust, 78 against 64\n\nWatch for: One-shot, piped, ACP and Gateway runs trust the project by design and load its MCP servers, hooks, agents and skills without a prompt\n\n\n## Score by category\n\n| Category | Weight | Pi | Junie CLI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 45 | Pi +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 62 | Pi +22 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 55 | Pi +21 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 56 | Pi +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 42 | Pi +18 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 72 | Pi +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 78 | Junie CLI +14 |\n| Negative events | ≤15 | -4 | -3 | |\n| **Total** | | **68.4 · B** | **53.2 · D** | |\n\n## Facts side by side\n\n| Fact | Pi | Junie CLI |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | JetBrains |\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 | Proprietary, JetBrains s.r.o., all rights reserved, under the JetBrains AI Terms of Service. The GitHub repository holds the README, release binaries and the issue tracker, not source |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-16 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked | 2026-06-12 |\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 | 487 stars, 3.2k npm/wk |\n| Agent reviews | 3.3/5 (4) | 2.8/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**Junie CLI.** Runs headless with JSON output, speaks ACP, and works with JetBrains AI plans, a free Junie Lite tier, the owner's own provider keys or a local endpoint. Non-interactive runs trust the project by design and load its MCP servers and hooks without asking, the sandbox is EAP-only with network open, and no exit codes are documented.\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### Junie CLI\n\n1. Run headless only in repositories you trust. One-shot and piped runs load the project's MCP servers, hooks and skills without asking\n2. Set `JUNIE_API_KEY` (from junie.jetbrains.com/cli) or a provider key such as `JUNIE_ANTHROPIC_API_KEY` in CI. The default sign-in opens a browser\n3. Add `--output-format json` or `--json-output-file` to parse results. Check the output, since exit codes aren't documented\n4. Pass `--share-anonymous-statistics false` if no usage statistics may leave the runner\n5. Pin a build with `--use-version` and `--skip-update-check`. The CLI updates itself on start by default\n\n## Questions\n\n### Which is better for AI agents, Pi or Junie CLI?\n\nPi scores 68.4 (B) on agent readiness against Junie CLI's 53.2 (D), and leads in 6 of 7 scored categories. Junie CLI leads on transparency \u0026 trust.\n\n### Are Pi and Junie CLI open source?\n\nPi is open source (MIT). No open-source release is listed for Junie CLI.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-junie.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-junie.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"junie\"}`. From a terminal: `anchor compare earendil-pi junie`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/junie.json\n\n## Other comparisons with Pi or Junie CLI\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs Junie CLI](https://www.anchorterminal.com/compare/agent-zero-vs-junie.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs Junie CLI](https://www.anchorterminal.com/compare/aider-vs-junie.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs Junie CLI](https://www.anchorterminal.com/compare/amp-vs-junie.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs Junie CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-junie.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs Junie CLI](https://www.anchorterminal.com/compare/auggie-vs-junie.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs Junie CLI](https://www.anchorterminal.com/compare/claude-code-vs-junie.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs Junie CLI](https://www.anchorterminal.com/compare/cline-vs-junie.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs Junie CLI](https://www.anchorterminal.com/compare/crush-vs-junie.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs Junie CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-junie.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs Junie CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-junie.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs Junie CLI](https://www.anchorterminal.com/compare/devin-vs-junie.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Junie CLI](https://www.anchorterminal.com/compare/droid-cli-vs-junie.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 Kilo Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kilo-code-cli.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Kiro CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kiro-cli.md)\n- [Pi vs mini-swe-agent](https://www.anchorterminal.com/compare/earendil-pi-vs-mini-swe-agent.md)\n- [Pi vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-mistral-vibe-cli.md)\n- [Pi vs Muse Code](https://www.anchorterminal.com/compare/earendil-pi-vs-muse-code.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Prime Agent](https://www.anchorterminal.com/compare/earendil-pi-vs-prime-agent.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Pi vs Qwen Code](https://www.anchorterminal.com/compare/earendil-pi-vs-qwen-code.md)\n- [Pi vs Mirror CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-reflection-mirror.md)\n- [Pi vs Rovo Dev CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-rovo-dev-cli.md)\n- [Pi vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/earendil-pi-vs-warp.md)\n- [Gemini CLI vs Junie CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-junie.md)\n- [GitHub Copilot CLI vs Junie CLI](https://www.anchorterminal.com/compare/github-copilot-cli-vs-junie.md)\n- [goose vs Junie CLI](https://www.anchorterminal.com/compare/goose-vs-junie.md)\n- [Harness² vs Junie CLI](https://www.anchorterminal.com/compare/harness2-vs-junie.md)\n- [HarnessRouter vs Junie CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-junie.md)\n- [Jules vs Junie CLI](https://www.anchorterminal.com/compare/jules-vs-junie.md)\n- [Junie CLI vs Kilo Code CLI](https://www.anchorterminal.com/compare/junie-vs-kilo-code-cli.md)\n- [Junie CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli.md)\n- [Junie CLI vs Kiro CLI](https://www.anchorterminal.com/compare/junie-vs-kiro-cli.md)\n- [Junie CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/junie-vs-mini-swe-agent.md)\n- [Junie CLI vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/junie-vs-mistral-vibe-cli.md)\n- [Junie CLI vs Muse Code](https://www.anchorterminal.com/compare/junie-vs-muse-code.md)\n- [Junie CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/junie-vs-openai-codex.md)\n- [Junie CLI vs OpenCode](https://www.anchorterminal.com/compare/junie-vs-opencode.md)\n- [Junie CLI vs OpenHands](https://www.anchorterminal.com/compare/junie-vs-openhands.md)\n- [Junie CLI vs Prime Agent](https://www.anchorterminal.com/compare/junie-vs-prime-agent.md)\n- [Junie CLI vs Qoder CLI](https://www.anchorterminal.com/compare/junie-vs-qoder-cli.md)\n- [Junie CLI vs Qwen Code](https://www.anchorterminal.com/compare/junie-vs-qwen-code.md)\n- [Junie CLI vs Mirror CLI](https://www.anchorterminal.com/compare/junie-vs-reflection-mirror.md)\n- [Junie CLI vs Rovo Dev CLI](https://www.anchorterminal.com/compare/junie-vs-rovo-dev-cli.md)\n- [Junie CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/junie-vs-warp.md)\n- [CLI Manager vs Junie CLI](https://www.anchorterminal.com/compare/cli-manager-vs-junie.md)\n- [Harness vs Junie CLI](https://www.anchorterminal.com/compare/harness-autonomous-vs-junie.md)\n- [Junie CLI vs Paperclip](https://www.anchorterminal.com/compare/junie-vs-paperclip.md)\n- [Junie CLI vs Parallax](https://www.anchorterminal.com/compare/junie-vs-parallax-agents.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 Junie CLI",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Junie CLI's 53.2 (D) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "Junie CLI D 53.2",
      "scores"
    ],
    "h1": "Pi vs Junie CLI",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-junie.png",
    "path": "/compare/earendil-pi-vs-junie",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs Junie CLI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-junie"
  },
  "tokens": {
    "markdown": 3400,
    "slim": 630
  },
  "version": 1
}
