claude-cortex 1.7.0 → 1.7.2
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 +37 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/setup/hooks.d.ts +6 -0
- package/dist/setup/hooks.d.ts.map +1 -0
- package/dist/setup/hooks.js +34 -0
- package/dist/setup/hooks.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,9 +68,9 @@ Create `~/.claude/.mcp.json` with the same content.
|
|
|
68
68
|
|
|
69
69
|
After adding the config, restart Claude Code and approve the MCP server when prompted.
|
|
70
70
|
|
|
71
|
-
### 3. Configure
|
|
71
|
+
### 3. Configure Hooks (Recommended)
|
|
72
72
|
|
|
73
|
-
Add to `~/.claude/settings.json` for automatic memory extraction
|
|
73
|
+
Add to `~/.claude/settings.json` for automatic memory extraction and context loading:
|
|
74
74
|
|
|
75
75
|
```json
|
|
76
76
|
{
|
|
@@ -81,7 +81,20 @@ Add to `~/.claude/settings.json` for automatic memory extraction before compacti
|
|
|
81
81
|
"hooks": [
|
|
82
82
|
{
|
|
83
83
|
"type": "command",
|
|
84
|
-
"command": "npx -y claude-cortex
|
|
84
|
+
"command": "npx -y claude-cortex hook pre-compact",
|
|
85
|
+
"timeout": 10
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"SessionStart": [
|
|
91
|
+
{
|
|
92
|
+
"matcher": "",
|
|
93
|
+
"hooks": [
|
|
94
|
+
{
|
|
95
|
+
"type": "command",
|
|
96
|
+
"command": "npx -y claude-cortex hook session-start",
|
|
97
|
+
"timeout": 5
|
|
85
98
|
}
|
|
86
99
|
]
|
|
87
100
|
}
|
|
@@ -90,7 +103,8 @@ Add to `~/.claude/settings.json` for automatic memory extraction before compacti
|
|
|
90
103
|
}
|
|
91
104
|
```
|
|
92
105
|
|
|
93
|
-
|
|
106
|
+
- **PreCompact**: Auto-saves important context before compaction events
|
|
107
|
+
- **SessionStart**: Auto-loads project context at the start of each session
|
|
94
108
|
|
|
95
109
|
### 4. Enable Proactive Memory (Recommended)
|
|
96
110
|
|
|
@@ -291,6 +305,8 @@ The dashboard provides a 3D brain visualization of your memories with real-time
|
|
|
291
305
|
|
|
292
306
|
```bash
|
|
293
307
|
npx claude-cortex setup # Configure Claude for proactive memory use
|
|
308
|
+
npx claude-cortex hook pre-compact # Run pre-compact hook (for settings.json)
|
|
309
|
+
npx claude-cortex hook session-start # Run session-start hook (for settings.json)
|
|
294
310
|
npx claude-cortex service install # Enable auto-start
|
|
295
311
|
npx claude-cortex service uninstall # Remove auto-start
|
|
296
312
|
npx claude-cortex service status # Check status
|
|
@@ -331,6 +347,23 @@ cd dashboard && npm run dev
|
|
|
331
347
|
| Yellow | Learning |
|
|
332
348
|
| Cyan | Context |
|
|
333
349
|
|
|
350
|
+
## Moltbot / ClawdBot Integration
|
|
351
|
+
|
|
352
|
+
Claude Cortex works with [Moltbot](https://github.com/moltbot/moltbot) (formerly ClawdBot) via [mcporter](https://mcpmarket.com/tools/skills/mcporter). Since Claude Cortex is a standard MCP server, Moltbot can call its tools on-demand:
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
# Remember something via Moltbot
|
|
356
|
+
npx mcporter call --stdio "npx -y claude-cortex" memory.remember title:"API uses JWT" content:"The auth system uses JWT tokens with 15-min expiry"
|
|
357
|
+
|
|
358
|
+
# Recall memories
|
|
359
|
+
npx mcporter call --stdio "npx -y claude-cortex" memory.recall query:"authentication"
|
|
360
|
+
|
|
361
|
+
# Get project context
|
|
362
|
+
npx mcporter call --stdio "npx -y claude-cortex" memory.get_context
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Shared memory**: Memories created via Moltbot are instantly available in Claude Code sessions and vice versa — both use the same SQLite database at `~/.claude-cortex/memories.db`.
|
|
366
|
+
|
|
334
367
|
## How This Differs from Other Solutions
|
|
335
368
|
|
|
336
369
|
| Feature | Claude Cortex | Other MCP Memory Tools |
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* npx claude-cortex --dashboard # Start API + Dashboard (admin panel)
|
|
14
14
|
* npx claude-cortex --db /path/to.db # Custom database path
|
|
15
15
|
* npx claude-cortex setup # Configure Claude for proactive memory use
|
|
16
|
+
* npx claude-cortex hook pre-compact # Run pre-compact hook (for settings.json)
|
|
17
|
+
* npx claude-cortex hook session-start # Run session-start hook (for settings.json)
|
|
16
18
|
* npx claude-cortex service install # Auto-start dashboard on login
|
|
17
19
|
* npx claude-cortex service uninstall # Remove auto-start
|
|
18
20
|
* npx claude-cortex service status # Check service status
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* npx claude-cortex --dashboard # Start API + Dashboard (admin panel)
|
|
14
14
|
* npx claude-cortex --db /path/to.db # Custom database path
|
|
15
15
|
* npx claude-cortex setup # Configure Claude for proactive memory use
|
|
16
|
+
* npx claude-cortex hook pre-compact # Run pre-compact hook (for settings.json)
|
|
17
|
+
* npx claude-cortex hook session-start # Run session-start hook (for settings.json)
|
|
16
18
|
* npx claude-cortex service install # Auto-start dashboard on login
|
|
17
19
|
* npx claude-cortex service uninstall # Remove auto-start
|
|
18
20
|
* npx claude-cortex service status # Check service status
|
|
@@ -25,6 +27,7 @@ import { createServer } from './server.js';
|
|
|
25
27
|
import { startVisualizationServer } from './api/visualization-server.js';
|
|
26
28
|
import { handleServiceCommand } from './service/install.js';
|
|
27
29
|
import { setupClaudeMd } from './setup/claude-md.js';
|
|
30
|
+
import { handleHookCommand } from './setup/hooks.js';
|
|
28
31
|
// Get the directory of this file for relative paths
|
|
29
32
|
const __filename = fileURLToPath(import.meta.url);
|
|
30
33
|
const __dirname = path.dirname(__filename);
|
|
@@ -127,6 +130,11 @@ async function main() {
|
|
|
127
130
|
await setupClaudeMd();
|
|
128
131
|
return;
|
|
129
132
|
}
|
|
133
|
+
// Handle "hook" subcommand
|
|
134
|
+
if (process.argv[2] === 'hook') {
|
|
135
|
+
await handleHookCommand(process.argv[3] || '');
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
130
138
|
// Handle "service" subcommand before normal mode parsing
|
|
131
139
|
if (process.argv[2] === 'service') {
|
|
132
140
|
await handleServiceCommand(process.argv[3] || '');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/setup/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI handler for hook subcommands.
|
|
3
|
+
* Spawns the actual hook scripts with stdin/stdout passthrough.
|
|
4
|
+
*/
|
|
5
|
+
import { spawn } from 'child_process';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = path.dirname(__filename);
|
|
10
|
+
// Scripts are in ../scripts/ relative to dist/setup/
|
|
11
|
+
const SCRIPTS_DIR = path.resolve(__dirname, '..', '..', 'scripts');
|
|
12
|
+
const HOOKS = {
|
|
13
|
+
'pre-compact': 'pre-compact-hook.mjs',
|
|
14
|
+
'session-start': 'session-start-hook.mjs',
|
|
15
|
+
};
|
|
16
|
+
export async function handleHookCommand(hookName) {
|
|
17
|
+
const scriptFile = HOOKS[hookName];
|
|
18
|
+
if (!scriptFile) {
|
|
19
|
+
console.error(`Unknown hook: ${hookName}`);
|
|
20
|
+
console.log(`Available hooks: ${Object.keys(HOOKS).join(', ')}`);
|
|
21
|
+
console.log('Usage: claude-cortex hook <pre-compact|session-start>');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const scriptPath = path.join(SCRIPTS_DIR, scriptFile);
|
|
25
|
+
const child = spawn(process.execPath, [scriptPath], {
|
|
26
|
+
stdio: ['pipe', 'inherit', 'inherit'],
|
|
27
|
+
});
|
|
28
|
+
// Pipe stdin through to the child
|
|
29
|
+
process.stdin.pipe(child.stdin);
|
|
30
|
+
child.on('exit', (code) => {
|
|
31
|
+
process.exit(code ?? 0);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/setup/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAEnE,MAAM,KAAK,GAA2B;IACpC,aAAa,EAAE,sBAAsB;IACrC,eAAe,EAAE,wBAAwB;CAC1C,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE;QAClD,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;KACtC,CAAC,CAAC;IAEH,kCAAkC;IAClC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|