bashful is a command-line tool written in Go that allows you to define your build, automation or scripting workflow declaratively in YAML and have tasks executed in either series or parallel, with pretty progress output, logging, error handling, and orchestration instead of manually writing large bash scripts. The idea is that your bash automation should be “quiet and shy-like” rather than verbose and messy, so bashful provides a structured way to describe tasks (commands, downloads, nested operations) in a YAML file, and then run them with a nice terminal UI showing progress bars, logs, ETAs, etc. It supports features such as downloading scripts, bundling sets of commands and resources, tagging tasks, running subsets via tags, logging both stdout and stderr, and error-handling policies (e.g., which commands should halt execution on failure). The tool is cross-platform (supports Linux, macOS, Windows), installable via Go or via package managers, and licensed under MIT.
Features
- Define tasks via YAML specifying commands, downloads, tags, dependencies
- Run tasks serially or in parallel with nested parallel/serial support
- Live terminal UI showing vertical progress bar, status of each task, ETA, stdout/stderr logs
- Download external scripts and executables as part of tasks, bundle resources into one executable
- Tag-based selection of tasks (run subsets by tags) and configurable failure policy per task
- Cross-platform Go binary with MIT license enabling both personal and CI usage