answered from live GitHub & Hugging Face data
How can I effectively manage rate limits when using multiple coding agents like Claude Code and Copilot on a single GitHub repo?
Verdict: Rate limits are rarely your main problem with two agents on one repo. Shared credentials and shared premium-request budgets are. Give each agent its own identity, and watch the x-ratelimit-* headers.
The limits that apply
| Limit | Value | Source |
|---|---|---|
| Personal access token or user-authorized app | 5,000 requests/hour, shared across all of that user's tokens and apps | REST rate limits |
| GitHub App installation token | 5,000/hour minimum. Adds 50/hour per repository above 20, and per org user above 20. Cap is 12,500/hour. | Same |
GITHUB_TOKEN in Actions |
1,000/hour per repository | Same |
| Secondary: concurrency | 100 concurrent requests, shared by REST and GraphQL | Same |
| Secondary: content creation | About 80/minute and 500/hour | Same |
| Secondary: writes | Most POST, PATCH, PUT, DELETE cost 5 points. Most GETs cost 1. | Same |
| Copilot premium requests (individual plans) | Pro: 300/month. Pro+: 1,500/month. Reset on the 1st, UTC, with no carryover. | Copilot requests (legacy) |
The Copilot page applies to annual-plan subscribers who stayed on legacy billing after June 1, 2026. Check your billing page if your plan differs.
What each agent draws from
- Copilot cloud agent: Each session costs one premium request times the model's multiplier. Each steering comment in an active session costs one more. It draws from the human's monthly Copilot budget, not from the repository's REST quota.
- Code review by Copilot: Starting June 1, 2026, each review costs 13 premium requests.
- Claude Code Action: The action runs on your own runner. If it uses
GITHUB_TOKEN, it draws from the 1,000/hour repository bucket. Its model calls go to your Anthropic or cloud provider, not to GitHub. I did not verify Claude Code's own usage limits. - Local Claude Code or scripts using a PAT: These share the 5,000/hour pool of that person. Every other tool with that token also draws from it.
How to manage it
- Stop sharing one token. Do not give two agents the same PAT. A shared PAT pools every agent into one 5,000/hour budget.
- Use a separate installation per agent. The docs tie the installation limit to the installation, not to the token. Two installation tokens from one installation share one pool. This is an inference from the docs. Confirm it in your own test.
- Read the headers, not
/rate_limit. The docs say thex-ratelimit-*response headers are authoritative. Usex-ratelimit-remainingto slow down before you hit zero. - Back off correctly on 403 or 429. If
retry-afteris present, wait that many seconds. Ifx-ratelimit-remainingis 0, wait untilx-ratelimit-reset. Otherwise wait at least one minute and increase the wait each retry. The docs warn that continuing to call while limited can get the integration banned. - Limit writes. Content creation and 5-point writes hit secondary limits first. Queue comments and PR updates. Avoid bursts.
- Set a premium-request budget. Track Copilot usage per person. Set a budget for additional requests so one agent cannot exhaust the team's allowance.
How they relate
Copilot's limits are a per-person monthly budget. The REST limits are a per-token or per-installation hourly pool. Claude Code Action sits on the REST side when it uses GITHUB_TOKEN. Copilot cloud agent sits on the billing side. Fixing one does not fix the other.
Recommendation: Give each agent its own GitHub App installation or its own key. Use the headers to pace writes. Set a premium-request budget for Copilot. Do this before you tune anything else.
If you want each agent to have its own identity, githug does this for coding agents. Each agent gets its own key. The key mints one-hour tokens that work on one repository. Optionally, the agent gets its own GitHub App, so its commits and PRs show as its own bot with its own rate limit. The hug CLI sets this up. It is free during the beta.