@agentmemory/agentmemory 0.9.27 → 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 (122) hide show
  1. package/AGENTS.md +5 -5
  2. package/README.md +97 -37
  3. package/dist/cli.d.mts.map +1 -1
  4. package/dist/cli.mjs +206 -154
  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-BKLmp_sD.mjs +34 -0
  37. package/dist/image-refs-BKLmp_sD.mjs.map +1 -0
  38. package/dist/{image-refs-B5Zf_Djo.mjs → image-refs-C2YU7BIm.mjs} +3 -21
  39. package/dist/image-refs-C2YU7BIm.mjs.map +1 -0
  40. package/dist/index.mjs +118 -150
  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/{src-MOg2zKJs.mjs → src-CzgoepGU.mjs} +49 -30
  47. package/dist/src-CzgoepGU.mjs.map +1 -0
  48. package/dist/{standalone-BORXC71-.mjs → standalone-YsZFFQBM.mjs} +7 -4
  49. package/dist/standalone-YsZFFQBM.mjs.map +1 -0
  50. package/dist/standalone.d.mts.map +1 -1
  51. package/dist/standalone.mjs +6 -2
  52. package/dist/standalone.mjs.map +1 -1
  53. package/dist/{tools-registry-D8XVVPbJ.mjs → tools-registry-D3NEoe5m.mjs} +4 -256
  54. package/dist/tools-registry-D3NEoe5m.mjs.map +1 -0
  55. package/package.json +4 -1
  56. package/plugin/.claude-plugin/plugin.json +1 -1
  57. package/plugin/.codex-plugin/plugin.json +1 -1
  58. package/plugin/plugin.json +2 -2
  59. package/plugin/scripts/notification.mjs +2 -1
  60. package/plugin/scripts/notification.mjs.map +1 -1
  61. package/plugin/scripts/post-commit.mjs +2 -1
  62. package/plugin/scripts/post-commit.mjs.map +1 -1
  63. package/plugin/scripts/post-tool-failure.mjs +2 -1
  64. package/plugin/scripts/post-tool-failure.mjs.map +1 -1
  65. package/plugin/scripts/post-tool-use.mjs +2 -1
  66. package/plugin/scripts/post-tool-use.mjs.map +1 -1
  67. package/plugin/scripts/pre-compact.mjs +2 -1
  68. package/plugin/scripts/pre-compact.mjs.map +1 -1
  69. package/plugin/scripts/pre-tool-use.mjs +2 -1
  70. package/plugin/scripts/pre-tool-use.mjs.map +1 -1
  71. package/plugin/scripts/prompt-submit.mjs +2 -1
  72. package/plugin/scripts/prompt-submit.mjs.map +1 -1
  73. package/plugin/scripts/session-end.mjs +2 -1
  74. package/plugin/scripts/session-end.mjs.map +1 -1
  75. package/plugin/scripts/session-start.mjs +2 -1
  76. package/plugin/scripts/session-start.mjs.map +1 -1
  77. package/plugin/scripts/stop.mjs +2 -1
  78. package/plugin/scripts/stop.mjs.map +1 -1
  79. package/plugin/scripts/subagent-start.mjs +2 -1
  80. package/plugin/scripts/subagent-start.mjs.map +1 -1
  81. package/plugin/scripts/subagent-stop.mjs +2 -1
  82. package/plugin/scripts/subagent-stop.mjs.map +1 -1
  83. package/plugin/scripts/task-completed.mjs +2 -1
  84. package/plugin/scripts/task-completed.mjs.map +1 -1
  85. package/plugin/skills/_shared/TROUBLESHOOTING.md +38 -0
  86. package/plugin/skills/agentmemory-agents/REFERENCE.md +28 -0
  87. package/plugin/skills/agentmemory-agents/SKILL.md +34 -0
  88. package/plugin/skills/agentmemory-architecture/SKILL.md +33 -0
  89. package/plugin/skills/agentmemory-config/REFERENCE.md +42 -0
  90. package/plugin/skills/agentmemory-config/SKILL.md +37 -0
  91. package/plugin/skills/agentmemory-hooks/REFERENCE.md +20 -0
  92. package/plugin/skills/agentmemory-hooks/SKILL.md +39 -0
  93. package/plugin/skills/agentmemory-mcp-tools/REFERENCE.md +65 -0
  94. package/plugin/skills/agentmemory-mcp-tools/SKILL.md +39 -0
  95. package/plugin/skills/agentmemory-rest-api/REFERENCE.md +129 -0
  96. package/plugin/skills/agentmemory-rest-api/SKILL.md +43 -0
  97. package/plugin/skills/commit-context/EXAMPLES.md +71 -0
  98. package/plugin/skills/commit-context/SKILL.md +53 -8
  99. package/plugin/skills/commit-history/EXAMPLES.md +71 -0
  100. package/plugin/skills/commit-history/SKILL.md +51 -9
  101. package/plugin/skills/forget/EXAMPLES.md +75 -0
  102. package/plugin/skills/forget/SKILL.md +54 -14
  103. package/plugin/skills/handoff/EXAMPLES.md +56 -0
  104. package/plugin/skills/handoff/SKILL.md +56 -9
  105. package/plugin/skills/recall/EXAMPLES.md +74 -0
  106. package/plugin/skills/recall/SKILL.md +50 -11
  107. package/plugin/skills/recap/EXAMPLES.md +60 -0
  108. package/plugin/skills/recap/SKILL.md +51 -13
  109. package/plugin/skills/remember/EXAMPLES.md +67 -0
  110. package/plugin/skills/remember/SKILL.md +53 -17
  111. package/plugin/skills/session-history/EXAMPLES.md +59 -0
  112. package/plugin/skills/session-history/SKILL.md +54 -11
  113. package/plugin/skills/write-agentmemory-skill/SKILL.md +40 -0
  114. package/dist/connect-bmZ5eqYN.mjs.map +0 -1
  115. package/dist/image-refs-B5Zf_Djo.mjs.map +0 -1
  116. package/dist/image-store-Gpo2mgM9.mjs.map +0 -1
  117. package/dist/rolldown-runtime-twds-ZHy.mjs +0 -14
  118. package/dist/src-MOg2zKJs.mjs.map +0 -1
  119. package/dist/standalone-BORXC71-.mjs.map +0 -1
  120. package/dist/tools-registry-D8XVVPbJ.mjs.map +0 -1
  121. package/dist/version-9DNrRyph.mjs +0 -6
  122. package/dist/version-9DNrRyph.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
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="1,390+ 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
  ---
@@ -270,7 +268,7 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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 @@ Latest release notes: [CHANGELOG.md](CHANGELOG.md).
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>
@@ -437,19 +497,19 @@ Use the maintenance command when you intentionally want to update your local run
437
497
  npx @agentmemory/agentmemory upgrade
438
498
  ```
439
499
 
440
- 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.
441
501
 
442
502
  Implementation details live in `src/cli.ts` (see `runUpgrade` around the `src/cli.ts:544-595` region).
443
503
 
444
504
  ### Claude Code (one block, paste it)
445
505
 
446
506
  ```text
447
- 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.
448
508
  ```
449
509
 
450
510
  #### Claude Code without the plugin install (MCP-standalone path)
451
511
 
452
- 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.
453
513
 
454
514
  Workaround:
455
515
 
@@ -475,7 +535,7 @@ The Codex plugin ships from the same `plugin/` directory as the Claude Code plug
475
535
 
476
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)
477
537
  - 6 lifecycle hooks: `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PreCompact`, `Stop`
478
- - 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)
479
539
 
480
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.
481
541
 
@@ -555,7 +615,7 @@ Start the memory server: `npx @agentmemory/agentmemory`
555
615
 
556
616
  #### Native skills via `npx skills add` (50+ agents)
557
617
 
558
- 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):
559
619
 
560
620
  ```bash
561
621
  npx skills add rohitg00/agentmemory -y # auto-detects the calling agent
@@ -568,7 +628,7 @@ This is **complementary** to `agentmemory connect <agent>`:
568
628
  - `agentmemory connect <agent>` writes the MCP server config so the tools are available.
569
629
  - `npx skills add rohitg00/agentmemory` installs the skills so the agent knows when to call them.
570
630
 
571
- 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.
572
632
 
573
633
  #### Standard MCP block
574
634
 
@@ -598,7 +658,7 @@ The agentmemory entry is the **same MCP server block** across every host that us
598
658
  | **GitHub Copilot CLI (full plugin)** | Copilot plugin install | `copilot plugin install rohitg00/agentmemory:plugin` for the plugin from the GitHub subdir. |
599
659
  | **OpenClaw** | OpenClaw MCP config | Same `mcpServers` block, or use the deeper [memory plugin](integrations/openclaw/). |
600
660
  | **Codex CLI (MCP only)** | `.codex/config.toml` | TOML shape: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, or add `[mcp_servers.agentmemory]` manually. |
601
- | **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. |
602
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}}}`. |
603
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. |
604
664
  | **pi** | `~/.pi/agent/extensions/agentmemory` | Copy [`integrations/pi`](integrations/pi/) and restart pi. |
@@ -615,7 +675,7 @@ The agentmemory entry is the **same MCP server block** across every host that us
615
675
  | **Aider** | n/a | Talk to the REST API directly: `curl -X POST http://localhost:3111/agentmemory/smart-search -d '{"query": "auth"}'`. |
616
676
  | **Any agent (32+)** | n/a | `npx skillkit install agentmemory` auto-detects the host and merges. |
617
677
 
618
- **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).
619
679
 
620
680
  ### Programmatic access (Python / Rust / Node)
621
681
 
@@ -709,7 +769,7 @@ npx -y @agentmemory/mcp
709
769
  | Port conflict | `netstat -ano \| findstr :3111` to see what's bound, then kill it or use `--port <N>` |
710
770
  | Docker fallback skipped even though Docker is installed | Make sure Docker Desktop is actually running (system tray icon) |
711
771
 
712
- > 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.
713
773
 
714
774
  ---
715
775
 
@@ -889,7 +949,7 @@ npm install @xenova/transformers
889
949
 
890
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>
891
951
 
892
- 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.
893
953
 
894
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`.
895
955
 
@@ -1141,7 +1201,7 @@ Full registry: [workers.iii.dev](https://workers.iii.dev). Every worker there co
1141
1201
  | Prometheus / Grafana | iii OTEL + health monitor |
1142
1202
  | Custom plugin systems | `iii worker add <name>` |
1143
1203
 
1144
- **174 source files · ~37,800 LOC · 1,390+ tests · 258 functions · 44 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.
1145
1205
 
1146
1206
  ---
1147
1207
 
@@ -1160,7 +1220,7 @@ agentmemory auto-detects from your environment. By default, no LLM calls are mad
1160
1220
  | OpenRouter | `OPENROUTER_API_KEY` | Any model |
1161
1221
  | OpenAI API | `OPENAI_API_KEY` | Default `gpt-4o-mini`, override with `OPENAI_MODEL` |
1162
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. |
1163
- | 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. |
1164
1224
 
1165
1225
  ### Local models (Ollama / LM Studio / vLLM)
1166
1226
 
@@ -1275,7 +1335,7 @@ netstat -ano | findstr ":3111 :3112 :3113 :49134"
1275
1335
  taskkill /F /PID <pid>
1276
1336
  ```
1277
1337
 
1278
- `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.
1279
1339
 
1280
1340
  ### Config File
1281
1341
 
@@ -1340,7 +1400,7 @@ Create `~/.agentmemory/.env`:
1340
1400
  # OPENAI_API_KEY_FOR_LLM=false # Optional: set to false to skip OpenAI auto-detection
1341
1401
  # # for LLM (useful if you only want OpenAI for embeddings)
1342
1402
  # Opt-in Claude-subscription fallback (spawns @anthropic-ai/claude-agent-sdk);
1343
- # leave OFF unless you understand the Stop-hook recursion risk (#149 follow-up):
1403
+ # leave OFF unless you understand the Stop-hook recursion risk:
1344
1404
  # AGENTMEMORY_ALLOW_AGENT_SDK=true
1345
1405
 
1346
1406
  # Embedding provider (auto-detected, or override)
@@ -1374,7 +1434,7 @@ Create `~/.agentmemory/.env`:
1374
1434
  # III_REST_PORT=3111
1375
1435
 
1376
1436
  # Features
1377
- # AGENTMEMORY_AUTO_COMPRESS=false # OFF by default (#138). When on,
1437
+ # AGENTMEMORY_AUTO_COMPRESS=false # OFF by default. When on,
1378
1438
  # every PostToolUse hook calls your
1379
1439
  # LLM provider to compress the
1380
1440
  # observation — expect significant
@@ -1396,7 +1456,7 @@ Create `~/.agentmemory/.env`:
1396
1456
  # session_patterns, records touched
1397
1457
  # files in project_context. Fire-
1398
1458
  # and-forget; does not block.
1399
- # AGENTMEMORY_INJECT_CONTEXT=false # OFF by default (#143). When on:
1459
+ # AGENTMEMORY_INJECT_CONTEXT=false # OFF by default. When on:
1400
1460
  # - SessionStart may inject ~1-2K
1401
1461
  # chars of project context into
1402
1462
  # the first turn of each session
@@ -1465,7 +1525,7 @@ Full endpoint list: [`src/triggers/api.ts`](src/triggers/api.ts)
1465
1525
  ```bash
1466
1526
  npm run dev # Hot reload
1467
1527
  npm run build # Production build
1468
- npm test # 1,390+ tests
1528
+ npm test # 1,428+ tests
1469
1529
  npm run test:integration # API tests (requires running services)
1470
1530
  ```
1471
1531
 
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.mts","names":[],"sources":["../src/cli.ts"],"mappings":";iBAyOsB,kBAAA,CAAA,GAAsB,OAAA"}
1
+ {"version":3,"file":"cli.d.mts","names":[],"sources":["../src/cli.ts"],"mappings":";iBAqRsB,kBAAA,CAAA,GAAsB,OAAA"}