Skipbox

What does Claude Code's GitHub Action cost? API usage plus Actions minutes

Claude Code's GitHub Action has two bills. Anthropic charges for the model, either through an API key at its per-token rates or, with an OAuth token, from your Claude subscription, in which case "runs use your Claude subscription instead of API billing". GitHub charges for the runner: Claude Code's docs say the action "runs on GitHub-hosted runners, which consume your GitHub Actions minutes", and in a private repository ubuntu-latest costs $0.006 a minute once your plan's included compute is used (both read on November 9, 2026).

Skipbox publishes this guide and sells a runner, which changes the minutes half only. The Anthropic and GitHub facts come from their own pages, read on November 9, 2026 and linked under Sources.

The two bills, side by side

The two grow together: a run with more turns takes longer, and the runner bills that time too.

What the model part costs

With an API key, Anthropic bills each run's tokens at the model's rates. Per million tokens, read on November 9, 2026:

Cached input reads are billed at 5% of the input price on Opus 5.5 and Sonnet 5.5. Claude Code's docs say the action uses Claude Code's default model unless you pass --model in claude_args, and that "each interaction consumes tokens based on the length of prompts and responses, task complexity, and codebase size", so a run's cost depends on the request and the repository.

With an OAuth token from a Claude subscription, created with claude setup-token, runs use the subscription instead. Claude Code's docs list it on Pro, Max, Ultra, Team and Enterprise plans. For a secret shared across an organization's repositories, the docs recommend an API key, "since an OAuth token is tied to the subscription of the person who ran claude setup-token."

What the minutes part costs

The minutes part is GitHub arithmetic: the job's length × the runs a month × the runner's rate, less what your plan includes. GitHub rounds each job up to the next whole minute, and every run bills, including ones that end early.

The included compute, in dollars a month: $12 on GitHub Free, $18 on Pro and Team, $300 on Enterprise Cloud. Standard runners in public repositories are free. How many free minutes private repositories get has those dollars in minutes on each runner.

Examples in a private repository, on ubuntu-latest at $0.006 a minute unless the row names another runner:

A review workflow that triggers on synchronize runs on every push to a pull request. Claude Code's docs say it skips draft and closed pull requests and ones it already commented on, but the job still starts, and a job that runs 20 seconds bills a minute.

Copilot code review and Agentic Workflows use Actions minutes too

Claude's action isn't the only AI agent that runs on your Actions minutes now:

  • Copilot code review, since June 1, 2026: "GitHub Actions minutes will be consumed from your existing plan entitlement", "with any usage beyond your included minutes billed at standard GitHub Actions rates." Public repositories are unchanged. GitHub's post says Copilot code review "also supports self-hosted runners and GitHub-hosted larger runners." From October 8, 2026, an organization can choose who is billed for the reviews themselves: the member's own Copilot entitlement (the default) or the organization, which needs AI Credits paid usage.
  • GitHub Agentic Workflows, generally available on October 28, 2026: coding agents, Copilot or your own, run inside GitHub Actions workflows. "Because these are GitHub Actions, they reuse your existing runner groups and policy constraints." The default Copilot CLI engine needs a Copilot license.

So a repository with all three can run three agent jobs per pull request, each billing its own minutes.

Keep the minutes down

Claude Code's docs suggest specific @claude requests, a concise CLAUDE.md, --max-turns in claude_args, workflow timeouts, and GitHub's concurrency controls. In YAML, with the permissions the docs give for this workflow:

on:
  issue_comment:
    types: [created]
concurrency:
  group: claude-${{ github.event.issue.number }}
  cancel-in-progress: false
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    timeout-minutes: 15
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v7
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          claude_args: "--max-turns 10"
  • if: on the job keeps a runner from starting for comments that don't mention @claude. Without it, every comment starts a job.
  • timeout-minutes stops a run that keeps going. GitHub's default is 360 minutes.
  • --max-turns caps the model's turns, which caps both bills.
  • concurrency with one group per issue or pull request runs one request at a time there: a new one waits while one runs, and by default GitHub keeps one waiting run per group and cancels an older waiting one. Set cancel-in-progress: true to stop the running one instead.
  • paths on a pull_request trigger skips the review for changes it needn't read, such as docs-only pull requests.

The same cuts apply to every other workflow: GitHub Actions too expensive? finds the ones that cost the most and has eight cuts with the YAML.

The minutes half at a flat price

Every job picks its runner with runs-on, the job that runs Claude Code's action included. GitHub's docs: "Use jobs.<job_id>.runs-on to define the type of machine to run the job on", and "The destination machine can be either a GitHub-hosted runner, larger runner, or a self-hosted runner." GitHub bills nothing for self-hosted runner minutes, and they don't draw on your included compute.

Skipbox is a flat price for the runner minutes of Linux x64 jobs from private repositories: $39, $79 or $149 a month with unlimited minutes and no usage charges, each job in a fresh Ubuntu 24.04 VM in Helsinki. It covers the minutes half only; the Anthropic bill is the same whichever runner the job uses. Plan S is lower than ubuntu-latest on GitHub Team above about 9,500 job-minutes a month, and the cost calculator prices your own last 30 days of Linux x64 jobs by repository and workflow.

You can try it on your own jobs first: free for 7 days or 3,000 job-minutes, no card.

FAQ

Is Claude Code's GitHub Action free?

The action itself is open source (MIT), but each run has two costs: the model's tokens, billed by Anthropic through your API key or used from your Claude subscription when you authenticate with an OAuth token, and the GitHub Actions minutes of the runner the job runs on.

Can I use my Claude Pro or Max subscription with Claude Code GitHub Actions?

Yes. Claude Code's docs say a CLAUDE_CODE_OAUTH_TOKEN, generated with claude setup-token, authenticates with your Claude subscription on Pro, Max, Ultra, Team and Enterprise plans, and runs then use the subscription instead of API billing. For a secret shared across an organization's repositories, the docs recommend an API key, since an OAuth token is tied to the subscription of the person who created it.

Does Claude Code GitHub Actions use my GitHub Actions minutes?

Yes. Claude Code's docs say the action runs on GitHub-hosted runners, which consume your GitHub Actions minutes. In a private repository, ubuntu-latest costs $0.006 a minute once your plan's included compute is used; standard runners are free in public repositories.

Does the runner bill while Claude is thinking?

Yes. GitHub bills a job for the time it runs, rounded up to the next whole minute, and the job runs until Claude finishes. Time spent waiting on the model is runner time like any other.

Does Copilot code review use GitHub Actions minutes?

Yes, since June 1, 2026. Each Copilot code review in a private repository uses Actions minutes from your plan, and usage beyond the included minutes is billed at standard Actions rates. Public repositories are unchanged.

Sources

All read on 2026-11-09.

Updated November 9, 2026

See your own GitHub Actions bill

The free cost calculator reads your repositories' last 30 days of runs and gives one fixed monthly amount for the same jobs.

Open the cost calculator

Flat-price CI from your next push

Change one runs-on: line. Any minutes, one price.

  • No card
  • 7 days or 3,000 job-minutes free
  • 30-day refund on first payment