@agentmemory/agentmemory 0.9.26 → 0.9.28

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.
Files changed (125) hide show
  1. package/AGENTS.md +6 -6
  2. package/README.md +104 -42
  3. package/dist/cli.d.mts.map +1 -1
  4. package/dist/cli.mjs +239 -170
  5. package/dist/cli.mjs.map +1 -1
  6. package/dist/config-ChC9EtgV.mjs +259 -0
  7. package/dist/config-ChC9EtgV.mjs.map +1 -0
  8. package/dist/{connect-bmZ5eqYN.mjs → connect-JnsJXc68.mjs} +136 -42
  9. package/dist/connect-JnsJXc68.mjs.map +1 -0
  10. package/dist/hooks/notification.mjs +2 -1
  11. package/dist/hooks/notification.mjs.map +1 -1
  12. package/dist/hooks/post-commit.mjs +2 -1
  13. package/dist/hooks/post-commit.mjs.map +1 -1
  14. package/dist/hooks/post-tool-failure.mjs +2 -1
  15. package/dist/hooks/post-tool-failure.mjs.map +1 -1
  16. package/dist/hooks/post-tool-use.mjs +2 -1
  17. package/dist/hooks/post-tool-use.mjs.map +1 -1
  18. package/dist/hooks/pre-compact.mjs +2 -1
  19. package/dist/hooks/pre-compact.mjs.map +1 -1
  20. package/dist/hooks/pre-tool-use.mjs +2 -1
  21. package/dist/hooks/pre-tool-use.mjs.map +1 -1
  22. package/dist/hooks/prompt-submit.mjs +2 -1
  23. package/dist/hooks/prompt-submit.mjs.map +1 -1
  24. package/dist/hooks/session-end.mjs +2 -1
  25. package/dist/hooks/session-end.mjs.map +1 -1
  26. package/dist/hooks/session-start.mjs +2 -1
  27. package/dist/hooks/session-start.mjs.map +1 -1
  28. package/dist/hooks/stop.mjs +2 -1
  29. package/dist/hooks/stop.mjs.map +1 -1
  30. package/dist/hooks/subagent-start.mjs +2 -1
  31. package/dist/hooks/subagent-start.mjs.map +1 -1
  32. package/dist/hooks/subagent-stop.mjs +2 -1
  33. package/dist/hooks/subagent-stop.mjs.map +1 -1
  34. package/dist/hooks/task-completed.mjs +2 -1
  35. package/dist/hooks/task-completed.mjs.map +1 -1
  36. package/dist/{image-refs-C7h9L5wx.mjs → image-refs-BKLmp_sD.mjs} +4 -22
  37. package/dist/image-refs-BKLmp_sD.mjs.map +1 -0
  38. package/dist/image-refs-C2YU7BIm.mjs +34 -0
  39. package/dist/image-refs-C2YU7BIm.mjs.map +1 -0
  40. package/dist/index.mjs +559 -205
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/{image-store-Gpo2mgM9.mjs → keyed-mutex-DTHtcZrt.mjs} +14 -11
  43. package/dist/keyed-mutex-DTHtcZrt.mjs.map +1 -0
  44. package/dist/{logger-yHTcEBAI.mjs → logger-BEB7pCI9.mjs} +1 -1
  45. package/dist/{logger-yHTcEBAI.mjs.map → logger-BEB7pCI9.mjs.map} +1 -1
  46. package/dist/{schema-Dsr_V2Wp.mjs → schema-CNiCWzV9.mjs} +5 -1
  47. package/dist/schema-CNiCWzV9.mjs.map +1 -0
  48. package/dist/{src-u7kAEUC0.mjs → src-CzgoepGU.mjs} +482 -83
  49. package/dist/src-CzgoepGU.mjs.map +1 -0
  50. package/dist/{standalone-C1yPO519.mjs → standalone-YsZFFQBM.mjs} +8 -5
  51. package/dist/standalone-YsZFFQBM.mjs.map +1 -0
  52. package/dist/standalone.d.mts.map +1 -1
  53. package/dist/standalone.mjs +6 -2
  54. package/dist/standalone.mjs.map +1 -1
  55. package/dist/{tools-registry-Dzxv9iUu.mjs → tools-registry-D3NEoe5m.mjs} +4 -254
  56. package/dist/tools-registry-D3NEoe5m.mjs.map +1 -0
  57. package/package.json +4 -1
  58. package/plugin/.claude-plugin/plugin.json +1 -1
  59. package/plugin/.codex-plugin/plugin.json +1 -1
  60. package/plugin/plugin.json +2 -2
  61. package/plugin/scripts/notification.mjs +2 -1
  62. package/plugin/scripts/notification.mjs.map +1 -1
  63. package/plugin/scripts/post-commit.mjs +2 -1
  64. package/plugin/scripts/post-commit.mjs.map +1 -1
  65. package/plugin/scripts/post-tool-failure.mjs +2 -1
  66. package/plugin/scripts/post-tool-failure.mjs.map +1 -1
  67. package/plugin/scripts/post-tool-use.mjs +2 -1
  68. package/plugin/scripts/post-tool-use.mjs.map +1 -1
  69. package/plugin/scripts/pre-compact.mjs +2 -1
  70. package/plugin/scripts/pre-compact.mjs.map +1 -1
  71. package/plugin/scripts/pre-tool-use.mjs +2 -1
  72. package/plugin/scripts/pre-tool-use.mjs.map +1 -1
  73. package/plugin/scripts/prompt-submit.mjs +2 -1
  74. package/plugin/scripts/prompt-submit.mjs.map +1 -1
  75. package/plugin/scripts/session-end.mjs +2 -1
  76. package/plugin/scripts/session-end.mjs.map +1 -1
  77. package/plugin/scripts/session-start.mjs +2 -1
  78. package/plugin/scripts/session-start.mjs.map +1 -1
  79. package/plugin/scripts/stop.mjs +2 -1
  80. package/plugin/scripts/stop.mjs.map +1 -1
  81. package/plugin/scripts/subagent-start.mjs +2 -1
  82. package/plugin/scripts/subagent-start.mjs.map +1 -1
  83. package/plugin/scripts/subagent-stop.mjs +2 -1
  84. package/plugin/scripts/subagent-stop.mjs.map +1 -1
  85. package/plugin/scripts/task-completed.mjs +2 -1
  86. package/plugin/scripts/task-completed.mjs.map +1 -1
  87. package/plugin/skills/_shared/TROUBLESHOOTING.md +38 -0
  88. package/plugin/skills/agentmemory-agents/REFERENCE.md +28 -0
  89. package/plugin/skills/agentmemory-agents/SKILL.md +34 -0
  90. package/plugin/skills/agentmemory-architecture/SKILL.md +33 -0
  91. package/plugin/skills/agentmemory-config/REFERENCE.md +42 -0
  92. package/plugin/skills/agentmemory-config/SKILL.md +37 -0
  93. package/plugin/skills/agentmemory-hooks/REFERENCE.md +20 -0
  94. package/plugin/skills/agentmemory-hooks/SKILL.md +39 -0
  95. package/plugin/skills/agentmemory-mcp-tools/REFERENCE.md +65 -0
  96. package/plugin/skills/agentmemory-mcp-tools/SKILL.md +39 -0
  97. package/plugin/skills/agentmemory-rest-api/REFERENCE.md +129 -0
  98. package/plugin/skills/agentmemory-rest-api/SKILL.md +43 -0
  99. package/plugin/skills/commit-context/EXAMPLES.md +71 -0
  100. package/plugin/skills/commit-context/SKILL.md +53 -8
  101. package/plugin/skills/commit-history/EXAMPLES.md +71 -0
  102. package/plugin/skills/commit-history/SKILL.md +51 -9
  103. package/plugin/skills/forget/EXAMPLES.md +75 -0
  104. package/plugin/skills/forget/SKILL.md +54 -14
  105. package/plugin/skills/handoff/EXAMPLES.md +56 -0
  106. package/plugin/skills/handoff/SKILL.md +56 -9
  107. package/plugin/skills/recall/EXAMPLES.md +74 -0
  108. package/plugin/skills/recall/SKILL.md +50 -11
  109. package/plugin/skills/recap/EXAMPLES.md +60 -0
  110. package/plugin/skills/recap/SKILL.md +51 -13
  111. package/plugin/skills/remember/EXAMPLES.md +67 -0
  112. package/plugin/skills/remember/SKILL.md +53 -17
  113. package/plugin/skills/session-history/EXAMPLES.md +59 -0
  114. package/plugin/skills/session-history/SKILL.md +54 -11
  115. package/plugin/skills/write-agentmemory-skill/SKILL.md +40 -0
  116. package/dist/connect-bmZ5eqYN.mjs.map +0 -1
  117. package/dist/image-refs-C7h9L5wx.mjs.map +0 -1
  118. package/dist/image-store-Gpo2mgM9.mjs.map +0 -1
  119. package/dist/rolldown-runtime-twds-ZHy.mjs +0 -14
  120. package/dist/schema-Dsr_V2Wp.mjs.map +0 -1
  121. package/dist/src-u7kAEUC0.mjs.map +0 -1
  122. package/dist/standalone-C1yPO519.mjs.map +0 -1
  123. package/dist/tools-registry-Dzxv9iUu.mjs.map +0 -1
  124. package/dist/version-BMFYFFut.mjs +0 -6
  125. package/dist/version-BMFYFFut.mjs.map +0 -1
package/AGENTS.md CHANGED
@@ -109,16 +109,16 @@ Hook scripts in `src/hooks/` are standalone Node.js scripts (no iii-sdk import).
109
109
 
110
110
  ## Testing
111
111
 
112
- - All tests must pass before PR: `npm test` (950+ tests)
112
+ - All tests must pass before PR: `npm test` (1,428+ tests)
113
113
  - Mock pattern: `vi.mock("iii-sdk")` with mock `sdk.trigger`, `kv.get/set/list`
114
114
  - Test files go in `test/` with `.test.ts` extension
115
115
  - Follow existing patterns in `test/crystallize.test.ts` for function tests
116
116
 
117
- ## Current Stats (v0.9.16)
117
+ ## Current Stats (v0.9.28)
118
118
 
119
119
  - 53 MCP tools (8 visible by default, `AGENTMEMORY_TOOLS=all` for all)
120
- - 126 REST endpoints
120
+ - 128 REST endpoints
121
121
  - 6 MCP resources, 3 MCP prompts
122
- - 12 hooks, 4 skills
123
- - 50+ iii functions
124
- - 950+ tests
122
+ - 12 hooks, 15 skills
123
+ - 260+ iii functions
124
+ - 1,428+ tests
package/README.md CHANGED
@@ -29,16 +29,6 @@
29
29
  <a href="https://trendshift.io/repositories/25123" target="_blank"><img src="https://trendshift.io/api/badge/repositories/25123" alt="rohitg00/agentmemory | Trendshift" width="250" height="55"/></a>
30
30
  </p>
31
31
 
32
- <p align="center">
33
- <a href="https://www.star-history.com/?repos=rohitg00%2Fagentmemory&type=date&legend=top-left">
34
- <picture>
35
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=rohitg00/agentmemory&type=date&theme=dark&legend=top-left" />
36
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=rohitg00/agentmemory&type=date&legend=top-left" />
37
- <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=rohitg00/agentmemory&type=date&legend=top-left" />
38
- </picture>
39
- </a>
40
- </p>
41
-
42
32
  <p align="center">
43
33
  <a href="https://gist.github.com/rohitg00/2067ab416f7bbe447c1977edaaa681e2"><img src="https://img.shields.io/badge/Viral%20GitHub%20Gist-1.3k%20stars%20%2F%20182%20forks-FF6B35?style=for-the-badge&logo=github&logoColor=white&labelColor=1a1a1a" alt="Design doc: 1.3k stars / 182 forks on the gist" /></a>
44
34
  </p>
@@ -49,7 +39,6 @@
49
39
 
50
40
  <p align="center">
51
41
  <a href="https://www.npmjs.com/package/@agentmemory/agentmemory"><img src="https://img.shields.io/npm/v/@agentmemory/agentmemory?color=CB3837&label=npm&style=for-the-badge&logo=npm" alt="npm version" /></a>
52
- <a href="https://www.npmjs.com/package/@agentmemory/agentmemory"><img src="https://img.shields.io/npm/dm/@agentmemory/agentmemory?color=CB3837&label=downloads&style=for-the-badge&logo=npm" alt="npm downloads" /></a>
53
42
  <a href="https://github.com/rohitg00/agentmemory/actions"><img src="https://img.shields.io/github/actions/workflow/status/rohitg00/agentmemory/ci.yml?label=tests&style=for-the-badge&logo=github" alt="CI" /></a>
54
43
  <a href="https://github.com/rohitg00/agentmemory/blob/main/LICENSE"><img src="https://img.shields.io/github/license/rohitg00/agentmemory?color=blue&style=for-the-badge" alt="License" /></a>
55
44
  <a href="https://github.com/rohitg00/agentmemory/stargazers"><img src="https://img.shields.io/github/stars/rohitg00/agentmemory?style=for-the-badge&color=yellow&logo=github" alt="Stars" /></a>
@@ -61,7 +50,7 @@
61
50
  <picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/stat-tools.svg"><img src="assets/tags/stat-tools.svg" alt="53 MCP tools" height="38" /></picture>
62
51
  <picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/stat-hooks.svg"><img src="assets/tags/stat-hooks.svg" alt="12 auto hooks" height="38" /></picture>
63
52
  <picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/stat-deps.svg"><img src="assets/tags/stat-deps.svg" alt="0 external DBs" height="38" /></picture>
64
- <picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/stat-tests.svg"><img src="assets/tags/stat-tests.svg" alt="950+ tests passing" height="38" /></picture>
53
+ <picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/stat-tests.svg"><img src="assets/tags/stat-tests.svg" alt="1,428+ tests passing" height="38" /></picture>
65
54
  </p>
66
55
 
67
56
  <p align="center">
@@ -87,14 +76,21 @@
87
76
 
88
77
  ## Install
89
78
 
79
+ Fastest path if you use a coding agent: hand it this one instruction and it installs, wires, and verifies agentmemory end to end.
80
+
81
+ > Retrieve and follow the instructions at: https://raw.githubusercontent.com/rohitg00/agentmemory/main/INSTALL_FOR_AGENTS.md
82
+
83
+ On Windows the fast path is WSL2. Native Windows engine setup is manual (about 10 to 20 minutes) and `agentmemory connect` is currently unsupported there. See the [Windows notes](#windows) below for the step-by-step.
84
+
90
85
  ```bash
91
- npm install -g @agentmemory/agentmemory # once — bare `agentmemory` on PATH
86
+ npm install -g @agentmemory/agentmemory # once — bare `agentmemory` on PATH
92
87
  # If you hit EACCES on macOS/Linux system Node installs, retry with:
93
88
  # sudo npm install -g @agentmemory/agentmemory
94
89
  agentmemory # start the memory server on :3111
95
90
  agentmemory demo # seed sample sessions + prove recall
91
+ agentmemory demo --serve # one command: boot server, run demo, tear down (no second terminal)
96
92
  agentmemory connect claude-code # wire MCP into your agent (also: copilot-cli, codex, cursor, gemini-cli, ...)
97
- npx skills add rohitg00/agentmemory -y # install 8 native skills so your agent knows when to use the tools
93
+ npx skills add rohitg00/agentmemory -y # install 15 native skills (8 you can invoke, 7 reference) so your agent knows when to use the tools
98
94
  ```
99
95
 
100
96
  Or via `npx` (no install):
@@ -105,6 +101,8 @@ npx @agentmemory/agentmemory
105
101
 
106
102
  Heads-up — npx caches per version. If a bare `npx @agentmemory/agentmemory` serves an older release, force the latest with `npx -y @agentmemory/agentmemory@latest`, or clear the cache once with `rm -rf ~/.npm/_npx` (macOS/Linux; on Windows delete `%LOCALAPPDATA%\npm-cache\_npx`). The first npx run from v0.9.16+ prompts to install globally inline so the bare `agentmemory` command works everywhere afterwards.
107
103
 
104
+ Already running your own `iii` engine? agentmemory pins iii-engine v0.11.2 and won't attach to a different version (the worker can't speak another engine's protocol). Stop the other engine, then run `npx -y @agentmemory/agentmemory@latest` — it installs and runs the pinned v0.11.2 in `~/.agentmemory/bin`, leaving your own `iii` untouched.
105
+
108
106
  Full options at [Quick Start](#quick-start) below. Agent-specific wiring at [Works with every agent](#works-with-every-agent).
109
107
 
110
108
  ---
@@ -226,7 +224,7 @@ You explain the same architecture every session. You re-discover the same bugs.
226
224
  npx @agentmemory/agentmemory
227
225
  ```
228
226
 
229
- > **New in v0.9.22** — Three new connect adapters (Qwen Code, Antigravity, Kiro), `AGENT_ID` multi-agent isolation with opt-in `AGENTMEMORY_AGENT_SCOPE=isolated` filtering, install ERESOLVE fixed, OpenAI thinking-model output handled, OpenCode auto-context + session creation, viewer graph settles on 1000+ nodes, 22 fixes total. Full notes in [CHANGELOG.md](CHANGELOG.md).
227
+ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
230
228
 
231
229
  ---
232
230
 
@@ -242,10 +240,10 @@ npx @agentmemory/agentmemory
242
240
 
243
241
  | Adapter | P@5 | R@5 | Top-5 hit rate | p50 latency |
244
242
  |---|---|---|---|---|
245
- | **agentmemory hybrid** | **0.578** | **0.967** | **15 / 15** | 14 ms |
246
- | grep baseline | 0.267 | 0.967 | 15 / 15 | 0 ms |
243
+ | **agentmemory hybrid** | **0.240** | **1.000** | **15 / 15** | 14 ms |
244
+ | grep baseline | 0.227 | 0.967 | 15 / 15 | 0 ms |
247
245
 
248
- 100% top-5 hit rate. **2.2×** better precision than the grep baseline on identical input. Full per-type breakdown: [`docs/benchmarks/2026-05-20-coding-agent-life-v1.md`](docs/benchmarks/2026-05-20-coding-agent-life-v1.md).
246
+ 100% top-5 hit rate at the **P@5 math ceiling** for this corpus (0.240, see scorecard). Hybrid retrieves every gold session; grep misses 1 of 2 gold on the multi-session temporal query. Lift is **recall + temporal**, not aggregate precision — this benchmark is small + gold-sparse, the larger LongMemEval-S below differentiates better. Full per-type breakdown + correction note: [`docs/benchmarks/2026-05-20-coding-agent-life-v1.md`](docs/benchmarks/2026-05-20-coding-agent-life-v1.md).
249
247
 
250
248
  **LongMemEval-S** (ICLR 2025, 500 questions)
251
249
 
@@ -270,7 +268,7 @@ npx @agentmemory/agentmemory
270
268
  </tr>
271
269
  </table>
272
270
 
273
- > Embedding model: `all-MiniLM-L6-v2` (local, free, no API key). Full reports: [`benchmark/LONGMEMEVAL.md`](benchmark/LONGMEMEVAL.md), [`benchmark/QUALITY.md`](benchmark/QUALITY.md), [`benchmark/SCALE.md`](benchmark/SCALE.md). Competitor comparison: [`benchmark/COMPARISON.md`](benchmark/COMPARISON.md) — agentmemory vs mem0, Letta, Khoj, claude-mem, Hippo.
271
+ > Embedding model: `all-MiniLM-L6-v2` (local, free, no API key). Full reports: [`benchmark/LONGMEMEVAL.md`](benchmark/LONGMEMEVAL.md), [`benchmark/QUALITY.md`](benchmark/QUALITY.md), [`benchmark/SCALE.md`](benchmark/SCALE.md). Competitor comparison: [`benchmark/COMPARISON.md`](benchmark/COMPARISON.md) covering agentmemory vs mem0, Letta, Khoj, supermemory, MemPalace, Hippo.
274
272
 
275
273
  **Reproduce locally:** [`eval/README.md`](eval/README.md) — adapter-pluggable harness for LongMemEval `_s` (public 500-Q) + `coding-agent-life-v1` (in-house 15-session corpus). Grep / vector / agentmemory adapters score side-by-side, NDJSON output, published scorecards land in [`docs/benchmarks/`](docs/benchmarks/).
276
274
 
@@ -282,17 +280,27 @@ npx @agentmemory/agentmemory
282
280
 
283
281
  <table>
284
282
  <tr>
285
- <th width="20%"></th>
286
- <th width="20%">agentmemory</th>
287
- <th width="20%">mem0 (53K ⭐)</th>
288
- <th width="20%">Letta / MemGPT (22K ⭐)</th>
289
- <th width="20%">Built-in (CLAUDE.md)</th>
283
+ <th></th>
284
+ <th>agentmemory</th>
285
+ <th>mem0 (58K ⭐)</th>
286
+ <th>Letta / MemGPT (23K ⭐)</th>
287
+ <th>Khoj (35K ⭐)</th>
288
+ <th>supermemory (26K ⭐)</th>
289
+ <th>MemPalace (54K ⭐)</th>
290
+ <th>oracleagentmemory</th>
291
+ <th>Hippo</th>
292
+ <th>Built-in (CLAUDE.md)</th>
290
293
  </tr>
291
294
  <tr>
292
295
  <td><strong>Type</strong></td>
293
296
  <td>Memory engine + MCP server</td>
294
297
  <td>Memory layer API</td>
295
298
  <td>Full agent runtime</td>
299
+ <td>Personal AI</td>
300
+ <td>Memory API + app</td>
301
+ <td>Vector memory (OSS)</td>
302
+ <td>Memory engine (Oracle DB)</td>
303
+ <td>Memory system</td>
296
304
  <td>Static file</td>
297
305
  </tr>
298
306
  <tr>
@@ -300,6 +308,11 @@ npx @agentmemory/agentmemory
300
308
  <td><strong>95.2%</strong></td>
301
309
  <td>68.5% (LoCoMo)</td>
302
310
  <td>83.2% (LoCoMo)</td>
311
+ <td>N/A</td>
312
+ <td>Self-reported</td>
313
+ <td>~96.6% (self-reported)</td>
314
+ <td>94.4% (self-reported)</td>
315
+ <td>N/A</td>
303
316
  <td>N/A (grep)</td>
304
317
  </tr>
305
318
  <tr>
@@ -307,6 +320,11 @@ npx @agentmemory/agentmemory
307
320
  <td>12 hooks (zero manual effort)</td>
308
321
  <td>Manual <code>add()</code> calls</td>
309
322
  <td>Agent self-edits</td>
323
+ <td>Manual</td>
324
+ <td>API-side extraction</td>
325
+ <td>Manual</td>
326
+ <td>API extraction</td>
327
+ <td>Manual</td>
310
328
  <td>Manual editing</td>
311
329
  </tr>
312
330
  <tr>
@@ -314,6 +332,11 @@ npx @agentmemory/agentmemory
314
332
  <td>BM25 + Vector + Graph (RRF fusion)</td>
315
333
  <td>Vector + Graph</td>
316
334
  <td>Vector (archival)</td>
335
+ <td>Semantic</td>
336
+ <td>Vector + RAG</td>
337
+ <td>Vector-only</td>
338
+ <td>Vector + semantic</td>
339
+ <td>Decay-weighted</td>
317
340
  <td>Loads everything into context</td>
318
341
  </tr>
319
342
  <tr>
@@ -321,6 +344,11 @@ npx @agentmemory/agentmemory
321
344
  <td>MCP + REST + leases + signals</td>
322
345
  <td>API (no coordination)</td>
323
346
  <td>Within Letta runtime only</td>
347
+ <td>No</td>
348
+ <td>No</td>
349
+ <td>No</td>
350
+ <td>Scoped only</td>
351
+ <td>Multi-agent shared</td>
324
352
  <td>Per-agent files</td>
325
353
  </tr>
326
354
  <tr>
@@ -328,6 +356,11 @@ npx @agentmemory/agentmemory
328
356
  <td>None (any MCP client)</td>
329
357
  <td>None</td>
330
358
  <td>High (must use Letta)</td>
359
+ <td>Standalone</td>
360
+ <td>None</td>
361
+ <td>None</td>
362
+ <td>Oracle Database</td>
363
+ <td>None</td>
331
364
  <td>Per-agent format</td>
332
365
  </tr>
333
366
  <tr>
@@ -335,6 +368,11 @@ npx @agentmemory/agentmemory
335
368
  <td>None (SQLite + iii-engine)</td>
336
369
  <td>Qdrant / pgvector</td>
337
370
  <td>Postgres + vector DB</td>
371
+ <td>Multiple</td>
372
+ <td>Managed cloud</td>
373
+ <td>Vector store</td>
374
+ <td>Oracle AI Database</td>
375
+ <td>None</td>
338
376
  <td>None</td>
339
377
  </tr>
340
378
  <tr>
@@ -342,6 +380,11 @@ npx @agentmemory/agentmemory
342
380
  <td>4-tier consolidation + decay + auto-forget</td>
343
381
  <td>Passive extraction</td>
344
382
  <td>Agent-managed</td>
383
+ <td>Manual</td>
384
+ <td>Auto-forget</td>
385
+ <td>None</td>
386
+ <td>Not stated</td>
387
+ <td>Decay + consolidation</td>
345
388
  <td>Manual pruning</td>
346
389
  </tr>
347
390
  <tr>
@@ -349,6 +392,11 @@ npx @agentmemory/agentmemory
349
392
  <td>~1,900 tokens/session ($10/yr)</td>
350
393
  <td>Varies by integration</td>
351
394
  <td>Core memory in context</td>
395
+ <td>Varies</td>
396
+ <td>Cloud pricing</td>
397
+ <td>No token budget</td>
398
+ <td>LLM-backed (varies)</td>
399
+ <td>Varies</td>
352
400
  <td>22K+ tokens at 240 obs</td>
353
401
  </tr>
354
402
  <tr>
@@ -356,6 +404,11 @@ npx @agentmemory/agentmemory
356
404
  <td>Yes (port 3113)</td>
357
405
  <td>Cloud dashboard</td>
358
406
  <td>Cloud dashboard</td>
407
+ <td>Web UI</td>
408
+ <td>Cloud dashboard</td>
409
+ <td>No</td>
410
+ <td>No</td>
411
+ <td>No</td>
359
412
  <td>No</td>
360
413
  </tr>
361
414
  <tr>
@@ -364,9 +417,16 @@ npx @agentmemory/agentmemory
364
417
  <td>Optional</td>
365
418
  <td>Optional</td>
366
419
  <td>Yes</td>
420
+ <td>No (cloud-only)</td>
421
+ <td>Yes</td>
422
+ <td>Yes (Oracle DB)</td>
423
+ <td>Yes</td>
424
+ <td>Yes</td>
367
425
  </tr>
368
426
  </table>
369
427
 
428
+ <sub>Benchmark note: only agentmemory's R@5 is our own measured result (LongMemEval-S, reproducible from <a href="benchmark/COMPARISON.md"><code>benchmark/COMPARISON.md</code></a>). The mem0 and Letta figures are their published LoCoMo numbers (a different dataset); the MemPalace, supermemory, and oracleagentmemory figures are vendor self-reported claims we have not independently reproduced (oracleagentmemory's run used GPT-5.5 against an Oracle AI Database). Shown side by side for ballpark only, not a head-to-head on identical data. Star counts are approximate and drift over time.</sub>
429
+
370
430
  ---
371
431
 
372
432
  <h2 id="quick-start"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-quickstart.svg"><img src="assets/tags/section-quickstart.svg" alt="Quick Start" height="32" /></picture></h2>
@@ -427,6 +487,8 @@ npx @agentmemory/agentmemory import-jsonl ~/.claude/projects/-my-project/abc123.
427
487
 
428
488
  Imported sessions show up in the Replay picker alongside native ones. Under the hood each entry routes through the `mem::replay::load`, `mem::replay::sessions`, and `mem::replay::import-jsonl` iii functions — no side-channel servers.
429
489
 
490
+ > **Heads-up if you rely on `import-jsonl` as your primary capture path:** Claude Code's `cleanupPeriodDays` (in `~/.claude/settings.json`, default **30**) auto-deletes JSONL transcripts older than that window from `~/.claude/projects/`. If you install agentmemory fresh on a months-old Claude Code history, anything older than 30 days is already gone before the first import. Either run `import-jsonl` on a cron, raise `cleanupPeriodDays` to something higher, or wire the auto-capture hooks (the default plugin install path) so each turn lands in agentmemory while the session is live and the JSONL cleanup stops mattering.
491
+
430
492
  ### Upgrade / Maintenance
431
493
 
432
494
  Use the maintenance command when you intentionally want to update your local runtime:
@@ -435,19 +497,19 @@ Use the maintenance command when you intentionally want to update your local run
435
497
  npx @agentmemory/agentmemory upgrade
436
498
  ```
437
499
 
438
- Warning: this command mutates the current workspace/runtime. It can update JavaScript dependencies, may run `cargo install iii-engine --force`, and may pull Docker images.
500
+ Warning: this command mutates the current workspace/runtime. It can update JavaScript dependencies and pull the pinned `iiidev/iii:0.11.2` Docker image. It never installs an unpinned or newer iii engine.
439
501
 
440
502
  Implementation details live in `src/cli.ts` (see `runUpgrade` around the `src/cli.ts:544-595` region).
441
503
 
442
504
  ### Claude Code (one block, paste it)
443
505
 
444
506
  ```text
445
- Install agentmemory: run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server. Then run `/plugin marketplace add rohitg00/agentmemory` and `/plugin install agentmemory` — the plugin registers all 12 hooks, 8 skills, AND auto-wires the `@agentmemory/mcp` stdio server via its `.mcp.json`, so you get 53 MCP tools (memory_smart_search, memory_save, memory_sessions, memory_governance_delete, etc.) without any extra config step. Verify with `curl http://localhost:3111/agentmemory/health`. The real-time viewer is at http://localhost:3113.
507
+ Install agentmemory: run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server. Then run `/plugin marketplace add rohitg00/agentmemory` and `/plugin install agentmemory` — the plugin registers all 12 hooks, 15 skills, AND auto-wires the `@agentmemory/mcp` stdio server via its `.mcp.json`, so you get 53 MCP tools (memory_smart_search, memory_save, memory_sessions, memory_governance_delete, etc.) without any extra config step. Verify with `curl http://localhost:3111/agentmemory/health`. The real-time viewer is at http://localhost:3113.
446
508
  ```
447
509
 
448
510
  #### Claude Code without the plugin install (MCP-standalone path)
449
511
 
450
- If you wire agentmemory's MCP server through `~/.claude.json` directly instead of using `/plugin install`, Claude Code never resolves `${CLAUDE_PLUGIN_ROOT}` and you have to point hook scripts at absolute paths in `~/.claude/settings.json`. Those paths typically embed the agentmemory version (e.g. `~/.codex/plugins/cache/agentmemory/agentmemory/0.9.22/scripts/…`), so the next upgrade silently breaks every hook ([#508](https://github.com/rohitg00/agentmemory/issues/508)).
512
+ If you wire agentmemory's MCP server through `~/.claude.json` directly instead of using `/plugin install`, Claude Code never resolves `${CLAUDE_PLUGIN_ROOT}` and you have to point hook scripts at absolute paths in `~/.claude/settings.json`. Those paths typically embed the agentmemory version (e.g. `~/.codex/plugins/cache/agentmemory/agentmemory/0.9.22/scripts/…`), so the next upgrade silently breaks every hook.
451
513
 
452
514
  Workaround:
453
515
 
@@ -473,7 +535,7 @@ The Codex plugin ships from the same `plugin/` directory as the Claude Code plug
473
535
 
474
536
  - `@agentmemory/mcp` as an MCP server (proxies all 53 tools when `AGENTMEMORY_URL` points at a running agentmemory server; falls back to 7 tools locally when no server is reachable)
475
537
  - 6 lifecycle hooks: `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PreCompact`, `Stop`
476
- - 8 skills: `/recall`, `/remember`, `/session-history`, `/forget`, `/recap`, `/handoff`, `/commit-context`, `/commit-history`
538
+ - 8 invocable skills: `/recall`, `/remember`, `/session-history`, `/forget`, `/recap`, `/handoff`, `/commit-context`, `/commit-history`, plus 7 reference skills the agent loads on demand (MCP tools, REST API, config, agents, hooks, architecture, and the skill-authoring guide)
477
539
 
478
540
  Codex's hook engine injects `CLAUDE_PLUGIN_ROOT` into hook subprocesses (per [`codex-rs/hooks/src/engine/discovery.rs`](https://github.com/openai/codex/blob/main/codex-rs/hooks/src/engine/discovery.rs)), so the same hook scripts work across both hosts without duplication. Subagent / SessionEnd / Notification / TaskCompleted / PostToolUseFailure events are Claude-Code-only and are not registered for Codex.
479
541
 
@@ -553,7 +615,7 @@ Start the memory server: `npx @agentmemory/agentmemory`
553
615
 
554
616
  #### Native skills via `npx skills add` (50+ agents)
555
617
 
556
- agentmemory ships 8 skills (`remember`, `recall`, `recap`, `handoff`, `forget`, `commit-context`, `commit-history`, `session-history`) in the Claude-Code-style `<dir>/SKILL.md` format. The [`skills`](https://npmjs.com/package/skills) CLI by vercel-labs auto-installs them into the calling agent's native skill directory across 50+ agents (Claude Code, Cursor, Cline, Continue, Droid, Warp, Codex, Antigravity, Kiro, OpenCode, Goose, Roo, Trae, Windsurf, and more):
618
+ agentmemory ships 15 skills in the Claude-Code-style `<dir>/SKILL.md` format: 8 invocable action skills (`remember`, `recall`, `recap`, `handoff`, `forget`, `commit-context`, `commit-history`, `session-history`) and 7 reference skills the agent loads on demand (`agentmemory-mcp-tools`, `agentmemory-rest-api`, `agentmemory-config`, `agentmemory-agents`, `agentmemory-hooks`, `agentmemory-architecture`, `write-agentmemory-skill`). The reference skills carry data tables generated from source, so they never drift. The [`skills`](https://npmjs.com/package/skills) CLI by vercel-labs auto-installs them into the calling agent's native skill directory across 50+ agents (Claude Code, Cursor, Cline, Continue, Droid, Warp, Codex, Antigravity, Kiro, OpenCode, Goose, Roo, Trae, Windsurf, and more):
557
619
 
558
620
  ```bash
559
621
  npx skills add rohitg00/agentmemory -y # auto-detects the calling agent
@@ -566,7 +628,7 @@ This is **complementary** to `agentmemory connect <agent>`:
566
628
  - `agentmemory connect <agent>` writes the MCP server config so the tools are available.
567
629
  - `npx skills add rohitg00/agentmemory` installs the skills so the agent knows when to call them.
568
630
 
569
- For the few agents the skills CLI doesn't cover yet (Zed v1.3.x and below), drop the 8 SKILL.md files under the agent's native skill directory yourself — same format works everywhere.
631
+ For the few agents the skills CLI doesn't cover yet (Zed v1.3.x and below), drop the 15 SKILL.md files under the agent's native skill directory yourself — same format works everywhere.
570
632
 
571
633
  #### Standard MCP block
572
634
 
@@ -596,7 +658,7 @@ The agentmemory entry is the **same MCP server block** across every host that us
596
658
  | **GitHub Copilot CLI (full plugin)** | Copilot plugin install | `copilot plugin install rohitg00/agentmemory:plugin` for the plugin from the GitHub subdir. |
597
659
  | **OpenClaw** | OpenClaw MCP config | Same `mcpServers` block, or use the deeper [memory plugin](integrations/openclaw/). |
598
660
  | **Codex CLI (MCP only)** | `.codex/config.toml` | TOML shape: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, or add `[mcp_servers.agentmemory]` manually. |
599
- | **Codex CLI (full plugin)** | Codex plugin marketplace | `codex plugin marketplace add rohitg00/agentmemory` then `codex plugin add agentmemory@agentmemory`. Registers MCP + 6 lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 8 skills. On Codex Desktop, also run `agentmemory connect codex --with-hooks` until [openai/codex#16430](https://github.com/openai/codex/issues/16430) lands — plugin hooks are currently silent there. |
661
+ | **Codex CLI (full plugin)** | Codex plugin marketplace | `codex plugin marketplace add rohitg00/agentmemory` then `codex plugin add agentmemory@agentmemory`. Registers MCP + 6 lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 15 skills. On Codex Desktop, also run `agentmemory connect codex --with-hooks` until [openai/codex#16430](https://github.com/openai/codex/issues/16430) lands — plugin hooks are currently silent there. |
600
662
  | **OpenCode (MCP only)** | `opencode.json` | Different shape — top-level `mcp` key, command as array: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
601
663
  | **OpenCode (full plugin)** | `plugin/opencode/` | 22 auto-capture hooks covering session lifecycle, messages, tools, errors. Two slash commands (`/recall`, `/remember`). Copy `plugin/opencode/` into your OpenCode workspace and add the plugin entry to `opencode.json`. See [`plugin/opencode/README.md`](plugin/opencode/README.md) for the full hook table + gap analysis. |
602
664
  | **pi** | `~/.pi/agent/extensions/agentmemory` | Copy [`integrations/pi`](integrations/pi/) and restart pi. |
@@ -613,7 +675,7 @@ The agentmemory entry is the **same MCP server block** across every host that us
613
675
  | **Aider** | n/a | Talk to the REST API directly: `curl -X POST http://localhost:3111/agentmemory/smart-search -d '{"query": "auth"}'`. |
614
676
  | **Any agent (32+)** | n/a | `npx skillkit install agentmemory` auto-detects the host and merges. |
615
677
 
616
- **Sandboxed MCP clients** (Flatpak / Snap / restrictive containers) that can't reach the host's `localhost`: also set `"AGENTMEMORY_FORCE_PROXY": "1"` in the `env` block, and point `AGENTMEMORY_URL` at a route the sandbox can actually reach (e.g. your LAN IP). See [#234](https://github.com/rohitg00/agentmemory/issues/234) for the diagnostic walkthrough.
678
+ **Sandboxed MCP clients** (Flatpak / Snap / restrictive containers) that can't reach the host's `localhost`: also set `"AGENTMEMORY_FORCE_PROXY": "1"` in the `env` block, and point `AGENTMEMORY_URL` at a route the sandbox can actually reach (e.g. your LAN IP).
617
679
 
618
680
  ### Programmatic access (Python / Rust / Node)
619
681
 
@@ -707,7 +769,7 @@ npx -y @agentmemory/mcp
707
769
  | Port conflict | `netstat -ano \| findstr :3111` to see what's bound, then kill it or use `--port <N>` |
708
770
  | Docker fallback skipped even though Docker is installed | Make sure Docker Desktop is actually running (system tray icon) |
709
771
 
710
- > Note: there is no `cargo install iii-engine` — `iii` is not published to crates.io. The only supported install methods are the prebuilt binary above, the upstream `sh` install script (macOS/Linux only), and the Docker image.
772
+ > Note: the iii **engine** is a prebuilt binary, not a cargo crate — don't try to `cargo install` it. (The iii **SDKs** are published on crates.io, npm, and PyPI, but agentmemory doesn't need them.) Supported engine install methods, all pinned to v0.11.2: the prebuilt v0.11.2 binary above, the upstream sh install script **with the version pin** `curl -fsSL https://install.iii.dev/iii/main/install.sh | VERSION=0.11.2 sh` (macOS/Linux), and the Docker image `iiidev/iii:0.11.2`. A bare `install.sh | sh` installs the **latest** engine, which agentmemory does not support — always pass `VERSION=0.11.2`. Easiest of all: just run `npx @agentmemory/agentmemory`, which fetches the pinned engine into `~/.agentmemory/bin` for you.
711
773
 
712
774
  ---
713
775
 
@@ -887,7 +949,7 @@ npm install @xenova/transformers
887
949
 
888
950
  <h2 id="mcp-server"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-mcp.svg"><img src="assets/tags/section-mcp.svg" alt="MCP Server" height="32" /></picture></h2>
889
951
 
890
- 53 tools, 6 resources, 3 prompts, and 8 skills — the most comprehensive MCP memory toolkit for any agent.
952
+ 53 tools, 6 resources, 3 prompts, and 15 skills, the most comprehensive MCP memory toolkit for any agent.
891
953
 
892
954
  > **MCP shim vs full server:** the published `@agentmemory/mcp` package is a thin shim. It exposes the full 53-tool surface **only when it can reach a running agentmemory server** via `AGENTMEMORY_URL` (proxy mode). With no server reachable, the shim falls back to a 7-tool local set (`memory_save`, `memory_recall`, `memory_smart_search`, `memory_sessions`, `memory_export`, `memory_audit`, `memory_governance_delete`). The `AGENTMEMORY_TOOLS=core|all` env var is a *server-side* flag — setting it in the shim's `env` block has no effect. If you see only 7 tools in Cursor / OpenCode / Gemini CLI, start `npx @agentmemory/agentmemory` (or the Docker stack) and set `AGENTMEMORY_URL=http://localhost:3111`.
893
955
 
@@ -1139,7 +1201,7 @@ Full registry: [workers.iii.dev](https://workers.iii.dev). Every worker there co
1139
1201
  | Prometheus / Grafana | iii OTEL + health monitor |
1140
1202
  | Custom plugin systems | `iii worker add <name>` |
1141
1203
 
1142
- **118 source files · ~21,800 LOC · 950+ tests · 123 functions · 34 KV scopes** — all on three primitives. No `agentmemory plugin install`. The plugin system is iii itself.
1204
+ **175 source files · ~39,200 LOC · 1,428+ tests · 261 functions · 52 KV scopes** — all on three primitives. No `agentmemory plugin install`. The plugin system is iii itself.
1143
1205
 
1144
1206
  ---
1145
1207
 
@@ -1158,7 +1220,7 @@ agentmemory auto-detects from your environment. By default, no LLM calls are mad
1158
1220
  | OpenRouter | `OPENROUTER_API_KEY` | Any model |
1159
1221
  | OpenAI API | `OPENAI_API_KEY` | Default `gpt-4o-mini`, override with `OPENAI_MODEL` |
1160
1222
  | **Local (Ollama / LM Studio / vLLM / llama.cpp)** | `OPENAI_API_KEY=local` + `OPENAI_BASE_URL=http://localhost:11434/v1` (Ollama) or `http://localhost:1234/v1` (LM Studio) + `OPENAI_MODEL=<your model>` | Anything OpenAI-API-compatible. Zero cost, runs on your hardware. See [Local models](#local-models-ollama-lm-studio-vllm) below. |
1161
- | Claude subscription fallback | `AGENTMEMORY_ALLOW_AGENT_SDK=true` | Opt-in only. Spawns `@anthropic-ai/claude-agent-sdk` sessions — used to cause unbounded Stop-hook recursion (#149 follow-up) so it is no longer the default. |
1223
+ | Claude subscription fallback | `AGENTMEMORY_ALLOW_AGENT_SDK=true` | Opt-in only. Spawns `@anthropic-ai/claude-agent-sdk` sessions — used to cause unbounded Stop-hook recursion so it is no longer the default. |
1162
1224
 
1163
1225
  ### Local models (Ollama / LM Studio / vLLM)
1164
1226
 
@@ -1273,7 +1335,7 @@ netstat -ano | findstr ":3111 :3112 :3113 :49134"
1273
1335
  taskkill /F /PID <pid>
1274
1336
  ```
1275
1337
 
1276
- `agentmemory stop` reaps both the worker and the engine pidfile cleanly on graceful shutdown (#640, #474). The manual cleanup above is only for the post-crash case where neither pidfile is left behind.
1338
+ `agentmemory stop` reaps both the worker and the engine pidfile cleanly on graceful shutdown. The manual cleanup above is only for the post-crash case where neither pidfile is left behind.
1277
1339
 
1278
1340
  ### Config File
1279
1341
 
@@ -1338,7 +1400,7 @@ Create `~/.agentmemory/.env`:
1338
1400
  # OPENAI_API_KEY_FOR_LLM=false # Optional: set to false to skip OpenAI auto-detection
1339
1401
  # # for LLM (useful if you only want OpenAI for embeddings)
1340
1402
  # Opt-in Claude-subscription fallback (spawns @anthropic-ai/claude-agent-sdk);
1341
- # leave OFF unless you understand the Stop-hook recursion risk (#149 follow-up):
1403
+ # leave OFF unless you understand the Stop-hook recursion risk:
1342
1404
  # AGENTMEMORY_ALLOW_AGENT_SDK=true
1343
1405
 
1344
1406
  # Embedding provider (auto-detected, or override)
@@ -1372,7 +1434,7 @@ Create `~/.agentmemory/.env`:
1372
1434
  # III_REST_PORT=3111
1373
1435
 
1374
1436
  # Features
1375
- # AGENTMEMORY_AUTO_COMPRESS=false # OFF by default (#138). When on,
1437
+ # AGENTMEMORY_AUTO_COMPRESS=false # OFF by default. When on,
1376
1438
  # every PostToolUse hook calls your
1377
1439
  # LLM provider to compress the
1378
1440
  # observation — expect significant
@@ -1394,7 +1456,7 @@ Create `~/.agentmemory/.env`:
1394
1456
  # session_patterns, records touched
1395
1457
  # files in project_context. Fire-
1396
1458
  # and-forget; does not block.
1397
- # AGENTMEMORY_INJECT_CONTEXT=false # OFF by default (#143). When on:
1459
+ # AGENTMEMORY_INJECT_CONTEXT=false # OFF by default. When on:
1398
1460
  # - SessionStart may inject ~1-2K
1399
1461
  # chars of project context into
1400
1462
  # the first turn of each session
@@ -1429,7 +1491,7 @@ Create `~/.agentmemory/.env`:
1429
1491
 
1430
1492
  <h2 id="api"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-api.svg"><img src="assets/tags/section-api.svg" alt="API" height="32" /></picture></h2>
1431
1493
 
1432
- 126 endpoints on port `3111`. The REST API binds to `127.0.0.1` by default. Protected endpoints require `Authorization: Bearer <secret>` when `AGENTMEMORY_SECRET` is set, and mesh sync endpoints require `AGENTMEMORY_SECRET` on both peers.
1494
+ 128 endpoints on port `3111`. The REST API binds to `127.0.0.1` by default. Protected endpoints require `Authorization: Bearer <secret>` when `AGENTMEMORY_SECRET` is set, and mesh sync endpoints require `AGENTMEMORY_SECRET` on both peers.
1433
1495
 
1434
1496
  <details>
1435
1497
  <summary>Key endpoints</summary>
@@ -1463,7 +1525,7 @@ Full endpoint list: [`src/triggers/api.ts`](src/triggers/api.ts)
1463
1525
  ```bash
1464
1526
  npm run dev # Hot reload
1465
1527
  npm run build # Production build
1466
- npm test # 950+ tests
1528
+ npm test # 1,428+ tests
1467
1529
  npm run test:integration # API tests (requires running services)
1468
1530
  ```
1469
1531
 
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.mts","names":[],"sources":["../src/cli.ts"],"mappings":";iBAmNsB,kBAAA,CAAA,GAAsB,OAAA"}
1
+ {"version":3,"file":"cli.d.mts","names":[],"sources":["../src/cli.ts"],"mappings":";iBAqRsB,kBAAA,CAAA,GAAsB,OAAA"}