Skip to content

Support window titles for coding agent sessions and TUI launches - #11188

Open
ChaseC-130 wants to merge 1 commit into
omacom:quattrofrom
ChaseC-130:feat/agent-window-title
Open

ChaseC-130 wants to merge 1 commit into
omacom:quattrofrom
ChaseC-130:feat/agent-window-title

Conversation

@ChaseC-130

@ChaseC-130 ChaseC-130 commented Sep 10, 2026 •

Copy link
Copy Markdown

Agent and TUI windows can start with generic titles, making sessions hard to identify in the desktop bar. This adds an initial title from the agent's prompt (first line) or working directory, with a --title override, while allowing later title updates emitted by the running agent.

  • omarchy-launch-tui accepts --title=<title> and emits the initial OSC title inside the new terminal before executing the command. Passing a terminal-level --title would lock Ghostty's title and suppress subsequent session renames. Title and command arguments remain literal, and control characters are removed from the launcher's initial title.
  • omarchy-agent supplies the initial title for new windows and emits it directly for --inline; omarchy-agent-prompt forwards the override.
  • The default tmux config forwards the active pane title to the client terminal. Existing installations need to adopt and reload the updated set-titles-string setting; this PR does not overwrite customized tmux configs.

Claude over SSH / Tailscale

Recorded on a local Omarchy workstation connecting over SSH via Tailscale to a Mac running tmux. Claude Code 2.1.267 successfully renames the session in both states. With the old #h:#W format, the desktop title stays at the host/window name. With #{?pane_title,#{pane_title},#h:#W}, it follows Claude's session title. The test changed only the disposable tmux session's title setting, then restored and closed that session.

Claude session rename over SSH: old tmux format versus PR format

Codex in Ghostty

Codex 0.153.4 uses -c 'tui.terminal_title=["thread-title"]' in both states to emit session names. The earlier terminal-level --title implementation keeps the desktop title at codex; the current PR launcher displays Login checked. This local comparison is against the earlier title-locking implementation, not the upstream base launcher. The command is shown in the composer after the successful rename confirmation.

Codex session rename: earlier title-locking implementation versus current PR launcher

Images combine crops of the actual desktop bar and rename UI. Dynamic names depend on the agent emitting terminal title updates; Codex's default title configuration does not include the session name.

Validation

  • Launcher regression tests pass, including literal arguments, title updates, control characters, and command exit status.
  • Default-agent tests, tmux alert-removal migration tests, and the complete CLI suite pass.
  • Bash syntax and diff whitespace checks pass.
  • Real Claude and Codex session-title behavior verified in Ghostty on the local workstation, including Claude through SSH / Tailscale and tmux.

@ChaseC-130
ChaseC-130 marked this pull request as draft September 10, 2026 18:02
@ChaseC-130
ChaseC-130 marked this pull request as ready for review September 10, 2026 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants