pyinfra
pyinfra.com
What it is
pyinfra is a free, Python-native tool for automating infrastructure across servers. It connects over SSH to run commands concurrently and idempotently, using Python deploys and inventories. Operations can describe a desired host state or issue specific commands, and `--dry` previews per-host changes before applying them. The project says it works from one host to 10,000, with parallel execution and real-time output. Target machines need a shell and SSH, but no agent, daemon, state file, or control plane. Documented connectors include SSH, Docker, Terraform, and the local machine; operations cover package managers, files, services, databases, security, and containers. It runs wherever Python runs, with Mac, Linux, and Windows listed as control systems. Python 3.10 or later is required; pyinfra 3.5.1 and later supports Python 3.10 through 3.13. The software is MIT licensed. The installation guidance recommends keeping pyinfra and its dependencies current and installing as a regular user rather than as root or with sudo. Help is directed to Matrix and Stack Overflow, while bug reports go to GitHub issues.
Spec sheet
- Purpose
- pyinfra is a Python-native, agentless automation tool that runs commands over SSH concurrently and idempotently.Read 5 Oct 2026 · pyinfra.com
- Support
- The project directs users to its Matrix room and Stack Overflow for help, and to GitHub issues for bug reports.Read 5 Oct 2026 · docs.pyinfra.com
- Agents
- The site says target hosts need a shell and SSH, with no agents, daemons, state files, or control plane.Read 5 Oct 2026 · pyinfra.com
- Connectors
- Documented popular connectors include SSH, Docker, Terraform, and the local machine.Read 5 Oct 2026 · docs.pyinfra.com
- Control platforms
- pyinfra runs wherever Python runs; the compatibility page names Mac, Linux, and Windows as supported control systems.Read 5 Oct 2026 · docs.pyinfra.com
- Declarative and imperative operations
- Operations can describe a desired host state or run specific commands directly.Read 5 Oct 2026 · docs.pyinfra.com
- Intended use
- The site presents pyinfra for automating infrastructure across servers using Python deploys and inventories.Read 5 Oct 2026 · pyinfra.com
- Operations
- The operations reference lists modules for package managers, files, services, databases, security, and containers.Read 5 Oct 2026 · docs.pyinfra.com
- Preview changes
- The site says `--dry` previews per-host changes before they are applied.Read 5 Oct 2026 · pyinfra.com
- Python requirement
- Python 3.10 or later is required, and pyinfra 3.5.1+ supports Python 3.10 through 3.13.Read 5 Oct 2026 · docs.pyinfra.com
- Remote system compatibility
- The compatibility page says pyinfra aims to support Unix-like systems and lists Linux distributions, BSDs, OpenSUSE, macOS via `@local`, and Docker via `@docker`.Read 5 Oct 2026 · docs.pyinfra.com
- Scale
- The site says pyinfra works on one host or 10,000, with parallel execution and real-time streaming output.Read 5 Oct 2026 · pyinfra.com
- Security practices
- The installation guide recommends keeping pyinfra and dependencies up to date and installing as a regular user rather than root or sudo.Read 5 Oct 2026 · docs.pyinfra.com
- Windows requirement
- The installation page says Windows users need Administrator privileges for installation.Read 5 Oct 2026 · docs.pyinfra.com
Plans and prices
Strong points and limits
Strong points
- Agentless SSH execution
- Operations can declare state or run commands
- Dry mode previews host changes
- Connectors include Docker and Terraform
- Free and MIT licensed
Limits
- Requires Python 3.10 or later
- Target hosts need a shell and SSH
- Windows installation requires Administrator privileges
Who it suits
It suits infrastructure operators who want to automate server tasks through Python deploys and inventories without installing agents on target hosts. Users need Python 3.10 or later and SSH access to targets.
Verdict
pyinfra offers agentless automation with declarative and imperative operations, preview mode, and connectors for several environments. Its Python and SSH requirements are important prerequisites for both operators and target hosts.
Where Specifiction places it
- Configuration Management Tools#15 of 267.7