Pi is a minimal terminal coding harness that adapts to your workflows, not the other way around. Instead of baking in opinionated features, Pi gives you a powerful core and a rich extension system — TypeScript extensions, skills, prompt templates, and themes — that you can bundle and share with others via Pi Packages.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/earendil-works/pi/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Install Pi and run your first coding session in under a minute
Providers and models
Connect to Anthropic, OpenAI, Google, Bedrock, and 20+ more providers
Interactive mode
Learn the TUI interface, commands, keyboard shortcuts, and message queue
Extensions
Build custom tools, commands, UI components, and event handlers in TypeScript
SDK
Embed Pi’s agent capabilities directly in your own Node.js application
pi-ai library
Unified multi-provider LLM API with streaming, tool calling, and OAuth
What Pi ships with
By default, Pi gives the model seven built-in tools:| Tool | Description |
|---|---|
read | Read file contents |
bash | Run shell commands |
edit | Patch files in place |
write | Create or overwrite files |
grep | Search file contents |
find | Find files by name or pattern |
ls | List directory contents |
Only
read, bash, edit, and write are enabled by default. Use --tools to enable additional built-in tools, or --no-builtin-tools / --no-tools to control which tools are active.- Interactive — Full TUI with session history, branching, model cycling, and extension UI
- Print — Non-interactive: send a prompt, get a response, exit (
-p) - JSON — Stream all agent events as newline-delimited JSON (
--mode json) - RPC — JSON-RPC over stdin/stdout for subprocess and process integration (
--mode rpc)
Philosophy
Pi is aggressively minimal by design. The core does one thing well: give a model tools and let it work. Features that other tools bake in are deliberately absent — and that’s intentional. No MCP. Build CLI tools with READMEs (see skills), or write an extension that adds MCP support. The rationale is explained here. No sub-agents. There are many ways to do this. Spawn Pi instances via tmux, build your own with extensions, or install a package that does it your way. No plan mode. Write plans to files, or build it with extensions, or install a package. No permission popups. Run in a container, or build your own confirmation flow with extensions inline with your environment and security requirements. No background bash. Use tmux. Full observability, direct interaction. The result is a core that stays fast, auditable, and adaptable. Read the full rationale for more context.Security and extension trust
Extensions and skills can be installed globally (~/.pi/agent/) or project-locally (.pi/). Use pi config to enable or disable individual extensions, skills, prompts, and themes after installation.