Wush Action
SSH into GitHub Actions using wush. Debug workflows as if they were running on your machine.
Usage
- Add
coder/wush-actionto a GitHub Actions workflow:
jobs: wush: steps: ... - uses: coder/wush-action@v1.0.0 timeout-minutes: 30 ...
- Install wush on your local machine:
curl -fsSL https://github.com/coder/wush/raw/refs/heads/main/install.sh | sh- Copy the authentication key from GitHub Actions logs:
- Run
wush ssh, and paste the key.
- You're in!
Supported platforms
- Linux (
x86_64andarm64) - Windows (
x86_64andarm64) - macOS (
x86_64andarm64)
How it works
Wush establishes a WireGuard tunnel between your local machine and a GitHub Actions runner - traffic is E2E-encrypted. It doesn't require you to trust any 3rd party authentication or relay servers, instead using x25519 keys to authenticate connections.
For more information, see wush's README and source code.
Usage tips
To run coder/wush-action regardless of whether a job succeeds or fails, consider using ${{ !cancelled() }} instead of ${{ always() }}:
jobs: wush: steps: ... - name: Run wush if: ${{ !cancelled() }} uses: coder/wush-action@v1.0.0
always() is immune to cancellation, so you won't be able to stop wush by cancelling the workflow. Instead, you'll need to SSH into GitHub Actions and kill the wush process manually.
