CLI Task Runner
A command-line task runner for automating repetitive development workflows. Inspired by Make and Just, built in Node.js to understand task orchestration.
A CLI task runner built in Node.js for automating development workflows. Supports parallel task execution, dependency resolution, file watching, and custom plugin hooks. Built to understand the internals of tools like Make, Just, and NPM scripts.
Development teams often rely on shell scripts, Makefiles, and NPM scripts for task automation. Each has limitations: shell scripts are not cross-platform, Makefiles have a steep learning curve for non-C developers, and NPM scripts lack dependency resolution. I wanted to understand these limitations by building an alternative.
The most mature CLI framework in Node.js. Provides argument parsing, help generation, and command nesting out of the box.
YAML-based task definitions with dependency declarations.
DAG resolution, parallel execution, and error handling.
Successfully runs 50+ parallel tasks with correct dependency ordering.
File watcher triggers selective re-runs based on changed files.
Building a production-ready task runner is a significant undertaking. Just and Task are mature alternatives that I would recommend for real projects.
DAG-based dependency resolution is a solvable but non-trivial computer science problem. Understanding topological sort and cycle detection was the most valuable outcome.