Repository navigation
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Sign in to GitHub Copilot CLI (
copilot login) on a Copilot plan, and enable GitHub Copilot under Settings → Providers (ACP registry). - Send a Copilot thread any message and wait for the reply.
- Open Usage → Limits.
Expected behavior
GitHub Copilot is listed with its monthly allowances (premium requests, plus chat/completions on plans that cap them) and the reset date, as Codex, Claude, Cursor, Grok, OpenCode and Antigravity are.
Actual behavior
Copilot is not listed. It runs through the generic packages/provider-acp-registry driver (copilotAcp.ts handles only subagent routing), and that driver never sets usageLimits, so providersWithLimits drops it. Over ACP, Copilot sends only per-session context token counts (usage_update), never plan quota.
The quota is available. The Copilot CLI's own /usage and the VS Code Copilot extension read it from GET https://api.github.com/copilot_internal/user, using the same GitHub auth that Copilot CLI already holds.
Impact
Minor bug or occasional failure
Version or commit
T3 Code (Beta) 0.1.1; checked against main @ 066c8fc
Environment
macOS 26.6.2, desktop app, GitHub Copilot CLI 1.0.101 (ACP mode), Copilot Individual plan
Logs or stack traces
# GET /copilot_internal/user (abridged; identifiers removed)
{
"copilot_plan": "individual",
"quota_reset_date_utc": "2026-11-01T00:00:00.000Z",
"quota_snapshots": {
"chat": { "entitlement": 200, "remaining": 196, "percent_remaining": 98.3, "unlimited": false, "overage_permitted": false },
"completions": { "entitlement": 2000, "remaining": 2000, "percent_remaining": 100.0, "unlimited": false, "overage_permitted": false },
"premium_interactions": { "entitlement": 0, "remaining": 0, "percent_remaining": 0.0, "unlimited": false, "overage_permitted": false }
}
}Workaround
Run /usage inside Copilot CLI, or open GitHub → Settings → Billing → Premium requests. There is nothing in T3 itself.
Proposed fix
Add a Copilot usage reader, following apps/server/src/provider/{codex,claude,antigravity}UsageLimits.ts. On each status check, the ACP-registry driver for the Copilot agent would:
- call
/copilot_internal/userwith the token Copilot CLI uses (orgh auth tokenas a fallback); - map each
quota_snapshotsentry withunlimited: falseandentitlement > 0to a monthly window that resets atquota_reset_date_utc; - skip unlimited entries and zero-entitlement entries (e.g.
premium_interactionson plans without premium requests), and note whenoverage_permittedis true; - show one row per GitHub login, so the same account on several environments counts once.
The endpoint is undocumented (copilot_internal), so the reader should treat a missing or failed response as "no limits reported" rather than as an error. Mobile also needs a "GitHub Copilot" label (DRIVER_LABEL in UsageLimitsPooled.tsx).
Related: #18235 (the same gap for Muse Code), #193 (original Copilot CLI support).
Filed with Claude Opus 5.5 in GitHub Copilot CLI.
Activity