@firstpick/pi-extension-cd
A Pi /cd command with ranked directory suggestions, persistent history, and aliases.
Package details
Install @firstpick/pi-extension-cd from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@firstpick/pi-extension-cd- Package
@firstpick/pi-extension-cd- Version
0.1.0- Published
- Jun 20, 2026
- Downloads
- not available
- Author
- firstpick
- License
- MIT
- Types
- extension
- Size
- 26.9 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@firstpick/pi-extension-cd
Pi extension that adds /cd for changing the active Pi session working directory with ranked suggestions, persistent history, and aliases.
Features
/cdopens a picker with sane suggestions: aliases, previous directories,..,~, and child directories./cd <dir>changes to a directory and preserves the conversation by forking the session into the target cwd.- Successful directory changes are saved to
~/.pi/agent/state/cd-history.jsonand ranked higher next time. /cd --add <name> [dir]creates aliases so/cd <name>jumps fast.- Argument completions suggest aliases/history/directories while typing
/cd ....
Commands
/cd [dir|alias]
/cd
/cd --add <name> [dir]
/cd --remove <name>
/cd --list
/cd --status
/cd --clear-history
/cd-refresh
Examples:
/cd ..
/cd ~/code/my-app
/cd --add npm /home/firstpick/npm-packages
/cd npm
/cd --remove npm
Install / test locally
From this repository:
pi -e ./pi-extension-cd
Or install as a local Pi package:
pi install ./pi-extension-cd
Configuration
PI_CD_HISTORY_STORE_PATH=/path/to/store.jsonoverrides the history/alias store.PI_CODING_AGENT_DIR=/path/to/agent-dirchanges the default base directory used for the store.
Notes
Pi binds cwd to sessions. This extension implements /cd by creating a target-cwd session and switching to it. When a persisted current session exists, the target session is forked from it so conversation context is preserved.