claude-code-memory-explorer 0.6.0 → 0.7.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/README.md +24 -66
- package/package.json +1 -1
- package/server.js +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://www.npmjs.com/package/claude-code-memory-explorer)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**[Live Demo & Docs](https://nikiforovall.blog/claude-code-memory/)**
|
|
8
|
+
|
|
9
|
+
> See everything Claude Code knows about your project — CLAUDE.md files, rules, auto memory, agent memory, and imports.
|
|
10
|
+
|
|
11
|
+

|
|
8
12
|
|
|
9
13
|
## Getting Started
|
|
10
14
|
|
|
@@ -12,81 +16,35 @@
|
|
|
12
16
|
npx claude-code-memory-explorer --open
|
|
13
17
|
```
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
That's it. No config — the dashboard reads your existing Claude Code memory files.
|
|
18
|
-
|
|
19
|
-

|
|
20
|
-

|
|
19
|
+
That's it — no config. The dashboard scans the Claude Code memory locations for the current project and renders the full stack. Completely read-only; nothing leaves your machine.
|
|
21
20
|
|
|
22
21
|
## Features
|
|
23
22
|
|
|
24
|
-
- **Full memory stack** —
|
|
25
|
-
- **Import resolution** —
|
|
26
|
-
- **Rules inspection** —
|
|
27
|
-
- **Auto memory** —
|
|
28
|
-
- **
|
|
29
|
-
- **Keyboard-driven** — j/k navigation, h/l group jump, e to open in editor,
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **Dark & light theme** — Dark default, light toggle with `t` key
|
|
33
|
-
- **Hub integration** — Works as a tab in Claude Code Hub alongside Cost and Marketplace
|
|
23
|
+
- **Full memory stack** — user CLAUDE.md, project CLAUDE.md, CLAUDE.local.md, rules, auto memory, agent memory, and managed policies in one view
|
|
24
|
+
- **Import resolution** — follows `@path/to/file.md` references and `[text](file.md)` markdown links up to 5 levels deep, clickable in the preview
|
|
25
|
+
- **Rules inspection** — path-scoped frontmatter (`paths`, `type`, `name`) with conditional load indicators
|
|
26
|
+
- **Auto memory** — MEMORY.md with startup badge, on-demand topic files, and frontmatter badges
|
|
27
|
+
- **Agent memory** — subagent persistent memory at user, project, and local scope, grouped per agent
|
|
28
|
+
- **Keyboard-driven** — j/k navigation, h/l group jump, e to open in editor, Shift+P project picker, ? for help
|
|
29
|
+
- **17 color themes** — Ember, Gruvbox, Catppuccin, Tokyo Night, Dracula, Nord, and more — each in light and dark, PWA installable
|
|
30
|
+
- **Hub integration** — runs standalone or as a tab in [Claude Code Hub](https://github.com/NikiforovAll/claude-code-hub) alongside Kanban, Cost, and Marketplace
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+

|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
PORT=8080 npx claude-code-memory-explorer # Custom port
|
|
39
|
-
npx claude-code-memory-explorer --open # Auto-open browser
|
|
40
|
-
npx claude-code-memory-explorer --dir=~/.claude-work # Custom Claude config dir
|
|
41
|
-
npx claude-code-memory-explorer --project=/path/to/project # Specify project path
|
|
42
|
-
```
|
|
34
|
+

|
|
43
35
|
|
|
44
|
-
|
|
36
|
+

|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
## Configuration
|
|
47
39
|
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
claude
|
|
40
|
+
```
|
|
41
|
+
PORT=8080 Custom port (default: 3544, falls back if busy)
|
|
42
|
+
--dir <path> Custom Claude config dir (default: ~/.claude)
|
|
43
|
+
--project <path> Project to inspect (default: current directory)
|
|
44
|
+
--open Open browser on start
|
|
51
45
|
```
|
|
52
46
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
Claude Code stores memory across multiple locations:
|
|
56
|
-
|
|
57
|
-
| Source | Path | Load Behavior |
|
|
58
|
-
|--------|------|---------------|
|
|
59
|
-
| Managed policy | `/etc/claude-code/CLAUDE.md` | Always |
|
|
60
|
-
| User CLAUDE.md | `~/.claude/CLAUDE.md` | Always |
|
|
61
|
-
| Project CLAUDE.md | `./CLAUDE.md` or `./.claude/CLAUDE.md` | Always |
|
|
62
|
-
| CLAUDE.local.md | `./CLAUDE.local.md` | Always |
|
|
63
|
-
| Rules | `.claude/rules/*.md` | Conditional (path-scoped) |
|
|
64
|
-
| Auto memory | `~/.claude/projects/<encoded>/memory/` | Startup (MEMORY.md) or on-demand |
|
|
65
|
-
| Agent memory | `~/.claude/agent-memory/<agent>/`, `./.claude/agent-memory/<agent>/`, `./.claude/agent-memory-local/<agent>/` | Startup (MEMORY.md) or on-demand |
|
|
66
|
-
|
|
67
|
-
The dashboard:
|
|
68
|
-
1. **Scans** all memory locations — `~/.claude/`, ancestor directories, project rules, auto memory
|
|
69
|
-
2. **Parses** YAML frontmatter in rules files for path globs and metadata
|
|
70
|
-
3. **Resolves** `@import` chains recursively (max 5 levels), tracking both hard imports and soft markdown links
|
|
71
|
-
4. **Groups** sources by scope with parent-child nesting for imports
|
|
72
|
-
5. **Renders** with Highlight.js syntax highlighting — no build step, vanilla JS
|
|
73
|
-
|
|
74
|
-
Nothing is modified — the dashboard is read-only.
|
|
75
|
-
|
|
76
|
-
### Memory Path Encoding
|
|
77
|
-
|
|
78
|
-
Claude Code encodes project paths for auto memory storage: `C:\Users\me\dev\myproject` becomes `C--Users-me-dev-myproject` under `~/.claude/projects/`. The dashboard tries exact match first, then falls back to substring matching.
|
|
79
|
-
|
|
80
|
-
## FAQ
|
|
81
|
-
|
|
82
|
-
**Does it modify any files?**
|
|
83
|
-
No. Completely read-only — only reads markdown files from the Claude Code memory locations.
|
|
84
|
-
|
|
85
|
-
**Does it work with Claude Code Hub?**
|
|
86
|
-
Yes. Exposes `/hub-config` endpoint for hub tab integration.
|
|
87
|
-
|
|
88
|
-
**Can I switch projects?**
|
|
89
|
-
Yes. Use the project picker (Shift+P) or pass `?project=/path` as a URL parameter.
|
|
47
|
+
The config dir can also be set via the `CLAUDE_CONFIG_DIR` environment variable. Switch projects at runtime with the picker (Shift+P) or `?project=/path`.
|
|
90
48
|
|
|
91
49
|
## License
|
|
92
50
|
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -21,7 +21,7 @@ const expandHome = (p) => (p || '').replace(/^~/, os.homedir());
|
|
|
21
21
|
|
|
22
22
|
const PORT = getArg('port') || process.env.PORT || 3544;
|
|
23
23
|
const AUTO_OPEN = process.argv.includes('--open');
|
|
24
|
-
const claudeDirArg = getArg('dir');
|
|
24
|
+
const claudeDirArg = getArg('dir') || process.env.CLAUDE_CONFIG_DIR || process.env.CLAUDE_DIR;
|
|
25
25
|
const CLAUDE_DIR = claudeDirArg ? expandHome(claudeDirArg) : path.join(os.homedir(), '.claude');
|
|
26
26
|
const projectDirArg = getArg('project');
|
|
27
27
|
|
|
@@ -334,7 +334,7 @@ function discoverMemorySources(projectPath) {
|
|
|
334
334
|
// project: <project>/.claude/agent-memory/<agent>/
|
|
335
335
|
// local: <project>/.claude/agent-memory-local/<agent>/
|
|
336
336
|
const agentMemoryRoots = [
|
|
337
|
-
{ root: path.join(
|
|
337
|
+
{ root: path.join(CLAUDE_DIR, 'agent-memory'), agentScope: 'user' },
|
|
338
338
|
{ root: path.join(projectPath, '.claude', 'agent-memory'), agentScope: 'project' },
|
|
339
339
|
{ root: path.join(projectPath, '.claude', 'agent-memory-local'), agentScope: 'local' },
|
|
340
340
|
];
|