The problem
Repositories often come with a sentence everyone eventually ignores: “If this file changed, remember to run that command.” The result is stale dependencies, confusing failures, or a setup command run after every pull whether it is needed or not.
pullhook turns that sentence into repository configuration. It looks at what changed during a pull and runs only the matching commands.
The approach
The tool is written in Rust and distributed for macOS, Linux, and Windows. Its useful behavior is deliberately narrow: detect changed paths, match configured rules, run commands, and make the result legible. Integration tests cover execution and terminal output because a small automation tool still needs predictable failure modes.
This repository uses pullhook itself. That keeps its configuration format grounded in the ordinary work it is meant to remove.
What it demonstrates
- Cross-platform CLI design and distribution.
- Careful boundaries around command execution.
- Integration testing for output and behavior.
- Dogfooding repository automation in active projects.