Live session title refresh when hook returns hookSpecificOutput.sessionTitle
Resolved 💬 3 comments Opened Apr 24, 2026 by v-za Closed Apr 28, 2026
Problem
When a UserPromptSubmit hook returns hookSpecificOutput.sessionTitle, Claude Code Desktop does not update the displayed title until the app is fully quit and relaunched. The title is correctly persisted to the session sidecar at ~/Library/Application Support/Claude/claude-code-sessions/<workspace>/<project>/local_<uuid>.json, but Desktop reads this file only at startup — it doesn't watch for changes.
This makes the official sessionTitle hook field effectively useless for any automation that wants live, per-turn renaming (e.g. titling a session from a Topic line in the assistant's output).
Environment
- Claude Code CLI: 2.1.119
- Claude Desktop bundled Claude Code: 2.1.111
- Claude.app: 1.3883.0
- macOS 24.6.0
Repro
- Configure a
UserPromptSubmithook that emits{"hookSpecificOutput": {"hookEventName": "UserPromptSubmit", "sessionTitle": "NewTitle"}}. - Submit a prompt in Desktop. Observe the sidecar JSON on disk —
titleis updated. - Desktop's displayed title (sidebar + header) remains the old Haiku-generated title.
- Quit Desktop (⌘Q) and relaunch — title now shows correctly.
Requested
Have Desktop either:
- Watch the session sidecar JSON and re-render title on change, OR
- Emit an in-app event when the CLI subprocess reports a hook-set
sessionTitleso the UI refreshes live.
Related open issues
- #29355
- #33165
- #35316
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗