gha-debug
Debug GitHub Actions workflows locally with step-by-step execution
Overview
gha-debug is a lightweight CLI tool that helps developers test and debug GitHub Actions workflows locally before pushing to CI. Unlike heavy Docker-based solutions, it provides fast validation, clear step-by-step execution visibility, and helpful error messages.
Installation
pip install gha-debug
Usage
Run a workflow locally
gha-debug run .github/workflows/test.yml
Run a specific job with verbose output
gha-debug run .github/workflows/build.yml --job build --verbose
List all workflows and jobs
gha-debug list
Show environment variables for a job
gha-debug env .github/workflows/deploy.yml --job deploy
Validate workflow syntax
gha-debug validate .github/workflows/*.yml
Features
- ✅ Parse and validate GitHub Actions workflow YAML files
- ✅ List all workflows, jobs, and steps with clear formatting
- ✅ Run workflows locally with simulated GitHub Actions environment
- ✅ Show detailed step-by-step execution with timing information
- ✅ Display environment variables and contexts for debugging
- ✅ Validate workflow syntax and catch common errors before pushing
- ✅ Colorized output for better readability
- ✅ Support for filtering by specific job within a workflow
Why gha-debug?
Debugging GitHub Actions workflows is painful:
- Logs are hard to navigate in the web interface
- Re-running failed jobs wastes time
- No simple local testing that mirrors the CI environment
gha-debug solves this by providing a fast feedback loop. It doesn't try to perfectly replicate GitHub's environment (which causes compatibility issues), but instead focuses on what developers need most: quick validation and clear error messages.
Example Output
$ gha-debug run .github/workflows/test.yml
Running workflow: test.yml
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Job: test
✓ Checkout code (1.2s)
✓ Setup Python 3.11 (0.8s)
✓ Install dependencies (4.5s)
✓ Run tests (12.3s)
✓ Workflow completed successfully in 18.8s
License
MIT License - Copyright (c) 2026 Intellirim
Metadata
Release files for gha-debug 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gha_debug-0.2.0.tar.gz | 14.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gha_debug-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.3 kB
Release files / gha_debug-0.2.0.tar.gz
| Download URL | gha_debug-0.2.0.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fbe09abb440db5d0f4043f41204bacfc6589731a7453e2f7794fcee0d6f9238
|
|
BLAKE2b-256 checksum How to use checksums |
e88fb92e4d89ad21b0b406bd6d76743c7ded53452581a30c90ea6af33f22fcd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.2
|
Release files / gha_debug-0.2.0-py3-none-any.whl
| Download URL | gha_debug-0.2.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f56f45f6eee50c7600236faa580c54da8bad5ea0eae1f3625410c42e7f85d6e
|
|
BLAKE2b-256 checksum How to use checksums |
117d6c36e8c9eb38a1b29372c5329d3d7331fb8f7e67b92e3dac743998e31058
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.2
|
Security for gha-debug 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.