Bookmark, resume, and export Claude Code conversations by session id.
ccbookmark has 8 well-named tools with clear verb-noun patterns (save_, list_, show_, restore_, export_, delete_, bulk_delete, bulk_export). All tools have descriptions (avg ~150 chars, within baseline 34-392 range). Input schemas are visible and properly typed. However, output schemas are NOT documented, the code returns dicts but LLMs cannot see what fields to expect. Parameter descriptions are present but lack detail on constraints (e.g., no mention of session_id format, cwd path requirements, or tag format). Error handling is absent, no guidance on what to do if a session is not found or a path is invalid. Destructive tools (delete_saved, bulk_delete) lack confirmation/dry-run patterns. Overall: solid naming and basic structure, but missing output documentation and error recovery guidance.
Delete every saved conversation matching a text query and/or tags. Requires at least one filter (refuses to wipe the whole library).
Export every saved conversation matching a text query and/or tags into a project.
Remove a saved conversation from the library.
Copy a saved conversation into another project, re-pathing its cwd. With ``rewrite_paths`` (default), embedded file paths under the original cwd are re-pathed too so file references follow the move.
List saved conversations (newest first), optionally filtered.
Place the saved JSONL back in its project dir and return the resume command.
Output schemas not documented. Tools return dicts (e.g., save_conversation returns {session_id, title, cwd, git_branch, user_count, assistant_count, files, summary}) but LLMs cannot see field types or structure. Agents cannot plan downstream calls or extract data reliably.
Destructive tools (delete_saved, bulk_delete) lack confirmation or dry-run support. Agents can irreversibly delete conversations without a safety gate. No pattern:confirmation-request implementation.
Error handling absent. No guidance on recovery if session_id not found, cwd invalid, or API call fails. Descriptions lack actionable error messages (pattern:recovery-guide).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Save a Claude Code conversation to the library. Without ``session_id`` the most recently modified session in ``cwd`` (or the server's working directory) is saved. An MCP server cannot reliably know the *current* session id, so pass one explicitly to be certain. Set ``regenerate`` to rewrite the summary via the Claude API (needs the ``summary`` extra + key).
Return full metadata and summary for one saved conversation.
Parameter descriptions lack constraint details. session_id format not specified (UUID? alphanumeric?). cwd expected to be absolute or relative? tags format (comma-separated? array?). Agents cannot validate inputs before calling.
list_saved and bulk_delete/bulk_export require at least one filter (query or tags) but this constraint is not enforced in schema, only documented in description. LLMs may omit both and expect a default behavior.