Local-first search, inspection, export, and resume for Claude Code, Codex CLI, and Cursor sessions, with an MCP server for agent-driven recall.
sessiongrep has well-structured tool definitions with clear naming (verb_noun pattern: search_sessions, get_session, list_sessions, timeline_for_repo, get_resume_command). All 5 tools have descriptions (avg ~150 chars, within 10-1024 baseline). Input schemas are present with proper JSON Schema structure, types, and enums. However, parameter descriptions are sparse or missing in several tools (e.g., max_lines in get_session lacks guidance on typical values; limit parameters lack min/max bounds). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages visible in code. All tools are read-only (good for safety), but no tool annotations (readOnlyHint) are declared. Parameter naming is consistent but could be more explicit (e.g., 'limit' vs 'max_results').
Get the CLI command needed to resume a specific session in its native tool (Claude Code, Codex, or Pi). Cursor and Antigravity resume are not currently supported.
Get the full transcript and metadata for a specific session by its ID or ID prefix. Use this to retrieve the complete conversation from a past session.
List recent AI coding sessions, optionally filtered by provider or path. Returns sessions sorted by most recently updated.
Search across all indexed AI coding sessions (Claude Code, Codex, Cursor, Antigravity, Pi) by keyword. Returns matching sessions ranked by relevance. Use this to find past work, conversations, or context from previous sessions.
Day-bucketed view of sessions for a repo path prefix — a named affordance for "what changed over time?" in this codebase. Returns metadata only (no transcripts), grouped by UTC calendar day.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned.
Parameter descriptions incomplete or missing guidance. 'max_lines' in get_session lacks typical range; 'limit' parameters lack min/max bounds (rubric baseline: 1 - 100 for page_size). Unbounded numbers invite absurd LLM values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only and idempotent, declaring this via annotations helps LLMs reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Error handling not visible in tool definitions. No recovery guidance (e.g., 'session not found, try search_sessions()'). Agents cannot self-correct on failures.
Pagination not explicitly documented. list_sessions and search_sessions accept 'limit' but no 'offset' or 'cursor' parameter visible. Large result sets may exceed context window.