mq-task runs the code blocks in your Markdown by section title, with dependencies, parallel execution, conditions, retries and caching.
Get started Read the docs View on GitHubcurl -sSL https://raw.githubusercontent.com/harehare/mq-task/refs/heads/main/bin/install.sh | bash
A heading is a task, code blocks are its commands, and a meta block adds behaviour. The document stays readable on GitHub.
## build ```bash cargo build --release ``` ## ci ```meta depends = ["lint", "test", "build"] parallel = true ``` ```bash echo "all checks passed" ```
Everything a task runner needs, without leaving Markdown.
Automatic ordering, shared deps run once, cycles detected.
Fan-out and fan-in with -j limits, fail-fast or -k keep-going.
if on env, OS, files or commands on PATH.
Handle flaky steps; whole process trees are stopped on timeout.
Capture a task's stdout for its dependents.
Compose task files: checks:lint.
Skip up-to-date tasks with sources and outputs; re-run on change.
Text or Mermaid dependency graph, shell completions.
Search, details, argument prompts and live per-task progress.
Bash, Python, Node, Ruby, Go, jq, mq. Configure a runtime per fence language in mq-task.toml.