[FEATURE] Feature Request: Add /title slash command to rename the current session

Resolved 💬 3 comments Opened Apr 27, 2026 by lkwebengineer-arch Closed Apr 30, 2026

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

Summary

Add a built-in /title <name> slash command to set a human-readable name for the current session, so users can find it later via /resume.

## Motivation

I do a lot of multi-day, multi-session work (long-running drafting, phased migrations, staged refactors). I frequently need to /resume the same conversation days later to continue. Session names today are auto-generated (one of mine landed
on episode-02-draft-revision — close, but not what I'd pick), and when the /resume list has dozens of entries, finding the right one becomes a hunt-and-peck through first-message previews and timestamps.

## Current behavior

  • A name field already exists in session metadata at ~/.claude/sessions/<pid>.json
  • Users can't edit it from the CLI
  • /resume shows auto-generated names + first-message snippets
  • Only workarounds today:
  1. Manually edit the live session JSON (fragile, might be overwritten)
  2. Write an external breadcrumb file with the session UUID, then claude --resume <uuid>
  3. Rely on history.jsonl grep-search by keyword

None of these are discoverable for non-power-users.

## Proposed behavior

/title

When invoked:

  1. Updates the name field in the current session's metadata
  2. Reflects the new name immediately in /resume list
  3. Optionally adds a "type": "summary" entry to the jsonl so the name is durable across restarts

Aliases to consider: /rename, /name.

## Benefits

  • Long-running projects: clear tagging for multi-day work
  • Multi-context users: easier to context-switch between "work / experimentation / debugging" sessions
  • Handoff: "Open the session named X" is far nicer than sharing a UUID
  • Zero impact on defaults: auto-generated names still apply if the user doesn't call /title

## Alternatives considered

| Alternative | Why it's not enough |
|---|---|
| Manual JSON edit | Fragile (live file), requires knowing internals |
| External breadcrumb file | Adds friction, lives outside the tool |
| Git branch naming | Only works inside a repo, couples to VCS workflow |
| Rely on auto-generated names | User has no control when the auto name misses the point |

## Additional context

  • Environment: Claude Code 2.1.119, macOS 24.5.0
  • Similar UX in adjacent tools: ChatGPT has "Rename chat", Cursor supports session naming

---

Proposed Solution

Add a built-in slash command:

/title

Behavior when invoked:

  1. Updates the name field in the current session's metadata (~/.claude/sessions/<pid>.json)
  2. Reflects the new name immediately in the /resume list
  3. Optionally adds a "type": "summary" entry to the session jsonl so the name persists across restarts

Aliases to consider: /rename, /name.

Zero impact on defaults — auto-generated session names still apply when the user doesn't call /title.

Alternative Solutions

Add a built-in slash command:

/title

Behavior when invoked:

  1. Updates the name field in the current session's metadata (~/.claude/sessions/<pid>.json)
  2. Reflects the new name immediately in the /resume list
  3. Optionally adds a "type": "summary" entry to the session jsonl so the name persists across restarts

Aliases to consider: /rename, /name.

Zero impact on defaults — auto-generated session names still apply when the user doesn't call /title.

Priority

Critical - Blocking my work

Feature Category

CLI commands and flags

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗