News · 2026-09-23
Pi: A minimal coding-agent harness you can reshape
An open-source terminal coding harness built around four default tools, a small core, and an extension system designed to let users shape the agent around their own workflows.

What it is
Pi is an open-source terminal coding harness designed around a deliberately small core. Rather than providing every agent workflow as a built-in feature, it gives the underlying language model a compact set of capabilities for working with a codebase and leaves much of the surrounding behavior to configuration and extensions.
Pi is not an AI model and does not define the intelligence of the agent itself. It is the harness between a model, the local development environment, the available context, and the tools through which the model can act. Users can adapt it through context files, skills, prompt templates, TypeScript extensions, themes, and installable Pi packages.
Core technical characteristics
- Minimal default tool surface: read, write, edit, and bash, with read-only tools such as grep, find, and ls available when configured.
- Extensions as an execution layer: TypeScript modules can register tools, commands, event handlers, model providers, terminal UI behavior, and context changes.
- Customization layers: AGENTS.md, prompt templates, skills, extensions, and Pi packages keep instructions separate from executable behavior.
- Explicit context management: project and global context files, on-demand skills, and session compaction.
- Tree-based sessions: active context is reconstructed from a branch in a session tree, allowing earlier states and alternatives to be revisited.
- Four interfaces: interactive terminal UI, print/JSON mode, RPC over JSONL, and a TypeScript SDK.
- Steering during execution: users can redirect an agent while work is underway.
Why it matters
Pi makes the harness itself an editable engineering surface. Developers can decide which instructions enter context, which tools are available, which actions require controls, how sessions are managed, and which behaviors belong in extensions rather than the system prompt.
A small core can also make the relationship between model, context, tools, and extensions easier to inspect. That is useful for experimentation, but it is not evidence that minimal agent harnesses universally outperform more opinionated alternatives.
Limitations and open questions
Minimalism transfers responsibility to the user: capabilities expected from an opinionated coding-agent product may need to be configured or implemented.
Enabled tools and extensions operate with the operating-system permissions of the Pi process. Model-generated commands and code should be treated as untrusted, with isolation, restricted credentials, and network controls used where the workload requires them.
The quality of a harness cannot be separated cleanly from the model, prompt, context, tools, and project environment. A small prompt or tool surface alone does not demonstrate better task performance.
The project evolves quickly; package names, APIs, extension conventions, and features can change. The official documentation remains the appropriate implementation reference.
