Claude Code GitHub Actions on Sengi: run @claude at half the runner price
What are Claude Code GitHub Actions, and how do you run them for half the price?
Claude Code GitHub Actions is Anthropic’s anthropics/claude-code-action: mention @claude in a pull request or issue and Claude Code runs inside a GitHub Actions job to answer, review or push a fix. Every run is a job on your runner, billed for every minute the agent works. Change runs-on: ubuntu-latest to runs-on: sengi-standard-2-ubuntu-2404 and the same workflow costs $0.003 a minute instead of GitHub’s $0.006: half the price, with the same YAML, secrets and logs. OpenAI’s openai/codex-action moves the same way.
Last checked October 27, 2026. Sources: Anthropic’s Claude Code GitHub Actions docs and the claude-code-action README, OpenAI’s codex-action README, and GitHub’s runner pricing reference, all read October 27, 2026. Every price on this page is in one JSON file.
What does claude-code-action do?
It puts Claude Code inside your repository’s workflows. Anthropic’s docs describe two modes:
- Interactive. With no
promptinput, Claude waits for@claudein an issue, a pull request comment or a review, then answers, reviews or commits a fix, and reports back in a comment. - Automation. With a
promptinput, Claude runs on any GitHub event without a mention: every pull request, a nightly schedule, a failed build.
Setup is one command: run /install-github-app in Claude Code. It installs the Claude GitHub App, saves ANTHROPIC_API_KEY (or CLAUDE_CODE_OAUTH_TOKEN for a Claude subscription) as a repository secret, and pushes a branch with the workflow files, ready to open as a pull request. The README says it plainly: the action “executes entirely on your own GitHub runner”. That runner is the line you get to choose.
Why do agent workflows burn runner minutes?
Anthropic’s docs say each run consumes two kinds of resources: GitHub Actions minutes and API tokens. Agent jobs run up minutes in four ways a normal CI job does not:
- The runner waits while the agent thinks. The job holds its runner for the whole session: reading the repository, every model turn, every tool call. A build job is done when the compiler is; an agent job is done when Claude is.
- Every mention is a new job. Three
@clauderequests on one pull request are three jobs, each with its own checkout and setup. - Review on every push. The review workflow triggers on
opened,synchronize,ready_for_reviewandreopened, so each push to a pull request starts another review. - Claude’s commits run your CI. When Claude pushes a fix as the Claude GitHub App, your test workflows run again on that commit, which is exactly what you want and exactly what you pay for.
In our own agent-heavy repository, the last seven pull requests we checked ran between 39 and 100 workflow runs each, and October’s first 26 days came to 370,650 CI minutes. The full breakdown is in AI agents wrote 12× more PRs: how to cut the CI bill in half.
Claude Code GitHub Actions workflow for Sengi
This is Anthropic’s @claude workflow with one changed line, runs-on, and a timeout-minutes cap, which Anthropic’s docs recommend to stop runaway jobs. Save it as .github/workflows/claude.yml:
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: sengi-standard-2-ubuntu-2404
timeout-minutes: 30
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
The if: line keeps a runner from starting on comments that never mention @claude, so you pay only for the runs you ask for. If /install-github-app already wrote your claude.yml, change only its runs-on line.
Automatic review on every pull request
Anthropic’s review workflow runs the code-review plugin on each pull request and posts inline comments. Ours adds a concurrency group with cancel-in-progress: true, so a new push cancels the review of the commit it replaced instead of paying for both:
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
concurrency:
group: claude-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: sengi-standard-2-ubuntu-2404
timeout-minutes: 20
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
plugins: "code-review@claude-code-plugins"
prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'
Both workflows keep every secret, permission and log in GitHub Actions. Sengi supplies the machine.
Which runner size should Claude Code use?
- 2 vCPU,
sengi-standard-2-ubuntu-2404, $0.003 a minute. For@claudequestions, reviews and triage: the job is reading code and talking to the model, and 2 vCPU with 8 GB keeps up. - 4 vCPU,
sengi-standard-4-ubuntu-2404, $0.006 a minute. When Claude builds and tests inside the job, for example with--allowedTools "Bash(npm run build),Bash(npm run test:*)"inclaude_args. That is GitHub’s 2 vCPU price for twice the cores and 16 GB. - 8 vCPU,
sengi-standard-8-ubuntu-2404, $0.012 a minute. For agents that compile large projects, against $0.022 for GitHub’s 8 vCPU runner. 4 and 8 vCPU runners work on personal repositories as well as organizations.
What do Claude Code GitHub Actions cost on Sengi?
Per-minute prices for Linux runners, GitHub’s from its runner pricing reference, checked October 27, 2026, and the cost of 10,000 agent job-minutes at each size:
| Size | Sengi label | GitHub per minute | Sengi per minute | 10,000 minutes on GitHub | 10,000 minutes on Sengi |
|---|---|---|---|---|---|
| 2 vCPU | sengi-standard-2-ubuntu-2404 | $0.006 | $0.003 | $60 | $30 |
| 4 vCPU | sengi-standard-4-ubuntu-2404 | $0.012 | $0.006 | $120 | $60 |
| 8 vCPU | sengi-standard-8-ubuntu-2404 | $0.022 | $0.012 | $220 | $120 |
10,000 minutes is, for example, 1,000 agent runs a month at 10 minutes each. Sengi’s price is half GitHub’s at 2 and 4 vCPU, and 45% less at 8 vCPU. Sengi includes 3,000 minutes every month on 2 vCPU (1,500 on 4 vCPU, 750 on 8 vCPU) before the first one is billed. Sengi cuts the runner half of the bill; the token half is between you and Anthropic or OpenAI.
At real agent volume the numbers get serious. Our own repository’s 370,650 minutes in October’s first 26 days cost $2,224 at GitHub’s 2 vCPU price, $1,112 on Sengi and $667 at the Sengi partner rate.
Running agents at volume? The partner rate is $0.0018 a minute at 2 vCPU, 70% less than GitHub. Write to ops@sengi.run with your monthly minutes to ask for it. To price your own month, use the GitHub Actions cost calculator.
Codex GitHub Actions on Sengi
OpenAI’s openai/codex-action@v1 runs codex exec in a workflow with your OPENAI_API_KEY behind a proxy, and posts nothing on its own: its final-message output goes wherever you send it. Its README example is a pull request review on ubuntu-latest. Here it is on Sengi:
name: Codex Review
on:
pull_request:
types: [opened]
jobs:
codex:
runs-on: sengi-standard-2-ubuntu-2404
timeout-minutes: 20
permissions:
contents: read
outputs:
final_message: ${{ steps.run_codex.outputs.final-message }}
steps:
- uses: actions/checkout@v5
with:
ref: refs/pull/${{ github.event.pull_request.number }}/merge
persist-credentials: false
fetch-depth: 0
- name: Let the Codex sandbox start
run: |
sudo sysctl -q -w kernel.unprivileged_userns_clone=1 || true
sudo sysctl -q -w kernel.apparmor_restrict_unprivileged_userns=0 || true
- name: Run Codex
id: run_codex
uses: openai/codex-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
permission-profile: ":workspace"
prompt: |
Review only the changes in pull request #${{ github.event.pull_request.number }} of ${{ github.repository }}:
git log --oneline ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }}
Point out bugs and risky changes. Be concise and specific.
post_feedback:
runs-on: sengi-standard-2-ubuntu-2404
needs: codex
if: needs.codex.outputs.final_message != ''
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/github-script@v7
env:
CODEX_FINAL_MESSAGE: ${{ needs.codex.outputs.final_message }}
with:
github-token: ${{ github.token }}
script: |
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: process.env.CODEX_FINAL_MESSAGE,
});
One step is new: Let the Codex sandbox start. Codex sandboxes itself with bubblewrap, which needs unprivileged user namespaces. The action switches them on with these same two sysctl settings when runner.environment is github-hosted; Sengi runners report self-hosted, so the workflow sets them itself. One step is gone: OpenAI’s example fetches the base and head refs with a separate git fetch, which fails on a private repository once persist-credentials: false has removed the token, so this workflow fetches the full history in the checkout instead. Everything else is OpenAI’s workflow with runs-on changed. The action’s default drop-sudo strategy removes the runner’s sudo before Codex starts and is meant for disposable runners, and every Sengi job gets a fresh VM, so nothing carries over to the next job.
How do I switch my agent workflows to Sengi?
- Connect your repository to Sengi.
- In each agent workflow, change
runs-on: ubuntu-latesttoruns-on: sengi-standard-2-ubuntu-2404, or the 4 or 8 vCPU label. - Merge. The next
@clauderuns on Sengi.
Or let the agent do it: paste one prompt into Claude Code or Codex and it switches every eligible job in the repository, agent workflows and CI alike, and opens the pull request for you to review.
Comparing runner providers first? Every managed runner’s price at 2, 4 and 8 vCPU is in the runner comparison, and nine more ways to cut minutes are in how to reduce GitHub Actions costs.
Where is the data?
The per-minute prices at 2, 4 and 8 vCPU, the cost of 10,000 agent minutes, Sengi’s labels and the Codex setup step are in /data/claude-code-github-actions.json.
Frequently asked questions
What are Claude Code GitHub Actions?
Anthropic's anthropics/claude-code-action. Mention @claude in an issue or pull request and Claude Code runs inside a GitHub Actions job to answer, review or push a fix; give it a prompt and it runs on any event, including a schedule.
Do Claude Code GitHub Actions use GitHub Actions minutes?
Yes. Every run is a job on the runner your workflow names, billed for every minute Claude works. Anthropic's docs list GitHub Actions minutes and API tokens as the two costs of each run. On Sengi those minutes cost $0.003 at 2 vCPU against GitHub's $0.006.
Can claude-code-action run on Sengi?
Yes. The action runs Claude Code on whichever runner the job's runs-on line names. Set it to sengi-standard-2-ubuntu-2404 and the job runs on Sengi's Ubuntu 24.04 runner, with your secrets and logs still in GitHub.
How do I set up Claude Code GitHub Actions?
Run /install-github-app in Claude Code. It installs the Claude GitHub App, saves ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN as a repository secret and prepares the workflow pull request. Change runs-on in that workflow to a Sengi label before you merge it.
Which Sengi runner should Claude Code use?
sengi-standard-2-ubuntu-2404 for @claude questions and reviews, at $0.003 a minute. sengi-standard-4-ubuntu-2404 when Claude builds and tests your code inside the job, at $0.006 a minute, the price of GitHub's 2 vCPU runner.
Does Codex's GitHub Action run on Sengi?
Yes. Use openai/codex-action@v1 with runs-on: sengi-standard-2-ubuntu-2404 and one setup step that turns on the user namespaces Codex's sandbox needs. A fresh VM for every job is exactly the disposable runner its drop-sudo default is built for.
What is the Sengi partner rate?
$0.0018 a minute at 2 vCPU, 70% less than GitHub's $0.006, for teams running coding agents at volume. Write to ops@sengi.run with your monthly minutes to ask for it.
Do I have to rewrite my workflows?
No. Only the runs-on line changes. Triggers, permissions, secrets and the action's inputs stay exactly as they are.
The fastest hardware for your GitHub Actions.
AMD Ryzen 9 7950X3D desktop CPUs boosting past 5 GHz, on bare metal with local NVMe, a fresh VM for every job, and 2 vCPU jobs ready in 2 seconds. Builds finish up to 1.9× faster than on GitHub’s runners, and at up to half GitHub’s price per minute they cost up to 74% less per build. Change one runs-on line, or give your coding agent one prompt and it opens the pull request for you.
