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