Run multiple shell commands concurrently with readable, prefixed output.
Project description
Table of Contents
About
useRun (userun) is a Python CLI that runs multiple shell commands concurrently and keeps the output readable with prefixed lines (names and optional colors). It gives you:
- Parallel execution - Run multiple commands at the same time
- Named prefixes - Label output with names and optional colors
- Custom prefixes - Format prefixes with index, name, or label
- Failure handling - Optionally stop remaining commands on first failure
- Shell control - Choose the shell and ANSI color passthrough
Quick Start
Install userun with uv (recommended)
uv add userun
Install with pip (alternative)
pip install userun
Run commands concurrently
userun concurrent -n server,lint,test "python3 -m http.server 8000" "uv run poe lint" "uv run poe test"
Each command runs in parallel and output is prefixed with its name.
Usage
Run Commands Concurrently
userun concurrent "echo one" "echo two"
Named and Colored Prefixes
userun concurrent -n api,web -c blue,green "uv run api" "uv run web"
Custom Prefix Format
userun concurrent -p "[{label}]" "make build" "make test"
Stop Others on Failure
userun concurrent --kill-others "make build" "make test"
Shell Selection
userun concurrent --shell "bash -lc" "echo $SHELL" "echo hi"
Disable Prefixes or Colors
userun concurrent --no-prefix --no-color "make build" "make lint"
userun concurrent --no-subprocess-color "uv run pytest" "uv run ruff check ."
Available Commands
concurrent (conc) Run multiple commands concurrently
help Show help
Development
Common tasks:
uv run poe clean-full
uv run poe test
uv run poe lint
uv run poe format
Contributing
Quick workflow:
- Fork and branch:
git checkout -b feature/name - Make changes
- Run checks:
uv run poe clean-full - Commit and push
- Open a Pull Request
License
License information has not been added yet.
Built by thememium
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file userun-0.1.2.tar.gz.
File metadata
- Download URL: userun-0.1.2.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26466a557c6acc506b7a27e0ff952c6758083c8cbb0470489c3671ae6e5228a8
|
|
| MD5 |
da0ba176da34c2fe88066010341c9689
|
|
| BLAKE2b-256 |
23bfafde96925423833d349ae90b4e3945d399c2ba3fb1251c40e8ee84421574
|
File details
Details for the file userun-0.1.2-py3-none-any.whl.
File metadata
- Download URL: userun-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab56e1a446bad1a9cc2c5519c5568daa69155c74b6be2977e3edf09a79783e36
|
|
| MD5 |
1da2fa6bd7fd50ca6795cd4e00f0c202
|
|
| BLAKE2b-256 |
1aa269fd2e498695b4cd40b3cf2a87f6a89d766eea15167f16d94236466a7e58
|