Stop pushing to debug your workflows
Overwire runs your GitHub Actions workflows locally.
Skip, mock, or live-execute any step, and simulate the platform around the run.
Watch the run, not the log scroll
Jobs, steps, and modes on one canvas. The map updates as the run executes, so you can see what ran live, what was mocked, and what was skipped.
Run the workflow,
mock everything around it
Skip, mock, or live-execute
Every step gets a mode. Skip what you don't need, mock third-party actions against a declared contract, live-execute the rest in a real container.

Real runner container
Steps execute inside a Docker container that mirrors the GitHub Actions runner environment. Same tools, same paths, same behavior.
Multi-repo workspaces
Test workflows that span multiple repositories. Overwire manages workspace peers and resolves cross-repo references.
Governance and rulesets
Validate branch protection rules, required status checks, and CODEOWNERS locally before pushing.
API mocking
Declare mock responses for GitHub API calls. Unmatched requests are captured and turned into suggested mocks.
Full expression engine
Evaluate ${{ }} expressions against real workflow context. Matrix expansion, needs references, and all GitHub builtins supported.
Init, configure, run
Initialize
Run overwire init in your repo. It scaffolds a .overwire/ config directory alongside your existing .github/workflows tree.
$ overwire initConfigure modes
Set each step to skip, mock, or live. Mock contracts declare expected inputs and synthesized outputs for external actions.
Run locally
Execute the workflow. Live steps run in a Docker container and logs stream as they happen. Iterate without pushing.
$ overwire run build.ymlKnow the merge outcome before you push
Workflows depend on more than their steps. Overwire reproduces the platform surface they run against, all of it backed by plain files in your repo.
Branch rulesets and required checks
Import GitHub ruleset exports and evaluate them against local runs.
PR scenarios with merge prediction
Define pull request scenarios and see whether the merge would go through.
Commit statuses and check runs
Seed external statuses so required contexts resolve the way they would upstream.
Environment approval gates
Protection rules pause the run and wait for your approval, locally.
Variables and secrets
Plain config files back the vars and secrets contexts. Values stay on your machine.
API mocks with capture and suggest
Declare mock routes. Unmatched API calls are captured and suggested back to you.
- ci / build (push)success
- ci / test (push)success
- lint / eslintin progress
- security / scanexpected
routes: - method: GET path: /repos/{owner}/{repo}/releases/latest status: 200 body: { tag_name: v2.3.1 } # captured from the last run - method: POST path: /repos/{owner}/{repo}/statuses/{sha} status: 201Debug at the speed of local.
Everything Overwire does, free, on your machine.
Windows
Signed installer for 64-bit Windows 10 and 11.
Installs machine-wide; Windows will ask for administrator approval.
Overwire CLI
The CLI runs the same workflows from your shell or CI, free.
npm install -g overwire