Notes for setting up Pi on a new machine together with these dotfiles.
Pi is a Node.js CLI. Install Node first using your normal machine setup (mise, nvm, Homebrew, etc.), then install Pi:
npm install -g --ignore-scripts @earendil-works/pi-coding-agentAlternative installer:
curl -fsSL https://pi.dev/install.sh | shVerify:
pi --versionMy reusable Pi extensions live in a separate Pi package repo:
git@github.com:vforge/pi-config.git
Install it globally for the user:
pi install git:git@github.com:vforge/pi-config.gitVerify:
pi listUpdate later with:
pi update --extensionsDo not commit Pi secrets into dotfiles.
Machine-local files live under:
~/.pi/agent/
Useful files:
~/.pi/agent/settings.json # local Pi preferences
~/.pi/agent/models.json # local/custom providers
~/.pi/agent/.env # local env vars for extensions/models
~/.pi/agent/auth.json # Pi auth; do not copy/commit
~/.pi/agent/sessions/ # session history; do not copy/commit
~/.pi/agent/trust.json # project trust; machine-local
The vforge/pi-config repo includes templates:
settings.example.json
models.example.json
.env.example
Use them as references when creating local files in ~/.pi/agent/.
Example ~/.pi/agent/.env:
SEARXNG_URL=http://localhost:8080
LLAMACPP_BASE_URL=http://localhost:1234/v1
LLAMACPP_API_KEY=dummyEither use API keys/env vars or Pi login:
pi
/loginFor GitHub Copilot/ChatGPT/Claude subscription auth, use /login inside Pi.
This dotfiles repo provides:
~/.dotfiles/bin/pissh
It is a thin wrapper around pi --ssh:
pissh user@host
pissh user@host:/remote/path
pissh user@host:/remote/path -p "/skills"The actual --ssh behavior is provided by the vforge/pi-config package. When enabled, Pi runs locally but built-in tools operate on the remote host:
read, write, edit, bash, grep, find, ls
Remote requirements:
- SSH key auth; no interactive password prompts
bashrgfor remotegrep
# dotfiles
mkdir -p ~/.dotfiles
# or clone normally if not already present
git clone git@github.com:vforge/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && bash install.sh work # macOS workstation
# or: bash install.sh simple # Linux/server
# Pi
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi install git:git@github.com:vforge/pi-config.git
# local config
mkdir -p ~/.pi/agent
$EDITOR ~/.pi/agent/.env
$EDITOR ~/.pi/agent/settings.json
$EDITOR ~/.pi/agent/models.json
# auth
pi
# then run /login if neededDo not symlink or commit these:
~/.pi/agent/auth.json
~/.pi/agent/sessions/
~/.pi/agent/trust.json
~/.pi/agent/.env
Keep them per-machine.