Files
pi-devbox/README.md
T
joakimp 7b634605b7
Publish Docker Image / smoke (push) Failing after 27s
Publish Docker Image / publish (push) Has been skipped
Publish Docker Image / update-description (push) Has been skipped
Initial commit: pi-devbox v0.74.0
pi coding-agent container built on opencode-devbox:base-latest.
Includes Dockerfile, docker-compose, CI workflow, smoke-test,
README, CHANGELOG, AGENTS.md.
2026-05-14 19:57:17 +02:00

59 lines
2.3 KiB
Markdown

# 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)