A coding agent, and the parts it is made of
Most coding agents are a single program. Pi is that, plus the layers underneath it published as separate packages you can build on. The monorepo ships an interactive coding agent CLI, but also the unified LLM API, the agent runtime, and the terminal UI library that the CLI is assembled from. That separation is the reason to look at pi rather than just another agent: you can use the finished tool, or pull one layer into your own project, and the same primitives back both paths.
The packages map to the layers cleanly:
@earendil-works/pi-ai: a unified multi-provider LLM API across OpenAI, Anthropic, Google, and more.@earendil-works/pi-agent-core: the agent runtime, with tool calling and state management.@earendil-works/pi-coding-agent: the interactive coding agent CLI itself.@earendil-works/pi-tui: a terminal UI library with differential rendering.
Self-extensible by design
Pi ships with strong defaults but deliberately skips features like sub-agents and plan mode out of the box. Its answer is not a settings menu, it is extension: you can ask pi to build the capability you want, or install a third-party pi package that matches your workflow. The agent is meant to grow into your needs rather than ship every feature on by default, which is a coherent stance for a tool built from reusable parts.
The project also pushes an unusual community practice: publishing your real coding-agent sessions as open data, on the argument that agents improve faster on actual tasks, tool use, failures, and fixes than on toy benchmarks. There is a companion tool for uploading sessions to Hugging Face, and the maintainer publishes their own. You do not have to participate, but it signals where the project thinks agent quality actually comes from.
Install
The coding agent installs from npm or a script:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Or via the installer:
curl -fsSL https://pi.dev/install.sh | sh
The --ignore-scripts flag is intentional: pi does not require dependency lifecycle scripts for a normal install, and the project uses that flag in its own documented installs and in pi update --self, which is a sensible supply-chain default for a tool that runs with your permissions.
The trust model is a real feature, not a nag
On interactive startup, pi asks before trusting a project folder that contains project-local extensions or settings when it has no saved decision for that folder or a parent. Trusting a project lets pi load .pi/settings.json and .pi resources, install missing project packages, and execute project extensions. That prompt matters because pi is extensible and projects can carry executable extensions; the trust gate is what stops a cloned repo from silently running its own agent code on first launch. It was prominent enough to draw a dedicated feedback thread, and it is the right default for a self-extending agent.
What the tracker shows
Pi has just 35 open issues as of 2026-06 against a large star count, partly because new-contributor issues and PRs are auto-closed by default and reviewed by maintainers daily, an unusual policy worth knowing if you plan to contribute. Frequent releases (v0.79.1 in June 2026) keep it moving. The open threads are concrete integration problems: an OpenAI Codex path that can hang on aborted zero-usage turns, and a Kimi model returning a missing reasoning_content error through one backend. These are the seams of a toolkit that spans many providers, not signs of neglect.
pi versus other coding agents
| pi | aider | general agents | |
|---|---|---|---|
| Stars | 61,403 | 45,963 | varies |
| Shape | toolkit plus a coding agent | coding agent | coding agent |
| Reusable layers | LLM API, runtime, TUI as packages | monolithic | varies |
| Extension model | ask it to build, or install packages | config and flags | varies |
Counts are from GitHub as of June 2026. aider is the mature, focused terminal coding agent, excellent at its job but consumed as a finished tool. General agents like Claude Code are similarly monolithic. Pi’s distinct bet is exposing its layers as packages and leaning on self-extension, so it appeals if you want to build on the primitives, not only use the CLI.
Related
To manage pi alongside other coding tools and their configs, see cc-switch. For another terminal coding agent with a sharper model focus, see DeepSeek-Reasonix. For what else is climbing, see LLM tooling, the daily digest, and the weekly report.
FAQ
Is pi a coding agent or a library? Both. It ships an interactive coding agent CLI plus the unified LLM API, agent runtime, and TUI library it is built from, as separate packages.
How do I install it? npm install -g --ignore-scripts @earendil-works/pi-coding-agent, or the pi.dev/install.sh script.
Why does it ask to trust a folder? Projects can carry executable pi extensions. The trust prompt stops a cloned repo from running its own agent code until you approve it.
Can I contribute? Note that new-contributor issues and PRs are auto-closed by default and reviewed by maintainers daily, so read the contributing guide before opening one.