Zippy is a lightweight Linux CLI that watches a file or directory and reruns your command the moment you save. It is designed for C++ development, but works well anywhere you want quick feedback without manually restarting commands.
- Watches a file or directory for changes.
- Reruns your command immediately after a save.
- Supports simple configuration through
Zippy.json. - Can keep logs for later inspection.
make build
./build/zippy ./path/to/file-or-dirInstall it globally:
sudo make installOr install for your user only:
make install PREFIX=$HOME/.localAfter install:
zippy ./pathZippy loads Zippy.json from the current working directory:
{
"delay": 1000000,
"ignore": [],
"save_log": false,
"log_path": "zippy.log",
"cmd": "make && ./build/out"
}delayis the debounce interval in microseconds. Default:1000000.ignoreis parsed for compatibility and future use, but is not currently applied.cmdis the command to run when a change is detected. Placeholders:{file}and{dir}.save_logappends Zippy logs and child output tolog_pathwhen enabled.log_pathsets the log file name used whensave_log=true. Default:zippy.log.
Generate a starter config with:
zippy --generate--helpshows help.--versionprints the version.--configprints the active config summary.--logprints the configured log file whensave_log=true.--cleartruncates the configured log file whensave_log=true.--creditsshows credits.--generatewritesZippy.json.
2026-03-11 12:45:28.038 [INFO] zippy Starting Zippy v1.3.0
2026-03-11 12:45:28.039 [INFO] zippy Watching file: /home/user/project/src/main.cpp
2026-03-11 12:45:29.201 [INFO] zippy Running: make && ./build/out
2026-03-11 12:45:33.812 [WARN] zippy File changed; re-running command...
Your program output here...
Requirements:
- CMake 3.16+
- A C++20 compiler such as GCC or Clang
- Linux or a Linux-compatible environment
Common commands:
make buildconfigures and builds the project.make run ARGS="./path"runs the local build.make install PREFIX=/pathinstallszippyintoPREFIX/bin.make cleanremoves the CMake build directory.
After install, make sure PREFIX/bin is on your PATH.
