[FEATURE] Persist Transcript view mode (Desktop) across sessions
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
In the Desktop app's Code tab, the "Transcript view" mode (Normal / Verbose / Detailed / Summary) always resets to "Normal" when starting a new session. I have to manually reselect my preferred mode every single time via the dropdown or Ctrl+O, which is repetitive and easy to forget. There's currently no way to set a default that persists across sessions.
Proposed Solution
Add a settings.json key (e.g. "transcriptViewMode") that lets users define a default Transcript view mode for the Desktop app's Code tab. This default would be read at session startup, similar to how other preferences like outputStyle or verbose are already persisted in settings.json. The dropdown/Ctrl+O toggle would still work for per-session overrides, but new sessions would start from the saved default instead of always resetting to "Normal".
Alternative Solutions
I've tried using Ctrl+O to cycle through modes at the start of each session, but this still requires a manual step every time and is easy to forget when jumping into a quick task. There's no CLI flag or environment variable that sets this either, as far as I could find in the current documentation.
Priority
Medium - Would be very helpful
Feature Category
Other
Use Case Example
Example scenario:
- I use Claude Code Desktop daily on Windows for Microsoft 365 / Power Platform development work
- I prefer "Verbose" mode to see detailed tool usage while Claude works, so I can follow what it's doing
- Every time I open a new session or window, the view resets to "Normal" and I have to manually switch it back
- This would save time and reduce friction across dozens of sessions per week
Additional Context
Related: the settings.json reference already supports persisting similar preferences (e.g. outputStyle, verbose for CLI). Extending this pattern to the Desktop Transcript view dropdown would be consistent with existing configuration conventions.
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
I was wondering the same thing because I prefer the Thinking transcript view too. Here's hoping this gets added soon!
Adding a concrete data point, because the key this request asks for may already exist and simply not be wired up on Desktop.
The settings reference documents a
viewModekey:On Desktop it has no effect.
What I tested — Windows 11, Desktop app 1.24012.9, bundled runtime 2.1.219:
"viewMode": "verbose"to the usersettings.jsonand restarted the app.Ctrl+Oexpands it as before, for that session only.Two observations that may help locate it:
viewMode(z.enum(["default","verbose","focus"])), so the file is parsed and the value accepted — it just never reaches the transcript view.viewModeappears nowhere in the public CHANGELOG, which fits the pattern of a CLI-only setting that the shared settings schema exposes on Desktop without a consumer behind it.So the fix may be smaller than adding a new
transcriptViewModekey: honouring the existing documentedviewModein the Desktop transcript view would resolve this and keep one key across both surfaces.Adding the other half of the picture: I went looking for where the mode is actually stored, and it explains why there is no default to honour.
The Desktop app persists the choice in the renderer's localStorage (the
claude.aiorigin, under thereact-query-cache-lskey), as a per-session map:Two fields matter:
transcriptModeBySessionis the real storage, keyed by session ID. A new session gets a new ID, finds no entry, and falls back to the built-in default. So the reset isn't a persistence failure — the value is saved, it's just scoped to a session that no longer exists.transcriptModelooks like a global default at first glance, but it isn't. I verified it trackscurrentSessionId: switching to a session that was on Normal flipped it from"thinking"to"normal". It mirrors the active session rather than storing a preference.So there is no global key anywhere in the stored state, which lines up with @mplezier's finding that
viewModeparses but never reaches the transcript view. Both halves point at the same gap: the Desktop transcript view has no notion of a default at all, only per-session state.One more wrinkle for whoever picks this up — the mode sets have diverged between surfaces. The CLI schema's
viewModeenum isdefault | verbose | focus(three values), while the Desktop dropdown offers Normal / Thinking / Verbose / Summary (four). WiringviewModethrough to Desktop would also need a representation for "Thinking", which currently has none at the settings level. (Docs side of that gap is tracked in #81979.)Environment: macOS, Desktop app 1.24012.9, CLI 2.1.220.