task-runner
Run monorepo tasks with dependency ordering using monorepo-task-runner. Covers mtr run, mtr status, tasks.yaml format, and the web dashboard.
Best use case
task-runner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Run monorepo tasks with dependency ordering using monorepo-task-runner. Covers mtr run, mtr status, tasks.yaml format, and the web dashboard.
Teams using task-runner should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/task-runner/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How task-runner Compares
| Feature / Agent | task-runner | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Run monorepo tasks with dependency ordering using monorepo-task-runner. Covers mtr run, mtr status, tasks.yaml format, and the web dashboard.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# task-runner skill
Use this skill when the user wants to:
- Run one or more tasks with dependency resolution
- View current task status
- Understand tasks.yaml configuration
- Use the web dashboard to monitor a run
## Prerequisites
```
# Server must be running (starts automatically with mtr run)
node dist/mtr.js serve
# or just run tasks directly
node dist/mtr.js run --all
```
## tasks.yaml format
```yaml
tasks:
<name>:
command: <shell command> # required
depends_on: [task1, task2] # optional - other task names
inputs: # optional - glob patterns for cache key
- "packages/*/src/**/*.ts"
outputs: # optional - files to cache/restore
- "packages/*/dist/**"
env: # optional - extra env vars
NODE_ENV: production
cwd: packages/server # optional - working directory
timeout: 300000 # optional - ms (default 300s)
```
## Running tasks
```bash
# Run all tasks
mtr run --all
# Run specific tasks (includes their dependencies automatically)
mtr run build
# Run multiple tasks
mtr run lint typecheck
# Skip cache for a full re-run
mtr run --all --force
# Custom config file
mtr run --config ./ci/tasks.yaml --all
```
## Task status
```bash
mtr status
```
Output columns: TASK, STATUS, LAST RUN, DURATION, CACHE
Status values:
- success - completed successfully
- failed - exited non-zero
- cached - skipped, cache hit used
- skipped - not run because a dependency failed
- running - currently executing
- pending - waiting for dependencies
## Dependency resolution
Tasks are executed in topological order. Tasks at the same stage (no mutual dependency) run concurrently up to MTR_CONCURRENCY (default 4).
Example for tasks.yaml with `test -> build -> [lint, typecheck]`:
- Stage 1: lint and typecheck run concurrently
- Stage 2: build runs after both pass
- Stage 3: test runs after build passes
If any task fails: no new tasks start, running tasks finish, dependents marked skipped.
## Web dashboard
Open http://127.0.0.1:3300 to see:
- Pipeline view: stage grid with task cards, live status updates via SSE
- Run history: all past runs with status and duration
- Task detail: per-task run history, cache hit rate
- Cache view: list entries, delete individual or all
The dashboard auto-refreshes during active runs. No manual reload needed.
## Environment variables
```
MTR_PORT=3300 Web UI port
MTR_HOST=127.0.0.1 Bind address
MTR_CACHE_DIR=./.mtr-cache Cache location
MTR_CONCURRENCY=4 Parallel task limit
MTR_WEB_ENABLED=1 0 to disable web UI
```
## Exit codes
- 0: all tasks passed
- 1: one or more tasks failed
- 2: config error (bad tasks.yaml, circular dependency)Related Skills
ssh-runner
Execute read-only commands on remote Linux servers via SSH using the ssh2 npm package.
load-test-runner
No description provided.
eval-runner
Run LLM evaluation test suites and detect regressions. Use when you need to: test LLM responses against expected outputs, score responses with exact match, regex, or AI judge, compare model performance across runs, detect quality regressions in CI, or benchmark multiple models. Triggers include "LLM eval", "test my prompts", "evaluate model", "run evals", "regression test LLM", "score responses", "compare models", or any task requiring systematic LLM quality measurement.
Skill: farm-task-manager
## Purpose
Skill: Uptime Monitoring
## Overview
Skill: Status Page
## Overview
Skill: unit-conversion
## Overview
Skill: recipe-scaler
## Overview
reading-list
Operate the reading-list API to save, manage, tag, search, and export articles.
email-digest
Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.
websocket-realtime
Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".
poll-builder
Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.