- Tool patterns and --no-mcp: --tools and --exclude-tools accept patterns, for example --tools read,codemode,'mcpradius' keeps only one MCP server's tools. --tools now keeps MCP tools unless an…
- Codemode persists images: tools.read() on an image file now gives back an image block that image() can show. See Call tools.
- Added patterns to --tools and --exclude-tools, for example --tools read,codemode,'mcpradius'
- Added --no-mcp to disable the built-in MCP support for one run
- Fixed syntax highlighting losing colors after the first line of multiline strings and comments in fenced code blocks
- Fixed codemode scripts not receiving images from read: tools.read() now resolves to an image block for image files, which image() shows
Pi by Earendil Inc. (created by Mario Zechner)
Overview
Minimal, extensible open-source coding agent harness with interactive TUI, print/JSON, RPC and SDK modes, created by Mario Zechner and now maintained by Earendil Inc. It supports 15+ model providers through API keys or OAuth and is customized with TypeScript extensions, skills and packages.
Pi was downloaded 5.2M times from npm in the week ending Oct 4, 2026, up 29.8% on the week before and up 52.1% over the last 30 days compared with the 30 before. The GitHub repository has 113K stars, 10,883 of them added in the last 30 days. The latest stable release is 1.0.4, published Oct 5, 2026; there were 12 stable releases in the past 30 days. It was mentioned in 50 Hacker News posts and comments over the last 30 days.
Recent developments
- 2026-05-07: project moved to Earendil Works (repo earendil-works/pi, npm scope @earendil-works); 2026-10-01: Pi 1.0 announced
Pi usage and attention over time
Download the raw daily series: pi.csv
Install Pi
| npm | npm install -g @earendil-works/pi-coding-agent |
|---|---|
| Homebrew | brew install pi-coding-agent |
These commands use the packages tracked on this page. The vendor may recommend a different installer; see the official documentation.
Key facts
| Maker | Earendil Inc. (created by Mario Zechner) |
|---|---|
| Type | Terminal agent |
| First released | November 2025 |
| License | MIT |
| Interfaces | CLI, SDK |
| Platforms | macOS, Linux, Windows |
| Models | 15+ providers (Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, xAI, OpenRouter, Ollama and more) via API keys or OAuth |
| Local models | llama.cpp, Ollama, LM Studio and vLLM via a custom base URL (docs) |
| Bring your own API key | Yes |
| Main language | TypeScript |
| Open issues and PRs | 280 |
| Homebrew installs | 6,611 in 30 days · 39,368 in a year |
Pricing
Free and MIT-licensed; costs are those of the chosen model provider. Pi Durable (experimental) is also free per the 1.0 announcement.
, checked Oct 5, 2026. Prices change often; confirm before you buy.
Pulse Score breakdown
Each component is scored 0 to 100 from public signals; a dash means no data for it. Methodology.
What changed: recent Pi releases
30 stable releases in the last 90 days · Full changelog
- Azure Foundry Chat Completions — The azure provider (renamed from azure-openai-responses) now also serves Foundry Chat Completions deployments, starting with azure/deepseek-v4-pro. See Azure OpenAI.
- Codemode images saved to files — image() also writes each image to a temp file and names the path in the result, so later turns can copy or move generated images. See Generate images.
- Renamed the Azure provider from azure-openai-responses to azure. Rename the provider key in auth.json (or run /login again), in models.json, and in settings.json (defaultProvider, enabledModels…
- Added Azure Foundry Chat Completions deployments, starting with azure/deepseek-v4-pro (#9645,
- Codemode image() now also saves each image to a temp file and names the path in the result, so later turns can copy or move generated images
- Output files (full text of truncated tool output, binary MCP resources, codemode images) are now readable only by the user
- Sampling by thinking level — samplingParamsByThinkingLevel in models.json sets sampling parameters such as temperature and topp for each thinking level on OpenAI-compatible APIs. See Configure…
- Added samplingParamsByThinkingLevel to models.json for per-thinking-level sampling parameter overrides on OpenAI-compatible APIs. See Configure sampling by thinking level
- Nix flake — nix run github:earendil-works/pi/stable runs the latest release, and nix profile add github:earendil-works/pi/stable installs it. See Install pi.
- Project overrides for MCP servers — .pi/mcp.json and /mcp can enable, disable, or change the exposure of a user-level server for one project. See Configure servers.
- MCP Client ID Metadata Documents — oauth.clientRegistration: "cimd" lets authorization servers allow pi by its document URL instead of dynamic registration. See Authenticate with OAuth.
- Tool renderers for any tool — pi.registerToolRenderer() draws calls to tools that are not registered yet, such as MCP tools in resumed sessions. See Tool rendering.
- Cloudflare Clef classifiers — @cf/cloudflare/clef and @cf/cloudflare/clef-flash are usable from codemode scripts and extensions. See Use classifier models.
- Added a copy key (app.message.copy, default ctrl+x) to OAuth sign-in screens in /login, /mcp, and /mcp login, which copies the sign-in URL when the browser cannot be opened or the wrapped link…
- Fullscreen by default — The TUI now runs fullscreen. Set tuiMode to "regular" to keep the terminal's normal scrollback. See Terminal and display.
- Leaner codemode — About 40% fewer prompt tokens, and errors that tell the model how to recover. See Codemode.
- Image generation in codemode — Scripts call models.generateImages() with the session's credentials. See Generate images and Use image models.
- Radius in /login — Sign in with Radius and set up its MCP server in one step. See Radius.
- Anthropic copy code login — Sign in when the browser runs on another machine. See Authenticate interactively.
- MCP OAuth hardening — oauth.authServerMetadataUrl, RFC 9207 iss checks, credentials per server, and step-up sign-in that keeps granted scopes. See Authenticate with OAuth.
- MCP servers stay out of the way: servers with the default codemode exposure are no longer listed in the codemode description and no longer block the first prompt. They appear in a short system…
- More MCP authentication options: oauth.clientName for servers that only accept known OAuth clients, and "auth": { "provider": "<provider>" } to authenticate HTTP servers with a provider's /login…
- Anthropic workload identity federation from the Anthropic SDK environment variables. See Use an API key from the environment.
- /reload enables tools newly added to the defaultTools setting. See Tools.
- Added a description field for MCP servers (pi mcp add --description), shown with the server in the system prompt and used to rank its tools in tool search, and a describeNamespace(name) codemode…
- Added an oauth.clientName setting for MCP servers (pi mcp add --oauth-client-name) to change the client name sent during OAuth client registration, for servers that only accept known clients (#10226).
Pi alternatives
| # | Agent | Pulse | Downloads 7d | 7d | 30d | VS Code installs | Stars | Latest release | Price | Last 90 days | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 |
OpenAI CodexOpenAI |
82 | 25.6M | up 5.7% | up 21.2% | 15.2M | 128K+153/day | 0.160.1yesterday | Free + $8/mo | ||
| 3 |
Claude CodeAnthropic |
80 | 14.8M | up 11.6% | down 36.4% | 27.1M | 150K+161/day | 2.1.290yesterday | $20/mo | ||
| 7 |
OpenCodeAnomaly (SST team) |
73 | 3.3M | up 22.0% | up 6.1% | 1.2M | 212K+200/day | 1.18.346d ago | Free + $10/mo | ||
| 24 |
Gemini CLIGoogle |
57 | 453K | up 4.7% | up 1.8% | 1.1M | 107K+24/day | 0.62.07d ago | Varies | ||
| 26 |
Oh My PiStencil Labs (Can Bölük) |
56 | 241K | up 11.4% | up 53.9% | — | 34.4K+111/day | 18.6.12d ago | Free (OSS) | ||
| 34 |
ClineCline Bot Inc. |
52 | 95K | up 10.1% | down 37.2% | 5.5M | 69.9K+63/day | 0.0.434d ago | Free + $9.99/mo | ||
| No agents match that filter. | |||||||||||
Head to head: Pi vs OpenCode · Pi vs OpenAI Codex · Pi vs Claude Code · Pi vs Gemini CLI
Guides that cover Pi
Pi FAQ
How much does Pi cost?
Free and MIT-licensed; costs are those of the chosen model provider. Pi Durable (experimental) is also free per the 1.0 announcement.
Is Pi open source?
Yes. Pi is open source, released under the MIT license.
How popular is Pi?
Pi was downloaded 5.2M times from npm in the week ending Oct 4, 2026, up 29.8% on the week before and up 52.1% over the last 30 days compared with the 30 before. The GitHub repository has 113K stars, 10,883 of them added in the last 30 days. The latest stable release is 1.0.4, published Oct 5, 2026; there were 12 stable releases in the past 30 days.
What is the latest version of Pi?
The latest stable release we track is 1.0.4, published on Oct 5, 2026.
What are the alternatives to Pi?
The closest alternatives in the same category by Pulse Score are OpenAI Codex, Claude Code, OpenCode, Gemini CLI.
Where these numbers come from
npm: @earendil-works/pi-coding-agent. GitHub: earendil-works/pi. Homebrew: pi-coding-agent. Wikipedia: Pi (AI agent). Site rank: pi.dev on the Tranco list. See data sources for how each one is collected.
Product facts and pricing were checked against: pi.dev, earendil.com, github.com, registry.npmjs.org, formulae.brew.sh, en.wikipedia.org.
