Claude Code 2.1.71: Loop Commands & Voice Rebinding

Loop commands, rebindable voice keys, and 18 fixes for stdin freezes, startup hangs, forked conversations, and plugin conflicts in Claude Code 2.1.71.

Claude Code 2.1.71: Loop Commands & Voice Rebinding

TL;DR

  • New /loop command runs prompts on recurring intervals
  • Voice activation key now rebindable in keybindings.json
  • Major fixes for stdin freeze, startup hangs, and forked conversation conflicts
  • Bash allowlist expanded with 10 new utilities

New

  • /loop command — Run a prompt or slash command on a recurring interval (e.g., /loop 5m check the deploy)
  • Cron scheduling tools — Schedule recurring prompts within a session
  • voice:pushToTalk keybinding — Make voice activation rebindable in keybindings.json; default is space, but modifier+letter combos like meta+k have zero typing interference
  • Bash allowlist expansion — Added fmt, comm, cmp, numfmt, expr, test, printf, getconf, seq, tsort, and pr to auto-approval

Fixed

  • Stdin freeze in long-running sessions — Keystrokes stopped being processed but the process stayed alive
  • 5–8 second startup freeze with voice mode — CoreAudio initialization was blocking the main thread after system wake
  • Startup UI freeze on OAuth refresh — Multiple claude.ai proxy connectors refreshing expired tokens simultaneously caused hangs
  • Forked conversations overwriting plans/fork was sharing the same plan file, causing edits in one fork to overwrite the other
  • Oversized images breaking context — Read tool was putting unprocessed images into context, breaking subsequent turns in image-heavy sessions
  • False-positive permission prompts — Compound bash commands with heredoc commit messages were triggering unnecessary prompts
  • Plugin installations lost across instances — Running multiple Claude Code instances caused plugin loss
  • claude.ai connector reconnection failures — Connectors failed to reconnect after OAuth token refresh
  • Duplicate MCP startup notifications — Notifications appeared for every org-configured connector instead of only previously connected ones
  • Missing output file paths in agent notifications — Background agent completion notifications lacked file paths, breaking result recovery after context compaction
  • Duplicate bash error messages — Commands exiting with non-zero status produced duplicate output
  • Chrome extension detection stuck — Auto-detection got permanently stuck on "not installed" after running on a machine without local Chrome
  • /plugin marketplace update merge conflicts — Failed when marketplace was pinned to a branch/tag ref
  • /plugin marketplace add ref parsing@ separator was incorrectly parsed; only # worked, causing undiagnosable errors with strictKnownMarketplaces
  • Duplicate permission entries — Same directory added with and without trailing slash created duplicates in /permissions Workspace tab
  • --print hanging with team agents — Exit loop was waiting on long-lived in_process_teammate tasks
  • "Tool loaded" spam in REPL — Message appeared after every ToolSearch call
  • Windows mingw-style path prompts — Model using mingw paths triggered unnecessary cd && git prompts

Improved

  • Startup time — Native image processor loading deferred to first use
  • Bridge session reconnection — Now completes within seconds after laptop wake from sleep instead of waiting up to 10 minutes
  • /plugin uninstall scope — Now disables project-scoped plugins in .claude/settings.local.json instead of modifying .claude/settings.json, so changes don't affect teammates
  • MCP server deduplication — Servers duplicating a manually-configured server (same command/URL) are now skipped, preventing duplicate connections; suppressions shown in /plugin menu
  • /debug command — Now toggles debug logging mid-session since debug logs are no longer written by default

Update with: npm install -g @anthropic-ai/claude-code@latest or check your IDE's extension marketplace for Claude Code 2.1.71.

Source: Claude Code