chat-recall 0.6.1 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,29 +12,40 @@
12
12
 
13
13
  **[chatrecall.dev](https://chatrecall.dev)** · [How it works](https://chatrecall.dev/how-it-works/) · [MCP tools](https://chatrecall.dev/mcp/) · [Pricing](https://chatrecall.dev/pricing/) · [Self-host](https://chatrecall.dev/self-hosting/) · [Security](https://chatrecall.dev/security/)
14
14
 
15
- > Memory, secret scanning and code findings across every AI coding tool you use. They all share a single searchable history — and the agent works it itself.
15
+ > Turn what your AI coding tools already write into shared team knowledge, leaked-secret alerts, ranked code findings and tracked tasks.
16
16
 
17
- Your coding agents each keep their own transcripts, in their own format, in their own directory, and none of them can read another's. `chat-recall` indexes all of them into one place, redacts secrets on the way, and exposes the result to your agent through **61 MCP tools**.
17
+ **Your agents wrote it all down. Nobody read it.**
18
18
 
19
- Memory is the foundation, not the whole product. One index, read three ways:
19
+ Every coding agent you run keeps a full transcript of its work: the decisions, the
20
+ reasoning, the keys somebody pasted, the problems it found and never filed. Each one
21
+ writes to its own directory in its own format, none can read another's, and nothing
22
+ reads any of them. `chat-recall` does, through **61 MCP tools**.
20
23
 
21
24
  | | What it does | Tools |
22
25
  |---|---|---|
23
- | **Recall** | Resume a session, search what you actually typed, read the diffs and commits it produced, recall a decision and why it was made | 37 |
24
- | **Security** | Flag credentials pasted into past conversations, per session, and track each one until it is rotated or dismissed | 4 |
25
- | **Code findings** | Rank what is worth fixing in a project and turn it into actionable tasks, with code intelligence over the repo itself | 12 |
26
+ | **Shared AI knowledge** | Decisions, conventions and project facts one agent learned, available to every other agent and every teammate. Time-aware, so a superseded decision reads as superseded | 16 |
27
+ | **Security findings** | Credentials pasted into past conversations, flagged per session, checked for whether they still work, and tracked until rotated or dismissed | 4 |
28
+ | **Automated code improvements** | Ranks what is actually worth fixing in a repository, then applies or dismisses each recommendation, with code intelligence over the repo itself | 9 |
29
+ | **Task tracking** | A shared board fed by those findings, with rules per repository, so a finding becomes work instead of a report | 5 |
26
30
 
27
- That cross-tool part is the point. A single tool's built-in history stops at its own boundary; this does not.
31
+ Underneath all four is one index of every session your tools already wrote, and 28
32
+ more tools to search, replay and diff it. That index is the mechanism. It is not
33
+ the pitch, and it is not why anyone buys this.
34
+
35
+ The cross-tool part is what makes it work. A single tool's built-in history stops at
36
+ its own boundary. This does not, and neither does your team.
28
37
 
29
38
  ## See it work
30
39
 
31
- Every screen below is a real MCP call against a real server — the exact tool and
32
- arguments are shown above each response. Nothing is mocked, replayed or re-timed.
40
+ Every screen below is real output against a real server, captured from the demo
41
+ account. Nothing is mocked, replayed or re-timed.
33
42
 
34
- **One memory, every tool.** Here **OpenCode** is asked about a **Claude Code**
35
- session: a different tool, a different transcript format, one index.
43
+ **One index, every tool.** Search finds a session by what was *discussed* in it,
44
+ not by its filename, and `memory status` shows every source type in one place —
45
+ sessions beside the skills, MCPs, commands, subagents and hooks that produced
46
+ them.
36
47
 
37
- ![recall_smart_resume called from OpenCode with a Claude Code session id, returning that session's request, plan and completed work](docs/media/7-cross-claude.png)
48
+ ![chat-recall search finding a past session by what was discussed in it, and memory status listing every indexed source type](docs/media/7-cross-claude.png)
38
49
 
39
50
  **Or just ask in plain English** — no tool names, no session ids. The agent picks
40
51
  the call itself:
@@ -58,7 +69,6 @@ That indexes the transcripts already on your disk, detects which AI tools you ha
58
69
  |---|---|
59
70
  | Claude Code | `~/.mcp.json` |
60
71
  | Codex | `~/.codex/config.toml` |
61
- | Gemini CLI | `~/.gemini/settings.json` |
62
72
  | OpenCode | `~/.config/opencode/opencode.json` |
63
73
  | Cursor | `~/.cursor/mcp.json` |
64
74
 
@@ -120,7 +130,7 @@ Exclusions live on the machine that holds the data, so the CLI owns them; they a
120
130
 
121
131
  ## Four things it actually does
122
132
 
123
- 1. **Cross-tool unified memory.** One index, one search, one UI over Claude Code (`~/.claude/projects/`), Gemini CLI (`~/.gemini/tmp/`), Codex (`~/.codex/`), OpenCode (`~/.local/share/opencode/`), Antigravity and Cursor (`~/.cursor/` for the CLI, `~/.config/Cursor/` for the IDE). Sessions, plans, tasks, CLAUDE.md files, paste cache, shell history and agent diaries all share one pluggable `MemorySource` interface.
133
+ 1. **Cross-tool unified memory.** One index, one search, one UI over Claude Code (`~/.claude/projects/`), Codex (`~/.codex/`), OpenCode (`~/.local/share/opencode/`), Antigravity (`~/.gemini/antigravity-cli/`) and Cursor (`~/.cursor/` for the CLI, `~/.config/Cursor/` for the IDE). Sessions, plans, tasks, CLAUDE.md files, paste cache, shell history and agent diaries all share one pluggable `MemorySource` interface.
124
134
  2. **The agent recalls itself.** 61 MCP tools, so Claude Code can `recall_smart_resume`, `recall_search` (with `like_session` to find similar work), `recall_edits_timeline`, `recall_subagent_search` and `recall_redundant_files` rather than asking you what happened last time. It writes back too, via `recall_decision_record`, `recall_kg_add` and `recall_set`.
125
135
  3. **Warns before you redo work.** A `UserPromptSubmit` hook searches for similar past sessions on every prompt and injects a short "you have done this before, in session X" note into the agent's context.
126
136
  4. **Temporal knowledge graph.** Decisions and tool mentions become entity-relationship triples with `valid_from`/`valid_to` windows, so you can ask what was decided in March and whether it still holds.
@@ -251,7 +261,6 @@ codeindex is open source (MIT) at [github.com/munhq/codeindex](https://github.co
251
261
  | Source | Origin | Notes |
252
262
  |--------|--------|-------|
253
263
  | **Sessions (Claude)** | `~/.claude/projects/<hash>/<uuid>.jsonl` | Full transcripts, tokens, cost, files touched, models used |
254
- | **Sessions (Gemini CLI)** | `~/.gemini/tmp/*/chats/*.json` | Tokens and tool usage extracted where present |
255
264
  | **Sessions (OpenCode)** | `~/.local/share/opencode/opencode.db` (SQLite) | Cost, tokens, todos |
256
265
  | **Subagent transcripts** | `<session-dir>/<id>/subagents/*.jsonl` | Explore, aside, **and `acompact-*`** (orphaned compacted history) |
257
266
  | **Plans** | `~/.claude/plans/*.md` | Agent planning docs, split by `##` |
@@ -328,7 +337,7 @@ No telemetry. Your data lives in **your** server's Postgres — back that up how
328
337
  packages/
329
338
  ├── engine/src/
330
339
  │ ├── core/
331
- │ │ ├── backends/ ToolBackend per AI tool (claude, gemini, opencode, codex, agy)
340
+ │ │ ├── backends/ ToolBackend per AI tool (claude, opencode, codex, agy, cursor)
332
341
  │ │ ├── tool-backend.ts Registry interface — single source of truth for tool identity
333
342
  │ │ ├── tool-paths.ts Env-overridable default paths for each tool
334
343
  │ │ ├── generic-engine.ts Shared turn extraction / edit scan / replay (canonical events)
@@ -351,13 +360,13 @@ e2e/ Playwright tests for the dashboard
351
360
  Two extension points, both registry-driven:
352
361
 
353
362
  - **Adding a new content type** (e.g. another file format to index) — implement `MemorySource` (`discover` → `parse` → `extractLinks`) and register it in the `SourceRegistry`.
354
- - **Adding a new AI tool** (a seventh backend alongside Claude/Gemini/OpenCode/Codex/Antigravity/Cursor) — implement `ToolBackend` (paths, ID handling, `readEvents`, `fileToolMap`, `extractEditDelta`) and register it in `packages/engine/src/core/backends/index.ts`. All paths are env-overridable via `CHAT_RECALL_{CLAUDE,GEMINI,CODEX,AGY,CURSOR,CURSOR_IDE}_HOME` / `CHAT_RECALL_OPENCODE_DB`.
363
+ - **Adding a new AI tool** (a sixth backend alongside Claude/OpenCode/Codex/Antigravity/Cursor) — implement `ToolBackend` (paths, ID handling, `readEvents`, `fileToolMap`, `extractEditDelta`) and register it in `packages/engine/src/core/backends/index.ts`. All paths are env-overridable via `CHAT_RECALL_{CLAUDE,CODEX,AGY,CURSOR,CURSOR_IDE}_HOME` / `CHAT_RECALL_OPENCODE_DB`.
355
364
 
356
365
  ## Requirements
357
366
 
358
367
  - Node.js 22 or later. The Docker image and CI run 24.
359
368
  - Sessions written by a supported tool, in its standard location: `~/.claude/`,
360
- `~/.codex/`, `~/.local/share/opencode/`, `~/.gemini/`.
369
+ `~/.codex/`, `~/.local/share/opencode/`, `~/.gemini/antigravity-cli/`.
361
370
 
362
371
  That is the whole list. No API key is needed to install, index or search.
363
372