@pcircle/memesh 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +5 -3
- package/.claude-plugin/plugin.json +6 -4
- package/.mcp.json +1 -1
- package/AGENTS.md +95 -0
- package/README.de.md +130 -39
- package/README.md +188 -43
- package/README.zh-TW.md +133 -41
- package/dashboard/dist/index.html +9 -9
- package/dist/cli/view-live.js +3 -3
- package/dist/core/analytics.d.ts +3 -3
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/auto-tagger.d.ts.map +1 -1
- package/dist/core/auto-tagger.js +4 -9
- package/dist/core/auto-tagger.js.map +1 -1
- package/dist/core/briefing.d.ts +8 -0
- package/dist/core/briefing.d.ts.map +1 -0
- package/dist/core/briefing.js +91 -0
- package/dist/core/briefing.js.map +1 -0
- package/dist/core/capture-flag.d.ts +5 -0
- package/dist/core/capture-flag.d.ts.map +1 -0
- package/dist/core/capture-flag.js +10 -0
- package/dist/core/capture-flag.js.map +1 -0
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/conflict-candidates.d.ts +20 -0
- package/dist/core/conflict-candidates.d.ts.map +1 -0
- package/dist/core/conflict-candidates.js +79 -0
- package/dist/core/conflict-candidates.js.map +1 -0
- package/dist/core/conflict-judge.d.ts +47 -0
- package/dist/core/conflict-judge.d.ts.map +1 -0
- package/dist/core/conflict-judge.js +189 -0
- package/dist/core/conflict-judge.js.map +1 -0
- package/dist/core/demo.d.ts +2 -2
- package/dist/core/demo.d.ts.map +1 -1
- package/dist/core/demo.js.map +1 -1
- package/dist/core/digest-validator.d.ts.map +1 -1
- package/dist/core/digest-validator.js +3 -5
- package/dist/core/digest-validator.js.map +1 -1
- package/dist/core/doctor.d.ts +3 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +207 -85
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts +20 -9
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +416 -58
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts +7 -5
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +38 -9
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/extractor.d.ts.map +1 -1
- package/dist/core/extractor.js +2 -1
- package/dist/core/extractor.js.map +1 -1
- package/dist/core/failure-analyzer.d.ts.map +1 -1
- package/dist/core/failure-analyzer.js +7 -12
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/graph.d.ts +4 -4
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js.map +1 -1
- package/dist/core/install-channel.d.ts +1 -1
- package/dist/core/install-channel.d.ts.map +1 -1
- package/dist/core/install-channel.js +16 -5
- package/dist/core/install-channel.js.map +1 -1
- package/dist/core/install-hooks.d.ts +6 -0
- package/dist/core/install-hooks.d.ts.map +1 -1
- package/dist/core/install-hooks.js +0 -0
- package/dist/core/install-hooks.js.map +1 -1
- package/dist/core/json-utils.d.ts +1 -0
- package/dist/core/json-utils.d.ts.map +1 -1
- package/dist/core/json-utils.js +19 -10
- package/dist/core/json-utils.js.map +1 -1
- package/dist/core/kg-backfill.d.ts +3 -4
- package/dist/core/kg-backfill.d.ts.map +1 -1
- package/dist/core/kg-backfill.js +1 -4
- package/dist/core/kg-backfill.js.map +1 -1
- package/dist/core/lesson-engine.d.ts +1 -0
- package/dist/core/lesson-engine.d.ts.map +1 -1
- package/dist/core/lesson-engine.js +1 -0
- package/dist/core/lesson-engine.js.map +1 -1
- package/dist/core/lifecycle.d.ts +4 -4
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +15 -22
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/llm-client.d.ts.map +1 -1
- package/dist/core/llm-client.js +3 -6
- package/dist/core/llm-client.js.map +1 -1
- package/dist/core/llm-telemetry.d.ts +4 -4
- package/dist/core/llm-telemetry.d.ts.map +1 -1
- package/dist/core/llm-telemetry.js +1 -1
- package/dist/core/llm-telemetry.js.map +1 -1
- package/dist/core/memory-tool.d.ts.map +1 -1
- package/dist/core/memory-tool.js +8 -4
- package/dist/core/memory-tool.js.map +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +41 -17
- package/dist/core/operations.js.map +1 -1
- package/dist/core/paths.d.ts +3 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +67 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/patterns.d.ts +2 -2
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/project-tags.d.ts +3 -3
- package/dist/core/project-tags.d.ts.map +1 -1
- package/dist/core/project-tags.js.map +1 -1
- package/dist/core/projects.d.ts +2 -2
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js.map +1 -1
- package/dist/core/prompt-safety.d.ts +1 -0
- package/dist/core/prompt-safety.d.ts.map +1 -1
- package/dist/core/prompt-safety.js +7 -0
- package/dist/core/prompt-safety.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +27 -30
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +45 -4
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/setup.d.ts +29 -0
- package/dist/core/setup.d.ts.map +1 -0
- package/dist/core/setup.js +127 -0
- package/dist/core/setup.js.map +1 -0
- package/dist/core/stats.d.ts +2 -2
- package/dist/core/stats.d.ts.map +1 -1
- package/dist/core/stats.js.map +1 -1
- package/dist/core/task-state-store.d.ts +17 -0
- package/dist/core/task-state-store.d.ts.map +1 -0
- package/dist/core/task-state-store.js +45 -0
- package/dist/core/task-state-store.js.map +1 -0
- package/dist/core/task-state.d.ts +19 -0
- package/dist/core/task-state.d.ts.map +1 -0
- package/dist/core/task-state.js +91 -0
- package/dist/core/task-state.js.map +1 -0
- package/dist/core/time-utils.d.ts +2 -0
- package/dist/core/time-utils.d.ts.map +1 -0
- package/dist/core/time-utils.js +14 -0
- package/dist/core/time-utils.js.map +1 -0
- package/dist/core/title.d.ts +5 -0
- package/dist/core/title.d.ts.map +1 -0
- package/dist/core/title.js +14 -0
- package/dist/core/title.js.map +1 -0
- package/dist/core/transcript-extractor.d.ts +5 -6
- package/dist/core/transcript-extractor.d.ts.map +1 -1
- package/dist/core/transcript-extractor.js +4 -24
- package/dist/core/transcript-extractor.js.map +1 -1
- package/dist/core/transcript-source.d.ts.map +1 -1
- package/dist/core/transcript-source.js +2 -3
- package/dist/core/transcript-source.js.map +1 -1
- package/dist/core/types.d.ts +21 -7
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/work-topology.d.ts +33 -0
- package/dist/core/work-topology.d.ts.map +1 -0
- package/dist/core/work-topology.js +183 -0
- package/dist/core/work-topology.js.map +1 -0
- package/dist/db.d.ts +5 -10
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +194 -196
- package/dist/db.js.map +1 -1
- package/dist/knowledge-graph.d.ts +4 -2
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +68 -49
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills-manifest.json +61 -36
- package/dist/storage/conflicts.d.ts +3 -3
- package/dist/storage/conflicts.d.ts.map +1 -1
- package/dist/storage/conflicts.js +2 -7
- package/dist/storage/conflicts.js.map +1 -1
- package/dist/storage/fts-index.d.ts +6 -4
- package/dist/storage/fts-index.d.ts.map +1 -1
- package/dist/storage/fts-index.js +16 -4
- package/dist/storage/fts-index.js.map +1 -1
- package/dist/storage/schema.d.ts +20 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +274 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/sqlite.d.ts +20 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +64 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/vector-index.d.ts +3 -0
- package/dist/storage/vector-index.d.ts.map +1 -0
- package/dist/storage/vector-index.js +7 -0
- package/dist/storage/vector-index.js.map +1 -0
- package/dist/transports/cli/cli.d.ts +1 -4
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +494 -76
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/retired-routes.d.ts.map +1 -1
- package/dist/transports/http/retired-routes.js +1 -0
- package/dist/transports/http/retired-routes.js.map +1 -1
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +243 -323
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +48 -94
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +77 -56
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +31 -40
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +31 -37
- package/dist/transports/schemas.js.map +1 -1
- package/hooks/hooks.json +0 -10
- package/llms-install.md +138 -0
- package/package.json +19 -18
- package/scripts/hooks/_generated/capture-flag.js +17 -0
- package/scripts/hooks/_generated/core-paths.js +67 -1
- package/scripts/hooks/_generated/fts-index.js +16 -4
- package/scripts/hooks/_generated/schema.js +281 -0
- package/scripts/hooks/_generated/sqlite.js +71 -0
- package/scripts/hooks/_generated/task-state.js +98 -0
- package/scripts/hooks/_generated/time-utils.js +21 -0
- package/scripts/hooks/_generated/title.js +21 -0
- package/scripts/hooks/_generated/work-topology.js +190 -0
- package/scripts/hooks/_shared.js +269 -534
- package/scripts/hooks/post-commit.js +55 -10
- package/scripts/hooks/pre-compact.js +22 -7
- package/scripts/hooks/pre-edit-recall.js +9 -11
- package/scripts/hooks/session-start.js +230 -106
- package/scripts/hooks/session-summary.js +176 -73
- package/scripts/hooks/user-prompt-intent.js +3 -2
- package/skills/memesh/SKILL.md +97 -77
- package/README.es.md +0 -470
- package/README.fr.md +0 -462
- package/README.ja.md +0 -470
- package/README.ko.md +0 -470
- package/README.pt.md +0 -462
- package/README.th.md +0 -463
- package/README.vi.md +0 -462
- package/README.zh-CN.md +0 -469
- package/dist/cli/view.d.ts +0 -3
- package/dist/cli/view.d.ts.map +0 -1
- package/dist/cli/view.js +0 -523
- package/dist/cli/view.js.map +0 -1
- package/dist/core/skill-usage-log.d.ts +0 -11
- package/dist/core/skill-usage-log.d.ts.map +0 -1
- package/dist/core/skill-usage-log.js +0 -125
- package/dist/core/skill-usage-log.js.map +0 -1
- package/dist/core/verifier.d.ts +0 -40
- package/dist/core/verifier.d.ts.map +0 -1
- package/dist/core/verifier.js +0 -206
- package/dist/core/verifier.js.map +0 -1
- package/dist/mcp/launcher.d.ts +0 -3
- package/dist/mcp/launcher.d.ts.map +0 -1
- package/dist/mcp/launcher.js +0 -37
- package/dist/mcp/launcher.js.map +0 -1
- package/scripts/hooks/pre-bash-orchestration-nudge.js +0 -155
- package/scripts/postinstall-rebuild.mjs +0 -41
- package/skills/agentic-orchestration/SKILL.md +0 -399
|
@@ -7,17 +7,19 @@
|
|
|
7
7
|
{
|
|
8
8
|
"name": "memesh",
|
|
9
9
|
"source": "./",
|
|
10
|
-
"description": "MeMesh —
|
|
11
|
-
"version": "4.
|
|
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.0",
|
|
12
12
|
"author": {
|
|
13
13
|
"name": "PCIRCLE AI"
|
|
14
14
|
},
|
|
15
|
-
"homepage": "https://
|
|
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 —
|
|
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.
|
|
8
|
-
"homepage": "https://
|
|
9
|
-
"repository": "https://github.com/PCIRCLE-AI/memesh
|
|
7
|
+
"version": "4.6.0",
|
|
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/.mcp.json
CHANGED
package/AGENTS.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
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 Claude Code already does — do not double-write
|
|
56
|
+
|
|
57
|
+
Under Claude Code with the MeMesh plugin, hooks capture automatically:
|
|
58
|
+
|
|
59
|
+
- **SessionStart** injects the work topology (the same block `briefing`
|
|
60
|
+
returns) at the top of the session.
|
|
61
|
+
- **PreToolUse (Edit|Write)** surfaces memories related to the file being
|
|
62
|
+
edited.
|
|
63
|
+
- **PostToolUse (Bash)** records git commits with diff stats.
|
|
64
|
+
- **Stop** captures session knowledge and turns failures into lessons.
|
|
65
|
+
- **PreCompact** saves important knowledge before history is compressed.
|
|
66
|
+
- **UserPromptSubmit** detects "remember this" intent in the prompt.
|
|
67
|
+
|
|
68
|
+
So under Claude Code: skip step 1 of the loop (the topology is already
|
|
69
|
+
injected), and do not `remember` commits or session summaries by hand. Manual
|
|
70
|
+
calls are for what hooks cannot see — decisions and their rationale, lessons
|
|
71
|
+
worth keeping, and user-stated task state.
|
|
72
|
+
|
|
73
|
+
Other hosts (Codex CLI, Gemini CLI, Cursor, …) have no hooks: there the loop
|
|
74
|
+
is fully manual, and it is worth running.
|
|
75
|
+
|
|
76
|
+
## Working on this repository (contributing agents)
|
|
77
|
+
|
|
78
|
+
The sections above are for agents whose user installed memesh. If you are an
|
|
79
|
+
agent making changes to this codebase, [CLAUDE.md](CLAUDE.md) is the entry
|
|
80
|
+
point; the policy it carries, compressed:
|
|
81
|
+
|
|
82
|
+
- **Blast radius picks the process.** One module, no security surface, no
|
|
83
|
+
cross-surface behaviour → implement, run the affected tests + typecheck,
|
|
84
|
+
read your own diff. Anything wider → the full gate (`npm run
|
|
85
|
+
verify:release`), break-test the guards you add, docs in the same PR.
|
|
86
|
+
- **Findings first, with evidence.** Reviews and QA reports lead with what is
|
|
87
|
+
wrong and prove it (file:line, actual output). Verdicts are `PASS`,
|
|
88
|
+
`PASS_WITH_CONCERNS`, or `FAIL` — the same vocabulary `memesh doctor` uses.
|
|
89
|
+
- **No runtime claim without runtime evidence.** Paste the runner's output;
|
|
90
|
+
read exit codes, not grepped fragments.
|
|
91
|
+
- **Delegation is disjoint.** Two writers never touch one file; file-editing
|
|
92
|
+
subagents work in isolated worktrees and never commit or push — the
|
|
93
|
+
orchestrator reads every diff before it lands.
|
|
94
|
+
- **Internal notes stay local.** Plans and scratch analyses are never
|
|
95
|
+
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) | [
|
|
1
|
+
🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [Deutsch](README.de.md)
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<h1 align="center">MeMesh
|
|
4
|
+
<h1 align="center">MeMesh</h1>
|
|
5
5
|
<p align="center">
|
|
6
|
-
<strong>
|
|
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
|
-
|
|
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
|
-
##
|
|
21
|
+
## Installation
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
**In Claude Code** — diese zwei Zeilen im Chat eingeben (Hooks, Memory-Tools und der `/memesh`-Skill werden automatisch verdrahtet):
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
```
|
|
26
|
+
/plugin marketplace add PCIRCLE-AI/memesh
|
|
27
|
+
/plugin install memesh@pcircle-memesh
|
|
28
|
+
```
|
|
27
29
|
|
|
28
|
-
|
|
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
|
-
|
|
34
|
+
```bash
|
|
35
|
+
npm install -g @pcircle/memesh
|
|
36
|
+
memesh doctor # prüft diese Installation Ende-zu-Ende
|
|
37
|
+
```
|
|
33
38
|
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
@@ -183,6 +230,32 @@ memesh serve
|
|
|
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,6 +324,22 @@ 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
345
|
Sie müssen nicht manuell alles speichern. MeMesh verfügt über **6 Hooks**, die Wissen während der Arbeit erfassen und injizieren:
|
|
@@ -259,7 +348,6 @@ Sie müssen nicht manuell alles speichern. MeMesh verfügt über **6 Hooks**, di
|
|
|
259
348
|
|------|------------------|
|
|
260
349
|
| **Am Anfang jeder Session** | Lädt Ihre relevantesten Memories + proaktive Warnungen aus früheren Lektionen + Agentur-Orchestrierungs-Banner |
|
|
261
350
|
| **Vor Dateibearbeitungen** | Ruft Memories ab, die an die Datei oder das Projekt gebunden sind, bevor Claude Code schreibt |
|
|
262
|
-
| **Vor Bash-Befehlen** | Ermutigt Claude, hochverifizierbare Befehle (Test, Build, Lint, Migration, Deployment, Benchmark) als Hintergrund-Agenten zu versenden |
|
|
263
351
|
| **Nach jedem `git commit`** | Erfasst Ihre Änderungen mit Diff-Statistiken |
|
|
264
352
|
| **Wenn Claude stoppt** | Erfasst bearbeitete Dateien und behobene Fehler; generiert automatisch strukturierte Lektionen aus Fehlern |
|
|
265
353
|
| **Vor Context-Verdichtung** | Speichert Wissen, bevor es durch Context-Limits verloren geht |
|
|
@@ -277,7 +365,6 @@ Die gesamte Konfiguration erfolgt über Umgebungsvariablen. Die Standardwerte si
|
|
|
277
365
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Überschreibt den Speicherort der SQLite-Datenbank. |
|
|
278
366
|
| `MEMESH_AUTO_CAPTURE` | `true` | Deaktiviert die Auto-Capture-Hooks (`Stop`, `PreCompact`) vollständig. |
|
|
279
367
|
| `MEMESH_AUTO_DETECT_LLM` | nicht gesetzt (Auto-Erkennung **an**) | Auf `0` setzen, damit memesh einen im Shell-Environment gefundenen API-Schlüssel NICHT verwendet. Standardmäßig nutzt memesh einen gesetzten `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` für schreibseitige LLM-Funktionen (Konsolidierung, Lesson-Extraktion, Auto-Tagging, Dream), sofern in `~/.memesh/config.json` kein Provider konfiguriert ist. Embeddings sind nicht betroffen — sie bleiben Keyword-only (FTS5), außer du setzt `embedder.provider` explizit auf `ollama` oder `openai`. |
|
|
280
|
-
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | nicht gesetzt | Auf `1` setzen, um ein experimentelles Working-Model-Protokoll zu aktivieren (CTO / Orchestrator / Agents-Framing). Fügt ein Session-Start-Banner, einen Bash-Befehls-Nudge und `verify_agent_work`-Telemetrie hinzu. Die Wirksamkeit des Protokolls wird derzeit instrumentiert, ist aber noch nicht erwiesen — Opt-in, falls Sie teilnehmen möchten. **Standard ist OFF**: Die Kern-Memory-Funktionen arbeiten ohne dieses Flag. |
|
|
281
368
|
| `MEMESH_AUTO_UPDATE` | `off` | Auto-Update-Richtlinie. `off` (Standard) aktualisiert nie automatisch; `patch` erlaubt `X.Y.Z → X.Y.Z+N`; `minor` ergänzt `X.Y.Z → X.Y+1.0`; `major` erlaubt jedes Bump. Wenn zugelassen, läuft am Session-Ende (Stop-Hook) ein abgekoppeltes `npm install -g`, sodass es Ihre Arbeit nie blockiert — Ergebnisse landen in `~/.memesh/auto-update.log`. Ebenfalls als `autoUpdate` in `~/.memesh/config.json` setzbar (Env hat Vorrang). Wenn die installierte Version von den Maintainern als veraltet markiert wird (Sicherheitswarnung), wird `patch` auch bei `off` erzwungen erlaubt — Minor- / Major-Bumps bleiben manuell, um stille Verhaltensänderungen zu vermeiden. |
|
|
282
369
|
| `OPENAI_API_KEY` | nicht gesetzt | Dein OpenAI-Schlüssel. Wird automatisch für LLM-Funktionen genutzt, außer du setzt `MEMESH_AUTO_DETECT_LLM=0` oder konfigurierst einen Provider explizit. |
|
|
283
370
|
| `OLLAMA_HOST` | `http://localhost:11434` | Überschreibt den Ollama-Endpoint, wenn ein lokaler Ollama-Provider verwendet wird. |
|
|
@@ -378,7 +465,7 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
|
|
|
378
465
|
|
|
379
466
|
---
|
|
380
467
|
|
|
381
|
-
## Alle
|
|
468
|
+
## Alle 9 Memory-Tools
|
|
382
469
|
|
|
383
470
|
| Tool | Was es tut |
|
|
384
471
|
|------|-------------|
|
|
@@ -388,8 +475,9 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
|
|
|
388
475
|
| `export` | Memories als JSON zwischen Projekten oder Teamkollegen teilen |
|
|
389
476
|
| `import` | Memories mit Merge-Strategien importieren (Skip / Overwrite / Append) |
|
|
390
477
|
| `learn` | Strukturierte Lektionen aus Fehlern erfassen (Fehler, Grundursache, Behebung, Prävention) |
|
|
478
|
+
| `task_state` | Arbeitsstand lesen oder festhalten — Ziel, nächster Schritt, Blocker, gerade Erledigtes |
|
|
479
|
+
| `briefing` | Die zusammengesetzte Arbeits-Topologie — derselbe Block, den Claude Code beim Session-Start erhält, für jeden MCP-Client |
|
|
391
480
|
| `user_patterns` | Arbeitsmuster analysieren — Zeitplan, Tools, Stärken, Lernbereiche |
|
|
392
|
-
| `verify_agent_work` | Verifizierungsbericht für Hintergrund-Agent-Arbeit speichern; Reality-Check gegen behauptete Dateiänderungen via `git diff` |
|
|
393
481
|
|
|
394
482
|
---
|
|
395
483
|
|
|
@@ -398,7 +486,7 @@ Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` z
|
|
|
398
486
|
```
|
|
399
487
|
┌─────────────────┐
|
|
400
488
|
│ Core Engine │
|
|
401
|
-
│ (
|
|
489
|
+
│ (7 operations) │
|
|
402
490
|
└────────┬────────┘
|
|
403
491
|
┌─────────────────┼─────────────────┐
|
|
404
492
|
│ │ │
|
|
@@ -420,19 +508,22 @@ Der Plugin-Marketplace von Claude Code fixiert Versionen zum Installationszeitpu
|
|
|
420
508
|
|
|
421
509
|
**Option A — `/plugin` UI**: `memesh@pcircle-memesh` deinstallieren, dann neu installieren. Claude Code holt die neueste Marketplace-Version.
|
|
422
510
|
|
|
423
|
-
**Option B —
|
|
511
|
+
**Option B — ein Befehl** (kein UI-Klicken, idempotent; braucht die npm-CLI, `npm install -g @pcircle/memesh`):
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
memesh upgrade-plugin
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
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`).
|
|
518
|
+
|
|
519
|
+
Nur-Plugin-Nutzer ohne npm-CLI können das Skript weiter von Hand starten — die installierte Version in den Pfad einsetzen:
|
|
424
520
|
|
|
425
521
|
```bash
|
|
426
|
-
# Wenn deine Plugin-Installation v4.2.5 oder neuer ist, ist das Skript enthalten:
|
|
427
522
|
bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
|
|
428
523
|
|
|
429
|
-
#
|
|
430
|
-
#
|
|
524
|
+
# Installationen vor v4.2.5 enthalten das Skript noch nicht; nutze
|
|
525
|
+
# stattdessen die npm-global-Kopie (siehe oben „Installationspfade auf einen Blick"):
|
|
431
526
|
bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
|
|
432
|
-
|
|
433
|
-
# (Das setzt voraus, dass du auch `npm install -g @pcircle/memesh` ausgeführt hast.
|
|
434
|
-
# Falls nicht, ist jetzt ein guter Moment dafür — siehe oben „Installationspfade auf
|
|
435
|
-
# einen Blick" für die Gründe, warum die meisten Nutzer beide Pfade wollen.)
|
|
436
527
|
```
|
|
437
528
|
|
|
438
529
|
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.
|
|
@@ -446,8 +537,8 @@ Beim Session-Start erscheint ein einzeiliges Banner (pro Version alle 24h gedros
|
|
|
446
537
|
## Beitragen
|
|
447
538
|
|
|
448
539
|
```bash
|
|
449
|
-
git clone https://github.com/PCIRCLE-AI/memesh
|
|
450
|
-
cd memesh
|
|
540
|
+
git clone https://github.com/PCIRCLE-AI/memesh
|
|
541
|
+
cd memesh && npm install && npm run build
|
|
451
542
|
npm test
|
|
452
543
|
npm run test:e2e-dashboard
|
|
453
544
|
```
|