[BUG] Claude Code for Desktop always shows "Claude API Account" instead of subscription account (NOT caused by API key)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Note on version: Terminal Claude Code is latest (v2.0.53), but Claude Desktop embeds v2.0.45 which cannot be updated by users. This bug report is about the embedded version in Claude Desktop.
Claude Code embedded in Claude Desktop always shows "Login method: Claude API Account" even though I have an active Max subscription and successfully authenticate with my subscription account. The terminal version of Claude Code (v2.0.53) works correctly with the same account.
This issue is NOT caused by $ANTHROPIC_API_KEY environment variable (confirmed empty via env | grep -i ANTHROPIC).
What Should Happen?
Should show "Login method: Claude Max Account" and use subscription billing, same as terminal version.
Error Messages/Logs
Steps to Reproduce
- Open Claude Desktop (v1.0.1217)
- Start Claude Code for Desktop
- Run
/logoutthen/login - Select "1. Claude account with subscription"
- Complete browser authentication (shows success)
- Run
/status - Observe: Shows "Login method: Claude API Account" instead of "Claude Max Account"
Note: Terminal version (claude command, v2.0.53) works correctly with same account.
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.45 (embedded in Claude Desktop) / 2.0.53 (terminal - works correctly)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Troubleshooting Attempted (all unsuccessful)
Authentication
- Multiple
/logout→/logincycles - Deleted all macOS Keychain entries ("Claude Safe Storage", "Claude Code-credentials")
- Deleted authentication tokens from Claude Desktop Settings → Claude Code → "Manage authentication tokens" (showed "already revoked" but tokens remained)
- Logged in via terminal first, then launched Desktop
Configuration
- Added
"forceLoginMethod": "claude"to~/.claude/settings.json - Verified
~/.claude.jsoncontains correctoauthAccountwithorganizationBillingType: "stripe_subscription" - Removed
ANTHROPIC_API_KEYfrom~/.env - Confirmed no
ANTHROPIC_API_KEYin environment variables (env | grep -i ANTHROPICreturns empty)
Reinstallation
- Completely uninstalled Claude Desktop
- Deleted all related directories:
~/Library/Application Support/Claude~/Library/Caches/Claude~/Library/Saved Application State/com.anthropic.claude.savedState~/Library/Preferences/com.anthropic.claude.plist~/Library/HTTPStorages/com.anthropic.claude- Deleted
~/.claude.json - Reinstalled Claude Desktop from https://claude.com/download
- Fresh setup - still shows API Account
Key Observations
- Terminal version works correctly: Running
claudein terminal shows "Login method: Claude Max Account"
- Desktop creates separate Keychain entries: Claude Desktop creates "Claude Safe Storage", separate from "Claude Code-credentials" created by terminal
- Authentication tokens accumulate: Claude Desktop Settings → Claude Code shows multiple tokens that cannot be deleted (show "already revoked")
Difference from #12352
This is NOT caused by $ANTHROPIC_API_KEY:
env | grep -i ANTHROPICreturns empty- No ANTHROPIC vars in shell config files
- Issue persists after removing API key from
~/.env
Configuration Files
~/.claude.json confirms subscription:
"oauthAccount": {
"organizationBillingType": "stripe_subscription"
}
Related Issues
- #4354, #6955, #12352 (different root cause)
Workaround
Using terminal claude command which correctly recognizes Max subscription.
11 Comments
Found 2 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This is NOT a duplicate of #12249 or #4354. Here are the key differences:
Difference from #12249
$ANTHROPIC_API_KEYenvironment variable (env | grep -i ANTHROPICreturns empty). The embedded Claude Code simply defaults to "API Account" mode with no actual API key.Difference from #4354
Unique characteristics of this bug
This appears to be a bug specific to how Claude Desktop's embedded Claude Code handles authentication, separate from the standalone terminal version.
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
Also experiencing this on Windows 11 + VS Code extension (v2.0.75).
Same symptoms:
Opus 4.5 · Claude APIOpus 4.5 · Claude Max · OrganizationsubscriptionType: "max"andrateLimitTier: "default_claude_max_5x"/logindoesn't fix itConfirming this affects both macOS Claude Desktop and Windows VS Code extension.
See also issue 16238.
I believe claude developers are avoiding this issue. Just found out I once remotely connected to a client's remote ssh and used claude on from vscode. Claude silently add .claude.json will all my fucking details, seriously claude just publish my API nd details on instagram publically. And I know why they wont fucking fix it, they are not even accepting this is an issue, because changing this will break a lot of claude's functionality which will cost them revenue. I found this out when my usage was magically depleting as other dev on my client's side used claude code and it automatically picked up my creds from ~/.claude.json
So claude are you prioritising your revenue over user's actual data which cost them money? You know you have signed numerous agreements for data privacy which you are intentionally breaking? You know if someone files a complaint you will be seeing a class action lawsuite and hefty fines for breaking data security?
So let's not make it happen, and instead of fucking around protect your user's API data.
P.S. not a max subscriber, just a pro subscription non API.
anthropic support's response to this has been sub-optimal. basically, they do not seem to want to take responsibility for significant losses incurred by users as a result of this issue.
same problem, i setup using openrouter, but then decided to subscribe, and after logged in using the claude, it is still using my API tokens
found issue: I have to restart vscode to clear the env
Closing for now — inactive for too long. Please open a new issue if this is still relevant.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.