7b634605b7
pi coding-agent container built on opencode-devbox:base-latest. Includes Dockerfile, docker-compose, CI workflow, smoke-test, README, CHANGELOG, AGENTS.md.
59 lines
2.3 KiB
Markdown
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)
|