app:toggleTodos keybinding only works with Teammates feature, not with regular background agents

Resolved 💬 3 comments Opened Mar 14, 2026 by charl2x Closed May 4, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

The app:toggleTodos action (default ctrl+t) does nothing when there are background agents/tasks running via the Agent tool with run_in_background: true.

Inspecting the minified source reveals that the handler checks getAllInProcessTeammateTasks and only toggles the panel if there are teammate tasks with status === "running":

q((E) => {
  let { getAllInProcessTeammateTasks: T } = (Dv(), hf(K3f));
  if (T(E.tasks).filter((k) => k.status === "running").length > 0)
    switch (E.expandedView) {
      case "none": return { ...E, expandedView: "tasks" };
      // ...
    }
})

This means the keybinding is effectively gated behind the "Teammates" feature. Regular background subagents launched via the Agent tool are not classified as "teammate tasks", so the condition always fails and the shortcut is a no-op.

Meanwhile, the /tasks slash command works fine and displays all background tasks regardless of type.

What Should Happen?

app:toggleTodos should toggle the tasks panel for all background tasks, not just teammate tasks. The behavior should match /tasks.

Steps to Reproduce

  1. Launch Claude Code (v2.1.76)
  2. Ask Claude to run a long background agent (e.g., codebase exploration)
  3. Press ctrl+t (or any key bound to app:toggleTodos) → nothing happens
  4. Type /tasksworks correctly, shows the background task

Claude Code Version

2.1.76 (Claude Code)

Platform

Anthropic API (direct)

Operating System

WSL2 Ubuntu on Windows 11

Terminal/Shell

WezTerm + zsh

Additional Information

  • Custom keybindings in ~/.claude/keybindings.json were tested (both default ctrl+t and custom alt+j)
  • The keybinding file was validated (correct JSON, correct action name)
  • Other Global keybindings (ctrl+o for app:toggleTranscript, ctrl+r for history:search) work perfectly
  • cat -v confirms the terminal correctly sends ^T for ctrl+t
  • Tested with empty keybindings.json (defaults only) — same result

View original on GitHub ↗

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