Skip to main content

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.

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.

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:
ToolDescription
readRead file contents
bashRun shell commands
editPatch files in place
writeCreate or overwrite files
grepSearch file contents
findFind files by name or pattern
lsList 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.
Pi runs in four modes:
  • 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

Pi packages run with full system access. Extensions execute arbitrary code, and skills can instruct the model to perform any action including running executables. Always review source code before installing third-party packages.
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.

Build docs developers (and LLMs) love