claude-cortex 1.6.1 → 1.7.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.
- package/README.md +30 -5
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/setup/claude-md.d.ts +6 -0
- package/dist/setup/claude-md.d.ts.map +1 -0
- package/dist/setup/claude-md.js +44 -0
- package/dist/setup/claude-md.js.map +1 -0
- 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,9 +103,18 @@ 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
|
|
108
|
+
|
|
109
|
+
### 4. Enable Proactive Memory (Recommended)
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx claude-cortex setup
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This adds instructions to `~/.claude/CLAUDE.md` so Claude proactively uses memory tools in all projects. Safe to run multiple times (idempotent).
|
|
94
116
|
|
|
95
|
-
###
|
|
117
|
+
### 5. Use It
|
|
96
118
|
|
|
97
119
|
The memory system integrates seamlessly with Claude Code. Here are the key tools:
|
|
98
120
|
|
|
@@ -282,6 +304,9 @@ The dashboard provides a 3D brain visualization of your memories with real-time
|
|
|
282
304
|
### Auto-Start on Login (Recommended)
|
|
283
305
|
|
|
284
306
|
```bash
|
|
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)
|
|
285
310
|
npx claude-cortex service install # Enable auto-start
|
|
286
311
|
npx claude-cortex service uninstall # Remove auto-start
|
|
287
312
|
npx claude-cortex service status # Check status
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* npx claude-cortex --mode both # Start both servers
|
|
13
13
|
* npx claude-cortex --dashboard # Start API + Dashboard (admin panel)
|
|
14
14
|
* npx claude-cortex --db /path/to.db # Custom database path
|
|
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)
|
|
15
18
|
* npx claude-cortex service install # Auto-start dashboard on login
|
|
16
19
|
* npx claude-cortex service uninstall # Remove auto-start
|
|
17
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
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* npx claude-cortex --mode both # Start both servers
|
|
13
13
|
* npx claude-cortex --dashboard # Start API + Dashboard (admin panel)
|
|
14
14
|
* npx claude-cortex --db /path/to.db # Custom database path
|
|
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)
|
|
15
18
|
* npx claude-cortex service install # Auto-start dashboard on login
|
|
16
19
|
* npx claude-cortex service uninstall # Remove auto-start
|
|
17
20
|
* npx claude-cortex service status # Check service status
|
|
@@ -23,6 +26,8 @@ import path from 'path';
|
|
|
23
26
|
import { createServer } from './server.js';
|
|
24
27
|
import { startVisualizationServer } from './api/visualization-server.js';
|
|
25
28
|
import { handleServiceCommand } from './service/install.js';
|
|
29
|
+
import { setupClaudeMd } from './setup/claude-md.js';
|
|
30
|
+
import { handleHookCommand } from './setup/hooks.js';
|
|
26
31
|
// Get the directory of this file for relative paths
|
|
27
32
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
33
|
const __dirname = path.dirname(__filename);
|
|
@@ -120,6 +125,16 @@ function startDashboard() {
|
|
|
120
125
|
* Main entry point
|
|
121
126
|
*/
|
|
122
127
|
async function main() {
|
|
128
|
+
// Handle "setup" subcommand
|
|
129
|
+
if (process.argv[2] === 'setup') {
|
|
130
|
+
await setupClaudeMd();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// Handle "hook" subcommand
|
|
134
|
+
if (process.argv[2] === 'hook') {
|
|
135
|
+
await handleHookCommand(process.argv[3] || '');
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
123
138
|
// Handle "service" subcommand before normal mode parsing
|
|
124
139
|
if (process.argv[2] === 'service') {
|
|
125
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":"claude-md.d.ts","sourceRoot":"","sources":["../../src/setup/claude-md.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBnD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injects proactive memory instructions into ~/.claude/CLAUDE.md
|
|
3
|
+
* Idempotent — skips if instructions already present.
|
|
4
|
+
*/
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import os from 'os';
|
|
8
|
+
const MARKER = '# Claude Cortex — Memory System';
|
|
9
|
+
const INSTRUCTIONS = `
|
|
10
|
+
${MARKER}
|
|
11
|
+
|
|
12
|
+
You have access to a persistent memory system via MCP tools (\`remember\`, \`recall\`, \`get_context\`, \`forget\`).
|
|
13
|
+
|
|
14
|
+
**MUST use \`remember\` immediately when any of these occur:**
|
|
15
|
+
- A decision is made (architecture, library choice, approach)
|
|
16
|
+
- A bug is fixed (capture root cause + solution)
|
|
17
|
+
- Something new is learned about the codebase
|
|
18
|
+
- User states a preference
|
|
19
|
+
- A significant feature is completed
|
|
20
|
+
|
|
21
|
+
Do not wait until the end of the session. Call \`remember\` right after the event happens.
|
|
22
|
+
`;
|
|
23
|
+
export async function setupClaudeMd() {
|
|
24
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
25
|
+
const claudeMdPath = path.join(claudeDir, 'CLAUDE.md');
|
|
26
|
+
// Ensure ~/.claude/ exists
|
|
27
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
28
|
+
// Read existing content
|
|
29
|
+
let existing = '';
|
|
30
|
+
if (fs.existsSync(claudeMdPath)) {
|
|
31
|
+
existing = fs.readFileSync(claudeMdPath, 'utf-8');
|
|
32
|
+
}
|
|
33
|
+
// Check if already configured
|
|
34
|
+
if (existing.includes(MARKER)) {
|
|
35
|
+
console.log('✓ Claude Cortex instructions already present in ~/.claude/CLAUDE.md');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// Append instructions
|
|
39
|
+
const newContent = existing.trimEnd() + '\n' + INSTRUCTIONS;
|
|
40
|
+
fs.writeFileSync(claudeMdPath, newContent, 'utf-8');
|
|
41
|
+
console.log('✓ Added Claude Cortex memory instructions to ~/.claude/CLAUDE.md');
|
|
42
|
+
console.log(' Claude will now proactively use memory tools in all projects.');
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=claude-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/setup/claude-md.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,MAAM,GAAG,iCAAiC,CAAC;AAEjD,MAAM,YAAY,GAAG;EACnB,MAAM;;;;;;;;;;;;CAYP,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAEvD,2BAA2B;IAC3B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,wBAAwB;IACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -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"}
|