# Coding Agent Session Search (cass) **cass (coding-agent-search) indexes the session history of every AI coding agent on your machine and lets you search it all from one place: an interactive terminal UI for you, and a JSON "robot mode" for your agents.** Written in [[Rust]] by Jeffrey Emanuel (GitHub `Dicklesworthstone`). Everything stays local. ## The problem it solves Every coding agent keeps its own diary, in its own format, in its own folder. [[Claude Code]] writes JSONL under `~/.claude/projects`, [[Codex CLI]] writes rollout files under `~/.codex/sessions`, [[Cursor]] buries its chats in a SQLite `state.vscdb`, [[Aider]] appends to a Markdown file. You KNOW you solved that auth bug two weeks ago. You just don't remember which tool you were in, or which project. That's exactly how the author framed it in his Show HN post (December 2025): heavy use of Claude Code, Codex, Cursor and Gemini CLI, and no way to find a conversation he knew he'd had. The second motivation is the more interesting one. His agents had started using his previous tool (bv) more than he did, so cass shipped with a robot mode from day one: before solving a problem from scratch, the current agent can check whether any agent already solved it. ## How it works - **Discovery.** A connector layer (his `franken_agent_detection` crate) finds session stores automatically. No configuration. - **Normalization.** Each format is mapped to one `Conversation -> Message -> Snippet` model. - **Storage.** A normalized [[SQLite]] schema is the source of truth. It runs on `frankensqlite`, his own pure-Rust SQLite reimplementation. Every index can be rebuilt from it. - **Search.** `frankensearch` (also his) provides BM25 lexical search with edge n-gram prefix matching, so results update as you type (the README claims sub-60 ms per engine query). [[Semantic Search]] is optional: `cass models install` downloads a ~90 MB MiniLM model, after which inference runs locally. The default "hybrid" mode fuses both with Reciprocal Rank Fusion and falls back to lexical when the model isn't installed. - **Privacy.** By default, API keys, tokens, private keys and connection strings are redacted at index time (13 pattern families). The original session files stay untouched on disk. - **Freshness.** A watch mode or a scheduled job (launchd or systemd timers) keeps the index current. On top of that sits a long list of extras: an analytics dashboard, HTML export with optional AES-256-GCM encryption, an encrypted static-site export (`cass pages`), multi-machine search over SSH/rsync (`cass sources setup`), and an MCP-capable search service (`cass serve --stdio --mcp`). ## Supported agents The README lists 32 connectors. `cass capabilities --json` is the canonical inventory. Among them: [[Claude Code]], [[Codex CLI]], [[Gemini CLI]], [[Cline]], [[OpenCode]], Amp, [[Cursor]], [[ChatGPT]] (desktop app), [[Aider]], Pi-Agent, Oh My Pi, [[GitHub Copilot]] Chat and Copilot CLI, [[OpenClaw]], Clawdbot, Mistral Vibe, Crush, [[Goose]], [[Hermes Agent]], [[Kimi Code]], Qwen Code, Factory Droid, [[Google Antigravity]], [[OpenHands]], Grok Build, Codebuff, Devin CLI and Kiro CLI. (The GitHub repository description still says "11+ providers". The README is the up-to-date list.) ## Install and usage ```bash # Linux / macOS curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/coding_agent_session_search/main/install.sh?$(date +%s)" \ | bash -s -- --easy-mode --verify # Homebrew or Scoop brew install dicklesworthstone/tap/cass scoop bucket add dicklesworthstone https://github.com/Dicklesworthstone/scoop-bucket scoop install dicklesworthstone/cass ``` Run `cass` for the TUI. For agents, NEVER run bare `cass` (the TUI blocks the session); use the JSON flags: ```bash cass search "authentication error" --robot --limit 5 cass view /path/to/session.jsonl -n 42 --json cass pack "auth error root cause" --robot --max-tokens 4000 cass capabilities --json ``` The README ships a ready-to-paste blurb for `AGENTS.md` or `CLAUDE.md`, and the repository includes a `SKILL.md`. Linux, macOS and Windows are supported. ## License "MIT License (with OpenAI/Anthropic Rider)". The MIT text applies to everyone except OpenAI, Anthropic, their affiliates, and anyone acting on their behalf, who get no rights at all (including running, benchmarking or using it for training). GitHub reports the license as `NOASSERTION`. Because of the rider, this does not meet the OSI open source definition; for an individual developer it behaves like MIT. Note the irony: the tool's main data sources are Claude Code and Codex. The author doesn't merge outside contributions. Issues are welcome; PRs only serve to illustrate a fix, and his agents review them. ## Maturity (as of 2026-10-03) - Repository created on 2025-11-21. About 1,160 stars, 140 forks, 25 open issues. - 53 GitHub releases, from v0.1.64 (2026-02-23) to v0.10.0 (2026-10-02). Roughly weekly releases, sometimes several a day. - About 6,450 commits. The latest 200 landed in five days (2026-09-29 to 2026-10-03). - Still labeled **alpha** and pre-1.0. v0.10.0 renamed robot error kinds (a "pre-1.0 minor bump" contract change) and listed known failing tests at release. - Traction on [[Hacker News]] was minimal (Show HN: 3 points, 1 comment). One competing author (deja, so biased) benchmarked six tools on 19k sessions in September 2026 and reported a 56-minute cass index plus natural-language queries failing with "query fuel exhausted" on the release build, fixed on `main` at the time. My read: it's the most feature-complete tool in this category, and also the heaviest. The README alone is over 3,700 lines. If you want a quick fuzzy finder, this is overkill. If you run several agents in parallel and want them to reuse each other's work, nothing in the alternatives below comes close in scope. ## The author Jeffrey Emanuel (`Dicklesworthstone` on GitHub, `@doodlestein` on X) is based in New York. He spent about ten years as a long/short equity analyst (Millennium and Balyasny among others), wrote "The Short Case for Nvidia Stock" in January 2025, and founded Lumera Network (formerly Pastel). Since October 2025, he has been building what he calls the "Agentic Coding Flywheel": a set of 14 core tools for running 10+ agents at once. His site claims 63 AI agent subscriptions (~$13.5K/month) and 262K GitHub contributions in a year (self-reported). His design principle, from a December 2025 post on X: small, Unix-style tools that work alone and integrate optionally, "installed" into the agent through `AGENTS.md`. The related tools: - **MCP Agent Mail**: messaging, inboxes and file leases between agents. - **beads_viewer (bv)** and **beads_rust**: a graph-aware TUI for [[Beads]] (by [[Steve Yegge]]) and a Rust port of it. - **cass_memory_system (cm)**: procedural memory built on top of cass. - **ntm**: tmux manager to spawn and coordinate agents. - **ultimate_bug_scanner (ubs)** and **destructive_command_guard (dcg)**: bug-pattern scanning, and blocking dangerous git/shell commands (dcg is his most-starred repo, ~6K stars). - **coding_agent_account_manager** and **cross_agent_session_resumer**: account switching, and resuming a session in another agent. - **agentic_coding_flywheel_setup**: turns a fresh VPS into the full environment (agent-flywheel.com). - The "FrankenSuite" (frankensqlite, frankentui, frankensearch): the Rust libraries cass is built on. ## Alternatives - [[AgentsView]]: Go, MIT, 40+ agents. More analytics and cost tracking, less agent-facing API. - **deja** (vshulcz/deja-vu): Claude Code, Codex and opencode. CLI, MCP tool, SessionStart hook, sync over SSH. Plain BM25. - **ctx** (ctxrs/ctx): local search over agent history (Tantivy), plus a paid `ctx blame` that traces code back to the session that wrote it. - **aichat** in pchalasani/claude-code-tools: Rust/Tantivy search across Claude Code and Codex sessions, TUI for humans and JSON for agents. - **agf** (subinium/agf) and **fast-resume** (angristan/fast-resume): lighter fuzzy finders focused on resuming sessions. - **Stash** (Fergana-Labs/stash) and **Agentlore** (clkao/agentlore): team-level session search. - [[Claude Replay]] covers a neighboring need: turning one transcript into a shareable HTML replay. ## References - Repository: https://github.com/Dicklesworthstone/coding_agent_session_search - README, `docs/`, `SKILL.md`, `LICENSE`, `install.sh` and `CHANGELOG.md` (read from a clone at commit `306d6e2`, 2026-10-03) - Release notes v0.10.0: https://github.com/Dicklesworthstone/coding_agent_session_search/releases/tag/v0.10.0 - GitHub API (stars, forks, releases, commit count): https://api.github.com/repos/Dicklesworthstone/coding_agent_session_search - Author's GitHub repositories: https://github.com/Dicklesworthstone?tab=repositories - Author's website: https://www.jeffreyemanuel.com/ - Agent Flywheel: https://agent-flywheel.com/ - The Short Case for Nvidia Stock (2025-01-25): https://youtubetranscriptoptimizer.com/blog/05_the_short_case_for_nvda - Show HN: Coding Agent Session Search (Cass), 2025-12-03: https://news.ycombinator.com/item?id=46130481 - HN comment benchmarking deja, agentmemory, MemPalace, CASS and others (2026-09-07): https://news.ycombinator.com/item?id=49599968 - HN thread on deja (2026-07-15): https://news.ycombinator.com/item?id=48923111 - Show HN: ctx 1.0 (2026-08-21): https://news.ycombinator.com/item?id=49389641 - Show HN: agf (2026-02-19): https://news.ycombinator.com/item?id=47068793 - HN comment on aichat (claude-code-tools): https://news.ycombinator.com/item?id=46631348 - Show HN: fast-resume: https://news.ycombinator.com/item?id=46752802 - Show HN: Stash: https://news.ycombinator.com/item?id=47882853 - Show HN: Agentlore: https://news.ycombinator.com/item?id=47275986 - Jeffrey Emanuel on X, composable agent tools (2025-12-14): https://x.com/doodlestein/status/2000271365816131942 - Jeffrey Emanuel on X, recommended stack incl. cass (2025-12-09): https://x.com/doodlestein/status/1998417768325206045 ## Related - [[AgentsView]] - [[Claude Replay]] - [[Claude Code]] - [[Codex CLI]] - [[Beads]] - [[AI Agent Memory]] - [[AI Agents]]