It worked yesterday.
Now you'll know why it doesn't.

snapcd automatically snapshots your local dev environment every time you cd into a project. Diff any two snapshots to see exactly what changed — Node version, globals, env vars, open ports.

npm install -g snapcd
01 — what it tracks
Node.js + npm version
runtime baseline
Global npm packages
name + version of each
Environment variables
KEY, TOKEN, SECRET auto-redacted
PATH entries
full ordered list
Open ports
currently listening
System info
CWD, hostname, platform, timestamp
02 — commands
snapback save [label] Save a snapshot. Label is optional.
snapback diff Diff the two most recent snapshots.
snapback diff <label1> <label2> Diff any two named snapshots.
snapback list List all snapshots for the current project.
snapback show <label> Show full details of a snapshot.
snapback hook Output shell hook for auto-snapshotting on cd.
snapback clean [-n <number>] Delete old snapshots, keep last N (default: 10).
03 — diff output

Switch between example scenarios to see what the diff looks like.

snapback diff
04 — auto-snapshot on cd
1

Add the shell hook to your .zshrc or .bashrc. Works like nvm or direnv — silent, under 100ms.

eval "$(snapback hook)"
2

Reload your shell.

source ~/.zshrc
3

From now on, every cd into a directory silently saves a snapshot in the background. No prompt changes, no delays.

05 — storage
All snapshots stored locally at ~/.snapback/<project-name>/snapshots.json.
No cloud. No database. No account required. Your data stays on your machine.