Integrated skill for managing Claude Code sessions.
| Topic | Description | Guide |
|---|---|---|
| ------- | ------------- | ------- |
| analyze | Session statistics, tool usage patterns, optimization insights | analyze.md |
| archive | Move a completed session out of the active project key to ~/.claude/projects/.bak/ (flat naming, single backup root) | archive.md |
| classify | Classify project sessions (delete/keep/extract) | classify.md |
| split | Analyze topic boundaries and recommend session split points | split.md |
| compress | AI-compress sessions via UTCP/code-mode | compress.md |
| destroy | Delete current session and restart IDE | destroy.md |
| id | Look up current session ID (UUID) | id.md |
| import | Pipeline session data to other agents/skills | import.md |
| install | Register session-id-inject hook in settings.json | install.md |
| list | Enumerate current-project sessions (UUID + mtime + size) | list.md |
| migrate | Move sessions between projects (main repo → worktree) | migrate.md |
| move | Move specific sessions by ID to another project + update cwd | move.md |
| purge | Delete dead sessions (hook-only, no assistant response) permanently | purge.md |
| rename | Assign and look up custom title for session | rename.md |
| repair | Restore session structure (chain, tool_result, UUID) | repair.md |
| search | Keyword session search with result validation (verb/path/class checks) | search.md |
| summarize | View and summarize conversation content from other sessions | summarize.md |
| url | Generate claude-sessions web URL from session ID | url.md |
/session summarize # select project/session then summarize
/session summarize <session_id> # summarize a specific session
/session import --hookify # deliver to hookify
/session import --analyze # analysis pipeline
/session import --to <agent> # deliver to specific agent
/session analyze # analyze current session
/session analyze <session_id> # analyze specific session
/session analyze --sync # sync to Serena memory
/session archive <session_id> # move to ~/.claude/projects/.bak/<project-key>_<uuid>.jsonl
bash ~/.claude/skills/claude-session/scripts/archive-session.sh <session_id> # direct script call
bash ~/.claude/skills/claude-session/scripts/archive-session.sh <session_id> --dry-run # preview only
Moves to ~/.claude/projects/.bak/ (flat naming, single backup root shared with transient backups). UUID portion preserved unchanged. Updates INDEX.md ledger.
/session split # Recommend split for current conversation
/session split <session_id> # Recommend split for specific session
/session split --execute # Execute recommendation immediately
/session classify # classify current project sessions
/session classify --depth=medium # required when classifying sessions scheduled for split
/session classify --execute # execute immediately after classification
> ⚠️ --depth=medium or higher required before split — fast only reads the last 3 messages, so it may miss different topics at the end of the session.
> 🔍 RAG MCP auto-detection — If a vector store MCP (Qdrant / Chroma / Weaviate / Pinecone / etc.) is registered in the current context, classify additionally recommends sessions worth saving to RAG. Vendor-agnostic — uses whichever store tool is detected. See Section 8 of classify.md.
/session move <session_id> <target_project_path> # default: --cwd-mode first
/session move <session_id> <target_project_path> --cwd-mode all # update all cwd occurrences
/session move <session_id> <target_project_path> --cwd-mode first # update only first cwd
Move explicit session IDs to another project directory and update cwd references via Python script. Cross-platform (Windows + macOS/Linux). Unlike migrate, no classification — just direct move.
/session migrate # classify + move code sessions to worktree
/session migrate --dry-run # preview only
/session migrate <source> <target> # specify source/target projects
Classifies sessions as CODE/INFRA/TINY/READ, then moves CODE sessions to worktree project and optionally deletes TINY sessions.
/session compress <session_id> # compress specific session
/session compress # batch compress sessions containing "hookEvent":"Stop"
Register claude-sessions-mcp with UTCP, then call via code-mode.
/session list # list current-project sessions (UUID + mtime + size)
/session list --all-projects # summary across all projects
/session list --limit 20 # top N by mtime
Non-destructive enumeration. For categorization or cleanup, use classify or purge instead.
/session id # look up current session ID
Current session ID — fast path (handle here, do NOT read id.md):
Current session ID: {uuid} in conversation context. SessionStart hook ~/.claude/hooks/session-id-inject.sh injects it as additionalContext at session start. If present, return the UUID immediately.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} in subagent/task/transcript paths. Return if found.id.md for the marker→grep procedure./session search Makefile remove # find sessions by keyword
/session search --today ansible/Makefile # only sessions modified today
/session id <keyword> # legacy alias — routed to search
Always run the result-validation gate (verb ambiguity, artifact location, action class) before reporting matches as the answer to "which session did X" — a misplaced artifact path is a "task orphaned" signal, not a successful match.
scripts/destroy-session.sh
/session purge # dry-run: list dead sessions in current project
/session purge <project_name> # dry-run: specific project
/session purge --all # dry-run: all projects
Dead session = 10 lines or fewer + no "type":"assistant" response.
Script: scripts/purge-dead-sessions.sh
/session repair # select session, then validate and repair
/session repair <session_id> # repair specific session
/session repair --dry-run # preview only
/session repair --check-only # validate only (no repair)
Repair targets:
Current session → output a copyable /rename list (NO script, NO AskUserQuestion):
Session name suggestions:
1. `/rename Candidate 1`
2. `/rename Candidate 2`
3. `/rename Candidate 3`
/rename is a Claude Code built-in command — it cannot be invoked via Bash or the Skill tool. The user copies and pastes the desired line. Do NOT call rename-session.sh for the current session (it is reserved for other sessions by ID).
Other session (session ID specified) → apply via script:
# Assign a name to a specific session
bash scripts/rename-session.sh <session_id> "name"
# Check current title
bash scripts/rename-session.sh --show <session_id>
# List named sessions in current project
bash scripts/rename-session.sh --list
| Actual Path | Project Name |
|---|---|
| ------------- | -------------- |
/Users/es6kr/works/.vscode | -Users-es6kr-works--vscode |
/Users/es6kr/Sync/AI | -Users-es6kr-Sync-AI |
Rule: all non-alphanumeric characters → - (i.e., replace(/[^a-zA-Z0-9]/g, '-'))
共 3 个版本