Repository navigation
v2026.09.0
The command is now pb, not proj. brew install proj installs PROJ, the
cartographic projections library, which puts a proj binary on PATH and
arrives as a dependency of gdal, postgis and qgis. Shipping a tool that shadows
it, or gets shadowed by it depending on PATH order, was a defect rather than a
preference. Nothing in Homebrew or on a stock macOS installs a pb command.
proj.pyis nowpb.py, the shell function ispb, and the environment
variable the function sets isPB_SHELL_WRAPPER- The data directory moved from
~/.projto~/.pb. It migrates itself on
first run, and only when the old directory exists and the new one does not, so
it can never merge two sets of data or overwrite anything. The notice goes to
stderr so that stdout stays parseable - Re-run
bash install.sh && source ~/.zshrcto replace the old shell function.
The oldprojname is deliberately not kept as an alias: it would re-create
the collision for exactly the people the rename protects - Add
pb list --jsonfor scripts and agents. It emits the same object shape as
pb info --json, which means the stored fields plusstatus, computed from
last_worked_atrather than stored. Filters, sorting and--limitapply, so
the JSON is exactly what the table would have shown; an empty result is[]
rather than prose - Ship a Claude Code skill at
skills/pb/SKILL.mdso an agent can resolve a
project the user names out loud into a path.install.shoffers to link it
into~/.claude/skills/and defaults to no, because a project CLI has no
business writing into an agent's config directory uninvited - Remove every em dash and en dash from the repository, including the ADR
templates that get scaffolded into other people's projects, and add a test
that fails if one comes back pb infonow prints-rather than an em dash for an empty field