A universal CLI tool to run scripts in any language — JavaScript, TypeScript, Python, Java, C, C++, Rust, Go, Ruby, PHP, Dart, Lua, and more. One command, any script, with watch mode, benchmarking, and automatic runtime detection.
Features
19+ languages supported out of the box, including compiled languages (C, C++, Rust, C#)
Watch mode — automatically re-runs on file changes with .gitignore-aware filtering
Reload keys — press Ctrl+R or F5 to re-run without saving
Benchmarking — measure execution time with --bench
Configurable runtimes — swap between node/bun/deno, python/uv, and more via ~/.uni-run.json
Environment variables — inject env vars with --env KEY=VALUE
Exec mode — run any arbitrary binary with run exec
Cross-platform — works on Windows, macOS, and Linux
Installation
npm install -g uni-run
CLI Usage
run <script> [options] -- [args for script]
uni-run <script> [options] -- [args for script]
rux / uni-rux are aliases that run once and exit (no watch mode, keeps console output):
rux <script> [options] -- [args for script]
uni-rux <script> [options] -- [args for script]
Examples
run ./main.ts
run ./main.py
run ./Main.java
run ./hello.c
run ./main.js -- --port 3000
Subcommands
run exec <binary> [args] # Execute an arbitrary binary
run list # List all supported script types
run clean # Clean the temp/cache directory
Options
Watch Mode
Flag
Alias
Description
--do-not-watch
-dw
Disable watch mode
--ext <exts...>
-e
Watch only specific extensions
--focus <paths...>
-f
Watch only specific paths (chokidar syntax)
--ignore <patterns...>
-ig
Exclude paths (.gitignore syntax)
--delay <ms>
-d
Debounce delay in ms (default: 100)
Reload / Console
Flag
Alias
Description
--disable-reload-key
-dk
Disable Ctrl+R / F5 reload
--disable-raw-stdin
-drs
Disable raw stdin mode
--keep
-k
Don't clear console on reload
--silent
-s
Suppress script output
Execution
Flag
Description
--exit
Run once and exit (default for rux)
--shell
Run in shell mode
--cwd <path>
Set working directory
--env <KEY=VALUE...>
Set environment variables
--node-dev
Set NODE_ENV=development
Benchmarking / Info
Flag
Alias
Description
--bench
-b
Show execution time
--bench-prefix <text>
-bp
Custom prefix for benchmark output
--info
Show execution information
--time
Show start time
Configuration
Create ~/.uni-run.json to override default runtimes: