Fabric
What it is
Fabric is a free, open-source Python library for running shell commands over SSH and returning results as Python objects. It can target one host or many, with serial or parallel execution, and can run Python functions or code blocks against those connections. Fabric builds on Invoke for subprocess and command-line features and Paramiko for SSH support. Through the fab command, Python tasks can accept parameters and use pre- or post-tasks; a comma-separated host list supports serial execution. Installation uses pip install fabric and requires Python, Invoke, and Paramiko. Documented authentication methods include private keys, SSH agents, and passwords. Fabric runs on Linux, macOS, and Windows, uses a self-hosted agentless model, and can be installed alongside Fabric 1 through fabric2 for gradual upgrades.
For and against
For
- Runs commands across hosts serially or in parallel
- Executes Python functions on remote connections
- Provides the fab command-line task tool
- Supports keys, SSH agents, and passwords
- Open source and free
Against
- Each run or sudo call starts a separate shell
- No added GSSAPI beyond Paramiko support
- Requires Python, Invoke, and Paramiko
The verdict
Fabric provides Python-centered remote execution with SSH, multi-host operation, and command-line task support. Its separate-shell behavior and listed dependencies are important when designing task workflows.
Who it suits
Fabric suits Python users who need SSH-based command or code execution across individual or multiple hosts. It is useful for self-hosted, agentless operations on Linux, macOS, or Windows.
On the record
- CLI host option
- The `fab` command supports a comma-separated host list for serial task execution.docs.fabfile.org · read 4 Oct 2026
- CLI tasks
- Fabric integrates with Invoke so Python functions can be exposed as command-line tasks through the `fab` command.fabfile.org · read 8 Oct 2026
- Command-line tasks
- Fabric exposes Python tasks through the `fab` command-line tool, with support for task parameters and pre- or post-tasks.fabfile.org · read 4 Oct 2026
- Dependencies
- Fabric builds on Invoke for command execution and task features, and Paramiko for SSH.fabfile.org · read 8 Oct 2026
- Downloads
- Source archives are available through the project’s PyPI page, which also serves as the entry point for pip installation.fabfile.org · read 8 Oct 2026
- GSSAPI limit
- Fabric says it adds no extra GSSAPI support beyond Paramiko’s existing connection parameters.docs.fabfile.org · read 4 Oct 2026
- Host execution
- Fabric supports running commands on individual hosts and across multiple hosts, including serial and parallel approaches.fabfile.org · read 4 Oct 2026
- Installation
- The project recommends installing Fabric with `pip install fabric`.fabfile.org · read 8 Oct 2026
- Legacy compatibility
- The `fabric2` package lets users install modern Fabric alongside Fabric 1, while the project says `fabric3` is an unauthorized fork it does not control.fabfile.org · read 8 Oct 2026
- Limit
- Each `run` or `sudo` call uses its own remote shell session, so commands such as `cd` do not persist between calls.fabfile.org · read 8 Oct 2026
- Maintainer
- The project’s development team is headed by Jeff Forcier, and the site copyright identifies Jeff Forcier.fabfile.org · read 8 Oct 2026
- Multi-host execution
- It can run commands and Python code on individual hosts or across multiple hosts, serially or in parallel.fabfile.org · read 8 Oct 2026
- Purpose
- Fabric is a Python library for running shell commands remotely over SSH and returning Python objects.fabfile.org · read 8 Oct 2026
- Python tasks
- Users can run Python functions or code blocks against individual connections or multiple hosts.fabfile.org · read 4 Oct 2026
- Requirements
- The installation guide lists Python, Invoke, and Paramiko as installation requirements.fabfile.org · read 4 Oct 2026
- Security configuration
- Fabric defaults remote commands to a clean environment instead of copying the local process environment, to avoid leaking local environment data.docs.fabfile.org · read 8 Oct 2026
- SSH authentication
- Fabric supports SSH key files, SSH agents, and password authentication through its connection configuration.docs.fabfile.org · read 8 Oct 2026
- Support
- The project recommends its fab-user mailing list for usage help and also points users to GitHub Issues for bugs.fabfile.org · read 8 Oct 2026