[FEATURE] Allow users to assign a human-readable name to a Claude Code session and resume by that name instead of a UUID.

Resolved 💬 2 comments Opened Apr 22, 2026 by priyeshgpatel Closed Apr 23, 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

## Problem

--resume requires a full UUID, which is hard to remember and not ergonomic for workflows where you maintain long-running sessions tied to specific
projects or tasks (e.g. fixing bugs, an audit, a refactor branch, an incident investigation):

``bash
claude --resume 250e3400-e39b-31d4-a736-442655430000
``
There is no way to give a session a human-readable name.

Proposed Solution

Proposed Solution

Allow users to name a session at start and resume by name:

```bash
# Start a named session
claude --session-name webbugs

# Resume by name instead of UUID
claude --resume webbugs
```
--list-sessions should display names alongside UUIDs. If a name is reused, --resume resolves to the most recent session with that name.

Alternative Solutions

Alternative Solutions

| Option | Command | Notes |
|--------|---------|-------|
| Name at start | claude --session-name webbugs | Set name when creating the session |
| Rename existing | claude session rename <uuid> webbugs | Tag a session after the fact |
| Auto-title (minimal change) | (no new flag needed) | Use working directory basename or first prompt as title; allow --resume to match on it |

Priority

Critical - Blocking my work

Feature Category

CLI commands and flags

Use Case Example

I maintain several long-running sessions for distinct workstreams — bug triage, refactor branches, incident investigations. Today the only workaround is a
shell alias:

  alias webbugs='claude --resume 250e3400-e39b-31d4-a736-442655430000'

This breaks if the session is garbage-collected and requires manually looking up the UUID via --list-sessions each time. Named sessions would eliminate
this friction entirely.

Additional Context

_No response_

View original on GitHub ↗

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