@firstpick/pi-extension-cd

A Pi /cd command with ranked directory suggestions, persistent history, and aliases.

Packages

Package details

extension

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

  • /cd opens 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.json and 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.json overrides the history/alias store.
  • PI_CODING_AGENT_DIR=/path/to/agent-dir changes 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.