A new session was only written to disk once the first assistant message existed. If pi exited during the first turn (Ctrl+C twice while streaming, or the process was killed), the user's prompt was lost and the session never appeared in /resume. The file is now created as soon as the session has a user or assistant message. A session with only setup entries (model, thinking level) still stays in memory, so starting pi and quitting without chatting leaves no file. Forking uses the same rule through a shared helper, so the two paths cannot drift apart and write the header twice (#1672). closes #10000 |
||
|---|---|---|
| .. | ||
| docs | ||
| examples | ||
| install-lock | ||
| scripts | ||
| src | ||
| test | ||
| .gitignore | ||
| CHANGELOG.md | ||
| npm-shrinkwrap.json | ||
| package.json | ||
| README.md | ||
| tsconfig.build.json | ||
| tsconfig.examples.json | ||
| vitest.config.ts | ||
New issues and PRs from new contributors are closed automatically. Maintainers review closed submissions daily. See CONTRIBUTING.md.
Pi
Pi is a minimal, extensible AI agent for the terminal. Adapt Pi to your workflow, not the other way around.
Ask Pi to create the prompt templates, skills, extensions, and themes you need, or install a Pi package. Use Pi directly, automate it in print, JSON, or RPC mode, or build applications with the TypeScript SDK.
Getting started
Install the command-line interface with npm:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
This requires Node.js 22.19 or newer. Pi does not require dependency lifecycle scripts for a normal npm installation.
On macOS or Linux, you can instead use the installer:
curl -fsSL https://pi.dev/install.sh | sh
Start Pi in the directory where you want it to work:
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.
Development
Clone the repository, install its dependencies, and run Pi from source:
git clone https://github.com/earendil-works/pi
cd pi
npm install --ignore-scripts
./pi-test.sh
pi-test.sh can be called from any directory and preserves the caller's working directory.
Before submitting changes, run:
npm run check
./test.sh
Read CONTRIBUTING.md before opening an issue or pull request. It defines the contribution gate, issue quality bar, and required checks. Read AGENTS.md for repository-specific implementation, testing, dependency, and release rules.
License
MIT