A CLI task runner that uses a markdown file as both human-readable documentation and command definitions.
Mask is a CLI task runner that allows developers to define and run project automation commands through a simple markdown file. It replaces complex Makefiles or shell scripts with a readable, documentation-focused format that supports multiple scripting languages and structured command-line arguments.
Developers and teams looking for a lightweight, readable alternative to Make or Just for managing project-specific tasks, build scripts, and development workflows.
Mask combines executable commands with human-readable documentation in a single markdown file, reducing the learning curve for new contributors and supporting a wide range of scripting languages for flexible automation.
🎭 A CLI task runner defined by a simple markdown file
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Commands are defined in markdown, making the maskfile.md both executable and human-readable documentation, as emphasized in the README's focus on combining command running with living documentation.
Supports scripts in shell, Node.js, Python, Ruby, PHP, Lua, Swift, PowerShell, and Batch, allowing task-specific language choice, demonstrated with code examples for each runtime in the Features section.
Provides positional arguments, named flags with validation (like types and choices), and nested subcommands using markdown headings, enabling complex CLI structures without custom parsing, as detailed in the README.
Generates help output from command descriptions and options, with built-in -h/--help flags, reducing manual documentation effort, shown in the examples for commands like 'services start'.
For scripts in languages like Python or Node.js, mask requires those runtimes to be installed separately, adding setup overhead and potential version management issues, which isn't ideal for minimal environments.
Command definitions rely on markdown syntax (headings, code blocks), making them susceptible to parsing errors if the file is malformed, unlike dedicated configuration formats that offer more robustness and error handling.
The mask-parser crate is available but undocumented and not stable, limiting integration into custom tools or extensions, as admitted in the FAQ section, which hinders advanced use cases.
Supporting multiple platforms requires maintaining separate code blocks (e.g., bash and PowerShell), which can complicate script maintenance and increase file size, as noted in the Windows support example.
mask is an open-source alternative to the following products:
Make (or GNU Make) is a build automation tool that automatically builds executable programs and libraries from source code by reading Makefiles.
Maid is a task runner and automation tool that uses Markdown files to define and execute tasks, often used for project automation and scripting.
Just is a command-line tool for saving and running project-specific commands, providing a simple alternative to complex build systems or package.json scripts.