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.
Files changed (3) hide show
  1. package/README.md +24 -66
  2. package/package.json +1 -1
  3. package/server.js +2 -2
package/README.md CHANGED
@@ -4,7 +4,11 @@
4
4
  [![license](https://img.shields.io/npm/l/claude-code-memory-explorer)](LICENSE)
5
5
  [![npm downloads](https://img.shields.io/npm/dm/claude-code-memory-explorer)](https://www.npmjs.com/package/claude-code-memory-explorer)
6
6
 
7
- > See everything Claude Code knows about your project — CLAUDE.md files, rules, auto memory, and imports.
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
+ ![Memory explorer overview](assets/shot-overview.png)
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
- Open http://localhost:3544 (or use `--open` to auto-launch the browser).
16
-
17
- That's it. No config — the dashboard reads your existing Claude Code memory files.
18
-
19
- ![Dark theme](assets/main-dark.png)
20
- ![Light theme](assets/main-light.png)
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** — User CLAUDE.md, project CLAUDE.md, CLAUDE.local.md, rules, auto memory, and managed policies
25
- - **Import resolution** — Follows `@path/to/file.md` references and `[text](file.md)` markdown links up to 5 levels deep
26
- - **Rules inspection** — Shows path-scoped frontmatter (`paths`, `type`, `name`) with conditional load indicators
27
- - **Auto memory** — Visualizes MEMORY.md with startup cutoff line, on-demand topic files, and frontmatter badges
28
- - **Tree + preview** — Left panel grouped by scope (user/project/rules/memory), right panel with syntax-highlighted preview
29
- - **Keyboard-driven** — j/k navigation, h/l group jump, e to open in editor, t for theme, ? for help
30
- - **Resizable sidebar** — Drag handle between tree and preview, width persisted
31
- - **Browser history** — Back/forward navigates file selection, bookmarkable URLs
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
- ## Configuration
32
+ ![Path-scoped rule with frontmatter badges](assets/shot-rules.png)
36
33
 
37
- ```bash
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
+ ![Auto memory index with topic files](assets/shot-auto-memory.png)
43
35
 
44
- If port 3544 is in use, the server falls back to a random available port.
36
+ ![Dark theme — Tokyo Night](assets/shot-dark-theme.png)
45
37
 
46
- ### Global install
38
+ ## Configuration
47
39
 
48
- ```bash
49
- npm install -g claude-code-memory-explorer
50
- claude-code-memory-explorer --open
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
- ## How It Works
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-memory-explorer",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Memory explorer dashboard for Claude Code",
5
5
  "main": "server.js",
6
6
  "bin": {
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(os.homedir(), '.claude', 'agent-memory'), agentScope: 'user' },
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
  ];