Hey there,
warden is AWESOME, thanks so much for creating it. saved me quite a few times setting up our internal agent platform...
Issue
Tiny thing: action.yml always runs Install Claude Code CLI, even when all matched triggers use runtime = "pi" rather than runtime = "claude".
This was a bit confusing as I then worried I was using the wrong runtime/model and potentially being billed by Ant rather than (in my case) OpenAI. Also adds a few seconds to CI runs.
In case you are open to it, sending a PR with the proposed fix below. Avoided making it too general to keep things small, but more than happy to do so if you'd prefer. Let me know!
Proposed fix
For now, simple fix that puts the runtime-specific setup behind a small helper so there is an obvious place to add setup for additional runtimes:
- remove the unconditional Claude Code install from
action.yml
- add a small runtime setup helper after triggers have been resolved
- for
runtime = "pi", skip Claude Code setup; for "claude" validate auth and install like we do currently
Verification/evidence
Ran a smoke test in a dummy repo to check this works with both Claude and Pi
- Here are the links to the test PR and run, and screenshots below
- Written with Pi/gpt-5.5, I reviewed code and tests. See session transcript here.
Screenshots with fix
Claude:
GitHub Actions log showing the Claude runtime job passing after installing Claude Code v2.1.32, running the Warden smoke skill successfully, and asserting the Claude executable exists.

Pi:
GitHub Actions log showing the Pi runtime job passing, invoking the Warden smoke skill successfully without installing Claude Code, and asserting no Claude executable exists.

Hey there,
warden is AWESOME, thanks so much for creating it. saved me quite a few times setting up our internal agent platform...
Issue
Tiny thing:
action.ymlalways runs Install Claude Code CLI, even when all matched triggers useruntime = "pi"rather thanruntime = "claude".This was a bit confusing as I then worried I was using the wrong runtime/model and potentially being billed by Ant rather than (in my case) OpenAI. Also adds a few seconds to CI runs.
In case you are open to it, sending a PR with the proposed fix below. Avoided making it too general to keep things small, but more than happy to do so if you'd prefer. Let me know!
Proposed fix
For now, simple fix that puts the runtime-specific setup behind a small helper so there is an obvious place to add setup for additional runtimes:
action.ymlruntime = "pi", skip Claude Code setup; for "claude" validate auth and install like we do currentlyVerification/evidence
Ran a smoke test in a dummy repo to check this works with both Claude and Pi
Screenshots with fix
Claude:

GitHub Actions log showing the Claude runtime job passing after installing Claude Code v2.1.32, running the Warden smoke skill successfully, and asserting the Claude executable exists.
Pi:

GitHub Actions log showing the Pi runtime job passing, invoking the Warden smoke skill successfully without installing Claude Code, and asserting no Claude executable exists.