[BUG] Interactive TUI mode hangs indefinitely on macOS — --print mode works fine (v2.1.81, Max plan)

Resolved 💬 3 comments Opened Mar 23, 2026 by 01-lee-a11y Closed Mar 26, 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?

Bug Description

Claude Code interactive mode (TUI) hangs indefinitely on launch. The process starts (visible in terminal title bar as node · claude) but never renders any UI — no trust dialog follow-up, no login prompt, no input cursor. The terminal becomes completely unresponsive, including Ctrl+C.

Non-interactive modes work perfectly: --version, auth status, auth login (browser OAuth flow), and --print all execute and return immediately.

Environment

  • Claude Code version: v2.1.81 (also reproduced on v2.1.52 downgrade)
  • OS: macOS (Apple Silicon)
  • Plan: Max (subscriptionType: "max")
  • Auth: claude.ai (firstParty, not API key)
  • Node.js: working (node -e "console.log('ok')" returns immediately)
  • Terminal: macOS Terminal.app, window sizes tested: 80x24, 131x71, 182x55, 269x71

Steps to Reproduce

  1. claude --version → returns 2.1.81 (Claude Code) immediately ✅
  2. claude auth status → returns valid JSON with loggedIn: true, subscriptionType: "max"
  3. claude --print "hello" → returns response immediately ✅
  4. claude → process starts (title bar shows node · claude), blank screen, no UI, completely unresponsive ❌
  5. TERM=dumb claude → same hang ❌

Troubleshooting Already Attempted (ALL failed)

  • Complete ~/.claude/ directory reset (mv ~/.claude ~/.claude.bak) — fresh folder created, still hangs
  • Removed Claude Desktop MCP config (claude_desktop_config.json)
  • Removed ~/.claude/plugins/ directory
  • Emptied settings.json and settings.local.json to {}
  • Quit Claude Desktop app completely
  • killall -9 node / killall -9 Claude between every attempt
  • Downgraded to v2.1.52 — same hang
  • TERM=dumb claude — same hang
  • macOS full reboot (twice)
  • Tested in multiple terminal windows, full screen, different directories
  • Tested in empty /tmp/claude-test directory — same hang
  • Verified no residual node processes via ps aux | grep node
  • Restored original ~/.claude/ from backup — same hang

Key Observation

The trust dialog renders correctly. After selecting "Yes, I trust this folder" and pressing Enter, the screen clears and the process hangs with a blank screen. The hang occurs after trust acceptance, during the next TUI initialization step.

Expected Behavior

After accepting workspace trust, Claude Code should display the interactive session prompt.

Actual Behavior

Screen clears after trust acceptance and process hangs indefinitely. No output, no cursor, terminal completely unresponsive. Only force-kill (killall -9 node or Cmd+Q Terminal) can terminate it.

Additional Context

  • This issue started on March 23, 2026 while attempting to set up Remote Control
  • Interactive mode was working normally as recently as March 18, 2026 (confirmed via project PROGRESS.md logs — SSH remote setup, CLAUDE.md creation, full interactive sessions)
  • The issue persists across clean installs, version downgrades, and complete config resets
  • --print mode works perfectly, confirming the bug is isolated to the TUI/ink rendering initialization path
  • 24 plugins were previously enabled in settings.json — but hang persists even with settings.json set to {}
  • MCP servers (playwright, github, context7, google-docs) were configured — but hang persists even with all MCP configs removed

Impact: Unable to use Claude Code interactive mode, Remote Control, or any TUI-dependent feature. This is a complete blocker for a Max plan subscriber running a web development studio with multiple active ERP projects.

What Should Happen?

After accepting workspace trust, Claude Code should display the interactive session prompt and accept user input normally.

Error Messages/Logs

No error output is produced. The process hangs silently with a blank screen.

$ claude auth status
{
    "loggedIn": true,
    "authMethod": "claude.ai",
    "apiProvider": "firstParty",
    "email": "01-lee@withpic.net",
    "orgId": "af51ecfa-ce65-4143-b1dd-66f83d99b59a",
    "orgName": "01-lee@withpic.net's Organization",
    "subscriptionType": "max"
}

$ claude --print "hello"
Hello! How can I help you today?

$ claude
[hangs indefinitely — blank screen, no output, Ctrl+C unresponsive]

Steps to Reproduce

  1. Confirm working non-interactive modes:
  • claude --version → returns 2.1.81 (Claude Code) immediately ✅
  • claude auth status → returns valid JSON with loggedIn: true, subscriptionType: "max"
  • claude --print "hello" → returns response immediately ✅
  1. Run interactive mode:
  • claude → process starts (title bar shows node · claude)
  • Trust dialog renders correctly: "Accessing workspace: /Users/lee-hyeongwoo"
  • Select "1. Yes, I trust this folder" → press Enter
  1. Observe: screen clears, blank screen, process hangs indefinitely. Terminal unresponsive including Ctrl+C.
  1. Also tested: TERM=dumb claude → same hang after trust acceptance
  1. Also tested: mkdir /tmp/claude-test && cd /tmp/claude-test && claude → same hang in empty directory

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.81 (Claude Code) — worked on March 18, 2026

Claude Code Version

2.1.81 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

  • Issue started on March 23, 2026 while attempting to set up Remote Control feature
  • Interactive mode was working normally as recently as March 18, 2026 (confirmed via project PROGRESS.md git logs — SSH remote setup, CLAUDE.md creation, full interactive sessions all worked)
  • The issue persists across clean installs, version downgrades (v2.1.52), and complete config resets
  • --print mode works perfectly, confirming the bug is isolated to the TUI/ink rendering initialization path
  • 24 plugins were previously enabled in settings.json — hang persists even with settings.json set to {}
  • MCP servers (playwright, github, context7, google-docs) were configured — hang persists even with all MCP configs removed
  • Claude Desktop app quit, macOS rebooted twice — no change
  • ps aux | grep node during hang shows MCP-related child processes spawning but no claude main process visible

Troubleshooting exhaustively attempted (2+ hours):
Complete ~/.claude/ reset, MCP config removal, plugins removal, settings reset, Claude Desktop quit, killall node, version downgrade, TERM=dumb, reboot x2, empty directory test, original config restore — ALL failed.

Impact: Complete blocker for Max plan subscriber. Cannot use interactive mode, Remote Control, /bug, /doctor, or any TUI-dependent feature.

View original on GitHub ↗

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