...(ls -l | grep foo > out.txt) in a more declarative style, rather than manually wiring up file descriptors, handles, and child processes. The library also supports features like variable substitution, scoped environment settings, and defining custom commands (functions) that behave like built-ins. It hides much of the boilerplate of std::process::Command when you're doing simple task automations, but still allows full flexibility when needed. Because it avoids launching a shell, it reduces some classes of security and quoting errors, while improving readability of scripting logic inside a Rust binary.