Pi CLI
A minimal terminal coding agent extended with skills, prompt templates and TypeScript packages
- 118,586 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Runs arbitrary bash commands without built-in restrictions
- Has access to all of the user's files and credentials
Install
Manual install
npm install -g --ignore-scripts @earendil-works/pi-coding-agentAfter installing, run pi and use /login or set a provider key.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Runs arbitrary bash commands without built-in restrictions
- Has access to all of the user's files and credentials
This is third-party code. Review the repository files before installing.
What it does
Pi gives the model four base tools: read, write, edit and bash. Everything else comes from TypeScript extensions, skills, prompt templates and themes, which can be bundled into packages and shared via npm or git. It ships without subagents or plan mode: you build them or install a package. The agent runs interactively, in print or JSON mode, over RPC and as an SDK. The repository also holds libraries for building agents: a unified multi-provider model API, an agent runtime and a terminal UI.
Who it is for. For developers who want a small agent and are willing to shape it around their workflow.
Good fit when
- You want a lean agent that is easy to extend
- You want to use a Claude, ChatGPT or Copilot subscription in one terminal agent
- You need to embed an agent in your app via RPC or SDK
Not a fit when
- You need built-in limits on file, network and credential access
- You need subagents and plan mode out of the box
Example request
Build yourself an extension that shows me each bash command and waits for confirmationLimitations
There is no built-in permission system: the agent runs with the launching user's rights, and the authors suggest a container or sandbox for isolation. Models connect via a provider subscription or API key, so VPN needs depend on the provider. Issues and pull requests from new contributors are auto-closed by default.
How to disable. Remove the global package with npm uninstall -g @earendil-works/pi-coding-agent.
FAQ
Which models are supported?
Claude Pro and Max, ChatGPT Plus and Pro, and GitHub Copilot subscriptions, plus API keys for Anthropic, OpenAI, Google, DeepSeek, Mistral, Groq and other providers.
How do I restrict the agent?
Run it in Docker or a sandbox; options are described in the containerization docs in the repository.
Discussion
No questions or reviews yet.
Related
CLI toolsA web app for the Pi coding agent: sessions survive restarts, teammates can join, and you can work from a phone with no cloud VM
An extension for the Pi agent (pi.dev): subagents and orchestration in the Claude Code style, a widget and JavaScript scripts. Not for Claude Code
A web dashboard for the pi coding agent with sessions grouped by branch, a built-in terminal and a mobile mode
An extension for the Pi agent: one programmable fabric_exec tool calls tools, MCP, agents and workflows from code
A terminal coding agent in Go: one binary with no Node or Python, diff review right in the interface and sub-agents
A teaching terminal coding agent in Python, built as a "nanoGPT for agents": read it, take it apart and fork it
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Repository stars | Main difference |
|---|---|---|---|
| Pi (this entry) | no | 118,586 | |
| CoreCoder | no | 1,881 | a teaching terminal coding agent in Python |
| Metis: a coding agent for terminal and desktop | no | 431 | an open source coding agent as a desktop app |
README in short
The root README describes the monorepo: the coding agent, an agent runtime, a unified model provider API, a terminal UI and supporting packages. It states the agent has no permission system and lists three isolation options. It spends a lot of space on npm supply-chain hardening. The agent package README shows install via npm or a script and the provider list. MIT licensed.