Preflight Checklist
What's Wrong?
Environment
- OS: Windows 11 + WSL2 Ubuntu 22.04
- Claude Code Version: 2.1.92
- Account: Claude Max subscription (active)
Bug
claude auth login in WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.
As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
- WSL2 Ubuntu 22.04, no ANTHROPIC_API_KEY set
- Run: claude auth login
- Browser opens, OAuth completes, code is generated
- Terminal does not accept the code — no keyboard input works (Ctrl+V, right-click, typing)
What was tried
- Removed ANTHROPIC_API_KEY from .bashrc ✅
- Deleted ~/.claude/.credentials.json ✅
- CLAUDE_CODE_DISABLE_HOOKS=1 claude auth login — same result ✅
- wsl -d Ubuntu-22.04 -- bash -c "claude auth login" from PowerShell — same result ✅
- wsl -d Ubuntu-22.04 -e bash -i -c "claude auth login" — same result ✅
- env -i HOME=$HOME PATH=... claude auth login — same result ✅
Workaround
Install Claude Code on Windows natively, run claude auth login from PowerShell, then copy %USERPROFILE%\.claude\.credentials.json to \\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).
Expected behavior
claude auth login should accept the OAuth code in WSL2 terminal.
Request
- Fix WSL2 stdin handling for OAuth code input
- Or provide a
claude auth login --code <code> flag to pass the code directly
What Should Happen?
Environment
- OS: Windows 11 + WSL2 Ubuntu 22.04
- Claude Code Version: 2.1.92
- Account: Claude Max subscription (active)
Bug
claude auth login in WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.
As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
- WSL2 Ubuntu 22.04, no ANTHROPIC_API_KEY set
- Run: claude auth login
- Browser opens, OAuth completes, code is generated
- Terminal does not accept the code — no keyboard input works (Ctrl+V, right-click, typing)
What was tried
- Removed ANTHROPIC_API_KEY from .bashrc ✅
- Deleted ~/.claude/.credentials.json ✅
- CLAUDE_CODE_DISABLE_HOOKS=1 claude auth login — same result ✅
- wsl -d Ubuntu-22.04 -- bash -c "claude auth login" from PowerShell — same result ✅
- wsl -d Ubuntu-22.04 -e bash -i -c "claude auth login" — same result ✅
- env -i HOME=$HOME PATH=... claude auth login — same result ✅
Workaround
Install Claude Code on Windows natively, run claude auth login from PowerShell, then copy %USERPROFILE%\.claude\.credentials.json to \\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).
Expected behavior
claude auth login should accept the OAuth code in WSL2 terminal.
Request
- Fix WSL2 stdin handling for OAuth code input
- Or provide a
claude auth login --code <code> flag to pass the code directly
Error Messages/Logs
**Environment**
- OS: Windows 11 + WSL2 Ubuntu 22.04
- Claude Code Version: 2.1.92
- Account: Claude Max subscription (active)
**Bug**
`claude auth login` in WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.
As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
**Steps to reproduce**
1. WSL2 Ubuntu 22.04, no ANTHROPIC_API_KEY set
2. Run: claude auth login
3. Browser opens, OAuth completes, code is generated
4. Terminal does not accept the code — no keyboard input works (Ctrl+V, right-click, typing)
**What was tried**
- Removed ANTHROPIC_API_KEY from .bashrc ✅
- Deleted ~/.claude/.credentials.json ✅
- CLAUDE_CODE_DISABLE_HOOKS=1 claude auth login — same result ✅
- wsl -d Ubuntu-22.04 -- bash -c "claude auth login" from PowerShell — same result ✅
- wsl -d Ubuntu-22.04 -e bash -i -c "claude auth login" — same result ✅
- env -i HOME=$HOME PATH=... claude auth login — same result ✅
**Workaround**
Install Claude Code on Windows natively, run `claude auth login` from PowerShell, then copy `%USERPROFILE%\.claude\.credentials.json` to `\\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json`. This works but requires manual intervention every time the token expires (~1 hour).
**Expected behavior**
`claude auth login` should accept the OAuth code in WSL2 terminal.
**Request**
- Fix WSL2 stdin handling for OAuth code input
- Or provide a `claude auth login --code <code>` flag to pass the code directly
Steps to Reproduce
Environment
- OS: Windows 11 + WSL2 Ubuntu 22.04
- Claude Code Version: 2.1.92
- Account: Claude Max subscription (active)
Bug
claude auth login in WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.
As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
- WSL2 Ubuntu 22.04, no ANTHROPIC_API_KEY set
- Run: claude auth login
- Browser opens, OAuth completes, code is generated
- Terminal does not accept the code — no keyboard input works (Ctrl+V, right-click, typing)
What was tried
- Removed ANTHROPIC_API_KEY from .bashrc ✅
- Deleted ~/.claude/.credentials.json ✅
- CLAUDE_CODE_DISABLE_HOOKS=1 claude auth login — same result ✅
- wsl -d Ubuntu-22.04 -- bash -c "claude auth login" from PowerShell — same result ✅
- wsl -d Ubuntu-22.04 -e bash -i -c "claude auth login" — same result ✅
- env -i HOME=$HOME PATH=... claude auth login — same result ✅
Workaround
Install Claude Code on Windows natively, run claude auth login from PowerShell, then copy %USERPROFILE%\.claude\.credentials.json to \\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).
Expected behavior
claude auth login should accept the OAuth code in WSL2 terminal.
Request
- Fix WSL2 stdin handling for OAuth code input
- Or provide a
claude auth login --code <code> flag to pass the code directly
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
5 days ago
Claude Code Version
Claude Code Version: 2.1.92
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Environment
- OS: Windows 11 + WSL2 Ubuntu 22.04
- Claude Code Version: 2.1.92
- Account: Claude Max subscription (active)
Bug
claude auth login in WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.
As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
- WSL2 Ubuntu 22.04, no ANTHROPIC_API_KEY set
- Run: claude auth login
- Browser opens, OAuth completes, code is generated
- Terminal does not accept the code — no keyboard input works (Ctrl+V, right-click, typing)
What was tried
- Removed ANTHROPIC_API_KEY from .bashrc ✅
- Deleted ~/.claude/.credentials.json ✅
- CLAUDE_CODE_DISABLE_HOOKS=1 claude auth login — same result ✅
- wsl -d Ubuntu-22.04 -- bash -c "claude auth login" from PowerShell — same result ✅
- wsl -d Ubuntu-22.04 -e bash -i -c "claude auth login" — same result ✅
- env -i HOME=$HOME PATH=... claude auth login — same result ✅
Workaround
Install Claude Code on Windows natively, run claude auth login from PowerShell, then copy %USERPROFILE%\.claude\.credentials.json to \\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).
Expected behavior
claude auth login should accept the OAuth code in WSL2 terminal.
Request
- Fix WSL2 stdin handling for OAuth code input
- Or provide a
claude auth login --code <code> flag to pass the code directly
Preflight Checklist
What's Wrong?
Environment
Bug
claude auth loginin WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
What was tried
Workaround
Install Claude Code on Windows natively, run
claude auth loginfrom PowerShell, then copy%USERPROFILE%\.claude\.credentials.jsonto\\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).Expected behavior
claude auth loginshould accept the OAuth code in WSL2 terminal.Request
claude auth login --code <code>flag to pass the code directlyWhat Should Happen?
Environment
Bug
claude auth loginin WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
What was tried
Workaround
Install Claude Code on Windows natively, run
claude auth loginfrom PowerShell, then copy%USERPROFILE%\.claude\.credentials.jsonto\\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).Expected behavior
claude auth loginshould accept the OAuth code in WSL2 terminal.Request
claude auth login --code <code>flag to pass the code directlyError Messages/Logs
Steps to Reproduce
Environment
Bug
claude auth loginin WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
What was tried
Workaround
Install Claude Code on Windows natively, run
claude auth loginfrom PowerShell, then copy%USERPROFILE%\.claude\.credentials.jsonto\\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).Expected behavior
claude auth loginshould accept the OAuth code in WSL2 terminal.Request
claude auth login --code <code>flag to pass the code directlyClaude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
5 days ago
Claude Code Version
Claude Code Version: 2.1.92
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Environment
Bug
claude auth loginin WSL2 opens the browser correctly and generates the OAuth URL, but the terminal does not accept any keyboard input to paste the OAuth code returned by the browser. The terminal appears frozen waiting for input that never registers.As a result, Claude Code displays "Sonnet 4.6 · API Usage Billing" instead of "Claude Max" and shows "Not logged in · Run /login" permanently.
Steps to reproduce
What was tried
Workaround
Install Claude Code on Windows natively, run
claude auth loginfrom PowerShell, then copy%USERPROFILE%\.claude\.credentials.jsonto\\wsl$\Ubuntu-22.04\home\user\.claude\.credentials.json. This works but requires manual intervention every time the token expires (~1 hour).Expected behavior
claude auth loginshould accept the OAuth code in WSL2 terminal.Request
claude auth login --code <code>flag to pass the code directly