A terminal based coding agent with multi provider LLM support and a TypeScript extension system.

Pi screenshot 1

Pi is an open-source web app and server that serves as a terminal-based coding agent designed to assist with software development through a command line interface. The software operates as a modular set of packages that manage LLM interactions, tool calling, and state management, allowing it to function as an interactive assistant within a developer's local environment.

Users deploy Pi as a CLI tool to interact directly with their codebase. It utilizes a unified API to connect with various large language model providers and includes a specialized terminal UI library that supports differential rendering for a more efficient display of information. This setup allows the agent to perform coding tasks while maintaining a minimal core architecture.

Key features

  • Unified multi-provider LLM API supporting OpenAI, Anthropic, and Google
  • Interactive coding agent CLI for direct terminal interaction
  • Agent runtime with integrated tool calling and state management
  • Terminal UI library featuring differential rendering
  • Support for containerization via Docker or OpenShell for process isolation
  • Integration with the Gondolin extension to route tools into Linux micro-VMs
  • Ability to publish session data to Hugging Face for open source research
  • TypeScript extension system for building custom workflows

The architecture is split into several specialized packages to separate concerns. The core runtime handles the logic of agent state and tool execution, while the AI package abstracts the differences between various LLM providers. Because the agent runs with the permissions of the user who launches it, the project provides specific patterns for sandboxing the process. These include using plain Docker containers or OpenShell to restrict filesystem, process, and network access.

To ensure stability and security, the project implements strict supply-chain hardening. Direct external dependencies are pinned to exact versions, and the published CLI package includes a shrinkwrap file to pin transitive dependencies. This approach prevents accidental updates from breaking the agent's functionality during installation.

Pi is intended for developers who prefer a terminal-centric workflow and require a flexible agent that can be extended with custom TypeScript workflows.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity14 days ago
Repository Age1 year
LicenseMIT
Open Source Alternative to
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.