synabun 2026.4.1 → 2026.4.2-beta.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/CHANGELOG.md +821 -36
- package/CLAUDE.md +217 -0
- package/README.md +102 -28
- package/hooks/claude-code/post-plan.mjs +547 -396
- package/hooks/claude-code/prompt-submit.mjs +8 -5
- package/hooks/claude-code/session-start.mjs +1 -1
- package/hooks/claude-code/stop.mjs +34 -4
- package/mcp-server/run.mjs +5 -0
- package/mcp-server/src/http.ts +17 -4
- package/mcp-server/src/index.ts +438 -204
- package/mcp-server/src/services/neural-interface.ts +117 -21
- package/mcp-server/src/services/profiles.ts +145 -0
- package/mcp-server/src/tools/browser-cheatsheet.ts +123 -0
- package/mcp-server/src/tools/browser-interact.ts +107 -100
- package/mcp-server/src/tools/browser-navigate.ts +34 -5
- package/mcp-server/src/tools/browser-observe.ts +132 -16
- package/mcp-server/src/tools/browser.ts +145 -107
- package/mcp-server/src/tools/card.ts +7 -5
- package/mcp-server/src/tools/discord.ts +10 -23
- package/mcp-server/src/tools/git.ts +3 -1
- package/mcp-server/src/tools/image.ts +3 -1
- package/mcp-server/src/tools/leonardo.ts +7 -5
- package/mcp-server/src/tools/profile.ts +50 -0
- package/mcp-server/src/tools/recall.ts +78 -71
- package/mcp-server/src/tools/tictactoe.ts +3 -1
- package/mcp-server/src/tools/whiteboard.ts +7 -5
- package/neural-interface/i18n/en.json +1 -0
- package/neural-interface/lib/db.js +144 -0
- package/neural-interface/lib/mcp-installer.js +378 -0
- package/neural-interface/lib/session-cache-builder.js +482 -0
- package/neural-interface/package.json +2 -0
- package/neural-interface/public/claude-chat.css +3 -0
- package/neural-interface/public/claude-chat.js +12 -6
- package/neural-interface/public/claude.svg +1 -0
- package/neural-interface/public/mcp.svg +4 -0
- package/neural-interface/public/onboarding.html +2 -2
- package/neural-interface/public/opencode-logo-dark-square.svg +1 -0
- package/neural-interface/public/shared/api.js +85 -2
- package/neural-interface/public/shared/cdx/cdx-icons.js +77 -0
- package/neural-interface/public/shared/cdx/cdx-panel.js +975 -0
- package/neural-interface/public/shared/cdx/cdx-render.js +2579 -0
- package/neural-interface/public/shared/cdx/cdx-requests.js +789 -0
- package/neural-interface/public/shared/cdx/cdx-styles.js +2849 -0
- package/neural-interface/public/shared/cdx/cdx-tabs.js +5110 -0
- package/neural-interface/public/shared/cdx/cdx-ws.js +249 -0
- package/neural-interface/public/shared/constants.js +2 -0
- package/neural-interface/public/shared/html-shell.js +23 -4
- package/neural-interface/public/shared/ocp/ocp-icons.js +42 -0
- package/neural-interface/public/shared/ocp/ocp-panel.js +1709 -0
- package/neural-interface/public/shared/ocp/ocp-render.js +1679 -0
- package/neural-interface/public/shared/ocp/ocp-styles.js +2467 -0
- package/neural-interface/public/shared/ocp/ocp-tabs.js +2054 -0
- package/neural-interface/public/shared/ocp/ocp-ws.js +189 -0
- package/neural-interface/public/shared/provider-icons.js +27 -0
- package/neural-interface/public/shared/state.js +4 -1
- package/neural-interface/public/shared/styles.css +2876 -476
- package/neural-interface/public/shared/ui-automation-studio.js +1226 -81
- package/neural-interface/public/shared/ui-claude-panel.js +2395 -484
- package/neural-interface/public/shared/ui-codex-panel.js +6 -0
- package/neural-interface/public/shared/ui-file-explorer.js +112 -35
- package/neural-interface/public/shared/ui-menubar.js +5 -1
- package/neural-interface/public/shared/ui-navbar.js +31 -1
- package/neural-interface/public/shared/ui-notifications.js +53 -12
- package/neural-interface/public/shared/ui-opencode-panel.js +6 -0
- package/neural-interface/public/shared/ui-resume.js +772 -653
- package/neural-interface/public/shared/ui-settings.js +2261 -253
- package/neural-interface/public/shared/ui-sidepanel-layout.js +43 -0
- package/neural-interface/public/shared/ui-terminal.js +584 -511
- package/neural-interface/public/shared/ui-tool-updates.js +116 -0
- package/neural-interface/public/shared/ui-tooltip.js +61 -16
- package/neural-interface/public/shared/ui-whiteboard.js +36 -15
- package/neural-interface/server.js +6351 -463
- package/neural-interface/templates/CLAUDE-template.md +37 -9
- package/package.json +66 -63
- package/setup.js +159 -1
- package/skills/leonardo/SKILL.md +15 -10
- package/skills/leonardo/modules/image-prompter.md +14 -12
- package/skills/leonardo/modules/video-prompter.md +15 -13
- package/skills/synabun/SKILL.md +25 -19
- package/skills/synabun/modules/audit.md +36 -34
- package/skills/synabun/modules/changelog.md +18 -13
- package/skills/synabun/modules/idea.md +15 -11
- package/skills/synabun/modules/memorize.md +15 -10
- package/mcp-server/dist/config.d.ts +0 -13
- package/mcp-server/dist/config.d.ts.map +0 -1
- package/mcp-server/dist/config.js +0 -59
- package/mcp-server/dist/config.js.map +0 -1
- package/mcp-server/dist/http.d.ts +0 -13
- package/mcp-server/dist/http.d.ts.map +0 -1
- package/mcp-server/dist/http.js +0 -86
- package/mcp-server/dist/http.js.map +0 -1
- package/mcp-server/dist/index.d.ts +0 -10
- package/mcp-server/dist/index.d.ts.map +0 -1
- package/mcp-server/dist/index.js +0 -190
- package/mcp-server/dist/index.js.map +0 -1
- package/mcp-server/dist/preload-http.d.ts +0 -3
- package/mcp-server/dist/preload-http.d.ts.map +0 -1
- package/mcp-server/dist/preload-http.js +0 -26
- package/mcp-server/dist/preload-http.js.map +0 -1
- package/mcp-server/dist/preload.d.ts +0 -3
- package/mcp-server/dist/preload.d.ts.map +0 -1
- package/mcp-server/dist/preload.js +0 -30
- package/mcp-server/dist/preload.js.map +0 -1
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts +0 -19
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts.map +0 -1
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js +0 -403
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js.map +0 -1
- package/mcp-server/dist/services/categories.d.ts +0 -61
- package/mcp-server/dist/services/categories.d.ts.map +0 -1
- package/mcp-server/dist/services/categories.js +0 -356
- package/mcp-server/dist/services/categories.js.map +0 -1
- package/mcp-server/dist/services/discord.d.ts +0 -112
- package/mcp-server/dist/services/discord.d.ts.map +0 -1
- package/mcp-server/dist/services/discord.js +0 -477
- package/mcp-server/dist/services/discord.js.map +0 -1
- package/mcp-server/dist/services/file-checksums.d.ts +0 -14
- package/mcp-server/dist/services/file-checksums.d.ts.map +0 -1
- package/mcp-server/dist/services/file-checksums.js +0 -34
- package/mcp-server/dist/services/file-checksums.js.map +0 -1
- package/mcp-server/dist/services/local-embeddings.d.ts +0 -23
- package/mcp-server/dist/services/local-embeddings.d.ts.map +0 -1
- package/mcp-server/dist/services/local-embeddings.js +0 -71
- package/mcp-server/dist/services/local-embeddings.js.map +0 -1
- package/mcp-server/dist/services/neural-interface.d.ts +0 -93
- package/mcp-server/dist/services/neural-interface.d.ts.map +0 -1
- package/mcp-server/dist/services/neural-interface.js +0 -250
- package/mcp-server/dist/services/neural-interface.js.map +0 -1
- package/mcp-server/dist/services/sqlite.d.ts +0 -85
- package/mcp-server/dist/services/sqlite.d.ts.map +0 -1
- package/mcp-server/dist/services/sqlite.js +0 -660
- package/mcp-server/dist/services/sqlite.js.map +0 -1
- package/mcp-server/dist/tools/browser-advanced.d.ts +0 -58
- package/mcp-server/dist/tools/browser-advanced.d.ts.map +0 -1
- package/mcp-server/dist/tools/browser-advanced.js +0 -100
- package/mcp-server/dist/tools/browser-advanced.js.map +0 -1
- package/mcp-server/dist/tools/browser-interact.d.ts +0 -154
- package/mcp-server/dist/tools/browser-interact.d.ts.map +0 -1
- package/mcp-server/dist/tools/browser-interact.js +0 -225
- package/mcp-server/dist/tools/browser-interact.js.map +0 -1
- package/mcp-server/dist/tools/browser-navigate.d.ts +0 -60
- package/mcp-server/dist/tools/browser-navigate.d.ts.map +0 -1
- package/mcp-server/dist/tools/browser-navigate.js +0 -66
- package/mcp-server/dist/tools/browser-navigate.js.map +0 -1
- package/mcp-server/dist/tools/browser-observe.d.ts +0 -346
- package/mcp-server/dist/tools/browser-observe.d.ts.map +0 -1
- package/mcp-server/dist/tools/browser-observe.js +0 -1179
- package/mcp-server/dist/tools/browser-observe.js.map +0 -1
- package/mcp-server/dist/tools/browser.d.ts +0 -7
- package/mcp-server/dist/tools/browser.d.ts.map +0 -1
- package/mcp-server/dist/tools/browser.js +0 -55
- package/mcp-server/dist/tools/browser.js.map +0 -1
- package/mcp-server/dist/tools/card-tools.d.ts +0 -82
- package/mcp-server/dist/tools/card-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/card-tools.js +0 -137
- package/mcp-server/dist/tools/card-tools.js.map +0 -1
- package/mcp-server/dist/tools/card.d.ts +0 -8
- package/mcp-server/dist/tools/card.d.ts.map +0 -1
- package/mcp-server/dist/tools/card.js +0 -14
- package/mcp-server/dist/tools/card.js.map +0 -1
- package/mcp-server/dist/tools/category.d.ts +0 -32
- package/mcp-server/dist/tools/category.d.ts.map +0 -1
- package/mcp-server/dist/tools/category.js +0 -290
- package/mcp-server/dist/tools/category.js.map +0 -1
- package/mcp-server/dist/tools/discord-channel.d.ts +0 -44
- package/mcp-server/dist/tools/discord-channel.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-channel.js +0 -236
- package/mcp-server/dist/tools/discord-channel.js.map +0 -1
- package/mcp-server/dist/tools/discord-guild.d.ts +0 -20
- package/mcp-server/dist/tools/discord-guild.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-guild.js +0 -138
- package/mcp-server/dist/tools/discord-guild.js.map +0 -1
- package/mcp-server/dist/tools/discord-member.d.ts +0 -26
- package/mcp-server/dist/tools/discord-member.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-member.js +0 -122
- package/mcp-server/dist/tools/discord-member.js.map +0 -1
- package/mcp-server/dist/tools/discord-message.d.ts +0 -36
- package/mcp-server/dist/tools/discord-message.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-message.js +0 -184
- package/mcp-server/dist/tools/discord-message.js.map +0 -1
- package/mcp-server/dist/tools/discord-onboarding.d.ts +0 -32
- package/mcp-server/dist/tools/discord-onboarding.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-onboarding.js +0 -179
- package/mcp-server/dist/tools/discord-onboarding.js.map +0 -1
- package/mcp-server/dist/tools/discord-role.d.ts +0 -34
- package/mcp-server/dist/tools/discord-role.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-role.js +0 -178
- package/mcp-server/dist/tools/discord-role.js.map +0 -1
- package/mcp-server/dist/tools/discord-thread.d.ts +0 -28
- package/mcp-server/dist/tools/discord-thread.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-thread.js +0 -88
- package/mcp-server/dist/tools/discord-thread.js.map +0 -1
- package/mcp-server/dist/tools/discord-webhook.d.ts +0 -32
- package/mcp-server/dist/tools/discord-webhook.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord-webhook.js +0 -154
- package/mcp-server/dist/tools/discord-webhook.js.map +0 -1
- package/mcp-server/dist/tools/discord.d.ts +0 -7
- package/mcp-server/dist/tools/discord.d.ts.map +0 -1
- package/mcp-server/dist/tools/discord.js +0 -31
- package/mcp-server/dist/tools/discord.js.map +0 -1
- package/mcp-server/dist/tools/forget.d.ts +0 -14
- package/mcp-server/dist/tools/forget.d.ts.map +0 -1
- package/mcp-server/dist/tools/forget.js +0 -26
- package/mcp-server/dist/tools/forget.js.map +0 -1
- package/mcp-server/dist/tools/git-tools.d.ts +0 -24
- package/mcp-server/dist/tools/git-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/git-tools.js +0 -107
- package/mcp-server/dist/tools/git-tools.js.map +0 -1
- package/mcp-server/dist/tools/git.d.ts +0 -7
- package/mcp-server/dist/tools/git.d.ts.map +0 -1
- package/mcp-server/dist/tools/git.js +0 -9
- package/mcp-server/dist/tools/git.js.map +0 -1
- package/mcp-server/dist/tools/image-tools.d.ts +0 -24
- package/mcp-server/dist/tools/image-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/image-tools.js +0 -80
- package/mcp-server/dist/tools/image-tools.js.map +0 -1
- package/mcp-server/dist/tools/image.d.ts +0 -10
- package/mcp-server/dist/tools/image.d.ts.map +0 -1
- package/mcp-server/dist/tools/image.js +0 -12
- package/mcp-server/dist/tools/image.js.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +0 -97
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js +0 -228
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +0 -1
- package/mcp-server/dist/tools/leonardo.d.ts +0 -13
- package/mcp-server/dist/tools/leonardo.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo.js +0 -19
- package/mcp-server/dist/tools/leonardo.js.map +0 -1
- package/mcp-server/dist/tools/loop.d.ts +0 -30
- package/mcp-server/dist/tools/loop.d.ts.map +0 -1
- package/mcp-server/dist/tools/loop.js +0 -302
- package/mcp-server/dist/tools/loop.js.map +0 -1
- package/mcp-server/dist/tools/memories.d.ts +0 -26
- package/mcp-server/dist/tools/memories.d.ts.map +0 -1
- package/mcp-server/dist/tools/memories.js +0 -96
- package/mcp-server/dist/tools/memories.js.map +0 -1
- package/mcp-server/dist/tools/recall.d.ts +0 -41
- package/mcp-server/dist/tools/recall.d.ts.map +0 -1
- package/mcp-server/dist/tools/recall.js +0 -275
- package/mcp-server/dist/tools/recall.js.map +0 -1
- package/mcp-server/dist/tools/reflect.d.ts +0 -44
- package/mcp-server/dist/tools/reflect.d.ts.map +0 -1
- package/mcp-server/dist/tools/reflect.js +0 -118
- package/mcp-server/dist/tools/reflect.js.map +0 -1
- package/mcp-server/dist/tools/remember.d.ts +0 -38
- package/mcp-server/dist/tools/remember.d.ts.map +0 -1
- package/mcp-server/dist/tools/remember.js +0 -88
- package/mcp-server/dist/tools/remember.js.map +0 -1
- package/mcp-server/dist/tools/response.d.ts +0 -23
- package/mcp-server/dist/tools/response.d.ts.map +0 -1
- package/mcp-server/dist/tools/response.js +0 -24
- package/mcp-server/dist/tools/response.js.map +0 -1
- package/mcp-server/dist/tools/restore.d.ts +0 -14
- package/mcp-server/dist/tools/restore.d.ts.map +0 -1
- package/mcp-server/dist/tools/restore.js +0 -23
- package/mcp-server/dist/tools/restore.js.map +0 -1
- package/mcp-server/dist/tools/sync.d.ts +0 -18
- package/mcp-server/dist/tools/sync.d.ts.map +0 -1
- package/mcp-server/dist/tools/sync.js +0 -93
- package/mcp-server/dist/tools/sync.js.map +0 -1
- package/mcp-server/dist/tools/tictactoe-tools.d.ts +0 -18
- package/mcp-server/dist/tools/tictactoe-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/tictactoe-tools.js +0 -78
- package/mcp-server/dist/tools/tictactoe-tools.js.map +0 -1
- package/mcp-server/dist/tools/tictactoe.d.ts +0 -7
- package/mcp-server/dist/tools/tictactoe.d.ts.map +0 -1
- package/mcp-server/dist/tools/tictactoe.js +0 -9
- package/mcp-server/dist/tools/tictactoe.js.map +0 -1
- package/mcp-server/dist/tools/utils.d.ts +0 -10
- package/mcp-server/dist/tools/utils.d.ts.map +0 -1
- package/mcp-server/dist/tools/utils.js +0 -30
- package/mcp-server/dist/tools/utils.js.map +0 -1
- package/mcp-server/dist/tools/whiteboard-tools.d.ts +0 -194
- package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/whiteboard-tools.js +0 -198
- package/mcp-server/dist/tools/whiteboard-tools.js.map +0 -1
- package/mcp-server/dist/tools/whiteboard.d.ts +0 -8
- package/mcp-server/dist/tools/whiteboard.d.ts.map +0 -1
- package/mcp-server/dist/tools/whiteboard.js +0 -14
- package/mcp-server/dist/tools/whiteboard.js.map +0 -1
- package/mcp-server/dist/tui.d.ts +0 -3
- package/mcp-server/dist/tui.d.ts.map +0 -1
- package/mcp-server/dist/tui.js +0 -807
- package/mcp-server/dist/tui.js.map +0 -1
- package/mcp-server/dist/types.d.ts +0 -77
- package/mcp-server/dist/types.d.ts.map +0 -1
- package/mcp-server/dist/types.js +0 -2
- package/mcp-server/dist/types.js.map +0 -1
- package/neural-interface/public/shared/html-term-renderer.js +0 -1022
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
## Memory Ruleset
|
|
4
|
+
|
|
5
|
+
> Portable ruleset — copy into any project's `CLAUDE.md`. Copy button in Neural Interface: Settings > Connections > Claude Code > Copy Ruleset.
|
|
6
|
+
|
|
7
|
+
### Tools
|
|
8
|
+
|
|
9
|
+
| Tool | Purpose |
|
|
10
|
+
|------|---------|
|
|
11
|
+
| `remember` | Store memory (content, category, project, tags, importance, related_files) |
|
|
12
|
+
| `recall` | Semantic search across memories |
|
|
13
|
+
| `forget` / `restore` | Trash / restore a memory by ID |
|
|
14
|
+
| `reflect` | Update existing memory (importance, tags, content, category) |
|
|
15
|
+
| `memories` | List recent or stats (recent, by-category, by-project) |
|
|
16
|
+
| `sync` | Detect stale memories (file content changed) |
|
|
17
|
+
| `category_create/update/delete/list` | Manage category hierarchy |
|
|
18
|
+
|
|
19
|
+
### Auto-Recall
|
|
20
|
+
|
|
21
|
+
- Session start: `recall` current project context
|
|
22
|
+
- Topic mentioned: `recall` what you know
|
|
23
|
+
- Before decisions: `recall` past decisions
|
|
24
|
+
- Debugging: `recall` similar bugs
|
|
25
|
+
|
|
26
|
+
### Auto-Remember (MANDATORY)
|
|
27
|
+
|
|
28
|
+
After ANY task (bug fix, feature, refactor, config change, investigation, architecture decision), MUST `remember` BEFORE responding.
|
|
29
|
+
|
|
30
|
+
**Steps:**
|
|
31
|
+
1. `remember` — what + why + how, appropriate category, set project, related_files, importance (5=routine, 6-7=significant, 8+=critical), and 3-5 tags
|
|
32
|
+
|
|
33
|
+
`remember` now returns the full UUID and accepts all fields (tags, importance) directly. No need to recall+reflect afterward.
|
|
34
|
+
|
|
35
|
+
**NOT triggered by:** Simple Q&A, file reads with no findings, trivial typos.
|
|
36
|
+
|
|
37
|
+
**Importance:** 1-2=trivial, 3-4=low, 5=normal, 6-7=significant, 8-9=critical, 10=foundational. User says "remember this" → 8+. Architecture decisions → 8+. API quirks → 6+.
|
|
38
|
+
|
|
39
|
+
### Response Ordering (IMPORTANT)
|
|
40
|
+
|
|
41
|
+
When finishing a task, structure your response as:
|
|
42
|
+
1. Call `remember` (and any other memory tools) **FIRST**
|
|
43
|
+
2. Write your completion summary / final message **LAST**
|
|
44
|
+
|
|
45
|
+
Tool call results appear above text within a single response, so the summary naturally ends up at the bottom where the user sees it. This prevents memory tool calls from burying your completion message under noise.
|
|
46
|
+
|
|
47
|
+
**Never** write your summary first and then call memory tools — the stop hook will block you, forcing a new response of memory tool calls that pushes your summary off-screen.
|
|
48
|
+
|
|
49
|
+
### Category Selection
|
|
50
|
+
|
|
51
|
+
1. Match existing child → use it
|
|
52
|
+
2. Parent fits but no child → `category_create` child → use it
|
|
53
|
+
3. Nothing fits → `category_create` parent + child → use it
|
|
54
|
+
|
|
55
|
+
Never store directly in parent categories.
|
|
56
|
+
|
|
57
|
+
### Tool Quirks
|
|
58
|
+
|
|
59
|
+
- `remember` returns the full UUID and accepts tags + importance directly.
|
|
60
|
+
- `reflect` requires FULL UUID — use the one returned by `remember`, or `recall` to find existing memories.
|
|
61
|
+
- Sequential MCP calls only — never parallel.
|
|
62
|
+
|
|
63
|
+
### Browser Sessions
|
|
64
|
+
|
|
65
|
+
- When starting a browser session, **always create a new tab** — never reuse or navigate an existing tab. Existing tabs may contain the user's active work, unsaved state, or authenticated sessions that must not be disrupted.
|
|
66
|
+
|
|
67
|
+
### Plan Mode (MANDATORY)
|
|
68
|
+
|
|
69
|
+
**CRITICAL**: Plan mode = research and planning ONLY. Do NOT use Edit, Write, or NotebookEdit. Read files, search code, investigate — then present the plan. Do NOT implement until the user approves and you exit plan mode.
|
|
70
|
+
|
|
71
|
+
When you need clarification or have questions:
|
|
72
|
+
- **ALWAYS** use `AskUserQuestion` to present options — never write questions as plain text
|
|
73
|
+
- Load the tool via `ToolSearch` first if its schema is not yet available
|
|
74
|
+
- Structure as distinct choices (2-4 options per question, max 4 questions)
|
|
75
|
+
- Use for approach clarification BEFORE finalizing the plan
|
|
76
|
+
- Use `ExitPlanMode` (not AskUserQuestion) for final plan approval
|
|
77
|
+
|
|
78
|
+
### Multi-Select Questions
|
|
79
|
+
|
|
80
|
+
When using `AskUserQuestion`, set `multiSelect: true` when options are NOT mutually exclusive — i.e., the user could reasonably want more than one. Examples: selecting multiple features, tags, effects, or follow-up actions. Keep single-select (default) for inherently exclusive choices (one model, one style, one dimension).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Coexistence with Other Tools
|
|
85
|
+
|
|
86
|
+
When running SynaBun alongside other memory or code intelligence tools (CogniLayer, mem0, etc.):
|
|
87
|
+
|
|
88
|
+
**SynaBun owns ALL memory operations:**
|
|
89
|
+
- Storing information: `remember`
|
|
90
|
+
- Searching past context: `recall`
|
|
91
|
+
- Updating memories: `reflect`
|
|
92
|
+
- Deleting/restoring: `forget` / `restore`
|
|
93
|
+
- Browsing: `memories`
|
|
94
|
+
- Stale detection: `sync`
|
|
95
|
+
- Categories: `category` (create/update/delete/list)
|
|
96
|
+
|
|
97
|
+
**Other tools** should be restricted to their non-memory capabilities only (e.g., AST-based code search, code impact analysis).
|
|
98
|
+
|
|
99
|
+
**Enforcement rule for CLAUDE.md / project instructions:**
|
|
100
|
+
```
|
|
101
|
+
For ALL memory operations (store, search, recall, update, delete), use SynaBun tools exclusively.
|
|
102
|
+
[OtherTool] is restricted to [specific use case, e.g., code_search, code_context, code_impact].
|
|
103
|
+
Never use [OtherTool] for remembering, recalling, or reflecting on past work.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
If you notice the AI defaulting to another tool's memory features, add the enforcement rule above to your project's `CLAUDE.md`.
|
|
107
|
+
|
|
108
|
+
====================================END SYNBUN
|
|
109
|
+
|
|
110
|
+
## Architecture
|
|
111
|
+
|
|
112
|
+
Two independently running processes that share one SQLite database:
|
|
113
|
+
|
|
114
|
+
### MCP Server (`mcp-server/`)
|
|
115
|
+
TypeScript, compiles to `dist/`. Entry point: `run.mjs` → `dist/preload.js` → `dist/index.js`. Communicates with AI tools via MCP protocol (stdio or HTTP). 72 tools across 9 groups: Memory (8), Browser (39), Whiteboard (5), Cards (5), Discord (8), Leonardo (4), Git (1), Loop (1), TicTacToe (1).
|
|
116
|
+
|
|
117
|
+
- `src/index.ts` — tool registration, schema refresh, server creation
|
|
118
|
+
- `src/config.ts` — env config, project detection from `claude-code-projects.json`
|
|
119
|
+
- `src/types.ts` — `MemoryPayload` interface
|
|
120
|
+
- `src/http.ts` — HTTP MCP transport (stateless, fresh server per request)
|
|
121
|
+
- `src/services/sqlite.ts` — storage layer, vectors as Float32Array BLOBs, cosine similarity in JS
|
|
122
|
+
- `src/services/local-embeddings.ts` — Transformers.js embedding generation
|
|
123
|
+
- `src/services/categories.ts` — category CRUD, hierarchy, dynamic schema refresh
|
|
124
|
+
- `src/tools/` — one file per tool (or per tool group with a registration function)
|
|
125
|
+
|
|
126
|
+
### Neural Interface (`neural-interface/`)
|
|
127
|
+
Express server (`server.js`, ~15K lines) serving a vanilla JS + Three.js frontend. 55+ REST API endpoints. Runs on port 3344.
|
|
128
|
+
|
|
129
|
+
- `server.js` — monolithic Express server with all API routes, WebSocket, terminal (node-pty), Playwright browser management, session registry, loop orchestration
|
|
130
|
+
- `public/index.html` — 3D force-directed graph (Three.js)
|
|
131
|
+
- `public/index2d.html` — 2D canvas variant
|
|
132
|
+
- `public/onboarding.html` — first-time setup wizard
|
|
133
|
+
- `public/claude-chat.html` — standalone Claude Code chat page
|
|
134
|
+
- `public/shared/` — modular JS/CSS (~50 files): `ui-*.js` modules, `storage.js` (server-synced state), `styles.css`, `utils.js`
|
|
135
|
+
- `lib/db.js` — shared SQLite access (same DB as MCP server)
|
|
136
|
+
- `lib/session-indexer.js` — conversation session indexing
|
|
137
|
+
- `skins/` — theme system (CSS + JSON per skin)
|
|
138
|
+
- `i18n/` — internationalization (en.json)
|
|
139
|
+
- `templates/CLAUDE-template.md` — source of truth for memory rulesets injected into project CLAUDE.md files
|
|
140
|
+
|
|
141
|
+
### Hooks (`hooks/claude-code/`)
|
|
142
|
+
7 ESM (.mjs) lifecycle hooks for Claude Code, registered in `.claude/settings.json`:
|
|
143
|
+
|
|
144
|
+
| Hook | Event | Purpose |
|
|
145
|
+
|------|-------|---------|
|
|
146
|
+
| `session-start.mjs` | SessionStart | Greeting, boot sequence, compaction recovery, loop detection |
|
|
147
|
+
| `prompt-submit.mjs` | UserPromptSubmit | Tiered recall nudges, loop iteration injection |
|
|
148
|
+
| `pre-compact.mjs` | PreCompact | Transcript capture before context compaction |
|
|
149
|
+
| `stop.mjs` | Stop | Combined obligations: compaction, loops, task memory, user learning |
|
|
150
|
+
| `post-remember.mjs` | PostToolUse | Edit tracking, flag clearing, user learning |
|
|
151
|
+
| `pre-websearch.mjs` | PreToolUse | Blocks WebSearch/WebFetch during active browser sessions |
|
|
152
|
+
| `post-plan.mjs` | PostToolUse | Auto-stores plans as memories on ExitPlanMode |
|
|
153
|
+
|
|
154
|
+
`shared.mjs` contains utilities used across hooks.
|
|
155
|
+
|
|
156
|
+
### Skills (`skills/`)
|
|
157
|
+
Claude Code slash commands with `SKILL.md` entry points and `modules/` subdirectories:
|
|
158
|
+
- `synabun/` — `/synabun` command hub (brainstorm, audit, health, search)
|
|
159
|
+
- `leonardo/` — `/leonardo` master media prompter (video, image, model advisor, prompt library)
|
|
160
|
+
|
|
161
|
+
### Data Flow
|
|
162
|
+
```
|
|
163
|
+
AI tool calls remember → MCP server embeds content → SQLite stores vector + payload
|
|
164
|
+
AI tool calls recall → MCP server embeds query → cosine similarity search → re-ranked results
|
|
165
|
+
Neural Interface → reads same SQLite DB → renders 3D graph, REST API, WebSocket
|
|
166
|
+
Hooks → fire on Claude Code events → inject context, enforce memory obligations
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Shared State
|
|
170
|
+
- `data/memory.db` — single SQLite database (memories, session chunks, trash)
|
|
171
|
+
- `data/ui-state.json` — Neural Interface UI state (synced via `storage.js`)
|
|
172
|
+
- `data/pending-compact/` — per-session compaction flags
|
|
173
|
+
- `data/pending-remember/` — per-session edit tracking flags
|
|
174
|
+
- `mcp-server/data/custom-categories-{connId}.json` — per-connection category definitions
|
|
175
|
+
|
|
176
|
+
## Key Patterns
|
|
177
|
+
|
|
178
|
+
- **Category descriptions are routing instructions**: Claude reads all category descriptions from the MCP tool schema to decide where to store memories. Descriptions must be prescriptive rules, not vague labels.
|
|
179
|
+
- **Dynamic schema refresh**: Category changes trigger `refreshCategorySchemas()` → `notifications/tools/list_changed` → Claude re-fetches tool list. No restart needed.
|
|
180
|
+
- **Per-tab session isolation**: Project/model/effort state stored per-tab in sidepanel (`ui-claude-panel.js`) and per-tab via `sessionStorage` in standalone (`claude-chat.js`). Global `ui-state.json` keys are "last used" defaults only.
|
|
181
|
+
- **Browser sessions**: Playwright with persistent Chromium profiles. Multi-session isolation via dedicated browser session per automation. Leonardo tools are 100% browser-based (no API key).
|
|
182
|
+
- **Compaction chain**: PreCompact → flag → SessionStart injects → Claude remembers(conversations) → PostToolUse clears → Stop allows.
|
|
183
|
+
- **MCP calls must be sequential**: Parallel MCP tool calls can cascade failures. Always call memory tools one at a time.
|
|
184
|
+
|
|
185
|
+
## Environment
|
|
186
|
+
|
|
187
|
+
- Node.js 22.5+ required (for built-in `node:sqlite`)
|
|
188
|
+
- `.env` at project root — `SQLITE_DB_PATH`, `NEURAL_PORT` (default 3344), `DISCORD_BOT_TOKEN`, `DISCORD_GUILD_ID`
|
|
189
|
+
- CLAUDE.md is gitignored (user-local)
|
|
190
|
+
|
|
191
|
+
## Persistent Memory
|
|
192
|
+
|
|
193
|
+
### Auto-Remember (MANDATORY)
|
|
194
|
+
After ANY task (bug fix, feature, refactor, config change, investigation, architecture decision), MUST `remember` BEFORE responding.
|
|
195
|
+
|
|
196
|
+
Steps:
|
|
197
|
+
1. `remember` — what + why + how, appropriate category, set project, related_files, importance (5=routine, 6-7=significant, 8+=critical), and 3-5 tags
|
|
198
|
+
|
|
199
|
+
`remember` returns the full UUID and accepts all fields (tags, importance) directly. No need to recall+reflect afterward.
|
|
200
|
+
|
|
201
|
+
**NOT triggered by:** Simple Q&A, file reads with no findings, trivial typos.
|
|
202
|
+
|
|
203
|
+
**Importance scale:** 1-2=trivial, 3-4=low, 5=normal, 6-7=significant, 8-9=critical, 10=foundational. User says "remember this" → 8+. Architecture decisions → 8+.
|
|
204
|
+
|
|
205
|
+
### Response Ordering
|
|
206
|
+
When finishing a task: call `remember` (and any other memory tools) **FIRST**, then write your completion summary **LAST**. Never summary-then-tools — the stop hook will block you.
|
|
207
|
+
|
|
208
|
+
### Tool Quirks
|
|
209
|
+
- `remember` returns the full UUID and accepts tags + importance directly.
|
|
210
|
+
- `reflect` requires FULL UUID — use the one from `remember`, or `recall` to find existing memories.
|
|
211
|
+
- Sequential MCP calls only — never parallel.
|
|
212
|
+
|
|
213
|
+
### Plan Mode
|
|
214
|
+
When in plan mode and you need clarification:
|
|
215
|
+
- ALWAYS use `AskUserQuestion` to present options — never plain text questions
|
|
216
|
+
- Use `ExitPlanMode` for final plan approval
|
|
217
|
+
- Use `multiSelect: true` in AskUserQuestion when options aren't mutually exclusive
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
Any Claude Code
|
|
29
|
+
Any Claude Code, Codex, Gemini, OpenCode, Cursor, Windsurf, or MCP-compatible AI tool can connect to SynaBun and retain knowledge across sessions through semantic vector search. Dedicated sidepanels ship for Claude Code, Codex, and OpenCode with tool activity docks, per-agent abort, permission cards, context gauges, and Multi-CLI Resume. Memories are stored in a local SQLite database with built-in vector search — no external services, no API keys, no Docker.
|
|
30
30
|
|
|
31
31
|
## Screenshots
|
|
32
32
|
|
|
@@ -60,6 +60,7 @@ Any Claude Code instance (or MCP-compatible AI tool) can connect to SynaBun and
|
|
|
60
60
|
## Features
|
|
61
61
|
|
|
62
62
|
- **Semantic Search** — find memories by meaning, not keywords, using cosine similarity
|
|
63
|
+
- **Recall Profile Presets** — Quick, Balanced, Deep, and Custom profiles with 6 fine-tune controls, an impact indicator (tokens/recall, memories reachable, session context), and configurable server-side defaults
|
|
63
64
|
- **Multi-Project** — single collection serves all projects with automatic project detection and cross-project recall
|
|
64
65
|
- **Smart Relevance** — time decay (90-day half-life), project boost (1.2x), and access frequency scoring
|
|
65
66
|
- **User-Defined Categories** — hierarchical categories with prescriptive routing descriptions; dynamic schema refresh without server restart
|
|
@@ -71,10 +72,16 @@ Any Claude Code instance (or MCP-compatible AI tool) can connect to SynaBun and
|
|
|
71
72
|
- **OpenClaw Bridge** — read-only integration overlays OpenClaw workspace memories as ephemeral nodes in the 3D graph
|
|
72
73
|
- **Category Logos** — upload custom logos for parent categories, rendered on sun nodes in the 3D visualization
|
|
73
74
|
- **Backup & Restore** — export and import SQLite database snapshots via the Neural Interface
|
|
75
|
+
- **Multi-CLI Sidepanels** — dedicated sidepanels for Claude Code, Codex, and OpenCode with per-agent abort, tool activity docks, permission cards, TODO drawer, context gauge, session menu, new-session modal with project + branch selection, and Multi-CLI Resume with provider picker
|
|
76
|
+
- **Automation Studio** — visual template editor with user-created collapsible folders (drag/drop, icons, colors), per-template launch defaults (CLI / Model / Thinking effort / MCP profile), and first-class 4-CLI support (Claude Code, Codex, Gemini, OpenCode)
|
|
77
|
+
- **Universal MCP Management** — smart-paste add form auto-detects 5 config formats, syncs one MCP server across Claude Code / Codex / Gemini / OpenCode, centralized env vault with sensitive-value masking, auto profile registration, and one-click install from GitHub
|
|
74
78
|
- **Claude Code Hooks** — 7 lifecycle hooks automate memory recall, storage, and session indexing
|
|
75
|
-
- **User Learning** —
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
79
|
+
- **User Learning** — 5 binding directives that observe user communication patterns, preferences, and behavioral singularity across sessions (Priority 7 nudge, feature flag, threshold controls)
|
|
80
|
+
- **Hybrid Resume Search** — FTS5 + semantic search across saved sessions so old conversations can be resumed across CLIs
|
|
81
|
+
- **Multi-Runtime Skills** — `/synabun` command hub and `/leonardo` media prompter work on both Claude Code and Codex; `/synabun changelog` quick action available from the OpenCode sidepanel
|
|
82
|
+
- **Leonardo AI Integration** — 5 browser-based MCP tools for AI image and video generation via Leonardo.ai — no API key needed, full UI automation via Playwright with the `/leonardo` skill for guided creation
|
|
83
|
+
- **Enhanced Browser Tooling** — new `browser_cheatsheet` tool with curated selectors per platform, snapshot modes + viewport filtering, `returnSnapshot` that folds actions and observations into one call, selector auto-heal via `textHint`, and CLI/sidepanel session isolation
|
|
84
|
+
- **Modern Code Rendering** — syntax highlighting, file path linkification, language labels, hover-only copy buttons, 30fps throttled streaming, and real-time thinking block streaming across every sidepanel
|
|
78
85
|
|
|
79
86
|
## Table of Contents
|
|
80
87
|
|
|
@@ -189,15 +196,14 @@ Add to your project's `.mcp.json`:
|
|
|
189
196
|
Or register globally for all projects:
|
|
190
197
|
|
|
191
198
|
```bash
|
|
192
|
-
claude mcp add SynaBun -s user
|
|
193
|
-
-- node "/path/to/Synabun/mcp-server/run.mjs"
|
|
199
|
+
claude mcp add SynaBun node "/path/to/Synabun/mcp-server/run.mjs" -s user
|
|
194
200
|
```
|
|
195
201
|
|
|
196
202
|
No environment variables needed — SQLite and local embeddings work out of the box.
|
|
197
203
|
|
|
198
204
|
### 3. Verify
|
|
199
205
|
|
|
200
|
-
Restart Claude Code, then run `/mcp`. You should see the `SynaBun` server with
|
|
206
|
+
Restart Claude Code, then run `/mcp`. You should see the `SynaBun` server with 76 tools listed.
|
|
201
207
|
|
|
202
208
|
</details>
|
|
203
209
|
|
|
@@ -226,12 +232,13 @@ AI Assistant (any project)
|
|
|
226
232
|
┌───┴──────────────────────────┐
|
|
227
233
|
│ SynaBun MCP Server │ Node.js 22.5+ / TypeScript
|
|
228
234
|
│ │
|
|
229
|
-
│
|
|
230
|
-
│ Memory (8),
|
|
231
|
-
│
|
|
232
|
-
│
|
|
233
|
-
│
|
|
234
|
-
│ TicTacToe (1)
|
|
235
|
+
│ 76 tools across 11 groups: │
|
|
236
|
+
│ Memory (8), Profile (1), │
|
|
237
|
+
│ Browser (40), Whiteboard (5)│
|
|
238
|
+
│ Cards (5), Discord (8), │
|
|
239
|
+
│ Leonardo (5), Git (1), │
|
|
240
|
+
│ Loop (1), TicTacToe (1), │
|
|
241
|
+
│ Image (1) │
|
|
235
242
|
│ │
|
|
236
243
|
│ Transformers.js │ Local embeddings
|
|
237
244
|
│ all-MiniLM-L6-v2 │ (384 dims, ~23MB model)
|
|
@@ -246,9 +253,9 @@ AI Assistant (any project)
|
|
|
246
253
|
|
|
247
254
|
Everything runs in a single Node.js process — no external services, no Docker, no API keys.
|
|
248
255
|
|
|
249
|
-
## MCP Tools (
|
|
256
|
+
## MCP Tools (76)
|
|
250
257
|
|
|
251
|
-
SynaBun exposes
|
|
258
|
+
SynaBun exposes 76 tools via the Model Context Protocol, organized into 11 groups:
|
|
252
259
|
|
|
253
260
|
### Memory (8 tools)
|
|
254
261
|
|
|
@@ -263,12 +270,20 @@ SynaBun exposes 72 tools via the Model Context Protocol, organized into 9 groups
|
|
|
263
270
|
| `sync` | Detect stale memories via file hash comparison | `project` (optional filter) |
|
|
264
271
|
| `category` | Create, update, delete, or list categories | `action` (create, update, delete, list), `name`, `description`, `parent` |
|
|
265
272
|
|
|
266
|
-
###
|
|
273
|
+
### Profile (1 tool)
|
|
267
274
|
|
|
268
|
-
|
|
275
|
+
| Tool | Purpose | Key Parameters |
|
|
276
|
+
|------|---------|----------------|
|
|
277
|
+
| `profile` | Switch tool profiles at runtime — enable or disable whole groups without restarting | `action` (get / set), `name` (preset), `groups` (custom list) |
|
|
278
|
+
|
|
279
|
+
Built-in presets include `full` (all 14 groups) and focused modes for memory-only or browser-only workloads.
|
|
280
|
+
|
|
281
|
+
### Browser (40 tools)
|
|
282
|
+
|
|
283
|
+
19 general browser automation tools + 21 social media extraction tools, all powered by Playwright with persistent Chromium sessions. `browser_snapshot` supports multiple modes + viewport filtering, `returnSnapshot` folds actions and observations into one call, and selector auto-heal via `textHint` repairs brittle locators when a site's DOM changes.
|
|
269
284
|
|
|
270
285
|
**General automation:**
|
|
271
|
-
`browser_navigate`, `browser_click`, `browser_fill`, `browser_type`, `browser_hover`, `browser_select`, `browser_press`, `browser_evaluate`, `browser_snapshot`, `browser_content`, `browser_screenshot`, `browser_session`, `browser_go_back`, `browser_go_forward`, `browser_reload`, `browser_wait`, `browser_scroll`, `browser_upload`
|
|
286
|
+
`browser_navigate`, `browser_click`, `browser_fill`, `browser_type`, `browser_hover`, `browser_select`, `browser_press`, `browser_evaluate`, `browser_snapshot`, `browser_content`, `browser_screenshot`, `browser_session`, `browser_go_back`, `browser_go_forward`, `browser_reload`, `browser_wait`, `browser_scroll`, `browser_upload`, `browser_cheatsheet`
|
|
272
287
|
|
|
273
288
|
**Social media extraction:**
|
|
274
289
|
`browser_extract_tweets`, `browser_extract_fb_posts`, `browser_extract_tiktok_videos`, `browser_extract_tiktok_search`, `browser_extract_tiktok_studio`, `browser_extract_tiktok_profile`, `browser_extract_wa_chats`, `browser_extract_wa_messages`, `browser_extract_ig_feed`, `browser_extract_ig_profile`, `browser_extract_ig_post`, `browser_extract_ig_reels`, `browser_extract_ig_search`, `browser_extract_li_feed`, `browser_extract_li_profile`, `browser_extract_li_post`, `browser_extract_li_notifications`, `browser_extract_li_messages`, `browser_extract_li_search_people`, `browser_extract_li_network`, `browser_extract_li_jobs`
|
|
@@ -312,7 +327,7 @@ SynaBun exposes 72 tools via the Model Context Protocol, organized into 9 groups
|
|
|
312
327
|
|------|---------|
|
|
313
328
|
| `loop` | Run, stop, or check autonomous background tasks |
|
|
314
329
|
|
|
315
|
-
### Leonardo AI (
|
|
330
|
+
### Leonardo AI (5 tools)
|
|
316
331
|
|
|
317
332
|
Browser-based AI image and video generation via [Leonardo.ai](https://app.leonardo.ai). No API key needed — all tools automate the Leonardo.ai web UI directly via Playwright.
|
|
318
333
|
|
|
@@ -322,8 +337,15 @@ Browser-based AI image and video generation via [Leonardo.ai](https://app.leonar
|
|
|
322
337
|
| `leonardo_browser_generate` | Fill the prompt and click Generate — configure UI settings (model, style, dimensions, motion controls) beforehand using generic browser tools |
|
|
323
338
|
| `leonardo_browser_library` | View or search the Leonardo.ai generation library |
|
|
324
339
|
| `leonardo_browser_download` | Capture the current Leonardo.ai page as a screenshot to see generation results |
|
|
340
|
+
| `leonardo_browser_reference` | Upload and attach a reference image (style / character / content) to the next generation |
|
|
341
|
+
|
|
342
|
+
> **Tip:** Use the `/leonardo` skill in Claude Code or Codex for an expert-guided creation experience with a 7-phase video prompter, 6-phase image prompter, model advisor with decision matrices for 30+ models, curated prompt library, and style guide with motion controls and camera combos.
|
|
325
343
|
|
|
326
|
-
|
|
344
|
+
### Image (1 tool)
|
|
345
|
+
|
|
346
|
+
| Tool | Purpose |
|
|
347
|
+
|------|---------|
|
|
348
|
+
| `image_staged` | Manage staged images — list the pending upload queue, remove items, or clear the stage. Used alongside the Neural Interface image-upload flow. |
|
|
327
349
|
|
|
328
350
|
## Neural Interface
|
|
329
351
|
|
|
@@ -353,6 +375,57 @@ Then open **http://localhost:3344**
|
|
|
353
375
|
|
|
354
376
|
The Neural Interface also serves as the admin panel for category management, hook installation, skill management, and MCP registration — all from a single web UI.
|
|
355
377
|
|
|
378
|
+
### Sidepanels (Claude Code, Codex, OpenCode)
|
|
379
|
+
|
|
380
|
+
Three dedicated chat sidepanels dock to the side of your editor and talk to the same memory backend. They share a common visual language and now ship with matching feature parity:
|
|
381
|
+
|
|
382
|
+
| Feature | Claude | Codex | OpenCode |
|
|
383
|
+
|---------|--------|-------|----------|
|
|
384
|
+
| Tool Activity Dock (left-edge log, `Ctrl/Cmd+Shift+A`) | — | — | ✅ |
|
|
385
|
+
| TODO Widget slide-out drawer | ✅ | — | — |
|
|
386
|
+
| Agents Drawer with per-agent abort + inline step expansion | ✅ | — | ✅ |
|
|
387
|
+
| Permission cards with tool-specific context (bash/edit/write/read/webfetch) | ✅ | ✅ | ✅ |
|
|
388
|
+
| Plan mode with AskUserQuestion + post-plan action card | ✅ | ✅ | ✅ |
|
|
389
|
+
| Session menu, new-session modal (project + branch picker) | ✅ | ✅ | ✅ |
|
|
390
|
+
| Multi-CLI Resume with provider picker | ✅ | ✅ | ✅ |
|
|
391
|
+
| Context gauge with 1M context activation | ✅ | ✅ | ✅ |
|
|
392
|
+
| Collapsible tool cards with lazy body flush | ✅ | ✅ | ✅ |
|
|
393
|
+
| Streamed thinking blocks + 30fps throttled rendering | ✅ | ✅ | ✅ |
|
|
394
|
+
| Syntax highlighting + file path linkification + copy button | ✅ | ✅ | ✅ |
|
|
395
|
+
| `/synabun` + `/leonardo` multi-runtime skills | ✅ | ✅ | ✅ |
|
|
396
|
+
| `/synabun changelog` quick skill button | — | — | ✅ |
|
|
397
|
+
| Tray pills for minimized sessions | — | — | ✅ |
|
|
398
|
+
|
|
399
|
+
### Automation Studio
|
|
400
|
+
|
|
401
|
+
A visual template editor for autonomous loops and agents.
|
|
402
|
+
|
|
403
|
+
- **User-created collapsible folders** — drag/drop templates between folders, reorder folders, per-folder icons (including social platform icons) and colors, per-device collapsed state, backup/restore via `loop-folders.json`.
|
|
404
|
+
- **Per-template launch defaults** — save CLI / Model / Thinking effort / MCP profile with each template. The launch modal opens pre-filled with the saved choice; users can still override.
|
|
405
|
+
- **First-class 4-CLI support** — Claude Code, Codex, Gemini, and OpenCode. Agent mode is Claude-exclusive; loop mode runs on any of the four.
|
|
406
|
+
- **Runtime card with native `<select>`** — handles long MCP profile names and model labels without truncation.
|
|
407
|
+
- **Context menus + folder popover** — right-click any template to move it; right-click a folder to rename, recolor, collapse, or delete (deletion detaches templates rather than removing them).
|
|
408
|
+
|
|
409
|
+
### MCP Management
|
|
410
|
+
|
|
411
|
+
One screen to manage every MCP server you use, synced across every CLI.
|
|
412
|
+
|
|
413
|
+
- **Universal Add Form with smart paste** — auto-detects 5 config formats (stdio JSON, HTTP URL, OpenCode TOML, Claude `mcp add` command, plain JSON).
|
|
414
|
+
- **Multi-platform sync** — one MCP server entry syncs to Claude Code, Codex, Gemini, and OpenCode with a single click.
|
|
415
|
+
- **Centralized env vault** — secure storage for API keys and tokens, reused across servers, with sensitive-value masking in the form.
|
|
416
|
+
- **Auto profile registration** — newly added servers are registered with profiles so they can be toggled by group.
|
|
417
|
+
- **One-click install from GitHub** — paste a repo URL; SynaBun clones, builds, and registers the server.
|
|
418
|
+
- **`data/mcp/` scaffold** — predictable layout for user-installed MCP servers.
|
|
419
|
+
|
|
420
|
+
### Recall Profiles
|
|
421
|
+
|
|
422
|
+
Control how much context flows into each `recall`:
|
|
423
|
+
|
|
424
|
+
- **4 presets** — Quick (fast, narrow), Balanced (default), Deep (broad context), Custom (fine-tune).
|
|
425
|
+
- **6 fine-tune controls** — number of results, similarity threshold, tag filter intensity, session chunk inclusion, importance floor, temporal bias.
|
|
426
|
+
- **Impact indicator** — live estimate of tokens per recall, memories reachable, and how much session context will surface.
|
|
427
|
+
- **Configurable server-side defaults** — set the "baseline" recall shape globally; every CLI follows it unless overridden.
|
|
428
|
+
|
|
356
429
|
## Usage
|
|
357
430
|
|
|
358
431
|
### Storing memories
|
|
@@ -589,13 +662,13 @@ SynaBun ships with 7 [Claude Code hooks](https://docs.anthropic.com/en/docs/agen
|
|
|
589
662
|
|
|
590
663
|
For detailed hook documentation, customization options, and custom hook templates, see the [Hooks Guide](./docs/hooks.md).
|
|
591
664
|
|
|
592
|
-
##
|
|
665
|
+
## Skills (Multi-Runtime)
|
|
593
666
|
|
|
594
|
-
SynaBun ships
|
|
667
|
+
SynaBun ships slash-command skills that work on both **Claude Code** and **Codex**, and includes a dedicated quick-action button in the **OpenCode** sidepanel.
|
|
595
668
|
|
|
596
669
|
### `/synabun` — Memory Command Hub
|
|
597
670
|
|
|
598
|
-
The entry point for all memory-powered capabilities. Type `/synabun` in Claude Code and an interactive menu appears:
|
|
671
|
+
The entry point for all memory-powered capabilities. Type `/synabun` in Claude Code or Codex and an interactive menu appears:
|
|
599
672
|
|
|
600
673
|
| Option | What it does |
|
|
601
674
|
|--------|-------------|
|
|
@@ -603,10 +676,11 @@ The entry point for all memory-powered capabilities. Type `/synabun` in Claude C
|
|
|
603
676
|
| **Audit Memories** | Validate stored memories against the current codebase. Runs 6 phases: landscape survey, checksum pre-scan, bulk retrieval, parallel semantic verification, interactive classification (STALE/INVALID/VALID/UNVERIFIABLE), and audit report. |
|
|
604
677
|
| **Memory Health** | Quick stats overview and staleness check — total count, category distribution, stale file references. |
|
|
605
678
|
| **Search Memories** | Find something specific across your entire memory bank using semantic search. |
|
|
679
|
+
| **Changelog** | Show the SynaBun release history and the newest user-facing features. Available as a dedicated quick-action button inside the OpenCode sidepanel. |
|
|
606
680
|
|
|
607
681
|
### `/leonardo` — Master Media Prompter
|
|
608
682
|
|
|
609
|
-
Expert-guided AI image and video creation via Leonardo.ai. Supports quick mode for power users and interactive questionnaires for guided creation.
|
|
683
|
+
Expert-guided AI image and video creation via Leonardo.ai. Runs on both Claude Code and Codex. Supports quick mode for power users and interactive questionnaires for guided creation.
|
|
610
684
|
|
|
611
685
|
| Mode | Usage |
|
|
612
686
|
|------|-------|
|
|
@@ -616,7 +690,7 @@ Expert-guided AI image and video creation via Leonardo.ai. Supports quick mode f
|
|
|
616
690
|
|
|
617
691
|
The skill includes 5 expert modules: video prompter (7-phase cinematic questionnaire with motion controls and style stacking), image prompter (6-phase composition questionnaire with style presets), model advisor (decision matrices for 30+ models), prompt library (curated templates), and style guide (style stacking, motion controls, camera combos).
|
|
618
692
|
|
|
619
|
-
**Install:** Copy the skills to your global skills directory:
|
|
693
|
+
**Install:** Copy the skills to your global skills directory (Claude Code example below — Codex uses its own skills location, configured by the Neural Interface installer):
|
|
620
694
|
|
|
621
695
|
```bash
|
|
622
696
|
# Skills live at:
|
|
@@ -634,9 +708,9 @@ Add this to any project's `CLAUDE.md` to instruct Claude to use memory automatic
|
|
|
634
708
|
```markdown
|
|
635
709
|
## Persistent Memory
|
|
636
710
|
|
|
637
|
-
You have persistent vector memory via the `SynaBun` MCP server (
|
|
711
|
+
You have persistent vector memory via the `SynaBun` MCP server (76 tools).
|
|
638
712
|
Core memory tools: remember, recall, forget, restore, reflect, memories, sync, category.
|
|
639
|
-
Also available: browser automation (
|
|
713
|
+
Also available: profile (runtime tool-group toggle), browser automation (40 tools incl. browser_cheatsheet), whiteboard (5), cards (5), discord (8), leonardo AI (5), git, loop, tictactoe, image_staged.
|
|
640
714
|
|
|
641
715
|
### Auto-Recall (do this automatically)
|
|
642
716
|
- At session start: recall context about the current project
|
|
@@ -820,7 +894,7 @@ Synabun/
|
|
|
820
894
|
│ └── display-settings.json # MCP response display config
|
|
821
895
|
├── dist/ # Compiled JS (generated by npm run build)
|
|
822
896
|
└── src/
|
|
823
|
-
├── index.ts # Tool registration + schema refresh (
|
|
897
|
+
├── index.ts # Tool registration + schema refresh (76 tools)
|
|
824
898
|
├── config.ts # Namespaced env config, project detection
|
|
825
899
|
├── types.ts # MemoryPayload interface (incl. file_checksums)
|
|
826
900
|
├── http.ts # HTTP MCP transport
|