claude-code-memory-explorer 0.1.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/.claude/commands/release.md +54 -0
- package/.github/workflows/pages.yml +36 -0
- package/CLAUDE.md +49 -0
- package/README.md +92 -0
- package/assets/main-dark.png +0 -0
- package/assets/main-light.png +0 -0
- package/biome.json +33 -0
- package/docs/assets/main-dark.png +0 -0
- package/docs/assets/main-light.png +0 -0
- package/docs/index.html +988 -0
- package/package.json +26 -0
- package/public/app.js +720 -0
- package/public/icons/icon-svg.svg +6 -0
- package/public/index.html +145 -0
- package/public/manifest.json +14 -0
- package/public/style.css +789 -0
- package/public/sw.js +34 -0
- package/server.js +579 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#e86f33" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<ellipse cx="12" cy="5" rx="9" ry="3"/>
|
|
3
|
+
<path d="M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/>
|
|
4
|
+
<path d="M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9"/>
|
|
5
|
+
<path d="M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Claude Code Memory</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Playfair+Display:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<link rel="stylesheet" href="style.css">
|
|
11
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github-dark.min.css" id="hljsDark">
|
|
12
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github.min.css" id="hljsLight" disabled>
|
|
13
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
|
|
14
|
+
<link rel="manifest" href="/manifest.json">
|
|
15
|
+
<link rel="icon" type="image/svg+xml" href="/icons/icon-svg.svg">
|
|
16
|
+
<meta name="theme-color" content="#101114" media="(prefers-color-scheme: dark)">
|
|
17
|
+
<meta name="theme-color" content="#e8e6e3" media="(prefers-color-scheme: light)">
|
|
18
|
+
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
19
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
20
|
+
<link rel="apple-touch-icon" href="/icons/icon-192.png">
|
|
21
|
+
<script defer src="/app.js"></script>
|
|
22
|
+
</head>
|
|
23
|
+
<body>
|
|
24
|
+
<div class="topbar">
|
|
25
|
+
<div class="topbar-logo">
|
|
26
|
+
<div class="logo-mark"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9"/><path d="M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4"/></svg></div>
|
|
27
|
+
<span class="logo-text">Memory</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="spacer"></div>
|
|
30
|
+
<div class="topbar-project" id="projectBtn" onclick="changeProject()">
|
|
31
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z"/></svg>
|
|
32
|
+
<span id="projectName">Loading...</span>
|
|
33
|
+
</div>
|
|
34
|
+
<button class="topbar-btn" id="refreshBtn" title="Refresh (r)" onclick="refreshData()">
|
|
35
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 11-2.12-9.36L23 10"/></svg>
|
|
36
|
+
</button>
|
|
37
|
+
<button class="topbar-btn" id="helpBtn" title="Keyboard shortcuts (?)" onclick="toggleHelpModal()">
|
|
38
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><circle cx="12" cy="17" r="0.5" fill="currentColor"/></svg>
|
|
39
|
+
</button>
|
|
40
|
+
<button class="topbar-btn" id="themeBtn" title="Toggle theme (t)" onclick="toggleTheme()">
|
|
41
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
|
|
42
|
+
</button>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<!-- Size bar -->
|
|
46
|
+
<div class="budget-bar" id="budgetBar">
|
|
47
|
+
<div class="budget-label">
|
|
48
|
+
<span>Memory sources</span>
|
|
49
|
+
<span class="mono" id="budgetText">0 lines</span>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="budget-track">
|
|
52
|
+
<div class="budget-segments" id="budgetSegments"></div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!-- Main layout -->
|
|
57
|
+
<div class="main-layout">
|
|
58
|
+
<div class="tree-panel" id="treePanel">
|
|
59
|
+
<div class="tree-content" id="treeContent">
|
|
60
|
+
<div class="loading-state"><div class="loading-spinner"></div></div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="resize-handle" id="resizeHandle"></div>
|
|
64
|
+
<div class="preview-panel" id="previewPanel">
|
|
65
|
+
<div class="preview-empty">
|
|
66
|
+
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" opacity="0.3">
|
|
67
|
+
<ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9"/><path d="M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4"/>
|
|
68
|
+
</svg>
|
|
69
|
+
<span>Select a file to preview</span>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<!-- Summary stats -->
|
|
75
|
+
<div class="summary-bar" id="summaryBar">
|
|
76
|
+
<div class="summary-card"><span class="sc-value" id="statFiles">-</span><span class="sc-label">Files</span></div>
|
|
77
|
+
<div class="summary-card"><span class="sc-value" id="statLines">-</span><span class="sc-label">Lines</span></div>
|
|
78
|
+
<div class="summary-card"><span class="sc-value" id="statBytes">-</span><span class="sc-label">Bytes</span></div>
|
|
79
|
+
<div class="summary-card"><span class="sc-value" id="statAlways">-</span><span class="sc-label">Always loaded</span></div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<!-- Project picker modal -->
|
|
83
|
+
<div class="modal-overlay" id="projectPickerModal">
|
|
84
|
+
<div class="modal">
|
|
85
|
+
<div class="modal-header">
|
|
86
|
+
<h3>Switch Project</h3>
|
|
87
|
+
<button class="modal-close" onclick="closeModal('projectPickerModal')">✕</button>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="modal-body">
|
|
90
|
+
<div class="modal-field">
|
|
91
|
+
<label>Project directory</label>
|
|
92
|
+
<input type="text" id="projectPathInput" placeholder="/path/to/project" autocomplete="off">
|
|
93
|
+
<span class="modal-hint">Full path to the project directory</span>
|
|
94
|
+
</div>
|
|
95
|
+
<div id="recentProjectsList"></div>
|
|
96
|
+
<div class="modal-actions">
|
|
97
|
+
<button class="action-btn" onclick="closeModal('projectPickerModal')">Cancel</button>
|
|
98
|
+
<button class="action-btn primary" id="projectPickerSubmit" onclick="submitProjectPicker()">Switch</button>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<!-- Help modal -->
|
|
105
|
+
<div class="modal-overlay" id="helpModal" onclick="if(event.target===this)toggleHelpModal()">
|
|
106
|
+
<div class="modal">
|
|
107
|
+
<div class="modal-header">
|
|
108
|
+
<h3>Memory Explorer</h3>
|
|
109
|
+
<button class="modal-close" onclick="toggleHelpModal()">✕</button>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="modal-body">
|
|
112
|
+
<p class="modal-desc">Browse and understand all memory sources that influence Claude Code behavior for your project.</p>
|
|
113
|
+
<hr class="modal-divider">
|
|
114
|
+
<h4 class="shortcut-section">Keyboard Shortcuts</h4>
|
|
115
|
+
<div class="shortcut-grid">
|
|
116
|
+
<div>
|
|
117
|
+
<h4 class="shortcut-section">Navigation</h4>
|
|
118
|
+
<table class="shortcut-table">
|
|
119
|
+
<tr><td><kbd>j</kbd> / <kbd>↓</kbd></td><td>Next item</td></tr>
|
|
120
|
+
<tr><td><kbd>k</kbd> / <kbd>↑</kbd></td><td>Previous item</td></tr>
|
|
121
|
+
<tr><td><kbd>h</kbd> / <kbd>←</kbd></td><td>Previous group</td></tr>
|
|
122
|
+
<tr><td><kbd>l</kbd> / <kbd>→</kbd></td><td>Next group</td></tr>
|
|
123
|
+
<tr><td><kbd>Enter</kbd></td><td>Select item</td></tr>
|
|
124
|
+
<tr><td><kbd>Esc</kbd></td><td>Close modal</td></tr>
|
|
125
|
+
</table>
|
|
126
|
+
</div>
|
|
127
|
+
<div>
|
|
128
|
+
<h4 class="shortcut-section">Actions</h4>
|
|
129
|
+
<table class="shortcut-table">
|
|
130
|
+
<tr><td><kbd>r</kbd></td><td>Refresh data</td></tr>
|
|
131
|
+
<tr><td><kbd>t</kbd></td><td>Toggle theme</td></tr>
|
|
132
|
+
<tr><td><kbd>e</kbd></td><td>Open in editor</td></tr>
|
|
133
|
+
<tr><td><kbd>Shift+P</kbd></td><td>Switch project</td></tr>
|
|
134
|
+
<tr><td><kbd>?</kbd></td><td>Show this help</td></tr>
|
|
135
|
+
</table>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
<button class="modal-close-btn" onclick="toggleHelpModal()">Close</button>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div class="toast-container" id="toast"></div>
|
|
144
|
+
</body>
|
|
145
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Claude Code Memory",
|
|
3
|
+
"short_name": "Memory",
|
|
4
|
+
"description": "Explore Claude Code memory sources",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"theme_color": "#101114",
|
|
8
|
+
"background_color": "#101114",
|
|
9
|
+
"icons": [
|
|
10
|
+
{ "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" },
|
|
11
|
+
{ "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" },
|
|
12
|
+
{ "src": "/icons/icon-svg.svg", "sizes": "any", "type": "image/svg+xml" }
|
|
13
|
+
]
|
|
14
|
+
}
|