feat(coding-agent): add Nix flake (#9137)

Add a Nix flake that builds Pi from the checkout on aarch64/x86_64 Linux
and macOS. The build is offline: provider model data is hydrated from a
pi.dev model catalog revision pinned in nix/model-catalog.json, and the
runtime dependency tree comes from packages/coding-agent/install-lock with
internal packages built from source.

The Nix workflow keeps the catalog pin current on main, builds release
tags on all systems, and fast-forwards the stable branch to each release
that builds. The release script refreshes the pin before tagging.
This commit is contained in:
Armin Ronacher 2026-10-02 18:30:51 +02:00 • committed by GitHub
parent 4665fafb4d
commit c71a496ff9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 997 additions and 19 deletions

View file

@ -20,6 +20,14 @@ npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Pi does not require dependency lifecycle scripts for a normal npm installation.
With Nix on macOS or Linux, install the latest release from Pi's flake. Nix builds Pi from source:
```bash
nix profile add github:earendil-works/pi/stable
```
Older Nix versions use `nix profile install` instead. Update with `nix profile upgrade pi`; `pi update` cannot update a Nix installation. To pin a release, use a tag such as `github:earendil-works/pi/v1.0.0`.
Verify the installation:
```bash
@ -119,4 +127,10 @@ If you used the installer, run it again and choose **Uninstall Pi**:
curl -fsSL https://pi.dev/install.sh | sh
```
Neither method removes configuration, credentials, sessions, or installed Pi packages from `~/.pi/agent/`.
If you installed Pi with Nix, run:
```bash
nix profile remove pi
```
None of these methods removes configuration, credentials, sessions, or installed Pi packages from `~/.pi/agent/`.