ClusterShell
ClusterShell library and tools
What it is and what it does
ClusterShell is a production-stable Python framework for event-driven parallel command execution across server farms and HPC clusters. It abstracts away the complexity of coordinating distributed work by handling node grouping, optimized execution algorithms, result gathering, and output deduplication. The package includes three command-line tools: clush for issuing commands to cluster nodes with formatted output, clubak for aggregating and sorting distributed outputs, and nodeset for computing advanced node group operations (expansion, intersection, exclusion, etc.).
The framework is designed for system administrators managing large Linux clusters. It leverages existing remote shell infrastructure like SSH rather than requiring new deployment mechanisms. With a single runtime dependency (PyYAML) and low install friction, it integrates into existing cluster management workflows. The project is actively maintained, has been in use since 2010, and carries no known security vulnerabilities.
Use it for:
- Run a command across a range of cluster nodes and collect results in a compact, deduplicated format.
- Compute node group operations like expanding ranges (node[1-10]) or finding intersections of node sets.
- Gather and sort outputs from distributed shell commands using clubak, replacing or improving on dshbak.
- Automate cluster administration tasks that require parallel execution across many nodes with SSH.
- Build cluster management scripts that need to parse, filter, and manipulate node group specifications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ClusterShell is a Python framework for running commands in parallel across many nodes in a cluster, with tools to manage node groups, aggregate results, and handle distributed execution.
Yes. ClusterShell is production-stable, actively maintained, carries no known vulnerabilities, and has minimal dependencies. Install it if you manage or script operations on Linux clusters or HPC systems and need parallel command execution with node group abstractions. The copyleft license is standard for system tools; verify compatibility with your deployment model if you plan to redistribute.
Install
clustershell on PyPI
pip
pip install clustershelluv
uv add clustershellpoetry
poetry add clustershellInstalling ClusterShell
Before you install
Low install friction with a single runtime dependency (PyYAML). Actively maintained with a recent release; last commit was 2026-08-04 and the project has 473 stars.
License in practice
Licensed under LGPLv2+, a copyleft license. You may use and modify the package freely, but any derivative work must also be distributed under the same or compatible license terms.
Quickstart
pip install clustershell
from clustershell.task import Task
from clustershell.group import NodeSet
task = Task()
task.run_command('uname -r', nodes='node[1-10]')
Requires SSH or other remote shell facilities already installed on target systems; designed for Linux/POSIX environments.
Verify before relying
- Whether the package supports modern Python versions beyond what classifiers indicate (2.7 and 3.x are listed but no specific 3.x version floor is stated).
- Performance characteristics and scalability limits for very large clusters.
Package facts
| License | LGPLv2+ (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — PyYAML |
| Maintenance | actively maintained — 29 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 260,808/month — #8,391 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: clustershell-1.10.1-py3-none-any.whl
Keywords: clustershell, clush, clubak, nodeset
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
aws-parallelclusterAWS ParallelCluster is a cluster management…
permissive · top 15,000 on PyPI
clusterscopeClusterscope extracts and queries information…
permissive · top 15,000 on PyPI
ipyparallelManages clusters of IPython processes for…
permissive · top 15,000 on PyPI
distributedDistributed provides a scheduler and runtime…
permissive · top 5,000 on PyPI
openmpiProvides a Python interface to Open MPI, a…
unclear · top 15,000 on PyPI
sfctlA command-line interface for managing Azure…
permissive · top 15,000 on PyPI
slurm-usageCollects and preserves SLURM job efficiency…
permissive · top 15,000 on PyPI
ppftppft executes Python functions in parallel…
permissive · top 5,000 on PyPI
oneccl-develProvides Intel's oneAPI Collective…
unclear · top 15,000 on PyPI
dask-jobqueueDeploys Dask distributed computing clusters on…
permissive · top 15,000 on PyPI