pyinfra-dev/pyinfra

🔧 pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH...

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 48 minutes ago
Added to GitGenius on September 11th, 2026
Created on October 19th, 2014
Open Issues & Pull Requests: 164 (+0)
GitHub issues: Enabled
Number of forks: 541
Total Stargazers: 5,990 (+0)
Total Subscribers: 39 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

pyinfra is a configuration management and remote execution tool that turns Python code into shell commands and runs them on your servers.

pyinfra solves the problem of infrastructure automation by letting you write deployment logic in Python rather than domain-specific languages. It converts Python code into shell commands executed over SSH, locally, or against Docker containers. The tool supports both ad-hoc command execution and declarative operations that describe desired state. Operations are idempotent, enabling dry runs and diffs before changes are applied. Execution is agentless, requiring only shell access to target systems, and scales from single servers to thousands with predictable performance.

Teams should choose pyinfra if they prefer Python over YAML-based configuration languages and need fast, predictable execution at scale. It suits projects where you want to leverage the entire Python package ecosystem for infrastructure tasks and need real-time visibility into command execution through detailed output. The tool integrates with Docker, Terraform, and Vagrant connectors. Unlike Ansible, which uses YAML, pyinfra uses Python and emphasizes speed and performance.

The project maintains active development with regular commits addressing bugs and feature requests. Pull requests receive timely review and feedback from maintainers. The codebase shows consistent attention to code quality and testing practices. Documentation is comprehensive and regularly updated to reflect current functionality. The project sustains an engaged community through multiple communication channels and welcomes external contributions with clear guidelines.