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

Uploaded Python 3

File details

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

File metadata

  • Download URL: userun-0.1.5.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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.5.tar.gz
Algorithm Hash digest
SHA256 0177281e56ede27b256ef60e416298ffe1625c3bf748109f3e1a312287b37c9e
MD5 f622a1bf79ce255716e880a3acf3c27b
BLAKE2b-256 be0f8a81608f261301094aa1792b507719def82d1719e4bd626358c46d6b14e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: userun-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 40c68e3ffb4a11be404ce11b0aaf1f6ee58a4ccb9b69cd20ab82b098eb836a5f
MD5 1663d2867852f379be1f1254419d8089
BLAKE2b-256 8a81281899ea2de5dfe2a05408a8dc55b3437eac8ac7d04f20fff2ce67ebc096

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