Live read-only TUI showing what changed in your git worktree
Requires Rust 1.85+ and ~/.cargo/bin on your PATH.
cargo install changed-cliVerify:
changed --helpBuild from source — for development or unreleased changes
git clone https://github.com/cesarferreira/changed.git
cd changed
cargo install --path . --locked
# or
make install-releaseDebug install (faster compile, larger binary):
make installRun without installing:
make build-release
./target/release/changedchanged --helpchanged watches the whole worktree, but only re-queries git when an event
can actually change git status output:
- Events under git-ignored paths (build output,
node_modules, …) are filtered out, using the repo's.gitignorefiles and.git/info/exclude. - Git-internal churn is limited to
HEAD,index,packed-refs,refs/**and*_HEAD— object store and gc activity never triggers a refresh. - Refreshes are debounced (120 ms) and rate-limited (750 ms) during sustained bursts.
For very large repos and monorepos, git-side caches make each refresh dramatically cheaper:
git config core.untrackedCache true
git config core.fsmonitor trueCommon tasks via the Makefile:
make # check + build + test
make build # debug build
make build-release
make install # install debug binary
make install-release
make run ARGS="--hello"
make check # cargo check + clippy
make fmt # format
make lint # fmt check + clippy
make test
make clean
make demo # install + show --helpReleasing (requires cargo-release):
make release # default minor bump
make release LEVEL=patch # patch bump
make release LEVEL=major # major bumpThe pre-release hook finalizes CHANGELOG.md from commits since the latest v* tag, refreshes compare links, and leaves a fresh Unreleased header. If there are no commits since the last tag, the release stops before publishing.
MIT