{"version":"2.1.269","anchor":"tmux-detection-is-now-a-tri-state-and-shells-out-to-a-resol","canonical_anchor":"tmux-detection-is-now-a-tri-state-and-shells-out-to-a-resol","heading":"tmux detection is now a tri-state, and shells out to a resolved tmux binary","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/tmux-detection-is-now-a-tri-state-and-shells-out-to-a-resol","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### tmux detection is now a tri-state, and shells out to a resolved tmux binary\n\ntmux detection now distinguishes 'no tmux' from 'couldn't check' and shells out more safely\n\n**What**\n\nThe check for whether Claude Code is running inside tmux (a terminal multiplexer) used to return a simple true\/false, treating 'no TMUX environment variable' and 'tmux was queried but the call failed' the same way. It now returns one of three states: `absent`, `unknown`, or `ambient`, so those two cases can be told apart. The check also now resolves the actual `tmux` binary to run and passes it an explicit environment and working directory, instead of inheriting the calling shell's.\n\n**Why**\n\nDistinguishing 'tmux isn't there' from 'tmux is there but couldn't be checked' lets Claude Code make more accurate decisions about tmux-dependent behavior, and running the resolved binary with an explicit environment makes the check more reliable and predictable.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 1\/5"}