Logo Watchexec

$> watchexec make $> watchexec "date >> ../changes.log" $> watchexec --restart --exts js,mjs -- node server.js

Run a command when files in the current directory change. Kick off build processes, restart development servers, detect activity… stop pressing Enter ⏎ over and over again and keep on doing!

Logo Cargo Watch

$> cargo watch $> cargo watch -- cargo test $> cargo watch -x clippy -x "test --exact ice_cream"

Build your Rust project. Two words to get going, more opportunities at your fingertips. Fit for Cargo, fit for life. Your code is in good hands. Oxidise it!

Logo Watchexec library

Create your own watching tool. From presenting different options, to customising the filtering, to responding differently than running commands, to answering other events. Power your craft!

Logo ClearScreen

clearscreen::clear().unwrap();

Clear the terminal. On all platforms, across all terminals. Go beyond \x1b[H\x1b[2J\x1b[3J and start doing the right thing in the right place. Reset even the most dire of states. Erase the past!

Logo Command Group

  1. use std::process::Command;
  2. use command_group::CommandGroup;
  3. let mut child = Command::new("watch").arg("ls").group_spawn()?;
  4. let status = child.wait()?;
  5. dbg!(status);

Run commands in process groups. Stop creating zombies. Avoid unwanted detachment. Regain control!