DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.
Device-flow docs describe the surface parameter Claude Code sends
Under the hood
Useful2Signal3
Auth
OAuth docs now note that Claude Code sends a surface parameter and its own user agent.
What's wrong with this entry?
Anonymous. No account, no email.
surface=claude_code
What
The OAuth device-authorization documentation for third-party server implementors now records that the request body may carry a surface extension parameter, that Claude Code sends surface=claude_code, and that it sends a claude-code user agent on metadata, device, token and refresh requests.
Evidence
surface=claude_code
Strings lifted out of the shipped bundle, so the claim above can be checked against them.