AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

★ 121,173⑂ 15,613👁 341⑃ 3,725● 7,772▤ 276◈ 360
TypeScriptMITCreated 2025-08-09
121,173
stars
+204+1,594+8,491
15,613
forks
341
watchers
3,725
prs
7,772
issues
276
releases
360
discussions

README

New issues and PRs from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. See CONTRIBUTING.md.

 Pi

Pi is a minimal, extensible agent harness that you can make your own.

Adapt Pi to your workflows, not the other way around. Customize Pi with extensions, skills, prompt templates, and themes. Bundle them as Pi packages and share via npm or git.

Pi ships with powerful defaults but skips features like sub-agents and plan mode. Ask Pi to build what you want, or install a package that does it your way.

Use Pi interactively, automate it in print or JSON mode, control it over RPC, or build apps with the Pi TypeScript SDK. See OpenClaw for a real-world integration.

 Getting started

Install the command-line interface:

bash
curl -fsSL https://pi.dev/install.sh | sh


On Windows:

shell
powershell -c "irm https://pi.dev/install.ps1 | iex"


The installer pins all dependencies and updates Pi with pi update. Alternatively, install directly with npm, which does not pin transitive dependencies:

bash
npm install -g --ignore-scripts @earendil-works/pi-coding-agent


Pi requires Node.js 22.19 or newer. The macOS, Linux, and Windows installers can install it if needed. Pi does not require dependency lifecycle scripts for a normal npm installation.

Start Pi in the directory where you want it to work:

bash
cd /path/to/project
pi


For a built-in AI provider, run /login inside Pi to connect a subscription or API key. Then give Pi a task.

See the documentation for full setup and usage instructions, or visit pi.dev for demos.

 Run with Nix

bash
nix run github:earendil-works/pi/stable


stable points at the latest release. Install it with nix profile add github:earendil-works/pi/stable and update with nix profile upgrade pi. Use a release tag such as github:earendil-works/pi/v1.0.0 to pin a version, or github:earendil-works/pi for unreleased changes on main. Nix builds Pi from source.

Supports ARM64 and x86-64 on Linux and macOS. Use nix build . or nix run . to build or run your checkout.

Nix builds are offline, so the bundled model data comes from a pi.dev model catalog revision pinned in nix/model-catalog.json. At runtime, Pi still overlays newer catalog data from pi.dev as usual. The Nix workflow replaces the pin on main when it no longer matches the checkout, for example after a provider is added or gains a new model type. To refresh it by hand:

bash
npm run update:model-catalog-pin


 Packages

This monorepo contains the Pi CLI and its supporting libraries.

| Package | Description |
|---------|-------------|
| @earendil-works/chord | Object runtime for apps across processes: contracts, documents, a store, links, plugins with hot reload, HTTP, workers, web and terminal clients |
| @earendil-works/pi-telemetry | Vendor-neutral telemetry contracts, reference adapter, conformance tests, and typed schemas |
| @earendil-works/pi-ai | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |
| @earendil-works

Top issues

Discussions

Latest release

v1.5.0 v1.5.0 2026-11-02
New Features

- Extension update changelogs: see what changed in installed extension packages on the next fresh launch after an update. Package authors can choose the changelog path, and collapseChangelog condenses the notices. See Show a changelog.
- Faster streaming: large tool calls are parsed incrementally, and code-heavy answers and tool rows reuse highlighting and rendered Markdown instead of repeating the work on every update. See Keep rendering responsive.
- Custom self-update commands: use PI_SELF_UPDATE_COMMAND or selfUpdateCommand to update pi through a wrapper or another package ma

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON