Run pi coding agent inside a Docker container. One command, any project directory.
# Install or update the local jpi command
bash ~/jpi/setup.sh
# First-time setup (installs colima, docker, docker-compose via Homebrew)
jpi setup
# Run pi in any project
cd ~/Projects/myapp
jpi| Command | Description |
|---|---|
jpi |
Run pi in Docker for the current directory |
jpi setup |
Install prerequisites and build the Docker image |
jpi upgrade |
Rebuild Docker image with the latest pi release |
jpi help |
Show usage info |
- A single
jpiscript lives in~/bin/(on your PATH) bash ~/jpi/setup.shinstalls/updates~/bin/jpifor fresh machinesjpi setupremoves the oldalias jpi='~/pi/jpi.sh'if it exists- It auto-starts Colima (lightweight Docker runtime for macOS) if needed
- Mounts your current directory as
/workspacein the container - Mounts
~/.pi,~/.secrets,~/.ssh,~/.gitconfig, and~/.plannotatorso pi has full access to your config
~/jpi/
├── Dockerfile # Node 23 + pi + tools (git, rg, fd, curl, jq, python3)
├── docker-compose.yml # Service config with volume mounts
├── entrypoint.sh # Sources ~/.secrets then runs pi
├── .gitignore
└── README.md
~/bin/
└── jpi # Main command (setup / upgrade / run)
Pi is installed at Docker image build time. To get the latest version:
jpi upgradeThis rebuilds the image with --no-cache so npm pulls the latest release.
- Added
setup.shto install/update~/bin/jpifor fresh machines. - Added legacy migration in
jpi setupto remove oldjpialiases pointing to~/pi/jpi.sh. - Setup checks now use built-in
grepinstead ofrgto reduce dependencies.
To validate the full new-user path end-to-end:
# 1) Remove old local command and any stale alias lines
rm -f ~/bin/jpi
sed -i '' '/alias[[:space:]]\+jpi=.*pi\/jpi\.sh/d' ~/.zshrc ~/.zprofile ~/.zshenv ~/.zsh_aliases 2>/dev/null || true
# 2) Clone clean and run setup
cd ~
rm -rf jpi-test
git clone git@github.com:sneaks/jpi.git jpi-test
cd jpi-test
bash ./setup.sh
# 3) Reload shell and confirm resolution
exec zsh -l
command -v jpi
type jpi
# 4) Run setup and smoke test
jpi setup
jpi helpExpected:
command -v jpipoints to$HOME/bin/jpitype jpireports a file, not an aliasjpi setupcompletes without requiringrg
All handled by jpi setup, but for reference:
- macOS with Homebrew
- Colima (Docker runtime)
- Docker CLI
- Docker Compose