Skip to content
GEOstack
spend-caps incidents

Why Microsoft cut internal Claude Code licenses

What Microsoft's May 2026 Claude Code cutoff and Uber's blown AI budget say about ungoverned agent spend — and where a cap actually has to live.

GEOstack · · 5 min read

$500–$2,000/engineer/mo — reported internal Claude Code usage

The short answer

In May 2026 Microsoft began cancelling most internal Claude Code licenses in its Experiences + Devices division, moving engineers to GitHub Copilot CLI by June 30. Heavy users were reportedly running $500–$2,000/month each in token spend. The lesson isn’t about Claude — it’s that nobody had put an enforced ceiling under per-engineer agent usage.

What actually happened

The timeline, from public reporting:

  • December 2025 — Microsoft opens Claude Code access to its Experiences + Devices division (Windows, Microsoft 365, Outlook, Teams, Surface). Thousands of engineers, PMs, and designers get licenses.
  • May 2026 — Rajesh Jha, EVP of the division, instructs teams to transition to GitHub Copilot CLI by June 30. Most internal Claude Code licenses are cancelled. Internal usage for heavy users had reportedly reached $500–$2,000 per engineer per month.
  • Same window — Uber’s CTO Praveen Neppalli Naga confirms the company exhausted its entire 2026 budget for agentic coding tools (Claude Code, Cursor) by April — four months into the fiscal year. On June 2, Uber confirmed to Bloomberg a new cap: $1,500 per employee per month, per tool.

There’s also the story everyone quotes: an enterprise client reportedly ran up ~$500M in Claude token spend in a single month after issuing licenses with no usage limits. That comes from an AI consultant’s account reported by Axios; the company is unnamed and the figure unconfirmed. Treat it as a story, not a stat. The Microsoft and Uber numbers, by contrast, are on the record — and they’re bad enough on their own.

Why this isn’t really about Claude Code

Microsoft has a strategic reason to prefer Copilot that has nothing to do with cost: it sells Copilot. Discount that part. The transferable lesson is in the mechanics.

Both companies did the same three things:

  1. Issued licenses broadly with no per-seat ceiling. Uber went further and encouraged maximum usage, with internal leaderboards ranking engineers by consumption. Adoption jumped from 32% to 84% of ~5,000 engineers by February 2026.
  2. Watched the spend on dashboards. The numbers were visible the whole time. Visibility didn’t stop anything — Uber’s budget was gone before the policy response existed.
  3. Responded after the fact with a blunt instrument. Microsoft: revoke the tool. Uber: a flat $1,500/engineer/month cap. Both are posterior corrections, and both punish productive usage along with wasteful usage.

Uber’s COO Andrew Macdonald said the quiet part out loud: token spend doesn’t yet map to shipped features. So you can’t justify uncapped spend with a productivity argument, and you can’t tell the wasteful 10% from the productive 10% on a dashboard.

The structural problem: spend is enforced nowhere

An agentic coding tool is a loop. Each iteration burns tokens, and nothing in the loop knows about your budget. Provider dashboards give you org-level monthly ceilings — when you hit one, everything stops, including the work you wanted. Gateway budgets (LiteLLM, Portkey) are better: per-key windows, 429 on breach. But for agents that act — not just generate code — token cost is the smaller exposure. The action an agent takes can cost real dollars while costing fractions of a cent in tokens.

The fix is a cumulative cap enforced at the action layer, per agent, fail-closed:

import { Arc } from "@geostack/arc"

const arc = new Arc({
  agent: "ci-refactor-bot",
  budget: { limit: 150_00, window: "1d" },  // $150/day, integer cents
})

// Each action reserves estimated cost before running, commits actual after.
// Action #N that would cross the cap is blocked or held for approval —
// the loop pauses; it doesn't keep billing while someone reads a dashboard.

Honest limits: a cap like this controls your agents and tool calls routed through your runtime. It would not have governed Microsoft engineers typing into a vendor’s CLI — for off-the-shelf tools you’re stuck with seat-level caps like Uber’s. But the moment those same engineers wire models into agents that ship code, file tickets, or touch production, the seat cap stops being the binding constraint and the action layer is the only place enforcement can live.

What to do before your April

  • Set a per-agent (or per-seat) ceiling on day one, not after the budget review. A defensible starting number: expected daily actions × typical cost × 3.
  • Make breach behavior pause-and-escalate, not silent failure. An agent that crashes at the cap loses work; an agent that holds for approval loses minutes.
  • Keep the dashboard — but treat it as the audit trail for a cap that’s enforced upstream, not as the control itself.

FAQ

Did Microsoft ban Claude Code entirely? No. Reporting says most licenses in the Experiences + Devices division were cancelled, with exceptions, and engineers were directed to GitHub Copilot CLI by June 30, 2026. Other divisions and Azure-hosted Anthropic models weren’t part of the directive.

Is the $500M Claude bill real? Unverified. It comes from an AI consultant’s account reported by Axios; the company is unnamed and the figure unconfirmed. The on-the-record facts — Microsoft’s license cuts at reported $500–$2,000/engineer/month usage, Uber’s budget exhausted by April and a $1,500/engineer/month cap — make the same point without the asterisk.

Would a spend cap have prevented Uber’s budget blowout? A per-engineer cap enforced from day one would have bounded it arithmetically: 5,000 engineers × $1,500/month is a known worst case. What a cap can’t do is tell you whether the spend was worth it — that’s Macdonald’s unsolved problem, and no vendor (including us) solves it yet.


Arc is the spend-and-action guardrail for AI agents — free Developer tier, no credit card: npm i @geostack/arc. Quickstart →

Written by the GEOstack team. We build Arc — an allow / ask / block guardrail for autonomous agents. Spot something off? Tell us.