[FEATURE] Desktop app: show the active session name in the OS window title
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Problem
The desktop app's OS window title is always "Claude" (and "Code" for Claude Code windows), regardless of which session or chat is open. On Linux tiling window managers (Hyprland/Omarchy in my case) the window title is what shows in the status bar, alt-tab, and taskbar, so every Claude window is indistinguishable, and with several sessions running there is no way to tell which window holds which conversation without focusing it.
From a look at the Linux app bundle (desktop 1.40609.0, Claude Code 2.1.247): the main window registers a page-title-updated handler that calls preventDefault(), so page titles are deliberately suppressed, and the per-tab titles the app already tracks internally for its own tab UI are never propagated to BrowserWindow.setTitle().
Proposed solution
Set the OS window title to include the active session/chat name, e.g. <session name> - Claude, keeping plain "Claude" for the home screen. Since per-tab titles are already tracked internally, wiring the active tab's title into the window title should be sufficient. An opt-out setting would be welcome for anyone who prefers a generic title for privacy.
Related: #23647 (session name in terminal tab title), #60097 (display cwd/worktree in desktop app UI), #69411 (expose session title to hooks/templates).
Proposed Solution
Set the OS window title to include the active session/chat name, e.g. <session name> - Claude, keeping plain "Claude" for the home screen. Since per-tab titles are already tracked internally, wiring the active tab's title into the window title should be sufficient. An opt-out setting would be welcome for anyone who prefers a generic title for privacy.
Alternative Solutions
_No response_
Priority
Critical - Blocking my work
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_