omni
Parallel command execution
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@latestThe 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 4Output
{"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
| Metric | Value |
|---|---|
| Speedup | Near-linear with worker count |
| Output | Buffered - no interleaving |