[BUG] Claude Code for Desktop always shows "Claude API Account" instead of subscription account (NOT caused by API key)

Resolved 💬 11 comments Opened Nov 25, 2025 by wkumagai Closed Mar 16, 2026

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

  1. Open Claude Desktop (v1.0.1217)
  2. Start Claude Code for Desktop
  3. Run /logout then /login
  4. Select "1. Claude account with subscription"
  5. Complete browser authentication (shows success)
  6. Run /status
  7. 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/login cycles
  • 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.json contains correct oauthAccount with organizationBillingType: "stripe_subscription"
  • Removed ANTHROPIC_API_KEY from ~/.env
  • Confirmed no ANTHROPIC_API_KEY in environment variables (env | grep -i ANTHROPIC returns 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

  1. Terminal version works correctly: Running claude in terminal shows "Login method: Claude Max Account"
  1. Desktop creates separate Keychain entries: Claude Desktop creates "Claude Safe Storage", separate from "Claude Code-credentials" created by terminal
  1. 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 ANTHROPIC returns 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.

View original on GitHub ↗

This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗