--- name: session-management description: Manage Claude Code sessions with naming, checkpointing, and resume strategies. Use when organizing long-running work, creating debug checkpoints, managing PR reviews. category: workflow tags: - session - resume - checkpoint - debugging tools: - Bash complexity: low estimated_tokens: 400 --- # Session Management ## When To Use - Managing session checkpoints and state preservation - Resuming work across Claude Code sessions ## When NOT To Use - Short sessions that do not need checkpoints - Fresh starts where no prior session context exists ## Overview Claude Code supports named sessions for better workflow organization. Use this skill to manage complex, long-running work across multiple sessions. ## Available Commands | Command | Description | |---------|-------------| | `/rename` | Name the current session (auto-generates name if no argument given, 2.1.41+) | | `/resume` | Resume a previous session (REPL) | | `claude --resume ` | Resume from terminal | ## Workflow Patterns ### 1. Debugging Sessions Name debug sessions for easy resumption: ``` # Start debugging /rename debugging-auth-issue # ... work on the issue ... # If you need to pause, session is auto-saved # Resume later: claude --resume debugging-auth-issue ``` ### 2. Feature Development Checkpoints Create checkpoints during long feature work: ``` # After completing milestone 1 /rename feature-x-milestone-1 # Continue in new session # Reference old session if needed ``` ### 3. PR Review Sessions For complex PR reviews that span multiple sittings: ``` # Start review /rename pr-review-123 # Take breaks without losing context # Resume: claude --resume pr-review-123 ``` ### 4. PR-Linked Sessions (Claude Code 2.1.27+) Sessions are automatically linked to PRs when created via `gh pr create`. Resume PR-specific sessions later: ``` # Resume session for a specific PR claude --from-pr 156 claude --from-pr https://github.com/org/repo/pull/156 # Workflow: review → pause → resume with full context /rename pr-review-156 # ... review work ... # Later: claude --from-pr 156 ``` ### 5. Investigation Sessions When investigating issues that may require research: ``` # Start investigation /rename investigate-memory-leak # Pause to gather more info externally # Resume with full context: claude --resume investigate-memory-leak ``` ## Resume Screen Features The `/resume` screen provides: - **Grouped forked sessions**: See related sessions together - **Keyboard shortcuts** (defaults, customizable via `/keybindings`): - Preview session content - Rename a session - **Recent sessions**: Sorted by last activity ### 6. Resume Hint on Exit (Claude Code 2.1.31+) Claude Code now shows a resume hint when you exit, displaying the command to continue your conversation. This makes session resumption more discoverable — users no longer need to know about `--resume` beforehand. ## Best Practices ### Naming Conventions Use descriptive, hyphenated names: | Pattern | Example | Use Case | |---------|---------|----------| | `debugging-` | `debugging-auth-401` | Bug investigation | | `feature--` | `feature-search-v2` | Feature development | | `pr-review-` | `pr-review-156` | PR reviews | | `investigate-` | `investigate-perf` | Research | | `refactor-` | `refactor-api-layer` | Refactoring work | ### When to Name Sessions Name sessions when: - Work will span multiple days - You might need to pause unexpectedly - The session contains valuable context - You want to reference it later ### Session Cleanup Unnamed sessions are eventually garbage collected. Named sessions persist longer. Periodically clean up old named sessions you no longer need. ## Integration with Sanctum Combine session management with other Sanctum skills: 1. **Before starting**: Run `Skill(sanctum:git-workspace-review)` to capture context 2. **Name the session**: `/rename ` 3. **Work**: Use appropriate skills for the task 4. **Resume if needed**: `claude --resume ` ## Troubleshooting ### Session Not Found If a named session isn't appearing in `/resume`: - Check for typos in the name - Sessions may expire after extended inactivity - Use `/resume` screen to browse available sessions ### Duplicate Sessions in VS Code If you see duplicate session entries when resuming in VS Code: - **Claude Code 2.1.38+**: Fixed — resume now correctly reuses the existing session without creating duplicates - **Older versions**: Ignore the duplicate entries; they point to the same underlying session ### Lost Context After Resume If context seems incomplete or resume is slow: - **Claude Code 2.1.30+**: 68% memory reduction for `--resume` via stat-based session loading with progressive enrichment — especially impactful for users with many sessions. Also fixes hangs when resuming sessions with corrupted transcript files (parentUuid cycles). - **Claude Code 2.1.29+**: Fixed slow startup when resuming sessions with many `once: true` hooks — `saved_hook_context` loading is now optimized - **Claude Code 2.1.21+**: Fixed API errors when resuming sessions interrupted during tool execution — previously these sessions could fail to resume entirely - **Claude Code 2.1.20+**: Session compaction/resume is now fixed — resume correctly loads the compact summary instead of full history - Use `/catchup` to refresh git state - Use `/debug` (Claude Code 2.1.30+) for session troubleshooting diagnostics - Re-run `Skill(sanctum:git-workspace-review)` if needed - If on older versions: resumed sessions may reload uncompacted history, increasing context usage unexpectedly ### macOS Orphaned Processes (Claude Code 2.1.46+) Previously, disconnecting from a terminal on macOS could leave orphaned Claude Code processes running. This is now fixed in 2.1.46+. If you encounter stale CC processes on older versions, manually check and kill them: ```bash # Find orphaned claude processes ps aux | grep -i claude | grep -v grep ``` ### 7. Automatic Memory (Claude Code 2.1.32+) Claude now automatically records and recalls memories as it works. Session summaries, key results, and work logs are captured implicitly and recalled in future sessions. This provides passive cross-session continuity without manual checkpoint management. - **No action required**: Memory recording is automatic on first-party Anthropic API - **Complements named sessions**: Automatic memory handles implicit continuity; named sessions provide explicit organization - **Token overhead**: Recalled memories add to baseline context — factor this into MECW budgets ### 8. Agent Persistence on Resume (Claude Code 2.1.32+) `--resume` now re-uses the `--agent` value from the previous conversation by default. Agent-specific workflows that are resumed will continue with the same agent configuration without needing to re-specify it. ``` # Start with a specific agent claude --agent my-agent # Resume later — my-agent is automatically used claude --resume ``` ## See Also - `/catchup` - Refresh context from git changes - `/clear` - Start fresh session - `Skill(sanctum:git-workspace-review)` - Capture repo context