Claude Code Stores OAuth Tokens in Plaintext
Points: 2 # Comments: 0 Claude Code Stores OAuth Tokens in Plaintext Coverage based on HN Claude/Codex/Fable reporting Why it matters for engineering teams.
By Dillip Chowdary • Sep 03, 2026 • Source: HN Claude/Codex/Fable
What happened
The security blog Secretspec published a post detailing how the Claude Code command line tool stores sensitive OAuth tokens as unencrypted plaintext within the local directory structure. When developers authenticate their terminal tool with the cloud service, the application saves the resulting access tokens directly to the hard drive without applying any form of encryption or system keychain integration. This issue emerged on Hacker News under item id 49545023, where it
Claude Code Stores OAuth Tokens in Plaintext Sep 2, 2026 Domen Kožar Claude Code’s MCP documentation says authentication tokens are “stored securely”. On Linux, that currently means plaintext JSON protected by file permissions.
How it works

I checked Claude Code 2.1.257 after authenticating to several remote MCP servers. The file ~/.claude/.credentials.json had mode 0600, as it should, but it also contained a top-level mcpOAuth object with the access tokens.
Advertisement
Tech Pulse Daily
Get tomorrow's pulse first
Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.
Why it matters
macOS: uses the encrypted macOS Keychain, falling back to ~/.claude/.credentials.json when the Keychain is unavailable. See the full write-up from HN Claude/Codex/Fable via the source link for quotes and complete context.
Who is affected
Read the original coverage at HN Claude/Codex/Fable via the source link above for the complete details and primary quotes.
What to watch next
Cross-check release notes and official docs before changing production systems based on early reporting.
Developer Action Items
- ☐ Diff the official changelog for Claude / macOS / Linux 2.1.257 before you bump — APIs, defaults, and removed flags only.
- ☐ Install through the vendor's documented channel in staging; keep a one-command rollback and time-box the canary.
- ☐ Grep your repo for old flag names, lockfile pins, and plugin versions that the notes mark as breaking.
- ☐ Prefer the first patch cut over the day-zero tag unless you have a reason to be on the leading edge.
- ☐ If HN Claude/Codex/Fable did not name a region, plan, or SKU, screenshot the official availability line before you promise it to users.
Author
Dillip Chowdary
Writes Tech Bytes coverage of AI, engineering, and the tools that actually ship. Editor of Tech Pulse Daily.
Related on Tech Bytes
Advertisement