Terminal-mode sessions spin at 100% CPU: Ink rendering loop never starts after Stream started (macOS arm64)

Resolved 💬 6 comments Opened Jan 31, 2026 by KCW89 Closed Jan 31, 2026

Summary

When github@claude-plugins-official is installed but has no OAuth token configured, starting Claude Code in terminal mode (claude without --ide) causes the process to become a zombie — stuck at 90%+ CPU during startup, never reaching the interactive prompt.

Environment

  • Claude Code: 2.1.27
  • macOS: 26.2 (Build 25C56)
  • Architecture: arm64 (Apple Silicon M1)
  • Node.js: v20.19.0

Steps to Reproduce

  1. Install github@claude-plugins-official via /plugin
  2. Do NOT complete OAuth setup for GitHub (no token)
  3. Open a project that has mcp__plugin_github_github__* permissions in .claude/settings.local.json
  4. Run claude (terminal mode, not --ide)
  5. Session hangs at "Clauding…" forever, never reaches interactive prompt
  6. Process consumes 90%+ CPU

Observed Behavior

The GitHub MCP server starts and connects successfully to api.githubcopilot.com, but repeatedly logs "No token data found" (6 times in ~1 second). After the final token failure, the debug log stops — the session never reaches "Stream started".

Zombie session debug log (session 097c6977, sandbox-2.0 project, 348 lines total — never starts):

09:07:43.373 MCP server "plugin:github:github": Initializing HTTP transport to https://api.githubcopilot.com/mcp/
09:07:43.397 MCP server "plugin:github:github": Starting connection with timeout of 30000ms
09:07:43.402 MCP server "plugin:github:github": No token data found        ← 1st
09:07:44.238 MCP server "plugin:github:github": No token data found        ← 2nd
09:07:44.529 MCP server "plugin:github:github": No token data found        ← 3rd
09:07:44.529 MCP server "plugin:github:github": Successfully connected to http server in 1156ms
09:07:44.529 MCP server "plugin:github:github": Connection established with capabilities: {...}
09:07:44.529 MCP server "plugin:github:github": No token data found        ← 4th
09:07:44.529 MCP server "plugin:github:github": No token data found        ← 5th
09:07:44.529 MCP server "plugin:github:github": No token data found        ← 6th
<<< LOG ENDS HERE — session never reaches "Stream started" >>>

This pattern reproduced identically across multiple zombie sessions (f8c5aa24 and 097c6977).

Working session debug log (session 039f1d42, content-warehouse project, 568 lines — starts successfully):

09:07:34.259 Loading plugin github from source: "./external_plugins/github"  ← plugin loaded
09:07:34.773 MCP server "plugin:playwright:playwright": Starting connection...
09:07:34.777 MCP server "plugin:context7:context7": Starting connection...
09:07:34.824 MCP server "plugin:supabase:supabase": Starting connection...
<<< NO "plugin:github:github" MCP server started >>>
09:07:35.658 MCP server "plugin:supabase:supabase": Successfully connected
09:07:36.500 MCP server "plugin:playwright:playwright": Successfully connected
09:07:36.690 MCP server "plugin:context7:context7": Successfully connected
09:07:38.497 Stream started - received first chunk                          ← SUCCESS

Key Difference

| Property | Zombie Session | Working Session |
|----------|---------------|-----------------|
| GitHub MCP started | ✅ Yes | ❌ No |
| "No token data found" | 6 times | 0 times |
| MCP servers total | 4 (playwright, context7, supabase, github) | 3 (playwright, context7, supabase) |
| Reaches "Stream started" | ❌ Never | ✅ Yes |
| CPU usage | 90%+ (zombie) | Normal |

The working session had the GitHub plugin loaded (line 114-117) but did NOT start the GitHub MCP server because the project didn't have mcp__plugin_github_github__* permissions. The zombie session had both the plugin loaded AND the MCP server started.

Expected Behavior

When the GitHub plugin has no OAuth token, it should either:

  1. Fail gracefully — log a warning and skip the GitHub MCP server, allowing the session to start normally
  2. Prompt for authentication — ask the user to authenticate instead of silently failing in a loop
  3. Not block session startup — the missing token for one MCP server should not prevent the entire session from starting

Workaround

Uninstalling the GitHub plugin via /pluginUninstall plugingithub@claude-plugins-official resolves the issue. After uninstalling, sessions start normally in both terminal and IDE modes.

Additional Context

  • The issue does NOT affect --ide mode (VS Code) — only plain terminal claude commands
  • The same GitHub plugin + no token combination works fine in VS Code, suggesting different initialization paths
  • SIGTERM (kill) does not terminate the zombie processes; SIGKILL (kill -9) is required
  • Multiple simultaneous zombie sessions can accumulate if the user retries launching Claude

View original on GitHub ↗

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