{
  "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 Kimi Code CLI's 62.1 (B), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "kimi-code-cli",
      "name": "Kimi Code CLI",
      "vendor": "Moonshot AI",
      "vendorUrl": "https://moonshotai.github.io/kimi-code/en/",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Open-source terminal coding agent from Moonshot AI that replaced the archived Python Kimi CLI. It runs Kimi, Anthropic, OpenAI or Gemini models, headless with `kimi -p`, as an ACP server, or behind a local REST server.",
      "url": "https://www.anchorterminal.com/tools/kimi-code-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.json",
      "repo": "https://github.com/MoonshotAI/kimi-code",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@moonshot-ai/kimi-code"
        }
      ],
      "auth": "mixed",
      "authNotes": "Kimi Code OAuth (RFC 8628 device code through `/login` or `kimi login`) for a Kimi Code subscription, or a Kimi Platform API key. Anthropic, OpenAI, Gemini, Vertex AI and OpenAI-compatible providers take a key in `config.toml`. Provider keys in the shell are not read unless named through `api_key_env` or the `KIMI_MODEL_*` variables. OAuth tokens are stored in `~/.kimi-code/credentials/` with 0600 permissions.",
      "pricing": "free",
      "pricingNotes": "Free and MIT-licensed, with nothing to buy for the CLI. The owner pays the model provider. Kimi Platform API keys are billed pay-as-you-go per million tokens, and the Kimi Code subscription is sold as a Kimi membership plan whose prices render only with JavaScript and weren't read on 18 October 2026.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the 2.2.0 npm package (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 36761,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://moonshotai.github.io/kimi-code/en/",
      "llmsTxt": "https://moonshotai.github.io/kimi-code/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "typescript",
        "mcp",
        "acp",
        "llms-txt",
        "telemetry-default-on",
        "no-sandbox",
        "free",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.1,
        "grade": "B",
        "agentReady": false,
        "rank": 492,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 72,
          "payments": 60,
          "reliability": 68,
          "schema": 85,
          "security": 45,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-09-04. Version 0.41.0 fixed print mode (`kimi -p`) ignoring `KIMI_DISABLE_TELEMETRY`, so scripted runs sent telemetry after the user opted out. Fixed and stated in the changelog, -2. https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
          "2026-09-23. Version 2.1.0 fixed file tools reaching outside the working directory through symlinks, repository git configuration running commands during background git operations, and project config applied before the workspace was trusted. Fixed and listed in the changelog, with no advisory published in OSV on 18 October 2026, -2. https://moonshotai.github.io/kimi-code/en/release-notes/changelog"
        ],
        "verdict": "MIT-licensed, with 32 releases in the 90 days to 14 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API with a live OpenAPI document. Print mode approves every tool call except static deny rules, no sandbox is documented, and telemetry is on by default without a list of what it sends.",
        "bestFor": "Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.",
        "strengths": [
          "MIT-licensed, with a single-binary installer, npm and Homebrew core packages at 2.2.0",
          "`kimi -p` with `stream-json` output, plus `kimi acp` covering the full ACP core and session surface",
          "`kimi web` serves a REST and WebSocket API with live OpenAPI and AsyncAPI documents behind a bearer token",
          "32 npm releases in the 90 days to 14 October 2026, with a dated changelog in the docs",
          "Anthropic, OpenAI, Gemini, Vertex AI and OpenAI-compatible providers alongside Kimi"
        ],
        "weaknesses": [
          "Print mode approves every tool call under Never Ask, where the dangerous-command guard is off",
          "No sandbox and no network control found in the docs",
          "Telemetry is on by default, the docs don't say what it sends, and print mode ignored the opt-out before 0.41.0",
          "No privacy page for the CLI, and the Kimi terms use content for training unless the user opts out by email",
          "Lifecycle hooks fail open, so a hook that errors or times out lets the tool call through"
        ],
        "agentNotes": [
          "`kimi -p` approves every tool call. Add `[[permission.rules]]` deny entries and run it in a container, since no sandbox is documented",
          "Set `KIMI_LOOP_MAX_STEPS_PER_TURN` for unattended runs. Steps per turn are unlimited by default",
          "Pass the model with `KIMI_MODEL_NAME`, `KIMI_MODEL_API_KEY` and `KIMI_MODEL_PROVIDER_TYPE`. `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` in the shell is ignored otherwise",
          "Set `KIMI_DISABLE_TELEMETRY=1` and use 0.41.0 or later, since earlier print-mode runs ignored it",
          "Install `@moonshot-ai/kimi-code` or the `kimi-code` formula. The `kimi-cli` and `kimi-code` packages on PyPI are the archived Python CLI"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 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": 62.1
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 72,
          "payments": 60,
          "reliability": 68,
          "schema": 85,
          "security": 45,
          "transparency": 64
        },
        "provenanceScore": 59
      },
      "connect": {
        "install": "curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash   # or: npm install -g @moonshot-ai/kimi-code, or: brew install kimi-code",
        "headless": {
          "command": "kimi -p \"$TASK\" --output-format stream-json",
          "env": {
            "KIMI_DISABLE_TELEMETRY": "1",
            "KIMI_LOOP_MAX_STEPS_PER_TURN": "50",
            "KIMI_MODEL_API_KEY": "\u003ckey\u003e",
            "KIMI_MODEL_NAME": "\u003cmodel\u003e",
            "KIMI_MODEL_PROVIDER_TYPE": "kimi"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/kimi-code-cli"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Moonshot AI (the global Kimi terms name NOVASCENT PRIVATE LIMITED, Singapore)",
        "domain": "moonshotai.github.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://www.kimi.ai/user/agreement/modelUse?version=v2",
        "privacy": "https://www.kimi.ai/user/agreement/userPrivacy?version=v2",
        "statusPage": "",
        "changelog": "https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "The LICENSE reads Copyright (c) 2026 Moonshot AI. The Kimi terms (effective 13 August 2026) and privacy policy (last updated 13 August 2026), linked from the Kimi Code page on kimi.ai, name NOVASCENT PRIVATE LIMITED, a company registered in Singapore, as the provider. Neither names the CLI.",
          "The docs are on GitHub Pages and carry no terms or privacy page of their own. The Kimi Platform has separate terms and a privacy policy for API keys at platform.kimi.ai/docs/agreement.",
          "kimi.com, kimi.ai and moonshot.ai each answered /.well-known/security.txt with an HTML page, so no security.txt was found. SECURITY.md names private GitHub advisories and code@moonshot.ai."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.json",
      "live": {
        "slug": "kimi-code-cli",
        "pages": [
          {
            "url": "https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:33:53.410496102Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f8f198816ab3"
          },
          {
            "url": "https://www.kimi.ai/user/agreement/userPrivacy?version=v2",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:44:58.354116633Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e6a453a3c7bd"
          },
          {
            "url": "https://www.kimi.ai/user/agreement/modelUse?version=v2",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-18T23:44:55.919228113Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27a334b00216"
          }
        ],
        "updatedAt": "2026-10-18T23:44:58.354116633Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Earendil",
        "b": "Moonshot AI",
        "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": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "113k stars, 5.2M npm/wk",
        "b": "37k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pi scores 68.4 (B) on agent readiness against Kimi Code CLI's 62.1 (B), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Pi or Kimi Code CLI?"
      },
      {
        "answer": "Yes. Pi is open source (MIT). Kimi Code CLI is open source (MIT).",
        "question": "Are Pi and Kimi Code CLI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 68",
          "Agent ergonomics, 76 against 71",
          "Security \u0026 auth, 61 against 45",
          "Maintenance \u0026 community, 87 against 72"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "Developers and pipelines that want a small, scriptable coding agent they can extend in TypeScript and drive over JSONL or RPC, inside their own container.",
        "slug": "earendil-pi",
        "watchFor": "No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.",
        "slug": "kimi-code-cli",
        "watchFor": "Print mode approves every tool call under Never Ask, where the dangerous-command guard is off"
      }
    ],
    "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-kimi-code-cli.json",
        "title": "Agent Zero vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Aider vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Amp vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Antigravity CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Auggie CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Claude Code vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Cline vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Crush vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Cursor CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "DeepSeek Harness (dsh) vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Devin vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-kimi-code-cli"
      },
      {
        "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-kimi-code-cli.json",
        "title": "Droid CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kimi-code-cli"
      },
      {
        "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-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-kimi-code-cli.json",
        "title": "Gemini CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli.json",
        "title": "GitHub Copilot CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli.json",
        "title": "goose vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli.json",
        "title": "Harness² vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.json",
        "title": "HarnessRouter vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-kimi-code-cli.json",
        "title": "Jules vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/jules-vs-kimi-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/kilo-code-cli-vs-kimi-code-cli.json",
        "title": "Kilo Code CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli.json",
        "title": "Kimi Code CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.json",
        "title": "Kimi Code CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli.json",
        "title": "Kimi Code CLI vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code.json",
        "title": "Kimi Code CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.json",
        "title": "Kimi Code CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode.json",
        "title": "Kimi Code CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.json",
        "title": "Kimi Code CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent.json",
        "title": "Kimi Code CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.json",
        "title": "Kimi Code CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code.json",
        "title": "Kimi Code CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror.json",
        "title": "Kimi Code CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli.json",
        "title": "Kimi Code CLI vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.json",
        "title": "Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli.json",
        "title": "CLI Manager vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli.json",
        "title": "Harness vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip.json",
        "title": "Kimi Code CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-parallax-agents.json",
        "title": "Kimi Code CLI vs Parallax",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-parallax-agents"
      }
    ],
    "scores": [
      {
        "by": 7,
        "earendil-pi": 75,
        "edge": "earendil-pi",
        "key": "reliability",
        "kimi-code-cli": 68,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "earendil-pi": 84,
        "edge": "kimi-code-cli",
        "key": "schema",
        "kimi-code-cli": 85,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 5,
        "earendil-pi": 76,
        "edge": "earendil-pi",
        "key": "ergonomics",
        "kimi-code-cli": 71,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 16,
        "earendil-pi": 61,
        "edge": "earendil-pi",
        "key": "security",
        "kimi-code-cli": 45,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "earendil-pi": 60,
        "edge": "",
        "key": "payments",
        "kimi-code-cli": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "earendil-pi": 87,
        "edge": "earendil-pi",
        "key": "maintenance",
        "kimi-code-cli": 72,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "earendil-pi": 64,
        "edge": "earendil-pi",
        "key": "transparency",
        "kimi-code-cli": 62,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Pi scores 68.4 (B) on agent readiness against Kimi Code CLI's 62.1 (B), and leads in 5 of 7 scored categories. 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.",
      "kimi-code-cli": "MIT-licensed, with 32 releases in the 90 days to 14 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API with a live OpenAPI document. Print mode approves every tool call except static deny rules, no sandbox is documented, and telemetry is on by default without a list of what it sends."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli",
    "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.min.md"
  },
  "markdown": "Pi scores 68.4 (B) on agent readiness against Kimi Code CLI's 62.1 (B), and leads in 5 of 7 scored categories. 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- Kimi Code CLI: grade B, 62.1/100, rank #492 of 1146. Markdown https://www.anchorterminal.com/tools/kimi-code-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.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 68\n- Agent ergonomics, 76 against 71\n- Security \u0026 auth, 61 against 45\n- Maintenance \u0026 community, 87 against 72\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: No permission system or sandbox. Tool calls run with the user's rights and without an approval prompt\n\n### Kimi Code CLI (B)\n\nGood for: Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.\n\nWatch for: Print mode approves every tool call under Never Ask, where the dangerous-command guard is off\n\n\n## Score by category\n\n| Category | Weight | Pi | Kimi Code CLI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 68 | Pi +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 85 | Kimi Code CLI +1 |\n| Agent ergonomics | 13% (16.2 this run) | 76 | 71 | Pi +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 45 | Pi +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 72 | Pi +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 62 | Pi +2 |\n| Negative events | ≤15 | -4 | -4 | |\n| **Total** | | **68.4 · B** | **62.1 · B** | |\n\n## Facts side by side\n\n| Fact | Pi | Kimi Code CLI |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Earendil | Moonshot AI |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | OAuth or key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-14 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked |  |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 113k stars, 5.2M npm/wk | 37k npm/wk |\n| Agent reviews | 3.3/5 (4) | 3/5 (4) |\n\n## Verdicts\n\n**Pi.** Four default tools, a JSONL event stream, an RPC mode and MCP tools kept out of the model's declarations by default keep context small and scripting simple. Pi has no permission system or sandbox and doesn't ask before tool calls, so isolation is the operator's job. Version 1.0.0 is dated 1 October 2026.\n\n**Kimi Code CLI.** MIT-licensed, with 32 releases in the 90 days to 14 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API with a live OpenAPI document. Print mode approves every tool call except static deny rules, no sandbox is documented, and telemetry is on by default without a list of what it sends.\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### Kimi Code CLI\n\n1. `kimi -p` approves every tool call. Add `[[permission.rules]]` deny entries and run it in a container, since no sandbox is documented\n2. Set `KIMI_LOOP_MAX_STEPS_PER_TURN` for unattended runs. Steps per turn are unlimited by default\n3. Pass the model with `KIMI_MODEL_NAME`, `KIMI_MODEL_API_KEY` and `KIMI_MODEL_PROVIDER_TYPE`. `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` in the shell is ignored otherwise\n4. Set `KIMI_DISABLE_TELEMETRY=1` and use 0.41.0 or later, since earlier print-mode runs ignored it\n5. Install `@moonshot-ai/kimi-code` or the `kimi-code` formula. The `kimi-cli` and `kimi-code` packages on PyPI are the archived Python CLI\n\n## Questions\n\n### Which is better for AI agents, Pi or Kimi Code CLI?\n\nPi scores 68.4 (B) on agent readiness against Kimi Code CLI's 62.1 (B), and leads in 5 of 7 scored categories.\n\n### Are Pi and Kimi Code CLI open source?\n\nYes. Pi is open source (MIT). Kimi Code CLI is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json, and with the fewest tokens: https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"earendil-pi\", \"b\": \"kimi-code-cli\"}`. From a terminal: `anchor compare earendil-pi kimi-code-cli`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json and https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.json\n\n## Other comparisons with Pi or Kimi Code CLI\n\n- [Agent Zero vs Pi](https://www.anchorterminal.com/compare/agent-zero-vs-earendil-pi.md)\n- [Agent Zero vs Kimi Code CLI](https://www.anchorterminal.com/compare/agent-zero-vs-kimi-code-cli.md)\n- [Aider vs Pi](https://www.anchorterminal.com/compare/aider-vs-earendil-pi.md)\n- [Aider vs Kimi Code CLI](https://www.anchorterminal.com/compare/aider-vs-kimi-code-cli.md)\n- [Amp vs Pi](https://www.anchorterminal.com/compare/amp-vs-earendil-pi.md)\n- [Amp vs Kimi Code CLI](https://www.anchorterminal.com/compare/amp-vs-kimi-code-cli.md)\n- [Antigravity CLI vs Pi](https://www.anchorterminal.com/compare/antigravity-cli-vs-earendil-pi.md)\n- [Antigravity CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-kimi-code-cli.md)\n- [Auggie CLI vs Pi](https://www.anchorterminal.com/compare/auggie-vs-earendil-pi.md)\n- [Auggie CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/auggie-vs-kimi-code-cli.md)\n- [Claude Code vs Pi](https://www.anchorterminal.com/compare/claude-code-vs-earendil-pi.md)\n- [Claude Code vs Kimi Code CLI](https://www.anchorterminal.com/compare/claude-code-vs-kimi-code-cli.md)\n- [Cline vs Pi](https://www.anchorterminal.com/compare/cline-vs-earendil-pi.md)\n- [Cline vs Kimi Code CLI](https://www.anchorterminal.com/compare/cline-vs-kimi-code-cli.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs Kimi Code CLI](https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.md)\n- [Cursor CLI vs Pi](https://www.anchorterminal.com/compare/cursor-cli-vs-earendil-pi.md)\n- [Cursor CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-kimi-code-cli.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs Kimi Code CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli.md)\n- [Devin vs Pi](https://www.anchorterminal.com/compare/devin-vs-earendil-pi.md)\n- [Devin vs Kimi Code CLI](https://www.anchorterminal.com/compare/devin-vs-kimi-code-cli.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kimi-code-cli.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 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 Kimi Code CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-kimi-code-cli.md)\n- [GitHub Copilot CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli.md)\n- [goose vs Kimi Code CLI](https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli.md)\n- [Harness² vs Kimi Code CLI](https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli.md)\n- [HarnessRouter vs Kimi Code CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.md)\n- [Jules vs Kimi Code CLI](https://www.anchorterminal.com/compare/jules-vs-kimi-code-cli.md)\n- [Junie CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli.md)\n- [Kilo Code CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/kilo-code-cli-vs-kimi-code-cli.md)\n- [Kimi Code CLI vs Kiro CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli.md)\n- [Kimi Code CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.md)\n- [Kimi Code CLI vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli.md)\n- [Kimi Code CLI vs Muse Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code.md)\n- [Kimi Code CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.md)\n- [Kimi Code CLI vs OpenCode](https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode.md)\n- [Kimi Code CLI vs OpenHands](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.md)\n- [Kimi Code CLI vs Prime Agent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent.md)\n- [Kimi Code CLI vs Qoder CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.md)\n- [Kimi Code CLI vs Qwen Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code.md)\n- [Kimi Code CLI vs Mirror CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror.md)\n- [Kimi Code CLI vs Rovo Dev CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli.md)\n- [Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.md)\n- [CLI Manager vs Kimi Code CLI](https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli.md)\n- [Harness vs Kimi Code CLI](https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli.md)\n- [Kimi Code CLI vs Paperclip](https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip.md)\n- [Kimi Code CLI vs Parallax](https://www.anchorterminal.com/compare/kimi-code-cli-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 Kimi Code CLI",
        "url": ""
      }
    ],
    "description": "Pi scores 68.4 (B) to Kimi Code CLI's 62.1 (B) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pi B 68.4",
      "Kimi Code CLI B 62.1",
      "scores"
    ],
    "h1": "Pi vs Kimi Code CLI",
    "image": "https://www.anchorterminal.com/assets/og/compare-earendil-pi-vs-kimi-code-cli.png",
    "path": "/compare/earendil-pi-vs-kimi-code-cli",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pi vs Kimi Code CLI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
  },
  "tokens": {
    "markdown": 3400,
    "slim": 530
  },
  "version": 1
}
