# Install fabric with Homebrew, apk, apt, MacPorts, pacman, Nix, winget

Library and command-line tool for SSH. Version 3.2.3 via Homebrew; verified 2026-05-11. Also installable with debian: sudo apt install fabric.

## Install

```sh
sudo av install brew:fabric
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install fabric
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install fabric
```

  Evidence: MacPorts ports tree: llm/fabric/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add fabric
```

  Evidence: Alpine Linux edge package indexes: fabric from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install fabric
```

  Evidence: Debian stable package indexes: fabric from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- pacman (92%):

```sh
sudo pacman -S fabric
```

  Evidence: Arch Linux sync databases: fabric from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#Fabric
```

  Evidence: nixpkgs package indexes: Fabric from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

### Windows

- winget (92%):

```sh
winget install --id FabricMC.FabricInstaller -e
```

  Evidence: Windows Package Manager source index: FabricMC.FabricInstaller from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:fabric
- **Package manager:** Homebrew
- **Version:** 3.2.3
- **Source summary:** Library and command-line tool for SSH
- **Homepage:** <https://www.fabfile.org/>
- **Repository:** <https://github.com/fabric/fabric>
- **Last updated:** 2026-05-11T11:37:38Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- fab (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 3.2.3
## Project history and usage

Fabric is the Python `fab` tool and library for running commands over SSH, historically popular for deployment and remote administration.

### Project history

Fabric began as a Pythonic remote execution and deployment tool built around `fabfile` tasks. Its current website describes Fabric as a high-level Python library for executing shell commands remotely over SSH and returning useful Python objects.

The 1.x line became a common deployment-era tool for Python projects because it let teams write Python functions as remote tasks and invoke them with the `fab` command. Its legacy changelog shows the 1.0 series active in 2011, including task execution, parallel execution, host and role handling, file transfer, sudo, and other features associated with classic fabfiles.

Fabric 2.0, released in May 2018, was a major rewrite. The official upgrade guide calls modern Fabric a near-total reimplementation and reorganization: task execution and local command behavior moved toward Invoke, while SSH behavior was organized around explicit `Connection` and `Config` objects on top of Paramiko.

The modern 3.x line continues that architecture. The current changelog explicitly warns users that Fabric is largely a wrapper around Paramiko and Invoke, so capabilities may improve when those dependencies improve.

### Adoption history

Fabric's adoption was strongest when Python teams wanted deployment automation without a full configuration-management system. A `fab deploy` command in a repository could run shell commands, copy files, restart services, or coordinate multiple hosts using ordinary Python.

The long-lived 1.x line created a migration challenge of its own. The project kept legacy documentation and eventually merged the `fabric3` fork back into the v1 branch in 2022 so users could port old Fabric 1 code to Python 3 before deciding whether to move to Fabric 2+.

Modern Fabric has a different adoption profile: it is less magic global state and more explicit SSH library plus task runner integration. The official upgrade docs even suggest that users who only used Fabric 1 for local tasks can sidegrade to Invoke instead.

### How it is used

In modern Fabric, users create `Connection` objects and call methods like `run`, or define tasks that can be invoked by the `fab` CLI. The docs show single-host commands, serial or grouped multi-host commands, Python functions targeted at connections, file transfer, and integration with Invoke's task model.

In legacy usage, users wrote fabfiles and called named tasks from the shell. In modern usage, the same broad goal remains, but configuration, SSH auth, gateways, command execution, and task composition are more explicit and object-oriented.

### Why package nerds care

Fabric is package-nerd significant because `brew install fabric` installs a Python deployment classic whose command name, `fab`, was once shorthand for lightweight SSH automation. It represents the era before containers and orchestrators absorbed much deployment scripting.

It is also a naming-collision case study. The Homebrew `fabric` formula is the Python SSH tool, while `fabric-ai` and `fabric-installer` are unrelated packages that happen to share the same display name in different ecosystems.

### Timeline

- 2009: The Fabric GitHub repository is created.
- 2011: Fabric 1.0.x releases document the mature classic fabfile era.
- 2018: Fabric 2.0.0 ships as a rewrite.
- 2022: Fabric 1.15.0 merges the fabric3 fork back into the v1 branch for Python 3 migration.
- 2023: Fabric 3.0.0 drops Python versions older than 3.6 and continues the modern architecture.
- 2026: Fabric 3.2.3 updates packaging metadata for Invoke compatibility.

### Related projects

- Paramiko provides Fabric's SSH protocol layer.
- Invoke provides subprocess execution and command-line task features used by modern Fabric.
- Patchwork and Invocations are optional companion libraries mentioned by the official docs.

### Sources

- <https://api.github.com/repos/fabric/fabric>
- <https://github.com/fabric/fabric>
- <https://www.fabfile.org/>
- <https://docs.fabfile.org/>
- <https://www.fabfile.org/changelog.html>
- <https://www.fabfile.org/changelog-v1.html>
- <https://www.fabfile.org/upgrading.html>


## Security Notes

No matching local secret-handling manifest was found for fabric. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Other Package-Manager Records

- Debian apt - fabric - 2.6.0-4: normalized package name match | Debian stable package indexes: fabric from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Simple Pythonic remote deployment tool | https://fabfile.org/
- Debian apt - python3-fabric - 2.6.0-4: normalized package name match | Debian stable package indexes: python3-fabric from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Simple Pythonic remote deployment tool - standalone module | https://fabfile.org/
- Nix - Fabric: normalized package name match | nixpkgs package indexes: Fabric from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - fabric - 2.6.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: fabric from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Simple Pythonic remote deployment tool | https://fabfile.org/
- Ubuntu apt - python3-fabric - 2.6.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-fabric from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Simple Pythonic remote deployment tool - standalone module | https://fabfile.org/
- apk - fabric - 3.2.2-r2: normalized package name match | Alpine Linux edge package indexes: fabric from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | simple pythonic remote deployment tool | https://www.fabfile.org/
- apk - fabric-pyc - 3.2.2-r2: normalized package name match | Alpine Linux edge package indexes: fabric-pyc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Precompiled Python bytecode for fabric | https://www.fabfile.org/
- pacman - fabric - 3.2.3-1: normalized package name match | Arch Linux sync databases: fabric from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Python library and command-line tool designed to streamline deploying applications or performing system administration tasks via the SSH protocol | https://www.fabfile.org/
- MacPorts - fabric: normalized package name match | MacPorts ports tree: llm/fabric/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- winget - FabricMC.FabricInstaller: normalized package name match | Windows Package Manager source index: FabricMC.FabricInstaller from https://cdn.winget.microsoft.com/cache/source.msix
- winget - danielmiessler.Fabric: normalized package name match | Windows Package Manager source index: danielmiessler.Fabric from https://cdn.winget.microsoft.com/cache/source.msix


## Combined YAML source

View the package source record on GitHub. [combined/fabric.yml](https://github.com/mxcl/pkgdb/blob/main/combined/fabric.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
