chat-recall 0.6.0 → 0.6.3

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,21 +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
- > One memory across every AI coding tool you use. Claude Code, Gemini CLI, Codex, OpenCode, Antigravity and Cursor share a single searchable history — and the agent can search 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** so it can recall its own past work instead of you re-explaining it.
17
+ **Your agents wrote it all down. Nobody read it.**
18
18
 
19
- That cross-tool part is the point. A single tool's built-in history stops at its own boundary; this does not.
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**.
23
+
24
+ | | What it does | Tools |
25
+ |---|---|---|
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 |
30
+
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.
20
37
 
21
38
  ## See it work
22
39
 
23
- Every screen below is a real MCP call against a real server — the exact tool and
24
- 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.
25
42
 
26
- **One memory, every tool.** Here **OpenCode** is asked about a **Claude Code**
27
- 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.
28
47
 
29
- ![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)
30
49
 
31
50
  **Or just ask in plain English** — no tool names, no session ids. The agent picks
32
51
  the call itself:
@@ -50,7 +69,6 @@ That indexes the transcripts already on your disk, detects which AI tools you ha
50
69
  |---|---|
51
70
  | Claude Code | `~/.mcp.json` |
52
71
  | Codex | `~/.codex/config.toml` |
53
- | Gemini CLI | `~/.gemini/settings.json` |
54
72
  | OpenCode | `~/.config/opencode/opencode.json` |
55
73
  | Cursor | `~/.cursor/mcp.json` |
56
74
 
@@ -61,6 +79,24 @@ It only touches a config whose tool is on this machine, it never overwrites an e
61
79
  /plugin install chat-recall@chat-recall
62
80
  ```
63
81
 
82
+ Any other MCP client (Claude Desktop, Windsurf, Zed, Cline, or a tool `init` does
83
+ not know) takes the same server as a JSON entry. The bin is `chat-recall-mcp`,
84
+ which is why the package name alone is not enough — `npx -y chat-recall` starts
85
+ the CLI, not the server:
86
+
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "chat-recall": {
91
+ "command": "npx",
92
+ "args": ["-y", "-p", "chat-recall", "chat-recall-mcp"]
93
+ }
94
+ }
95
+ }
96
+ ```
97
+
98
+ The same command as one line, for a `claude mcp add`-style client: `npx -y -p chat-recall chat-recall-mcp`.
99
+
64
100
  Then:
65
101
 
66
102
  ```bash
@@ -94,7 +130,7 @@ Exclusions live on the machine that holds the data, so the CLI owns them; they a
94
130
 
95
131
  ## Four things it actually does
96
132
 
97
- 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.
98
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`.
99
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.
100
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.
@@ -225,7 +261,6 @@ codeindex is open source (MIT) at [github.com/munhq/codeindex](https://github.co
225
261
  | Source | Origin | Notes |
226
262
  |--------|--------|-------|
227
263
  | **Sessions (Claude)** | `~/.claude/projects/<hash>/<uuid>.jsonl` | Full transcripts, tokens, cost, files touched, models used |
228
- | **Sessions (Gemini CLI)** | `~/.gemini/tmp/*/chats/*.json` | Tokens and tool usage extracted where present |
229
264
  | **Sessions (OpenCode)** | `~/.local/share/opencode/opencode.db` (SQLite) | Cost, tokens, todos |
230
265
  | **Subagent transcripts** | `<session-dir>/<id>/subagents/*.jsonl` | Explore, aside, **and `acompact-*`** (orphaned compacted history) |
231
266
  | **Plans** | `~/.claude/plans/*.md` | Agent planning docs, split by `##` |
@@ -302,7 +337,7 @@ No telemetry. Your data lives in **your** server's Postgres — back that up how
302
337
  packages/
303
338
  ├── engine/src/
304
339
  │ ├── core/
305
- │ │ ├── backends/ ToolBackend per AI tool (claude, gemini, opencode, codex, agy)
340
+ │ │ ├── backends/ ToolBackend per AI tool (claude, opencode, codex, agy, cursor)
306
341
  │ │ ├── tool-backend.ts Registry interface — single source of truth for tool identity
307
342
  │ │ ├── tool-paths.ts Env-overridable default paths for each tool
308
343
  │ │ ├── generic-engine.ts Shared turn extraction / edit scan / replay (canonical events)
@@ -325,13 +360,13 @@ e2e/ Playwright tests for the dashboard
325
360
  Two extension points, both registry-driven:
326
361
 
327
362
  - **Adding a new content type** (e.g. another file format to index) — implement `MemorySource` (`discover` → `parse` → `extractLinks`) and register it in the `SourceRegistry`.
328
- - **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`.
329
364
 
330
365
  ## Requirements
331
366
 
332
367
  - Node.js 22 or later. The Docker image and CI run 24.
333
368
  - Sessions written by a supported tool, in its standard location: `~/.claude/`,
334
- `~/.codex/`, `~/.local/share/opencode/`, `~/.gemini/`.
369
+ `~/.codex/`, `~/.local/share/opencode/`, `~/.gemini/antigravity-cli/`.
335
370
 
336
371
  That is the whole list. No API key is needed to install, index or search.
337
372