Bash tool does not pass terminal escape sequences to parent TTY

Resolved 💬 8 comments Opened Feb 6, 2026 by brucedombrowski Closed Mar 6, 2026

Summary

Terminal escape sequences (e.g., setting tab/window title) executed via the Bash tool are captured by Claude Code instead of being passed through to the parent terminal. This is basic terminal functionality that should just work.

Steps to Reproduce

  1. Open Claude Code in Apple Terminal (or any terminal emulator)
  2. Ask Claude to set the terminal tab title
  3. Claude runs: printf '\033]0;My Title\007'
  4. The escape sequence is captured and displayed as literal text instead of reaching the terminal

Expected Behavior

printf '\033]0;My Title\007' sets the tab title — the same as if the user typed it. The Bash tool should pass escape sequences through to the parent TTY.

Why This Matters

Multi-agent workflows need tab titles to distinguish contexts. CLAUDE.md files instruct agents to echo -ne "\033]0;Role Name\007" at session start. This works when typed manually but fails when Claude executes it, which defeats the purpose.

Millions of developers use Apple Terminal. Setting a tab title has been standard since the 1980s. This should just work.

Environment

  • macOS, Apple Terminal
  • Claude Code CLI

View original on GitHub ↗

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