Post-crash Claude Code session recovery TUI with MCP server for session search, analytics, and project context
24 tools with inconsistent quality. Most have descriptions (good), but many lack parameter type definitions in visible schemas. Tool names follow verb_noun convention well (session_*, project_*, self_*, healthy_sessions). However, parameter descriptions are sparse or missing entirely in several tools. Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible. The server reads Claude session data and performs analytics, but the tool interface does not guide LLM composition well (e.g., no pagination documented, no chaining IDs returned).
Sessions ranked by value density, not just recency. Health score (0-100) combines: session duration, file size (message volume), whether a summary exists, and whether a title exists. High-health sessions had meaningful work; low-health sessions are quick queries or crashes. Use when you want to find the BEST sessions to resume, not just the most recent ones. Parameters: hours: Lookback window (default 168 = 1 week). limit: Max results (default 10). min_health: Minimum health score to include (default 30).
List all known projects with session counts and last activity. Returns projects ordered by most recent activity. Use to find which projects have L2 summaries available.
Single-call project orientation — everything you need to resume work. Returns in one call: L2 topic summaries, git dirty state, most recent bookmark, and session count. Designed for /takeoff to call once instead of making 3-5 separate tool calls.
Get the L2 topic summaries for a project. Returns pre-computed workstream summaries: status, narrative, key decisions, and open threads. Instant (<200ms) when available. Use this instead of searching individual sessions for project context.
History of changes A1 has auto-applied to config/thresholds.json.
Output schemas not documented. Tools return dicts but LLMs cannot see what fields to expect. Breaks downstream tool chaining and forces LLMs to guess field names.
Parameter descriptions missing or minimal for many tools. E.g., 'section' in session_insights lists valid values in docstring but not in schema description. LLMs cannot parse docstring constraints.
No pagination documented or implemented. Tools like list_projects and self_recent_calls accept 'limit' but no 'offset', 'cursor', or 'total_count' in responses. Large result sets will blow context windows.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
File an A1 product recommendation. Called by the A1 skill. Validates confidence against threshold, dedupes against recent entries, auto-applies the 'auto' class when guardrails pass (tune + target in tunable keys + numeric new_value), downgrades unsafe auto-requests to queued. Returns the recorded record or a {skipped: <reason>} dict. type: remove | optimize | tune | investigate | ship | other action_class: "auto" | "queued"
Recent A1 recommendations. Optional filter by action_class: 'auto' or 'queued'.
Read A1's skill prompt (SKILL.md). A2 uses this to reason about prompt edits.
File an A2 process-management proposal. Called by the A2 skill. target: "a1_prompt" | "thresholds.json" | "cadence" change_type: "prompt_edit" | "threshold_change" | "criterion_add" | "criterion_remove" | "authority_change" | "other" diff: for prompt_edit -> {"full_new_text": "..."}; for threshold_change -> {"key": "...", "from": X, "to": Y}; else descriptive string.
Score A2's effectiveness: for each approved proposal, compare A1's output before vs after the change. Shows whether A2's methodology changes actually improved A1. Each row: proposal title, expected_effect, A1 stats before/after (count, auto_applied, queued, avg_confidence). The human judges the trend.
Group contiguous same-session calls into work bundles. A bundle is a burst of calls within `gap_seconds` on the same session. Useful for finding slow workflows even when individual calls are fast.
Recent failing MCP calls with full context to debug.
Opinionated report on resume-resume's own MCP usage. Returns total calls, per-tool summary (counts, error rate, p50/p95 latency), plus callouts for dead tools, slow tools, error-prone tools, and abandoned queries. This is the weekly roadmap-steering tool. Cached for 15 seconds per `days` key so A1/A2 skill loops that re-hit insights multiple times per turn don't re-scan the JSONL corpus.
Current config/thresholds.json plus the list of keys A1 may auto-tune.
Approve, reject, or defer an A2 proposal. verdict: approved | rejected | deferred. On 'approved', the proposal's change is applied to A1's config/prompt (leaves the working tree dirty; commit manually).
Human inbox. Returns A2 process-management proposals by state.
Decided A2 proposals (approved/rejected/deferred) — your audit trail.
Tail of recent MCP tool calls. Most recent first.
BM25 search over past MCP calls (tool name + args + result + error).
Calls that took longer than `threshold_ms`. Slowest first.
REAL data science on your Claude sessions. Runs ML models, statistical tests, and predictive analytics: Analyses: - "all": Everything below - "clustering": K-means session type discovery with silhouette optimization - "markov": Project transition probabilities (what you work on after X) - "circadian": Sinusoidal fit to your biological activity clock - "power_law": Pareto exponent — do marathon sessions drive your output? - "anomalies": DBSCAN outlier detection on session feature space - "flow": Flow state detection (sustained high-throughput sessions) - "burnout": Burnout risk signals and trend analysis - "cooccurrence": Project co-occurrence network - "duration": Distribution analysis with bimodality testing - "entropy": Shannon entropy — how predictable are you? First call: ~15s (deep scan + model fitting). Cached after.
Deep analytics on ALL your Claude Code sessions. Mind-blowing stats. Analyzes 5000+ sessions for temporal patterns, project insights, tool usage, personality traits, predictions, records, and fun facts. First call takes 30-60s (parses JSONL files). Subsequent calls are cached. Sections: "all", "overview", "temporal", "projects", "tools", "models", "records", "predictions", "personality", "fun_facts"
Generate a stunning HTML report of all your Claude session analytics. Creates a self-contained HTML file with charts, heatmaps, personality traits, predictions, and fun facts. Opens in browser. Args: output_path: Where to save. Default: ~/claude-sessions-report.html org: Filter to an org (e.g. "eidos-agi", "personal", "aic", "greenmark-waste-solutions", "rheaimpact"). Empty = all. Returns the file path.
Deep x-ray of a single session — duration, tools, tokens, branches, everything.
No error recovery guidance. Tools return generic error dicts (e.g., {'error': 'No sessions found'}) without actionable next steps. LLMs cannot self-correct.
Destructive tools (session_report writes file, self_a1_file and self_a2_file write records, self_process_decide modifies config) lack confirmation or dry-run support. No idempotency guarantees documented.