Skip to main content

Run multiple shell commands concurrently with readable, prefixed output.

Project description

Table of Contents
  1. About
  2. Quick Start
  3. Usage
  4. Development
  5. Contributing
  6. License

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

(back to top)

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.

(back to top)

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

(back to top)

Development

Common tasks:

uv run poe clean-full
uv run poe test
uv run poe lint
uv run poe format

(back to top)

Contributing

Quick workflow:

  1. Fork and branch: git checkout -b feature/name
  2. Make changes
  3. Run checks: uv run poe clean-full
  4. Commit and push
  5. Open a Pull Request

(back to top)

License

License information has not been added yet.

(back to top)


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

userun-0.1.2.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

userun-0.1.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for userun-0.1.2.tar.gz
Algorithm Hash digest
SHA256 26466a557c6acc506b7a27e0ff952c6758083c8cbb0470489c3671ae6e5228a8
MD5 da0ba176da34c2fe88066010341c9689
BLAKE2b-256 23bfafde96925423833d349ae90b4e3945d399c2ba3fb1251c40e8ee84421574

See more details on using hashes here.

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

Hashes for userun-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ab56e1a446bad1a9cc2c5519c5568daa69155c74b6be2977e3edf09a79783e36
MD5 1da2fa6bd7fd50ca6795cd4e00f0c202
BLAKE2b-256 1aa269fd2e498695b4cd40b3cf2a87f6a89d766eea15167f16d94236466a7e58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page