AI harnesses are the software wrapped around a language model that makes it able to work. Pi is one such harness: an open-source, terminal-based coding agent from Earendil Inc. that, according to its own documentation, deliberately keeps a minimal core and lets everything else be added through extensions. Licensed under MIT and installable via npm or an install script, Pi connects over 15 model providers to a single terminal program. As of 20 September 2026.
What is Pi?
According to the available sources, Pi originated from the work of Austrian developer Mario Zechner (“badlogic”, creator of the libGDX framework) and is now developed under Earendil Inc., with the repository living under the earendil-works GitHub organisation. Pi is installed via npm with npm install -g --ignore-scripts @earendil-works/pi-coding-agent or via curl -fsSL https://pi.dev/install.sh | sh; running pi in a project directory starts an interactive terminal session, published under the MIT licence in the earendil-works/pi repository.
Unlike many larger coding agents, Pi has no IDE extension and no web interface – the documentation describes only a terminal UI (TUI) plus non-interactive modes for automation.
Pi as an AI harness
Pi deliberately keeps the seven building blocks of a harness lean. The agent loop calls the model, evaluates its tool requests, and can be extended with custom behaviour through an event system (pi.on) – for example on tool_call, session_start or agent_end. The documentation puts the philosophy this way: “Adapt Pi to your workflows, not the other way around.” Rather than shipping many built-in capabilities, the core provides only a few tools; everything else – extensions, skills, prompt templates and themes – is installed as a package via npm or git.
Deliberately not built in, according to the documentation: MCP support, sub-agents, permission pop-ups, a plan mode, built-in to-dos and background bash processes. Anyone who needs these capabilities builds them via extensions or falls back on external tools like tmux. Sessions, by contrast, are firmly built in and stored as a tree structure in JSONL format: every entry has an id and a parentId, so the /tree command can jump back to any earlier point and continue from there.
Models and model access
According to the documentation, Pi integrates over 15 providers, including Anthropic, OpenAI, Google, Azure, Amazon Bedrock, Mistral, Groq and OpenRouter, as well as local models via Ollama – relevant among others for model families such as Claude, GPT and Gemini. Models can be switched mid-session with the /model command, or cycled through favourites with Ctrl+P.
According to the documentation, custom OpenAI-compatible endpoints can be declared in the ~/.pi/agent/models.json file (baseUrl, api: "openai-completions", apiKey) or, for dynamic cases such as proxies with their own authentication, registered programmatically through an extension with pi.registerProvider. This means Pi can be operated over the AI Gateway by adding the gateway as an additional provider in ~/.pi/agent/models.json.
Enterprise use: data protection and governance
According to the documentation, Pi runs entirely in the local terminal and connects directly to the chosen model provider, with no additional SaaS layer from the project itself. Before first running in a new directory, its security documentation says Pi asks for project trust before tools may access the file system. A dedicated telemetry package (pi-telemetry) offers vendor-neutral contracts and a reference adapter for a team’s own observability; a mandatory report back to Earendil is not described. A central enterprise SSO for Pi itself is not documented; credentials are set per provider via /login or environment variables.
Important in practice: source code, file contents and prompts that Pi processes during a session go to whichever model provider is selected. That belongs in your organisation’s record of processing activities beforehand – regardless of how lean the harness itself is.
Orchestrating Pi with herdr
The herdr documentation lists Pi as a supported agent: if the lifecycle integration is installed, Pi reports state and session directly to herdr; if not, herdr detects the session via a screen manifest. In both cases, according to the documentation, herdr reads both state and session information – useful when several Pi sessions run in parallel inside a terminal multiplexer.
Where it fits: developer harness and enterprise harness
Pi is a harness for a very specific environment: a terminal, a repository, a developer willing to rebuild missing capabilities as an extension. For business users outside development, that role is taken by CompanyGPT – the harness with tools for line-of-business systems, enterprise knowledge and role-based permissions. The AI Gateway forms the shared cost and governance layer for all model access, whether from Pi, from CompanyGPT or from other harnesses. For an overview of further coding and orchestration harnesses, see our harness overview. We help you connect Pi or other developer harnesses cleanly to your permission model, your model routing and your governance requirements.
