omni

Parallel command execution

Go Execution GitHub

Run the same command across multiple arguments with flexible substitution patterns, configurable workers, and buffered output.

Features

  • Run commands across multiple targets in parallel
  • Flexible substitution patterns
  • Configurable worker count
  • Buffered output to prevent interleaving
  • MCP server and CLI modes

Install

go install github.com/hegner123/omni@latest

The Problem: Sequential loops are slow

# Running the same command on 10 directories sequentially:
for dir in pkg/*; do go test ./$dir/...; done

# Each one waits for the previous to finish.
# 10 packages x 5 seconds each = 50 seconds total.

Solution

$ omni --cmd "go test ./{}" --args "pkg/auth,pkg/handlers,pkg/models,pkg/services" --workers 4

Output

{"total":4,"passed":4,"failed":0,"duration_ms":8200,"results":[{"arg":"pkg/auth","exit_code":0,"duration_ms":4100},{"arg":"pkg/handlers","exit_code":0,"duration_ms":5200},{"arg":"pkg/models","exit_code":0,"duration_ms":3800},{"arg":"pkg/services","exit_code":0,"duration_ms":8200}]}

Comparison

MetricValue
SpeedupNear-linear with worker count
OutputBuffered - no interleaving