memorix 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -21
- package/dist/cli/index.js +6 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -2,21 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
> Universal memory layer for AI coding agents via MCP
|
|
4
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/memorix)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
5
8
|
## What is Memorix?
|
|
6
9
|
|
|
7
|
-
Memorix is a lightweight local MCP server that acts as a **universal memory layer** across AI coding agents. Your knowledge from Cursor, Claude Code, Codex, and
|
|
10
|
+
Memorix is a lightweight local MCP server that acts as a **universal memory layer** across AI coding agents. Your knowledge from **Windsurf, Cursor, Claude Code, Codex, and VS Code Copilot** is stored once and shared everywhere.
|
|
8
11
|
|
|
9
12
|
### The Problem
|
|
10
13
|
|
|
11
14
|
- claude-mem only serves Claude Code
|
|
12
|
-
-
|
|
15
|
+
- mcp-memory-service has no cross-agent workspace sync
|
|
13
16
|
- Your architecture decisions in Cursor are invisible to Claude Code
|
|
14
17
|
- Bug fix knowledge in Windsurf doesn't transfer to Codex
|
|
15
|
-
- **No one
|
|
18
|
+
- **No one bridges memory AND workspace configs across agents**
|
|
16
19
|
|
|
17
20
|
### The Solution
|
|
18
21
|
|
|
19
|
-
Memorix stores and indexes project knowledge (architecture decisions, bug fixes, code style preferences) and exposes it via MCP — so **any MCP-supporting agent** can access it.
|
|
22
|
+
Memorix stores and indexes project knowledge (architecture decisions, bug fixes, code style preferences) and exposes it via MCP — so **any MCP-supporting agent** can access it. It also **syncs MCP configs, rules, skills, and workflows** across all your agents automatically.
|
|
20
23
|
|
|
21
24
|
## Features
|
|
22
25
|
|
|
@@ -39,18 +42,21 @@ Memorix stores and indexes project knowledge (architecture decisions, bug fixes,
|
|
|
39
42
|
- **Graceful Degradation**: No fastembed? Falls back to BM25 fulltext automatically
|
|
40
43
|
- **Token Budget**: `maxTokens` parameter trims results to fit context windows
|
|
41
44
|
|
|
42
|
-
### P2 — Cross-Agent Sync
|
|
45
|
+
### P2 — Cross-Agent Workspace Sync
|
|
43
46
|
|
|
47
|
+
- **5 Agent Adapters**: Windsurf, Cursor, Claude Code, Codex, VS Code Copilot
|
|
48
|
+
- **MCP Config Sync**: Detect and migrate MCP server configs across agents (merges into existing files — never overwrites)
|
|
44
49
|
- **Rules Parser**: 4 format adapters (Cursor `.mdc`, Claude Code `CLAUDE.md`, Codex `SKILL.md`, Windsurf `.windsurfrules`)
|
|
45
50
|
- **Rules Syncer**: Scan → Deduplicate → Conflict detection → Cross-format generation
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
51
|
+
- **Skills Sync**: Scan `.codex/skills/`, `.cursor/skills/`, `.windsurf/skills/`, `.claude/skills/` → copy entire skill folders across agents
|
|
52
|
+
- **Sync Advisory**: On first `memorix_search`, auto-detects available configs/skills from other agents and prompts the user
|
|
53
|
+
- **Selective Sync**: Sync specific items by name (e.g. `items=["figma-remote-mcp-server", "create-subagent"]`)
|
|
48
54
|
- **Apply with Safety**: Backup → Atomic write → Auto-rollback on failure
|
|
49
55
|
|
|
50
56
|
### P3 — Auto-Memory Hooks
|
|
51
57
|
|
|
52
58
|
- **Hook Events**: `user_prompt`, `post_response`, `post_edit`, `post_command`, `post_tool`, `session_end`
|
|
53
|
-
- **Agent Normalizer**: Maps Windsurf/Cursor/Claude/Codex native events to unified hook events
|
|
59
|
+
- **Agent Normalizer**: Maps Windsurf/Cursor/Claude Code/Codex native events to unified hook events
|
|
54
60
|
- **Pattern Detection**: Auto-detects decisions, errors, gotchas, configurations, learnings, implementations
|
|
55
61
|
- **Cooldown Filtering**: Prevents duplicate storage within configurable time windows
|
|
56
62
|
- **Noise Filtering**: Skips trivial commands (`ls`, `cat`, `pwd`, etc.)
|
|
@@ -80,42 +86,63 @@ Memorix stores and indexes project knowledge (architecture decisions, bug fixes,
|
|
|
80
86
|
### Install
|
|
81
87
|
|
|
82
88
|
```bash
|
|
83
|
-
npm install memorix
|
|
89
|
+
npm install -g memorix
|
|
84
90
|
```
|
|
85
91
|
|
|
86
92
|
### Configure in your agent
|
|
87
93
|
|
|
88
|
-
**
|
|
94
|
+
**Windsurf** (`~/.codeium/windsurf/mcp_config.json`):
|
|
89
95
|
```json
|
|
90
96
|
{
|
|
91
97
|
"mcpServers": {
|
|
92
98
|
"memorix": {
|
|
93
|
-
"command": "
|
|
94
|
-
"args": ["
|
|
99
|
+
"command": "memorix",
|
|
100
|
+
"args": ["serve"]
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
```
|
|
99
105
|
|
|
100
|
-
**
|
|
106
|
+
**Cursor** (`.cursor/mcp.json`):
|
|
101
107
|
```json
|
|
102
108
|
{
|
|
103
109
|
"mcpServers": {
|
|
104
110
|
"memorix": {
|
|
105
|
-
"command": "
|
|
106
|
-
"args": ["
|
|
111
|
+
"command": "memorix",
|
|
112
|
+
"args": ["serve"]
|
|
107
113
|
}
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
```
|
|
111
117
|
|
|
112
|
-
**
|
|
118
|
+
**Claude Code** (`~/.claude.json`):
|
|
113
119
|
```json
|
|
114
120
|
{
|
|
115
121
|
"mcpServers": {
|
|
116
122
|
"memorix": {
|
|
117
|
-
"command": "
|
|
118
|
-
"args": ["
|
|
123
|
+
"command": "memorix",
|
|
124
|
+
"args": ["serve"]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Codex** (`~/.codex/config.toml`):
|
|
131
|
+
```toml
|
|
132
|
+
[mcp_servers.memorix]
|
|
133
|
+
command = "memorix"
|
|
134
|
+
args = ["serve"]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**VS Code Copilot** (VS Code `settings.json` or `.vscode/mcp.json`):
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"mcp": {
|
|
141
|
+
"servers": {
|
|
142
|
+
"memorix": {
|
|
143
|
+
"command": "memorix",
|
|
144
|
+
"args": ["serve"]
|
|
145
|
+
}
|
|
119
146
|
}
|
|
120
147
|
}
|
|
121
148
|
}
|
|
@@ -154,7 +181,7 @@ npm install memorix
|
|
|
154
181
|
```
|
|
155
182
|
┌─────────────────────────────────────────────┐
|
|
156
183
|
│ MCP Clients │
|
|
157
|
-
│
|
|
184
|
+
│ Windsurf│Cursor│Claude Code│Codex│Copilot │
|
|
158
185
|
└──────────────────┬──────────────────────────┘
|
|
159
186
|
│ stdio
|
|
160
187
|
┌──────────────────▼──────────────────────────┐
|
|
@@ -177,7 +204,7 @@ npm install memorix
|
|
|
177
204
|
│ │
|
|
178
205
|
│ ┌────────────────────────────────────┐ │
|
|
179
206
|
│ │ Rules & Skills Syncer │ │
|
|
180
|
-
│ │ Cursor│Claude│Codex│Windsurf
|
|
207
|
+
│ │ Cursor│Claude Code│Codex│Windsurf│Copilot│ │
|
|
181
208
|
│ │ rules: scan→dedup→conflict→gen │ │
|
|
182
209
|
│ │ skills: scan→copy (no convert) │ │
|
|
183
210
|
│ └────────────────────────────────────┘ │
|
|
@@ -246,4 +273,4 @@ Memorix stands on the shoulders of these excellent projects:
|
|
|
246
273
|
|
|
247
274
|
## License
|
|
248
275
|
|
|
249
|
-
|
|
276
|
+
Apache 2.0 — see [LICENSE](LICENSE)
|
package/dist/cli/index.js
CHANGED
|
@@ -2462,9 +2462,10 @@ var init_engine2 = __esm({
|
|
|
2462
2462
|
"claude-code": [".claude/skills"],
|
|
2463
2463
|
copilot: []
|
|
2464
2464
|
};
|
|
2465
|
-
/** Get the target skills directory for an agent */
|
|
2465
|
+
/** Get the target skills directory for an agent (null if agent has no skills support) */
|
|
2466
2466
|
getTargetSkillsDir(target) {
|
|
2467
2467
|
const dirs = _WorkspaceSyncEngine.SKILLS_DIRS[target];
|
|
2468
|
+
if (!dirs || dirs.length === 0) return null;
|
|
2468
2469
|
return join7(this.projectRoot, dirs[0]);
|
|
2469
2470
|
}
|
|
2470
2471
|
/**
|
|
@@ -2531,6 +2532,9 @@ var init_engine2 = __esm({
|
|
|
2531
2532
|
const targetDir = this.getTargetSkillsDir(target);
|
|
2532
2533
|
const copied = [];
|
|
2533
2534
|
const skipped = [];
|
|
2535
|
+
if (!targetDir) {
|
|
2536
|
+
return { copied, skipped };
|
|
2537
|
+
}
|
|
2534
2538
|
for (const skill of skills) {
|
|
2535
2539
|
if (skill.sourceAgent === target) continue;
|
|
2536
2540
|
const dest = join7(targetDir, skill.name);
|
|
@@ -4702,7 +4706,7 @@ import { defineCommand as defineCommand9, runMain } from "citty";
|
|
|
4702
4706
|
var main = defineCommand9({
|
|
4703
4707
|
meta: {
|
|
4704
4708
|
name: "memorix",
|
|
4705
|
-
version: "0.3.
|
|
4709
|
+
version: "0.3.9",
|
|
4706
4710
|
description: "Cross-Agent Memory Bridge \u2014 Universal memory layer for AI coding agents via MCP"
|
|
4707
4711
|
},
|
|
4708
4712
|
subCommands: {
|