# pi-devbox A Docker container image with [pi coding-agent](https://github.com/earendil-works/pi) pre-installed, built on the [opencode-devbox](https://gitea.jordbo.se/joakimp/opencode-devbox) base image. ## What's inside Built on `opencode-devbox:base-latest`, which provides: - **Debian trixie** (stable base) - **Node.js** (LTS), **uv** (Python), **rustup** (Rust on-demand) - **AWS CLI** v2 - **MemPalace** + MCP server (persistent agent memory across sessions) - **Gitea MCP** server - **Dev tools**: neovim (LazyVim), tmux, bat, eza, fzf, zoxide, ripgrep, git-lfs, make - **Shell**: bash with history tuning, prefix-search, fzf/zoxide integration This image adds: - **pi** (`@earendil-works/pi-coding-agent`) — baked at `/usr/bin/pi` - **pi-toolkit** — keybindings, env loader, settings template (cloned to `/opt/pi-toolkit`) - **pi-extensions** — ext-toggle, todo, ssh-controlmaster, notify, git-checkpoint, mcp-loader, confirm-destructive (cloned to `/opt/pi-extensions`) - **mempalace bridge** — `mempalace.ts` extension symlinked from `/opt/mempalace-toolkit` ## Quick start ```bash cp .env.example .env # edit .env — set WORKSPACE_PATH, GIT_USER_NAME, GIT_USER_EMAIL docker compose run --rm devbox # inside the container: pi ``` ## Versioning Tags follow the pi npm version: `v0.74.0`, `v0.75.0`, etc. `latest` always points at the most recent release. ## Persistence | Volume | What it holds | |--------|---------------| | `devbox-pi-config` | pi settings, extensions toggle state, sessions (`~/.pi/`) | | `devbox-shell-history` | bash history | | `devbox-zoxide` | zoxide directory jump history | | `devbox-nvim-data` | neovim plugins, Mason packages | | `devbox-uv` | uv Python installs and tool cache | ## User-installed pi packages `NPM_CONFIG_PREFIX` is set to `/home/developer/.pi/npm-global`, so any `pi install npm:...` or `npm install -g` as the `developer` user lands on the `devbox-pi-config` volume and survives container recreation and image rebuilds. A user-installed pi wins over the baked binary via `PATH` order. ## Source - [pi-devbox](https://gitea.jordbo.se/joakimp/pi-devbox) — this repo - [opencode-devbox](https://gitea.jordbo.se/joakimp/opencode-devbox) — base image source - [pi-toolkit](https://gitea.jordbo.se/joakimp/pi-toolkit) - [pi-extensions](https://gitea.jordbo.se/joakimp/pi-extensions)