Selection of utilities

upmd – run tasks and workflows from Markdown

upmd turns Markdown documents into executable task definitions, allowing instructions, commands and workflow structure to live together in the same readable file. Fenced code blocks can be given names and dependencies, turning ordinary documentation into a practical interface for development, administration or project automation.

Tasks can be run interactively or non-interactively, while dependency relationships determine their execution order. Independent tasks within the same stage can execute concurrently, making the approach useful for workflows that include building, linting, testing and verification steps.

Because the source remains normal Markdown, a workflow can explain what each operation does alongside the commands themselves. This helps keep executable project knowledge close to the documentation rather than separating instructions into one file and automation into another.

This is free and open source software.

Key Features

  • Treats named fenced code blocks as executable tasks.
  • Defines task dependencies directly through Markdown block attributes.
  • Supports staged workflows with parallel execution of independent tasks.
  • Provides an interactive terminal interface for browsing and running tasks.
  • Offers lightweight command-line and non-interactive CI operation.
  • Runs each task inside a real pseudo-terminal with support for prompts, colors, editors and pagers.
  • Shows command output alongside the corresponding Markdown source.
  • Passes exported environment variables and working-directory changes between dependent shell tasks.
  • Supports Bash, POSIX shell, Zsh, Fish, PowerShell and Cmd runners.
  • Includes runners for Python, JavaScript, TypeScript, Ruby, PHP, C, Go, Rust and Zig.
  • Allows the executable used for an individual task to be overridden.
  • Provides searchable document text and task navigation.
  • Includes a full terminal-output view with scrollback and interactive input.
  • Reads Markdown supplied through standard input.
  • Can recursively browse directories for documents to open.
  • Provides configurable themes, key bindings, runner binaries and interface settings.

Website: github.com/rezigned/upmd
Support:
Developer: Marut Khumtong
License: MIT License

upmd in action

upmd is written in Rust. Learn Rust with our recommended free books and free tutorials.


Best Free and Open Source Software Explore our carefully curated directory of recommended free and open source software, covering every major software category.

The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more.

Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted