The bridge between human and AI tooling

Lightweight task runner that speaks shell, Python, Node, and more

# Runfile

# Shell commands work as expected
build() cargo build --release

# Use Python for complex logic
analyze() {
    #!/usr/bin/env python
    import sys, json
    with open(sys.argv[1]) as f:
        data = json.load(f)
        print(f"Found {len(data)} records")
}

# AI agents can call your tools via MCP
# @desc Deploy application to specified environment
# @arg 1:environment string Target environment (staging|prod)
deploy() {
    ./scripts/deploy.sh $1
}

# Define functions for different platforms
# @os windows
# @desc Deploy application to specified environment
# @arg 1:environment string Target environment (staging|prod)
deploy() {
    .\scripts\deploy.ps1 $1
}

Why run?

Zero Config

No TOML, YAML, or JSON. Just write functions in the languages you already know.

Polyglot Scripts

Mix shell, Python, Node, Ruby, and PowerShell in a single Runfile. Each function can use a different interpreter.

Built-in MCP Server

AI agents like Claude can discover and execute your tools automatically via the Model Context Protocol.

Platform Guards

Define OS-specific implementations. Write once, run anywhere with automatic platform detection.

Global & Local

Project-specific ./Runfile or personal ~/.runfile for commands available everywhere.

Instant Startup

Zero-dependency binary with instant startup time. No heavy runtime, no overhead.

Installation

macOS / Linux

brew tap nihilok/tap brew install runfile

Windows

scoop bucket add nihilok https://github.com/nihilok/scoop-bucket scoop install runfile

Cargo (All Platforms)

cargo install run