@pcircle/memesh 4.5.1 → 4.6.1

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 (202) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +6 -4
  3. package/AGENTS.md +116 -0
  4. package/README.de.md +141 -48
  5. package/README.md +173 -48
  6. package/README.zh-TW.md +142 -48
  7. package/dashboard/dist/index.html +15 -14
  8. package/dist/cli/view-live.js +3 -3
  9. package/dist/core/analytics.d.ts +9 -0
  10. package/dist/core/analytics.d.ts.map +1 -1
  11. package/dist/core/analytics.js +36 -18
  12. package/dist/core/analytics.js.map +1 -1
  13. package/dist/core/auto-tagger.d.ts.map +1 -1
  14. package/dist/core/auto-tagger.js +4 -9
  15. package/dist/core/auto-tagger.js.map +1 -1
  16. package/dist/core/briefing.d.ts +8 -0
  17. package/dist/core/briefing.d.ts.map +1 -0
  18. package/dist/core/briefing.js +92 -0
  19. package/dist/core/briefing.js.map +1 -0
  20. package/dist/core/capture-flag.d.ts +5 -0
  21. package/dist/core/capture-flag.d.ts.map +1 -0
  22. package/dist/core/capture-flag.js +10 -0
  23. package/dist/core/capture-flag.js.map +1 -0
  24. package/dist/core/config.d.ts +0 -1
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js.map +1 -1
  27. package/dist/core/conflict-candidates.d.ts +20 -0
  28. package/dist/core/conflict-candidates.d.ts.map +1 -0
  29. package/dist/core/conflict-candidates.js +79 -0
  30. package/dist/core/conflict-candidates.js.map +1 -0
  31. package/dist/core/conflict-judge.d.ts +47 -0
  32. package/dist/core/conflict-judge.d.ts.map +1 -0
  33. package/dist/core/conflict-judge.js +189 -0
  34. package/dist/core/conflict-judge.js.map +1 -0
  35. package/dist/core/demo.d.ts.map +1 -1
  36. package/dist/core/demo.js +1 -1
  37. package/dist/core/demo.js.map +1 -1
  38. package/dist/core/digest-validator.d.ts.map +1 -1
  39. package/dist/core/digest-validator.js +3 -5
  40. package/dist/core/digest-validator.js.map +1 -1
  41. package/dist/core/doctor.d.ts +2 -0
  42. package/dist/core/doctor.d.ts.map +1 -1
  43. package/dist/core/doctor.js +59 -62
  44. package/dist/core/doctor.js.map +1 -1
  45. package/dist/core/dreamer.d.ts +5 -2
  46. package/dist/core/dreamer.d.ts.map +1 -1
  47. package/dist/core/dreamer.js +329 -25
  48. package/dist/core/dreamer.js.map +1 -1
  49. package/dist/core/embedder.d.ts +8 -4
  50. package/dist/core/embedder.d.ts.map +1 -1
  51. package/dist/core/embedder.js +82 -24
  52. package/dist/core/embedder.js.map +1 -1
  53. package/dist/core/failure-analyzer.d.ts.map +1 -1
  54. package/dist/core/failure-analyzer.js +7 -12
  55. package/dist/core/failure-analyzer.js.map +1 -1
  56. package/dist/core/graph.d.ts +12 -0
  57. package/dist/core/graph.d.ts.map +1 -1
  58. package/dist/core/graph.js +56 -1
  59. package/dist/core/graph.js.map +1 -1
  60. package/dist/core/guards.d.ts +20 -0
  61. package/dist/core/guards.d.ts.map +1 -0
  62. package/dist/core/guards.js +103 -0
  63. package/dist/core/guards.js.map +1 -0
  64. package/dist/core/install-channel.d.ts +1 -1
  65. package/dist/core/install-channel.d.ts.map +1 -1
  66. package/dist/core/install-channel.js +16 -5
  67. package/dist/core/install-channel.js.map +1 -1
  68. package/dist/core/install-hooks.d.ts +5 -0
  69. package/dist/core/install-hooks.d.ts.map +1 -1
  70. package/dist/core/install-hooks.js +0 -0
  71. package/dist/core/install-hooks.js.map +1 -1
  72. package/dist/core/json-utils.d.ts +1 -0
  73. package/dist/core/json-utils.d.ts.map +1 -1
  74. package/dist/core/json-utils.js +19 -10
  75. package/dist/core/json-utils.js.map +1 -1
  76. package/dist/core/kg-backfill.d.ts +5 -2
  77. package/dist/core/kg-backfill.d.ts.map +1 -1
  78. package/dist/core/kg-backfill.js +155 -5
  79. package/dist/core/kg-backfill.js.map +1 -1
  80. package/dist/core/lifecycle.d.ts.map +1 -1
  81. package/dist/core/lifecycle.js +14 -21
  82. package/dist/core/lifecycle.js.map +1 -1
  83. package/dist/core/memory-tool.d.ts.map +1 -1
  84. package/dist/core/memory-tool.js +4 -4
  85. package/dist/core/memory-tool.js.map +1 -1
  86. package/dist/core/operations.d.ts +13 -2
  87. package/dist/core/operations.d.ts.map +1 -1
  88. package/dist/core/operations.js +115 -28
  89. package/dist/core/operations.js.map +1 -1
  90. package/dist/core/prompt-safety.d.ts +1 -0
  91. package/dist/core/prompt-safety.d.ts.map +1 -1
  92. package/dist/core/prompt-safety.js +7 -0
  93. package/dist/core/prompt-safety.js.map +1 -1
  94. package/dist/core/schema-export.d.ts.map +1 -1
  95. package/dist/core/schema-export.js +31 -0
  96. package/dist/core/schema-export.js.map +1 -1
  97. package/dist/core/serializer.d.ts.map +1 -1
  98. package/dist/core/serializer.js +8 -0
  99. package/dist/core/serializer.js.map +1 -1
  100. package/dist/core/setup.d.ts +29 -0
  101. package/dist/core/setup.d.ts.map +1 -0
  102. package/dist/core/setup.js +127 -0
  103. package/dist/core/setup.js.map +1 -0
  104. package/dist/core/task-state-store.d.ts +17 -0
  105. package/dist/core/task-state-store.d.ts.map +1 -0
  106. package/dist/core/task-state-store.js +45 -0
  107. package/dist/core/task-state-store.js.map +1 -0
  108. package/dist/core/task-state.d.ts +19 -0
  109. package/dist/core/task-state.d.ts.map +1 -0
  110. package/dist/core/task-state.js +91 -0
  111. package/dist/core/task-state.js.map +1 -0
  112. package/dist/core/time-utils.d.ts +2 -0
  113. package/dist/core/time-utils.d.ts.map +1 -0
  114. package/dist/core/time-utils.js +14 -0
  115. package/dist/core/time-utils.js.map +1 -0
  116. package/dist/core/title.d.ts +5 -0
  117. package/dist/core/title.d.ts.map +1 -0
  118. package/dist/core/title.js +14 -0
  119. package/dist/core/title.js.map +1 -0
  120. package/dist/core/transcript-source.d.ts.map +1 -1
  121. package/dist/core/transcript-source.js +2 -3
  122. package/dist/core/transcript-source.js.map +1 -1
  123. package/dist/core/types.d.ts +5 -0
  124. package/dist/core/types.d.ts.map +1 -1
  125. package/dist/core/why.d.ts +54 -0
  126. package/dist/core/why.d.ts.map +1 -0
  127. package/dist/core/why.js +168 -0
  128. package/dist/core/why.js.map +1 -0
  129. package/dist/core/work-topology.d.ts +36 -0
  130. package/dist/core/work-topology.d.ts.map +1 -0
  131. package/dist/core/work-topology.js +192 -0
  132. package/dist/core/work-topology.js.map +1 -0
  133. package/dist/db.d.ts +33 -11
  134. package/dist/db.d.ts.map +1 -1
  135. package/dist/db.js +307 -315
  136. package/dist/db.js.map +1 -1
  137. package/dist/knowledge-graph.d.ts +1 -0
  138. package/dist/knowledge-graph.d.ts.map +1 -1
  139. package/dist/knowledge-graph.js +50 -40
  140. package/dist/knowledge-graph.js.map +1 -1
  141. package/dist/skills-manifest.json +62 -22
  142. package/dist/storage/conflicts.d.ts.map +1 -1
  143. package/dist/storage/conflicts.js +2 -7
  144. package/dist/storage/conflicts.js.map +1 -1
  145. package/dist/storage/fts-index.d.ts +4 -2
  146. package/dist/storage/fts-index.d.ts.map +1 -1
  147. package/dist/storage/fts-index.js +16 -4
  148. package/dist/storage/fts-index.js.map +1 -1
  149. package/dist/storage/schema.d.ts +20 -0
  150. package/dist/storage/schema.d.ts.map +1 -0
  151. package/dist/storage/schema.js +274 -0
  152. package/dist/storage/schema.js.map +1 -0
  153. package/dist/storage/sqlite.d.ts.map +1 -1
  154. package/dist/storage/sqlite.js +1 -1
  155. package/dist/storage/sqlite.js.map +1 -1
  156. package/dist/transports/cli/cli.d.ts +1 -4
  157. package/dist/transports/cli/cli.d.ts.map +1 -1
  158. package/dist/transports/cli/cli.js +579 -66
  159. package/dist/transports/cli/cli.js.map +1 -1
  160. package/dist/transports/http/server.d.ts.map +1 -1
  161. package/dist/transports/http/server.js +242 -303
  162. package/dist/transports/http/server.js.map +1 -1
  163. package/dist/transports/mcp/handlers.d.ts +46 -0
  164. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  165. package/dist/transports/mcp/handlers.js +59 -4
  166. package/dist/transports/mcp/handlers.js.map +1 -1
  167. package/dist/transports/schemas.d.ts +29 -10
  168. package/dist/transports/schemas.d.ts.map +1 -1
  169. package/dist/transports/schemas.js +33 -8
  170. package/dist/transports/schemas.js.map +1 -1
  171. package/hooks/hooks.json +10 -0
  172. package/llms-install.md +138 -0
  173. package/package.json +14 -9
  174. package/scripts/hooks/_generated/capture-flag.js +17 -0
  175. package/scripts/hooks/_generated/fts-index.js +16 -4
  176. package/scripts/hooks/_generated/guards.js +110 -0
  177. package/scripts/hooks/_generated/schema.js +281 -0
  178. package/scripts/hooks/_generated/sqlite.js +1 -1
  179. package/scripts/hooks/_generated/task-state.js +98 -0
  180. package/scripts/hooks/_generated/time-utils.js +21 -0
  181. package/scripts/hooks/_generated/title.js +21 -0
  182. package/scripts/hooks/_generated/work-topology.js +199 -0
  183. package/scripts/hooks/_shared.js +197 -480
  184. package/scripts/hooks/guard-check.js +76 -0
  185. package/scripts/hooks/post-commit.js +31 -1
  186. package/scripts/hooks/pre-compact.js +13 -1
  187. package/scripts/hooks/pre-edit-recall.js +158 -120
  188. package/scripts/hooks/session-start.js +169 -82
  189. package/scripts/hooks/session-summary.js +78 -90
  190. package/skills/memesh/SKILL.md +108 -76
  191. package/README.es.md +0 -467
  192. package/README.fr.md +0 -459
  193. package/README.ja.md +0 -467
  194. package/README.ko.md +0 -467
  195. package/README.pt.md +0 -459
  196. package/README.th.md +0 -460
  197. package/README.vi.md +0 -459
  198. package/README.zh-CN.md +0 -466
  199. package/dist/cli/view.d.ts +0 -3
  200. package/dist/cli/view.d.ts.map +0 -1
  201. package/dist/cli/view.js +0 -523
  202. package/dist/cli/view.js.map +0 -1
@@ -7,17 +7,19 @@
7
7
  {
8
8
  "name": "memesh",
9
9
  "source": "./",
10
- "description": "MeMesh — Local memory for Claude Code and MCP coding agents. One SQLite file, zero cloud required.",
11
- "version": "4.5.1",
10
+ "description": "MeMesh — agentic memory for coding agents. Captured from the agent's real work via hooks, recalled when it acts. One SQLite file, zero cloud required.",
11
+ "version": "4.6.1",
12
12
  "author": {
13
13
  "name": "PCIRCLE AI"
14
14
  },
15
- "homepage": "https://pcircle.com/memesh-llm-memory",
15
+ "homepage": "https://github.com/PCIRCLE-AI/memesh",
16
16
  "license": "MIT",
17
17
  "keywords": [
18
18
  "claude-code",
19
19
  "mcp",
20
20
  "knowledge-graph",
21
+ "agentic-memory",
22
+ "agent-memory",
21
23
  "ai-memory"
22
24
  ]
23
25
  }
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "memesh",
3
- "description": "MeMesh — Local memory for Claude Code and MCP coding agents. One SQLite file, zero cloud required.",
3
+ "description": "MeMesh — agentic memory for coding agents. Captured from the agent's real work via hooks, recalled when it acts. One SQLite file, zero cloud required.",
4
4
  "author": {
5
5
  "name": "PCIRCLE AI"
6
6
  },
7
- "version": "4.5.1",
8
- "homepage": "https://pcircle.com/memesh-llm-memory",
9
- "repository": "https://github.com/PCIRCLE-AI/memesh-llm-memory",
7
+ "version": "4.6.1",
8
+ "homepage": "https://github.com/PCIRCLE-AI/memesh",
9
+ "repository": "https://github.com/PCIRCLE-AI/memesh",
10
10
  "license": "MIT",
11
11
  "keywords": [
12
12
  "claude-code",
13
13
  "mcp",
14
14
  "knowledge-graph",
15
+ "agentic-memory",
16
+ "agent-memory",
15
17
  "ai-memory"
16
18
  ]
17
19
  }
package/AGENTS.md ADDED
@@ -0,0 +1,116 @@
1
+ # Using MeMesh — for AI agents
2
+
3
+ MeMesh is persistent memory shared by every MCP host on this machine — one
4
+ SQLite database at `~/.memesh/knowledge-graph.db`. A memory stored from one
5
+ host is recallable from all of them. Not installed yet? Follow
6
+ [llms-install.md](llms-install.md).
7
+
8
+ ## The loop that pays for itself
9
+
10
+ 1. **Session start — load, don't re-explore.** Call the `briefing` tool once
11
+ (CLI: `memesh briefing`). It returns the assembled work topology for the
12
+ current project: goal / next / blocked / done, decisions, lessons,
13
+ knowledge, recent activity. Read that instead of re-reading the repo to
14
+ reconstruct context.
15
+ 2. **When the user states a goal, a next step, or a blocker — record it.**
16
+ Call the `task_state` tool (CLI: `memesh task --goal "…" --next "…"`). It
17
+ is injected at the start of the next session and acted on as fact.
18
+ - An empty string **clears** a field: pass `blocked: ""` (CLI:
19
+ `memesh task --blocked ""`) once a blocker is resolved.
20
+ - **Record only what the user actually said.** Never infer goal / next /
21
+ done from files edited or commands run — a guessed value becomes a wrong
22
+ instruction to a future session with nothing to contradict it. Leave a
23
+ field out if it was not said.
24
+ 3. **"What do you remember?"** — call `briefing` and relay its content. Do
25
+ not answer from your own conversation context.
26
+
27
+ ## All 9 MCP tools
28
+
29
+ | Tool | Purpose |
30
+ |---|---|
31
+ | `remember` | Store knowledge as an entity with observations, tags, and relations |
32
+ | `recall` | Search stored knowledge (words are OR-ed, ranked by relevance); empty query lists recent |
33
+ | `forget` | Archive an entity (soft-delete), or remove one observation via the `observation` parameter |
34
+ | `export` | Export memories as portable JSON for sharing or backup |
35
+ | `import` | Import a JSON export; `merge_strategy` (required): skip / append / overwrite |
36
+ | `learn` | Record a structured lesson: error, root cause, fix, prevention |
37
+ | `task_state` | Read or update where the work stands: goal / next / blocked / done |
38
+ | `briefing` | The assembled work topology for a project — call once at session start |
39
+ | `user_patterns` | Analyze work schedule, tool preferences, and focus areas from memory |
40
+
41
+ ## Memory hygiene
42
+
43
+ - **Reuse a stable `name` to append.** Calling `remember` with an existing
44
+ name appends observations and dedupes tags. A fresh name for every update
45
+ creates duplicates that recall must wade through.
46
+ - **Replacing a decision**: `remember` the new one with a relation of type
47
+ `supersedes` pointing at the old — the old entity is archived (recoverable),
48
+ not left active to contradict the new one.
49
+ - **Two memories that cannot both be true**: relation type `contradicts` —
50
+ both then surface as a conflict every time either is recalled.
51
+ - **One wrong fact in an otherwise good entity**: `forget` with the
52
+ `observation` parameter removes just that fact and keeps the entity active.
53
+ Prefer it over archiving the whole entity.
54
+
55
+ ## What you must never invent
56
+
57
+ - If MeMesh is unavailable or a recall returns nothing, **say so and work
58
+ without it** — never fabricate a memory, and never cite a `[mem:id]`
59
+ handle that was not actually shown to you. A wrong "remembered" fact is
60
+ worse than no memory: it arrives wearing the authority of the graph.
61
+ - Recall windows are bounded (the `limit` parameter, 30 by default), so do
62
+ not infer graph-wide counts or "there is no memory about X" from the
63
+ number of hits one query returns. Absence of results is absence of
64
+ results, not evidence of absence — vary the wording or narrow by tag
65
+ before concluding anything.
66
+ - Every recall answer carries a `retrieval` block that says how it was
67
+ produced — read it instead of guessing: `truncated: true` means the
68
+ window filled and more may exist; `degraded: true` means semantic search
69
+ is configured but could not run, so you are seeing keyword-only results
70
+ right now (worth telling the user, and `memesh doctor` explains why).
71
+
72
+ ## What Claude Code already does — do not double-write
73
+
74
+ Under Claude Code with the MeMesh plugin, hooks capture automatically:
75
+
76
+ - **SessionStart** injects the work topology (the same block `briefing`
77
+ returns) at the top of the session.
78
+ - **PreToolUse (Edit|Write)** surfaces memories related to the file being
79
+ edited.
80
+ - **PostToolUse (Bash)** records git commits with diff stats.
81
+ - **Stop** captures session knowledge and turns failures into lessons.
82
+ - **PreCompact** saves important knowledge before history is compressed.
83
+ - **UserPromptSubmit** detects "remember this" intent in the prompt.
84
+ - **PreToolUse (Bash)** fires accepted lesson-guards: a fenced warning
85
+ citing the source lesson (`[mem:id]`) when a command matches a mistake
86
+ the graph has recorded. Heed it, and cite the lesson if it changes what
87
+ you do.
88
+
89
+ So under Claude Code: skip step 1 of the loop (the topology is already
90
+ injected), and do not `remember` commits or session summaries by hand. Manual
91
+ calls are for what hooks cannot see — decisions and their rationale, lessons
92
+ worth keeping, and user-stated task state.
93
+
94
+ Other hosts (Codex CLI, Gemini CLI, Cursor, …) have no hooks: there the loop
95
+ is fully manual, and it is worth running.
96
+
97
+ ## Working on this repository (contributing agents)
98
+
99
+ The sections above are for agents whose user installed memesh. If you are an
100
+ agent making changes to this codebase, [CLAUDE.md](CLAUDE.md) is the entry
101
+ point; the policy it carries, compressed:
102
+
103
+ - **Blast radius picks the process.** One module, no security surface, no
104
+ cross-surface behaviour → implement, run the affected tests + typecheck,
105
+ read your own diff. Anything wider → the full gate (`npm run
106
+ verify:release`), break-test the guards you add, docs in the same PR.
107
+ - **Findings first, with evidence.** Reviews and QA reports lead with what is
108
+ wrong and prove it (file:line, actual output). Verdicts are `PASS`,
109
+ `PASS_WITH_CONCERNS`, or `FAIL` — the same vocabulary `memesh doctor` uses.
110
+ - **No runtime claim without runtime evidence.** Paste the runner's output;
111
+ read exit codes, not grepped fragments.
112
+ - **Delegation is disjoint.** Two writers never touch one file; file-editing
113
+ subagents work in isolated worktrees and never commit or push — the
114
+ orchestrator reads every diff before it lands.
115
+ - **Internal notes stay local.** Plans and scratch analyses are never
116
+ committed and never appear in commit messages or release notes.
package/README.de.md CHANGED
@@ -1,9 +1,9 @@
1
- 🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Português](README.pt.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Tiếng Việt](README.vi.md) | [Español](README.es.md) | [ภาษาไทย](README.th.md)
1
+ 🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [Deutsch](README.de.md)
2
2
 
3
3
  <p align="center">
4
- <h1 align="center">MeMesh LLM Memory</h1>
4
+ <h1 align="center">MeMesh</h1>
5
5
  <p align="center">
6
- <strong>Lokaler Speicher für Claude Code und MCP-Coding-Agenten.</strong><br />
6
+ <strong>Agentischer Speicher für Coding-Agenten.</strong><br />
7
7
  Eine SQLite-Datei. Kein Docker. Keine Cloud erforderlich.
8
8
  </p>
9
9
  <p align="center">
@@ -16,32 +16,38 @@
16
16
 
17
17
  ---
18
18
 
19
- > [!IMPORTANT]
20
- > **Aktiv entwickeltes Projekt** — Funktionen entwickeln sich kontinuierlich weiter und können sich zwischen Releases ändern. Bei Bugs oder Feature-Wünschen bitte [ein Issue eröffnen](https://github.com/PCIRCLE-AI/memesh-llm-memory/issues).
19
+ **MeMesh** — Open-Source-**agentischer Speicher** für Claude Code & MCP-Coding-Agenten: erfasst aus der echten Arbeit des Agenten, injiziert in dem Moment, in dem er handelt, ehrlich gehalten, wenn er sich selbst widerspricht. Eine SQLite-Datei. Keine Cloud.
21
20
 
22
- ## Das Problem
21
+ ## Installation
23
22
 
24
- Ihr Coding-Agent vergisst, was zwischen Sessions passiert ist. Jede Architekturentscheidung, jede Bugfix, jeder fehlgeschlagene Test und jede hart erarbeitete Erkenntnis muss erneut erklärt werden. Claude Code startet von vorne, entdeckt alte Constraints neu und verschwendet Context auf Dinge, die es längst wissen sollte.
23
+ **In Claude Code** diese zwei Zeilen im Chat eingeben (Hooks, Memory-Tools und der `/memesh`-Skill werden automatisch verdrahtet):
25
24
 
26
- **MeMesh gibt Coding-Agenten persistenten, durchsuchbaren und evolvirenden lokalen Speicher.**
25
+ ```
26
+ /plugin marketplace add PCIRCLE-AI/memesh
27
+ /plugin install memesh@pcircle-memesh
28
+ ```
27
29
 
28
- Dieses Paket ist die lokale Speicherschicht der MeMesh-Produktfamilie. Es ist bewusst klein und Open-Source gestaltet: Installation via npm, Speicherung im Wissensgraphen unter `~/.memesh/knowledge-graph.db`, Anbindung an Claude Code oder jeden MCP-kompatiblen Client. Gehostete Workspace- und Enterprise-Betriebssystem-Produkte bleiben separat von diesem README und der Roadmap.
30
+ Claude Code neu starten. Eine `◉ MeMesh`-Statuszeile am Anfang der nächsten Session bedeutet: es zeichnet auf.
29
31
 
30
- ---
32
+ **Im Terminal** — die `memesh`-CLI, das Dashboard und der `memesh-mcp`-Server für Codex / Gemini / Cursor (braucht [Node 22.13+](https://nodejs.org)):
31
33
 
32
- ## Beleg — 95.60% R@5 auf LongMemEval-S
34
+ ```bash
35
+ npm install -g @pcircle/memesh
36
+ memesh doctor # prüft diese Installation Ende-zu-Ende
37
+ ```
33
38
 
34
- MeMeshs Retrieval-Engine ist **FTS5 alleine** (kein LLM, keine Embeddings auf dem Hot Path), gemessen am öffentlichen [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) Benchmark (500 Fragen, MIT-lizenziert):
39
+ Die meisten Claude-Code-Nutzer wollen am Ende **beides** gemeinsame Datenbank, kein Konflikt. Details, weitere Agenten, Upgrades: siehe „In 60 Sekunden starten" unten.
35
40
 
36
- | System | R@5 | Quelle |
37
- |---|---|---|
38
- | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
39
- | MemPalace | 96.6% | Eigenangabe des Anbieters |
40
- | Supermemory | ~82% | Schätzung des Anbieters |
41
- | Zep | 63.8% | LongMemEval-Paper |
42
- | Mem0 | 49.0% | LongMemEval-Paper |
41
+ ## Das Problem
43
42
 
44
- Reproduktionsbefehle, Datensatz-SHA256, rohe Ergebnisse pro Frage und Analyse bekannter Fehlschläge finden sich vollständig in [`benchmarks/longmemeval/`](benchmarks/longmemeval/). In ~10 Sekunden reproduzierbar.
43
+ Ihr Coding-Agent vergisst nicht nur Fakten zwischen Sessions — er **wiederholt Arbeit**. Er schlägt erneut den Ansatz vor, den Sie letzten Monat abgelehnt haben, stolpert über denselben fehlschlagenden Test, entdeckt die Constraint wieder, die im März die Produktion kaputt gemacht hat, und bittet Sie, die Architektur erneut zu erklären, die er selbst mitentworfen hat.
44
+
45
+ Das ist kein Chatverlauf-Problem, sondern ein Agenten-Speicher-Problem. Was zwischen Sessions überleben muss, ist die *Arbeit*: Entscheidungen mit ihren Gründen, Fehlschläge mit ihren Behebungen und die Verbindungen dazwischen.
46
+
47
+ **MeMesh ist dieser Speicher.** Hooks erfassen ihn aus dem, was der Agent tatsächlich tut (Sessions, Commits, Fehlschläge — keine manuellen Notizen), Recall injiziert ihn in dem Moment, in dem der Agent handelt (Session-Start, vor Dateibearbeitungen), und die Wissensgraph-Schicht hält ihn über die Zeit ehrlich (Supersession, LLM-beurteilte Konflikterkennung). Installation via npm, der Speicher liegt in `~/.memesh/knowledge-graph.db`, Anbindung an Claude Code oder jeden MCP-kompatiblen Client.
48
+
49
+ > [!IMPORTANT]
50
+ > **Aktiv entwickeltes Projekt** — Funktionen entwickeln sich kontinuierlich weiter und können sich zwischen Releases ändern. Bei Bugs oder Feature-Wünschen bitte [ein Issue eröffnen](https://github.com/PCIRCLE-AI/memesh/issues).
45
51
 
46
52
  ---
47
53
 
@@ -65,7 +71,7 @@ flowchart TB
65
71
  subgraph paths["Two install paths"]
66
72
  direction LR
67
73
  A["<b>Path A — /plugin install</b><br/>───────────────<br/>Lives in <code>~/.claude/plugins/</code><br/><br/>• MCP tools in chat<br/>• Auto-capture hooks<br/>• <code>/memesh</code> skill<br/>• Session-start banner"]:::pathA
68
- B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code>, <code>-view</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
74
+ B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
69
75
  end
70
76
 
71
77
  DB[("Shared memory DB<br/><code>~/.memesh/knowledge-graph.db</code><br/>Same data, both paths see it")]:::db
@@ -113,12 +119,14 @@ Wenn du memesh nur im Claude-Code-Chat verwendest (nie `memesh` im Terminal tipp
113
119
  Wenn Sie Claude Code nutzen, installieren Sie MeMesh als Plugin direkt in der CLI:
114
120
 
115
121
  ```
116
- /plugin marketplace add PCIRCLE-AI/memesh-llm-memory
122
+ /plugin marketplace add PCIRCLE-AI/memesh
117
123
  /plugin install memesh@pcircle-memesh
118
124
  ```
119
125
 
120
126
  Claude Code verdrahtet Hooks, Skills und den MCP-Server automatisch. Sie erhalten Auto-Capture in der Session, proaktives Recall, den `/memesh`-Skill in der Unterhaltung und `remember` / `recall` / `forget` / `learn` als MCP-Tools für den Agenten.
121
127
 
128
+ **Prüfen:** Claude Code neu starten und eine beliebige Session beginnen. Eine Statuszeile wie `◉ MeMesh ready · no memories for "your-project" yet` erscheint oben — diese Zeile IST das funktionierende Plugin; kein separater Befehl nötig. (Mit vorhandenen Memories zeigt sie stattdessen Zähler.)
129
+
122
130
  ### Option B — npm global (optionale Optimierung)
123
131
 
124
132
  Wenn Sie das Binary direkt im `PATH` möchten (damit `memesh` in jedem Terminal ohne `npx`-Verzögerung läuft) oder `memesh-mcp` als stdio-Befehl mit festem Pfad für MCP-Clients außerhalb von Claude Code (Cursor, Cline) bereitstellen wollen:
@@ -129,15 +137,54 @@ npm install -g @pcircle/memesh
129
137
 
130
138
  ### Schritt 1.5: MeMesh in Claude Code einbinden (empfohlen, einmalig)
131
139
 
132
- `npm install -g` legt die CLI in den PATH und registriert den MCP-Server, aber MeMeshs Claude-Code-Session-Hooks werden **nicht** automatisch verdrahtet. Ohne diese Hooks können Sie `memesh remember` / `recall` manuell verwenden, aber die **Auto-Capture-Schleife** (Session → Lektionen → proaktive Erinnerung in der nächsten Session) bleibt stumm.
140
+ `npm install -g` legt die CLI in den PATH aber nichts ist damit in Claude Code eingebunden: Das npm-Paket führt bewusst keine Install-Skripte aus; MCP-Server und Hooks in Claude Code registriert das Plugin (Option A). Was der npm-Pfad selbst verdrahten kann, sind die Session-Hooks. Ohne diese Hooks können Sie `memesh remember` / `recall` manuell verwenden, aber die **Auto-Capture-Schleife** (Session → Lektionen → proaktive Erinnerung in der nächsten Session) bleibt stumm.
141
+
142
+ ```bash
143
+ memesh setup # erkennt Claude Code / Codex / Gemini, bietet die Verdrahtung an, prüft danach
144
+ ```
145
+
146
+ Oder die Einzelschritte von Hand:
133
147
 
134
148
  ```bash
135
149
  memesh install-hooks # fügt memesh-Hooks zu ~/.claude/settings.json hinzu
136
- memesh doctor # bestätigt, dass „Hooks wired into Claude Code" PASST
150
+ memesh setup --check # Prüfung auf Maschinenebene: liest die Host-Configs, ändert nichts
137
151
  ```
138
152
 
139
153
  Die Hooks existieren neben Ihren bestehenden Custom-Hooks unter `~/.claude/hooks/` — `install-hooks` schreibt additiv und überschreibt nie Ihre Einträge. Zum Entfernen: `memesh uninstall-hooks`.
140
154
 
155
+ ### Dieselben Memories aus Codex CLI und Gemini CLI
156
+
157
+ `memesh-mcp` ist ein gewöhnlicher stdio-MCP-Server — jeder MCP-fähige Host kann ihn nutzen, nicht nur Claude Code. Mit installierter Option B (`memesh-mcp` im `PATH`) einmal pro Host registrieren:
158
+
159
+ ```bash
160
+ # OpenAI Codex CLI — schreibt [mcp_servers.memesh] in ~/.codex/config.toml
161
+ codex mcp add memesh -- memesh-mcp
162
+
163
+ # Google Gemini CLI — User-Scope, funktioniert in jedem Ordner
164
+ gemini mcp add -s user memesh memesh-mcp
165
+ ```
166
+
167
+ Jeder Host liest und schreibt dieselbe `~/.memesh/knowledge-graph.db` — eine in Claude Code gespeicherte Memory ist aus Codex oder Gemini abrufbar, und umgekehrt. Prüfen:
168
+
169
+ ```bash
170
+ codex mcp list # memesh sollte als enabled gelistet sein
171
+ gemini mcp list # memesh sollte "Connected" zeigen
172
+ ```
173
+
174
+ > **Als konfigurierten Befehl `memesh-mcp` verwenden, NICHT `npx -p @pcircle/memesh`.** `npx -p` löst zum *lokalen* Paket auf, sobald das Arbeitsverzeichnis des Hosts in einem Checkout dieses Repositories liegt — und führt dann stillschweigend dessen aktuellen Stand statt des installierten Release aus.
175
+
176
+ ### Native Integration: Hermes Agent
177
+
178
+ **Hermes Agent** (NousResearch) verfügt über ein erstklassiges `MemoryProvider`-Pluginsystem — MeMesh integriert sich auf derselben Ebene wie Hermes' eigene eingebaute Memory-Backends (honcho, mem0, hindsight), nicht als HTTP-Bridge. Anders als im MCP-Modus, wo Sie Tools manuell aufrufen, führt Hermes' Provider-System `recall`/`remember` bei jedem Turn automatisch aus.
179
+
180
+ Die Integration mappt Hermes' `prefetch()`- und `sync_turn()`-Hooks direkt auf MeMesh' HTTP-API. Vollständiger Leitfaden mit Provider-Codestruktur, Konfiguration und vier echten Fallstricken aus einem Live-Deployment: **[docs/platforms/hermes-agent.md](docs/platforms/hermes-agent.md)**
181
+
182
+ ### Native Integration: OpenClaw
183
+
184
+ **OpenClaw** verfügt über ein erstklassiges Memory-Capability-Pluginsystem — MeMesh integriert sich auf derselben Ebene wie OpenClaw's eigene eingebaute Backends (LanceDB), nicht als HTTP-Bridge. Das Plugin registriert sich über `api.registerMemoryCapability()` und stellt `memory_recall`/`memory_store`/`memory_forget`-Tools sowie automatisches Recall beim `before_prompt_build`-Hook bereit.
185
+
186
+ **Hauptunterschied zu Hermes**: OpenClaw's Auto-Capture ist schwellenwertgesteuert (max. 3 Memories/Turn bei Trigger), nicht bei jedem Turn. Die Integration mappt auf MeMesh' HTTP-API (`/v1/recall`, `/v1/remember`, `/v1/forget`). Vollständiger TypeScript-Plugin-Vertrag, Konfigurationsform und Fallstricke: **[docs/platforms/openclaw.md](docs/platforms/openclaw.md)**
187
+
141
188
  ### Schritt 2: Entscheidung speichern
142
189
 
143
190
  ```bash
@@ -172,17 +219,43 @@ memesh serve
172
219
  ```
173
220
 
174
221
  <p align="center">
175
- <img src="docs/images/dashboard-search.png" alt="MeMesh Search — find any memory instantly" width="100%" />
222
+ <img src="docs/images/dashboard-search.png" alt="MeMesh — find any memory instantly" width="100%" />
176
223
  </p>
177
224
 
178
225
  <p align="center">
179
- <img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics — health score, timeline, patterns, knowledge coverage" width="100%" />
226
+ <img src="docs/images/dashboard-analytics.png" alt="MeMesh analytics — health score, timeline, patterns, knowledge coverage" width="100%" />
180
227
  </p>
181
228
 
182
229
  <p align="center">
183
230
  <img src="docs/images/dashboard-graph.png" alt="MeMesh Graph — interactive knowledge graph with type filters and ego mode" width="100%" />
184
231
  </p>
185
232
 
233
+ ### Sehen, was es sich gemerkt hat
234
+
235
+ Ein Befehl zeigt jederzeit, was Ihr Agent über das aktuelle Projekt weiß — wo die Arbeit stand, Entscheidungen, Lektionen, jüngste Aktivität (verpackt als Referenzdaten):
236
+
237
+ ```bash
238
+ memesh briefing
239
+ ```
240
+
241
+ ```text
242
+ Where "your-project" was left off (today):
243
+ - Goal: Ship the payment retry logic
244
+ - Next: Open the PR once CI is green
245
+
246
+ Decisions and direction for "your-project":
247
+ - [decision] Use FTS5 as the retrieval baseline
248
+ ```
249
+
250
+ Denselben Block erhält Claude Code automatisch beim Session-Start, und jeder andere MCP-Client über das `briefing`-Tool — der Agent startet orientiert, statt das Repository neu zu lesen, und Sie erklären letzte Woche nicht noch einmal. Das Dashboard (`memesh serve`) ist die vollständige visuelle Ansicht.
251
+
252
+ ### Ihre Daten
253
+
254
+ - **Eine lokale Datei.** Alles liegt in `~/.memesh/knowledge-graph.db` — SQLite, auf Ihrer Festplatte. Kein Cloud-Konto; nichts verlässt Ihren Rechner, außer Sie konfigurieren selbst einen Cloud-Embedder oder ein LLM.
255
+ - **Backup = diese eine Datei kopieren.** Wiederherstellen = zurückkopieren.
256
+ - **Aufzeichnung jederzeit pausieren**: `export MEMESH_AUTO_CAPTURE=false`.
257
+ - **Alles löschen**: `~/.memesh/` entfernen.
258
+
186
259
  ---
187
260
 
188
261
  ## Für wen ist das gedacht?
@@ -251,9 +324,25 @@ Tools in beliebige API-Aufrufe einfügen
251
324
 
252
325
  ---
253
326
 
327
+ ## Benchmarks — 95.60% R@5 auf LongMemEval-S
328
+
329
+ MeMeshs Retrieval-Engine ist **FTS5 alleine** (kein LLM, keine Embeddings auf dem Hot Path), gemessen am öffentlichen [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) Benchmark (500 Fragen, MIT-lizenziert):
330
+
331
+ | System | R@5 | Quelle |
332
+ |---|---|---|
333
+ | **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
334
+ | MemPalace | 96.6% | Eigenangabe des Anbieters |
335
+ | Supermemory | ~82% | Schätzung des Anbieters |
336
+ | Zep | 63.8% | LongMemEval-Paper |
337
+ | Mem0 | 49.0% | LongMemEval-Paper |
338
+
339
+ Reproduktionsbefehle, Datensatz-SHA256, rohe Ergebnisse pro Frage und Analyse bekannter Fehlschläge finden sich vollständig in [`benchmarks/longmemeval/`](benchmarks/longmemeval/). In ~10 Sekunden reproduzierbar.
340
+
341
+ ---
342
+
254
343
  ## Was läuft in Claude Code automatisch ab
255
344
 
256
- Sie müssen nicht manuell alles speichern. MeMesh verfügt über **6 Hooks**, die Wissen während der Arbeit erfassen und injizieren:
345
+ Sie müssen nicht manuell alles speichern. MeMesh verfügt über **7 Hooks**, die Wissen während der Arbeit erfassen und injizieren:
257
346
 
258
347
  | Wenn | Was MeMesh tut |
259
348
  |------|------------------|
@@ -262,6 +351,7 @@ Sie müssen nicht manuell alles speichern. MeMesh verfügt über **6 Hooks**, di
262
351
  | **Nach jedem `git commit`** | Erfasst Ihre Änderungen mit Diff-Statistiken |
263
352
  | **Wenn Claude stoppt** | Erfasst bearbeitete Dateien und behobene Fehler; generiert automatisch strukturierte Lektionen aus Fehlern |
264
353
  | **Vor Context-Verdichtung** | Speichert Wissen, bevor es durch Context-Limits verloren geht |
354
+ | **Vor riskanten Befehlen und Edits** | Löst die von Ihnen akzeptierten Lektions-Guards aus — eine Warnung genau in dem Moment, in dem sich ein erfasster Fehler wiederholen würde |
265
355
 
266
356
  > **Jederzeit abschalten:** `export MEMESH_AUTO_CAPTURE=false`
267
357
 
@@ -290,17 +380,14 @@ Wenn npm eine installierte Version als veraltet kennzeichnet (typischerweise ein
290
380
 
291
381
  ## Dashboard
292
382
 
293
- 8 Reiter, 11 Sprachen, keine externen Abhängigkeiten. Zugang unter `http://localhost:3737/dashboard` wenn der Server läuft.
383
+ 5 Reiter, 11 Sprachen, keine externen Abhängigkeiten. Zugang unter `http://localhost:3737/dashboard` wenn der Server läuft.
294
384
 
295
385
  | Reiter | Was Sie sehen |
296
386
  |--------|-------------|
297
- | **Insights** | Speicher-Insights wöchentliche Zusammenfassungen und Mustervorschläge der Dreamer-Engine; Ein-Klick-Akzeptieren/Ablehnen |
298
- | **Search** | Volltextsuche + Vektorsimilarität über alle Memories |
299
- | **Browse** | Paginierte Liste aller Entitäten mit Archiv-/Restore-Funktion |
300
- | **Analytics** | Memory Health Score, 30-Tage-Timeline, PM-Velocity + KG-Konnektivitätskennzahlen, Arbeitsmuster, Bereinigungsvorschläge |
387
+ | **Home** | Was memesh für Sie getan hat — Dreamer-Insights zuerst: wöchentliche Zusammenfassungen und Mustervorschläge mit Ein-Klick-Akzeptieren/Ablehnen; die komplette Analyse (Memory Health Score, 30-Tage-Timeline, PM-Velocity + KG-Konnektivität, Arbeitsmuster) liegt in einem bei Bedarf ausklappbaren Bereich |
388
+ | **Memories** | Die ganze Bibliothek hinter einer Oberfläche — Sofortfilter plus Enter für server-gerankte Suche (Volltext + Vektor), Scope-Chips für die Arbeitsebene (Ziele/Entscheidungen/Lektionen/Pläne) vs. Belege vs. alle vs. archiviert, ein Cluster-Kompositionsbalken, aufklappbare Details pro Zeile (Lektionen behalten ihre strukturierte Fehler/Grundursache/Behebung/Prävention-Ansicht), Archivieren/Wiederherstellen inline |
389
+ | **Project** | Die Geschichte eines Projekts die Roadmap-Ansicht (Phasen, Meilensteine, Schlüssellektionen) hinter einem Projektwähler |
301
390
  | **Graph** | Interaktiver kraft-gerichteter Wissensgraph mit Typfiltern, Suche, Ego-Modus, Aktualitäts-Heatmap |
302
- | **Lessons** | Strukturierte Lektionen aus vergangenen Fehlern (Fehler, Grundursache, Behebung, Prävention) |
303
- | **Manage** | Entitäten archivieren und wiederherstellen |
304
391
  | **Settings** | LLM-Provider-Konfiguration, sofortiger Sprachwahlschalter |
305
392
 
306
393
  ---
@@ -333,7 +420,7 @@ Importierte Bundles bleiben durchsuchbar, aber MeMesh injiziert importierte Memo
333
420
  > — **3er-Startup mit gemeinsamer Wissensbasis**
334
421
 
335
422
  > "Das Dashboard zeigte mir, dass 90 % meiner Memories automatisch generierte Session-Logs waren. Ich begann, `remember` bewusst für Architekturentscheidungen zu nutzen. Ein Spielwechsel."
336
- > — **Entwickler, der den Analytics-Reiter entdeckte**
423
+ > — **Entwickler, der das Analytics-Panel entdeckte**
337
424
 
338
425
  ---
339
426
 
@@ -360,10 +447,11 @@ Standardmäßig macht MeMesh reines Keyword-Recall (FTS5) — kein API-Schlüsse
360
447
 
361
448
  ```bash
362
449
  memesh config set embedder.provider openai # or: ollama
363
- memesh config set embedder.model text-embedding-3-small
364
450
  ```
365
451
 
366
- Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` zu ändern ändert nie stillschweigend deine Embeddings. Wechselst du zu einer anderen Dimension (z. B. 768 → 1536), baut MeMesh den Vektorindex beim nächsten Schreibvorgang automatisch neu auf. Unterstützte `embedder.provider`-Werte: `ollama` (lokal), `openai` (gehostet). Ohne Einstellung bleibt das Recall bei der Keyword-Suche.
452
+ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` zu ändern ändert nie stillschweigend deine Embeddings. Jeder Anbieter legt sein Modell und seine Dimension selbst fest (`ollama` nomic-embed-text mit 768, `openai` text-embedding-3-small mit 1536); das Modell ist nicht separat wählbar, weil ein Vektorindex auf eine Dimension festgelegt ist und ein zweites Modell Vektoren aus einem anderen Embedding-Raum hineinschreiben würde.
453
+
454
+ Wechselst du zu einer anderen Dimension (z. B. 768 → 1536), wird **nichts gelöscht**. MeMesh behält den bestehenden Index und weist beim Öffnen darauf hin, `memesh reindex` auszuführen: der neue Index wird neben dem alten aufgebaut und erst übernommen, wenn jede Erinnerung einen Vektor hat — ein abgebrochener Neuaufbau kostet dich also nichts und wird an der Abbruchstelle fortgesetzt. In diesem Zeitraum ist die semantische Suche aus und das Recall läuft nur über die Keyword-Suche; `recall` meldet das als `degraded`, statt eine Suche vorzugeben. Unterstützte `embedder.provider`-Werte: `ollama` (lokal), `openai` (gehostet). Ohne Einstellung bleibt das Recall bei der Keyword-Suche.
367
455
 
368
456
  | | Stufe 0 (Standard) | Stufe 1 (Smart Mode) |
369
457
  |---|---|---|
@@ -376,7 +464,7 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
376
464
 
377
465
  ---
378
466
 
379
- ## Alle 7 Memory-Tools
467
+ ## Alle 9 Memory-Tools
380
468
 
381
469
  | Tool | Was es tut |
382
470
  |------|-------------|
@@ -386,6 +474,8 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
386
474
  | `export` | Memories als JSON zwischen Projekten oder Teamkollegen teilen |
387
475
  | `import` | Memories mit Merge-Strategien importieren (Skip / Overwrite / Append) |
388
476
  | `learn` | Strukturierte Lektionen aus Fehlern erfassen (Fehler, Grundursache, Behebung, Prävention) |
477
+ | `task_state` | Arbeitsstand lesen oder festhalten — Ziel, nächster Schritt, Blocker, gerade Erledigtes |
478
+ | `briefing` | Die zusammengesetzte Arbeits-Topologie — derselbe Block, den Claude Code beim Session-Start erhält, für jeden MCP-Client |
389
479
  | `user_patterns` | Arbeitsmuster analysieren — Zeitplan, Tools, Stärken, Lernbereiche |
390
480
 
391
481
  ---
@@ -417,19 +507,22 @@ Der Plugin-Marketplace von Claude Code fixiert Versionen zum Installationszeitpu
417
507
 
418
508
  **Option A — `/plugin` UI**: `memesh@pcircle-memesh` deinstallieren, dann neu installieren. Claude Code holt die neueste Marketplace-Version.
419
509
 
420
- **Option B — Einzeiler-Skript** (kein UI-Klicken, idempotent):
510
+ **Option B — ein Befehl** (kein UI-Klicken, idempotent; braucht die npm-CLI, `npm install -g @pcircle/memesh`):
511
+
512
+ ```bash
513
+ memesh upgrade-plugin
514
+ ```
515
+
516
+ Der Befehl findet die installierte Plugin-Version, prüft die Voraussetzungen und führt das mitgelieferte Upgrade-Skript aus. Voraussetzungen: `node`, `npm` und `rsync` im PATH (macOS bringt rsync mit; Debian/Ubuntu: `sudo apt install rsync`).
517
+
518
+ Nur-Plugin-Nutzer ohne npm-CLI können das Skript weiter von Hand starten — die installierte Version in den Pfad einsetzen:
421
519
 
422
520
  ```bash
423
- # Wenn deine Plugin-Installation v4.2.5 oder neuer ist, ist das Skript enthalten:
424
521
  bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
425
522
 
426
- # Bei Installationen vor v4.2.5 (also v4.2.4 oder v4.2.3)
427
- # ist das Skript noch nicht im Plugin. Nutze stattdessen die npm-global-Kopie:
523
+ # Installationen vor v4.2.5 enthalten das Skript noch nicht; nutze
524
+ # stattdessen die npm-global-Kopie (siehe oben „Installationspfade auf einen Blick"):
428
525
  bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
429
-
430
- # (Das setzt voraus, dass du auch `npm install -g @pcircle/memesh` ausgeführt hast.
431
- # Falls nicht, ist jetzt ein guter Moment dafür — siehe oben „Installationspfade auf
432
- # einen Blick" für die Gründe, warum die meisten Nutzer beide Pfade wollen.)
433
526
  ```
434
527
 
435
528
  Das Skript fast-forwarded den Marketplace-Cache, legt die neue Version unter `~/.claude/plugins/cache/` ab, installiert Runtime-Dependencies und zeigt `installed_plugins.json` neu. Starte danach Claude Code neu, damit der MCP-Server sich neu verbindet.
@@ -443,8 +536,8 @@ Beim Session-Start erscheint ein einzeiliges Banner (pro Version alle 24h gedros
443
536
  ## Beitragen
444
537
 
445
538
  ```bash
446
- git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
447
- cd memesh-llm-memory && npm install && npm run build
539
+ git clone https://github.com/PCIRCLE-AI/memesh
540
+ cd memesh && npm install && npm run build
448
541
  npm test
449
542
  npm run test:e2e-dashboard
450
543
  ```