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.6.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.6-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: userun-0.1.6.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.6.tar.gz
Algorithm Hash digest
SHA256 43d2a8a9af3c168188fca4ede9db14bab7b58bf596a51e947bbb7bda4240f44e
MD5 eb3d2dfc1d3abc264bc924d2963f5968
BLAKE2b-256 cd07f3abff415fec451a857903e56ff895cffa9b1631edee117c0ca6ba5a3c93

See more details on using hashes here.

File details

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

File metadata

  • Download URL: userun-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 eb43338e2a67297844dedc59631c86ea46857f991a5e19af502b0b396e1254bf
MD5 e8c7d2d0bf14c3ef17ee187380d38e8d
BLAKE2b-256 c30764b1949473265885aefd060367106b17c4d33492b4fd1c8d67141b41cf79

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