zizmor
Static analysis for GitHub Actions
What it is and what it does
zizmor is a static analysis tool designed to audit CI/CD pipelines for security misconfigurations. It examines GitHub Actions workflows, Dependabot configurations, and pre-commit hooks to detect vulnerabilities including template injection that could lead to code execution, accidental credential persistence, overly broad permission grants, and git reference spoofing. The tool runs locally as a command-line utility with no external dependencies, making it straightforward to integrate into development workflows or CI systems themselves.
The package is actively maintained, recently released, and backed by established security organizations. It targets modern Python (3.10+) and ships as pre-built wheels for common platforms, eliminating compilation friction. With no runtime dependencies and permissive MIT licensing, it presents minimal adoption barriers for teams seeking to harden their CI/CD security posture.
Use it for:
- Audit GitHub Actions workflows before merging to catch template injection and credential exposure risks.
- Scan Dependabot configurations to ensure dependency updates don't grant excessive permissions.
- Validate pre-commit hook setups to prevent compromised hooks from executing arbitrary code.
- Integrate into CI pipelines to enforce security checks on workflow file changes.
- Review existing workflow repositories for historical misconfigurations and permission creep.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
zizmor is a static analysis tool that scans CI/CD configurations—GitHub Actions, Dependabot, and pre-commit—to identify and fix security vulnerabilities like template injection, credential leakage, and excessive permission grants.
Yes. zizmor addresses a genuine gap in CI/CD security tooling with active maintenance, zero runtime dependencies, permissive licensing, and broad platform support. It is worth installing if you use GitHub Actions, Dependabot, or pre-commit and want to catch configuration-level security issues before they reach production.
Install
zizmor on PyPI
pip
pip install zizmoruv
uv add zizmorpoetry
poetry add zizmorInstalling zizmor
Before you install
Medium install friction due to platform-specific wheels across multiple architectures (macOS, Linux, Windows, ARM variants). Active maintenance with a recent release and no runtime dependencies simplifies deployment once installed.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal obligations—suitable for both commercial and open-source projects.
Quickstart
pip install zizmor
zizmor lint .github/workflows/
Requires Python 3.10 or later.
Verify before relying
- Specific categories of security issues detected beyond those listed (template injection, credential leakage, permission scopes, impostor commits).
- Whether zizmor can automatically fix identified issues or only report them.
- Performance characteristics on large workflow repositories or complex configurations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 13 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 5,027,136/month — #2,179 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zizmor-1.29.0-py3-none-macosx_10_12_x86_64.whl; zizmor-1.29.0-py3-none-macosx_11_0_arm64.whl; zizmor-1.29.0-py3-none-manylinux_2_24_aarch64.whl; zizmor-1.29.0-py3-none-manylinux_2_28_armv7l.whl; zizmor-1.29.0-py3-none-manylinux_2_28_x86_64.whl; zizmor-1.29.0-py3-none-musllinux_1_2_aarch64.whl; zizmor-1.29.0-py3-none-musllinux_1_2_armv7l.whl; zizmor-1.29.0-py3-none-musllinux_1_2_x86_64.whl; zizmor-1.29.0-py3-none-win32.whl; zizmor-1.29.0-py3-none-win_amd64.whl
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
flawfinderFlawfinder scans C/C++ source code to identify…
copyleft · top 15,000 on PyPI
gitlintGitlint is a command-line tool that validates…
permissive · top 5,000 on PyPI
dodgyDodgy scans Python source code for suspicious…
permissive · top 15,000 on PyPI
csaf-toolGenerates and analyzes CSAF 2.0 documents,…
permissive · top 15,000 on PyPI
llm-guardLLM Guard provides input and output scanning…
unclear · top 15,000 on PyPI
libsastlibsast is a static application security…
copyleft · top 15,000 on PyPI
pip-auditpip-audit scans Python environments and…
permissive · top 1,000 on PyPI
pyre-checkPysa is a static analysis tool that tracks data…
permissive · top 15,000 on PyPI
ickIck is a polyglot tool for bundling best…
permissive · top 15,000 on PyPI
deepteamDeepTeam is an open-source red teaming…
permissive · top 15,000 on PyPI