# Pi (slim) > 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. - Full: https://www.anchorterminal.com/tools/earendil-pi.md (~7,150 tokens) · this version ~1,530 tokens · JSON https://www.anchorterminal.com/tools/earendil-pi.json · canonical https://www.anchorterminal.com/tools/earendil-pi - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **B · 68.4/100 · rank #170 of 629 · #6 in Agent harnesses · not agent-ready · confidence medium** Assessment: 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. ## Facts - Kind: Agent harness · vendor: Earendil · category: Agent harnesses · legal entity: Earendil Inc. · provenance 63/100 - Packages: npm `@earendil-works/pi-coding-agent` - Auth: None · pricing: Free · x402: no · licence: MIT - Probe metrics: not measured yet (probes haven't run) - Interfaces: Terminal UI, print mode (`--print`), JSON mode (`--mode json`, JSONL events), RPC mode (`--mode rpc`, JSONL commands on stdin), TypeScript SDK, extensions, skills, prompt templates and Pi packages - Built-in tools: read, bash, edit and write by default. powershell on Windows, grep, find and ls available. codemode (JavaScript in a QuickJS sandbox that calls the other tools) and tool_search are off until enabled or an MCP server needs them - Approvals: None for tool calls. Project trust asks before loading a repository's `.pi` settings, extensions, skills and MCP servers, and `--tools`, `--exclude-tools` and `--no-tools` narrow the tool set - Sandbox: None. The docs describe plain Docker, Docker Sandboxes, OpenShell and a Gondolin micro-VM extension - MCP client: stdio and streamable HTTP, no SSE. OAuth with dynamic registration, a registered client or a Client ID Metadata Document. Exposure per server or tool is codemode (default), deferred, direct or hidden - Models: 15 or more providers per pi.dev, among them Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, xAI, OpenRouter, Ollama and llama.cpp, by API key or subscription login, plus custom providers in `models.json` - Sessions: JSONL trees under `~/.pi/agent/sessions/`, with `--continue`, `--fork`, `--session-id` and `--no-session`, automatic compaction, HTML export, and `/share` to a private GitHub gist or a Radius artifact - Telemetry: Anonymous install and update ping to pi.dev, provider attribution headers and a latest-version request on by default, with `PI_TELEMETRY=0`, `PI_SKIP_VERSION_CHECK` and `PI_OFFLINE` as opt-outs. Analytics sharing is off by default - Runtime: Node.js 22.19 or newer. Installers for macOS, Linux and Windows, npm, Nix and standalone binaries - Releases in 90 days: 33 tags since 10 July 2026, with 1.0.0 on 1 October and 1.1.0 on 7 October 2026 - Advisories: Four published on 8 June 2026 (CVE-2026-54325 to CVE-2026-54328), fixed in 0.78.1 and 0.79.0 - Scores: Reliability 75, Performance pending, Schema & documentation 84, Agent ergonomics 76, Security & auth 61, Payments & pricing 60, Task success pending, Maintenance & community 87, Transparency & trust 64 · negative events -4 · total over the 7 assessed categories - Why: Reliability, Read as a local package. · Schema & documentation, Harness reading, as for the other harnesses. · Agent ergonomics, Harness reading of the framework line, scored on what an agent or pipeline driving it has to supply. · Security & auth, Harness reading of the framework checklist, used for the harnesses in this category. · Payments & pricing, No payment protocol in the repository or docs (0). · Maintenance & community, v1.1.0 on 7 October 2026, one day before this check (30). · Transparency & trust, MIT (30). - Sources: 28, open questions: 7, both in the full twin - Capabilities: agent.harness, agent.mcp-client - JSON: https://www.anchorterminal.com/api/v1/tools/earendil-pi.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/earendil-pi.svg` or a link to https://www.anchorterminal.com/tools/earendil-pi from a page on pi.dev or one of its subdomains, or the README of github.com/earendil-works/pi, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Run Pi inside a container or VM for unattended work. It has no sandbox and doesn't ask before running shell commands 2. Use `pi --mode json` and wait for `agent_settled`. A failed response doesn't set a nonzero exit code in JSON mode 3. Split the JSONL stream on LF only. Node's `readline` also splits on U+2028 and U+2029, which are valid inside JSON strings 4. Pass `--no-approve` or `--approve` in scripts to make the project trust decision explicit 5. Set `PI_TELEMETRY=0` and `PI_SKIP_VERSION_CHECK=1`, or `PI_OFFLINE=1`, to stop the default requests to pi.dev ## Connect ```bash curl -fsSL https://pi.dev/install.sh | sh # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent ``` ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | goose | BB | 73.9 | agent.harness, agent.mcp-client | https://www.anchorterminal.com/tools/goose.min.md | | OpenAI Codex | BB | 73 | agent.harness, agent.mcp-client | https://www.anchorterminal.com/tools/openai-codex.min.md | | Qwen Code | BB | 72.4 | agent.harness, agent.mcp-client | https://www.anchorterminal.com/tools/qwen-code.min.md | | Gemini CLI | BB | 72 | agent.harness, agent.mcp-client | https://www.anchorterminal.com/tools/gemini-cli.min.md | | OpenHands | BB | 70.8 | agent.harness, agent.mcp-client | https://www.anchorterminal.com/tools/openhands.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)