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.11.tar.gz (7.9 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.11-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file userun-0.1.11.tar.gz.

File metadata

  • Download URL: userun-0.1.11.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for userun-0.1.11.tar.gz
Algorithm Hash digest
SHA256 93e753843a332f232470ce8ecff22b294c3427571a77a6806db6d4f8b23e338f
MD5 201d9c033875835400f731e4d84abb3e
BLAKE2b-256 cb5b36a0982e09069fa4e104c6474996d1b6a51501e4425fed2b544c4a7e5c5a

See more details on using hashes here.

File details

Details for the file userun-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: userun-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for userun-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 9c5a655be6a6931173078b6a5ce91464739051835132cd0ac6ca3c4bf606b44c
MD5 08b8bdecb47666c28d0f0c5c85c04eed
BLAKE2b-256 c52cc347db2582c88168cffe41a19448b08183c13d22902cd3400b942046932d

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