Skip to content

Bug: API Key mode prompts for OAuth login when starting chat #165

@minty1202

Description

@minty1202

Description

When using "Anthropic API Key" billing method, the app prompts for OAuth login when attempting to start a chat, instead of using the provided API key.

Steps to Reproduce

  1. Launch the app
  2. Select "Anthropic API Key" on the billing method screen
  3. Enter a valid API key (sk-ant-...)
  4. Select a project folder
  5. Try to start a chat

Expected Behavior

The chat should work using the provided API key without prompting for OAuth.

Actual Behavior

The app prompts for OAuth login, ignoring the API key that was entered.

Root Cause

Environment variable name mismatch in src/main/lib/trpc/routers/claude.ts:

  • Line 981: API key is added as ANTHROPIC_AUTH_TOKEN
  • Line 1171: Code checks for ANTHROPIC_API_KEY
// Line 979-986: API key added as ANTHROPIC_AUTH_TOKEN
const claudeEnv = buildClaudeEnv({
  ...(finalCustomConfig && {
    customEnv: {
      ANTHROPIC_AUTH_TOKEN: finalCustomConfig.token,  // Wrong variable name
      ANTHROPIC_BASE_URL: finalCustomConfig.baseUrl,
    },
  }),
  enableTasks: input.enableTasks ?? true,
})

// Line 1170-1172: Checking for ANTHROPIC_API_KEY
const hasExistingApiConfig = !!(
  claudeEnv.ANTHROPIC_API_KEY || claudeEnv.ANTHROPIC_BASE_URL  // Different variable name
)

Proposed Fix

Change ANTHROPIC_AUTH_TOKEN to ANTHROPIC_API_KEY on line 981:

  const claudeEnv = buildClaudeEnv({
    ...(finalCustomConfig && {
      customEnv: {
-       ANTHROPIC_AUTH_TOKEN: finalCustomConfig.token,
+       ANTHROPIC_API_KEY: finalCustomConfig.token,
        ANTHROPIC_BASE_URL: finalCustomConfig.baseUrl,
      },
    }),
    enableTasks: input.enableTasks ?? true,
  })

Environment

  • macOS: 14.6.0 (Darwin 24.6.0)
  • App version: 0.0.60-beta.4
  • Mode: Development (bun run dev)

Additional Notes

This appears to be introduced when API key support was added. The Claude CLI expects ANTHROPIC_API_KEY, not ANTHROPIC_AUTH_TOKEN.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions