Skip to content

feat: resolve Claude Code session names from JSONL transcripts#215

Merged
kianwoon merged 1 commit intomainfrom
feat/session-name-display
Apr 8, 2026
Merged

feat: resolve Claude Code session names from JSONL transcripts#215
kianwoon merged 1 commit intomainfrom
feat/session-name-display

Conversation

@kianwoon
Copy link
Copy Markdown
Owner

@kianwoon kianwoon commented Apr 8, 2026

Summary

  • Display human-readable session names in the GUI sessions section instead of only model IDs
  • Auto-resolve names from Claude Code's ~/.claude/projects/ JSONL files, preferring customTitle (from /rename or --name)
  • Use project directory name as fallback when no customTitle is set
  • Support x-session-name header override via ANTHROPIC_CUSTOM_HEADERS
  • Move model names to a separate line below session name, styled in light blue

Resolution priority

  1. customTitle — user-set via /rename or --name (preferred)
  2. Project directory name — derived from ~/.claude/projects/<encoded-path>
  3. x-session-name header — manual override
  4. No name — fallback to truncated session ID

Files changed

  • src/session-pool.ts — lazy JSONL resolution, sessionNames cache, setName() API
  • src/server.ts — extract x-session-name header
  • src/ws.ts — merge name into WebSocket summary
  • src/types.ts — add optional name to sessionStats type
  • gui/frontend/app.js — split name and models into separate lines
  • gui/frontend/styles.css — light blue session name (#7ec8e3), dim models line

Test plan

  • Session with /rename → shows custom title (e.g. "Testing Session Name")
  • Session without rename → shows project folder name (e.g. "swiftUI")
  • x-session-name header override works
  • TypeScript type check passes
  • GUI rebuild successful

Display human-readable session names in the GUI sessions section instead
of only model IDs. Names are resolved automatically from Claude Code's
~/.claude/projects/ JSONL files, preferring customTitle (from /rename or
--name) over the auto-generated slug.

Resolution priority:
1. customTitle (user-set via /rename or --name)
2. slug (auto-generated like "clever-waddling-allen")
3. x-session-name header (manual override via ANTHROPIC_CUSTOM_HEADERS)

Also:
- Move model names to a separate line below the session name
- Style session name in light blue (#7ec8e3)
- Lazy one-time lookup per session, cached in SessionAgentPool
@kianwoon kianwoon merged commit c92f063 into main Apr 8, 2026
4 checks passed
@kianwoon kianwoon deleted the feat/session-name-display branch April 8, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant