Documentation

Universal Task Resolution

Learn how to set up, execute, and extend devrunner in your development workflows.

Introduction

devrunner (aliased as dr) is an ultra-fast, zero-configuration task runner written in Rust. It serves as an intelligent proxy that detects lockfiles and manifest structures inside directories and invokes the respective system command line automatically.

Instead of manually switching context between npm run dev, poetry run pytest, or cargo build, devrunner exposes a unified API:

dr dev
dr test
dr build
Architectural Note: Cold starts execute under 5ms, causing absolute zero bottleneck to your native task tools.

Installation

Install devrunner onto your local system as a single compiled binary without node_modules or interpreter dependencies.

macOS / Linux Windows Rust Cargo npx skill
curl -fsSL install.cat/princepal9120/devrunner | bash

Usage

Execute the proxy CLI using the short alias dr or devrunner:

dr <command> [args...]

Common Drivers

Standard task routing maps identically to detected targets:

dr test                 # Routes to test frameworks
dr build                # Initiates production packaging
dr lint                 # Executes code static analysis
dr dev                  # Launches dev server configurations

Custom parameters

Inject custom flags down directly to the underlying manager utilizing the -- separator:

# Evaluates internally to: npm run test -- --coverage --watch
dr test -- --coverage --watch

Supported Tools

Detection priority resolves starting with monorepo locks, specialized tool configs, down to standard manifest locks.

Detection Engine: Locking locks (like pnpm-lock.yaml) take absolute precedence over config descriptors (like package.json).
Ecosystem Supported Engines (Priority Order)
Monorepos nx → turbo → lerna
Node.js bun → pnpm → yarn → npm
Python uv → poetry → pipenv → pip
Rust cargo
Go task → go
Generic just → make

Configuration

Global behavior parameters are read from ~/.config/devrunner/config.toml, and local workspace overrides can be declared within a local devrunner.toml file.

# ~/.config/devrunner/config.toml
max_levels = 5
auto_update = true
ignore_tools = ["npm"]

[update]
enabled = true
check_interval_hours = 2

AI Integration

devrunner is highly optimized for AI Coding Assistants like Claude Code, Codex, and OpenCode. When executing commands within LLM sandboxes, replacing system-wide packages with dr saves context tokens by bypassing directory scans.

Configure Claude Code natively by putting the following in your system CLAUDE.md:

## devrunner
Use `dr <command>` as the universal task operator. 
Do NOT invoke toolsets like npm or poetry directly.