What you get
Without it, an idle session and a session that’s been compiling for three minutes look identical.
It doesn’t touch your dotfiles
Nothing is written to your
~/.zshrc, ~/.bashrc or ~/.zprofile. Ever. Not at install, not on first use, not when you flip the toggle.0700 permissions, verified on every use (right owner, nobody else gets in) — and points that session’s shell there, via an environment variable. Its files start by sourcing yours, and only then install the hooks.
The consequence: your configuration runs in full, in its usual order, and TYBA comes in last. If it fails, your shell carries on — the hooks were written not to take the session down, not even under set -e.
It’s the same pattern VS Code and iTerm2 use. Uninstalling TYBA leaves no residue anywhere: there is no residue to leave.
Where it works
The toggle is called “Shell integration (zsh)” because zsh is the main path and macOS’s default. It governs both: turn it off and neither zsh nor bash gets hooks.
$SHELL — there’s no configurable default shell. If you want the hooks, the way there is having zsh or bash as your shell.
This is not what gives agent sessions their status
Agent sessions don’t depend on shell integration. Turning the toggle off doesn’t degrade your agents’ status.
The agent reports on its own: the tool about to run becomes
Running, the end of a turn becomes Idle, a request for an answer becomes AwaitingInput. It’s the same channel as the approvals inbox, and it exists independently of your shell — see how TYBA talks to the agent.
What shell integration does give agents is something else: detecting an agent running inside an ordinary shell. You typed claude in a shell pane — TYBA finds that out from the command line the shell reports, and it’s the integration doing the reporting.
Turning it off
Settings → Code → Shell integration, toggle off. It applies to new sessions — the hooks go in when the shell is born, so sessions already open stay as they are until you open another. A legitimate reason to turn it off: your shell has an exotic config and something started behaving strangely — a duplicated prompt,PROMPT_COMMAND fighting back, a plugin that doesn’t like company. Turning it off is the two-line test for whether TYBA is to blame.
What you lose:
See also
Using the terminal
What changes and what doesn’t in the terminal.
User settings
Where the toggle lives, and the rest of the Code section.