Multiplexer
When hyprpilot launches inside tmux or zellij, it renames the current window / tab to hyprpilot@<cwd-basename> right before exec() — so you can tell agent panes apart at a glance.
Configuration
It is on by default:
multiplexer:
set_title: true # default; set false to opt out| Field | Type | Default | What it does |
|---|---|---|---|
set_title | bool | true | Rename the current tmux window / zellij tab to hyprpilot@<cwd-basename> before exec. |
How it renames
The rename shells out to the multiplexer's own CLI, not raw OSC escape sequences — those are gated by tmux/zellij settings, the CLI is not:
tmux rename-window 'hyprpilot@my-project'zellij action rename-tab 'hyprpilot@my-project'The <cwd-basename> is the base name of the resolved working directory — after --cwd, the profile's cwd, and the current-directory fallback have been applied.
When the rename is skipped
The rename proceeds only when all of these hold — any one skips it (logged at debug, never aborting the launch):
set_titleis notfalse.HYPRPILOT_NO_TITLEis unset or falsey.- hyprpilot is not running under an editor.
HYPRPILOT_NO_TITLE — the explicit override
Set HYPRPILOT_NO_TITLE to a truthy value (1, true, or any non-empty value other than 0 / false) to skip the rename unconditionally — independent of set_title and of editor auto-detection. This is the authoritative hook a launcher sets in the environment when it owns the pane itself (for example an nvim plugin like sidekick.nvim that sets a per-tool env block). Because [multiplexer] is a root config field, it can't be reached via --with-config (which patches the profile) — the env var is the right hook.
Editor auto-skip
When hyprpilot is spawned as a child job/terminal of an editor, that editor owns the multiplexer pane, so renaming it from underneath is wrong. hyprpilot auto-detects this from environment markers and skips the rename without needing HYPRPILOT_NO_TITLE:
| Marker | Editor |
|---|---|
NVIM | nvim ≥ 0.5 |
NVIM_LISTEN_ADDRESS | older nvim |
INSIDE_EMACS | Emacs |
VSCODE_PID / TERM_PROGRAM=vscode | VS Code |
VIM | vim (lower confidence) |
Best-effort by design
The rename never gets in the way of a launch:
- Outside tmux/zellij it is a no-op, regardless of the flag.
- Any failure (missing
tmuxbinary, a denied action) is logged atdebugand never aborts the launch.
Because hyprpilot exec()s away immediately after, the title is a one-shot stamp — nothing keeps it updated afterwards, and your multiplexer's own automatic-rename settings take over as usual once the vendor exits.