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.
Files changed (288) hide show
  1. package/CHANGELOG.md +821 -36
  2. package/CLAUDE.md +217 -0
  3. package/README.md +102 -28
  4. package/hooks/claude-code/post-plan.mjs +547 -396
  5. package/hooks/claude-code/prompt-submit.mjs +8 -5
  6. package/hooks/claude-code/session-start.mjs +1 -1
  7. package/hooks/claude-code/stop.mjs +34 -4
  8. package/mcp-server/run.mjs +5 -0
  9. package/mcp-server/src/http.ts +17 -4
  10. package/mcp-server/src/index.ts +438 -204
  11. package/mcp-server/src/services/neural-interface.ts +117 -21
  12. package/mcp-server/src/services/profiles.ts +145 -0
  13. package/mcp-server/src/tools/browser-cheatsheet.ts +123 -0
  14. package/mcp-server/src/tools/browser-interact.ts +107 -100
  15. package/mcp-server/src/tools/browser-navigate.ts +34 -5
  16. package/mcp-server/src/tools/browser-observe.ts +132 -16
  17. package/mcp-server/src/tools/browser.ts +145 -107
  18. package/mcp-server/src/tools/card.ts +7 -5
  19. package/mcp-server/src/tools/discord.ts +10 -23
  20. package/mcp-server/src/tools/git.ts +3 -1
  21. package/mcp-server/src/tools/image.ts +3 -1
  22. package/mcp-server/src/tools/leonardo.ts +7 -5
  23. package/mcp-server/src/tools/profile.ts +50 -0
  24. package/mcp-server/src/tools/recall.ts +78 -71
  25. package/mcp-server/src/tools/tictactoe.ts +3 -1
  26. package/mcp-server/src/tools/whiteboard.ts +7 -5
  27. package/neural-interface/i18n/en.json +1 -0
  28. package/neural-interface/lib/db.js +144 -0
  29. package/neural-interface/lib/mcp-installer.js +378 -0
  30. package/neural-interface/lib/session-cache-builder.js +482 -0
  31. package/neural-interface/package.json +2 -0
  32. package/neural-interface/public/claude-chat.css +3 -0
  33. package/neural-interface/public/claude-chat.js +12 -6
  34. package/neural-interface/public/claude.svg +1 -0
  35. package/neural-interface/public/mcp.svg +4 -0
  36. package/neural-interface/public/onboarding.html +2 -2
  37. package/neural-interface/public/opencode-logo-dark-square.svg +1 -0
  38. package/neural-interface/public/shared/api.js +85 -2
  39. package/neural-interface/public/shared/cdx/cdx-icons.js +77 -0
  40. package/neural-interface/public/shared/cdx/cdx-panel.js +975 -0
  41. package/neural-interface/public/shared/cdx/cdx-render.js +2579 -0
  42. package/neural-interface/public/shared/cdx/cdx-requests.js +789 -0
  43. package/neural-interface/public/shared/cdx/cdx-styles.js +2849 -0
  44. package/neural-interface/public/shared/cdx/cdx-tabs.js +5110 -0
  45. package/neural-interface/public/shared/cdx/cdx-ws.js +249 -0
  46. package/neural-interface/public/shared/constants.js +2 -0
  47. package/neural-interface/public/shared/html-shell.js +23 -4
  48. package/neural-interface/public/shared/ocp/ocp-icons.js +42 -0
  49. package/neural-interface/public/shared/ocp/ocp-panel.js +1709 -0
  50. package/neural-interface/public/shared/ocp/ocp-render.js +1679 -0
  51. package/neural-interface/public/shared/ocp/ocp-styles.js +2467 -0
  52. package/neural-interface/public/shared/ocp/ocp-tabs.js +2054 -0
  53. package/neural-interface/public/shared/ocp/ocp-ws.js +189 -0
  54. package/neural-interface/public/shared/provider-icons.js +27 -0
  55. package/neural-interface/public/shared/state.js +4 -1
  56. package/neural-interface/public/shared/styles.css +2876 -476
  57. package/neural-interface/public/shared/ui-automation-studio.js +1226 -81
  58. package/neural-interface/public/shared/ui-claude-panel.js +2395 -484
  59. package/neural-interface/public/shared/ui-codex-panel.js +6 -0
  60. package/neural-interface/public/shared/ui-file-explorer.js +112 -35
  61. package/neural-interface/public/shared/ui-menubar.js +5 -1
  62. package/neural-interface/public/shared/ui-navbar.js +31 -1
  63. package/neural-interface/public/shared/ui-notifications.js +53 -12
  64. package/neural-interface/public/shared/ui-opencode-panel.js +6 -0
  65. package/neural-interface/public/shared/ui-resume.js +772 -653
  66. package/neural-interface/public/shared/ui-settings.js +2261 -253
  67. package/neural-interface/public/shared/ui-sidepanel-layout.js +43 -0
  68. package/neural-interface/public/shared/ui-terminal.js +584 -511
  69. package/neural-interface/public/shared/ui-tool-updates.js +116 -0
  70. package/neural-interface/public/shared/ui-tooltip.js +61 -16
  71. package/neural-interface/public/shared/ui-whiteboard.js +36 -15
  72. package/neural-interface/server.js +6351 -463
  73. package/neural-interface/templates/CLAUDE-template.md +37 -9
  74. package/package.json +66 -63
  75. package/setup.js +159 -1
  76. package/skills/leonardo/SKILL.md +15 -10
  77. package/skills/leonardo/modules/image-prompter.md +14 -12
  78. package/skills/leonardo/modules/video-prompter.md +15 -13
  79. package/skills/synabun/SKILL.md +25 -19
  80. package/skills/synabun/modules/audit.md +36 -34
  81. package/skills/synabun/modules/changelog.md +18 -13
  82. package/skills/synabun/modules/idea.md +15 -11
  83. package/skills/synabun/modules/memorize.md +15 -10
  84. package/mcp-server/dist/config.d.ts +0 -13
  85. package/mcp-server/dist/config.d.ts.map +0 -1
  86. package/mcp-server/dist/config.js +0 -59
  87. package/mcp-server/dist/config.js.map +0 -1
  88. package/mcp-server/dist/http.d.ts +0 -13
  89. package/mcp-server/dist/http.d.ts.map +0 -1
  90. package/mcp-server/dist/http.js +0 -86
  91. package/mcp-server/dist/http.js.map +0 -1
  92. package/mcp-server/dist/index.d.ts +0 -10
  93. package/mcp-server/dist/index.d.ts.map +0 -1
  94. package/mcp-server/dist/index.js +0 -190
  95. package/mcp-server/dist/index.js.map +0 -1
  96. package/mcp-server/dist/preload-http.d.ts +0 -3
  97. package/mcp-server/dist/preload-http.d.ts.map +0 -1
  98. package/mcp-server/dist/preload-http.js +0 -26
  99. package/mcp-server/dist/preload-http.js.map +0 -1
  100. package/mcp-server/dist/preload.d.ts +0 -3
  101. package/mcp-server/dist/preload.d.ts.map +0 -1
  102. package/mcp-server/dist/preload.js +0 -30
  103. package/mcp-server/dist/preload.js.map +0 -1
  104. package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts +0 -19
  105. package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts.map +0 -1
  106. package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js +0 -403
  107. package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js.map +0 -1
  108. package/mcp-server/dist/services/categories.d.ts +0 -61
  109. package/mcp-server/dist/services/categories.d.ts.map +0 -1
  110. package/mcp-server/dist/services/categories.js +0 -356
  111. package/mcp-server/dist/services/categories.js.map +0 -1
  112. package/mcp-server/dist/services/discord.d.ts +0 -112
  113. package/mcp-server/dist/services/discord.d.ts.map +0 -1
  114. package/mcp-server/dist/services/discord.js +0 -477
  115. package/mcp-server/dist/services/discord.js.map +0 -1
  116. package/mcp-server/dist/services/file-checksums.d.ts +0 -14
  117. package/mcp-server/dist/services/file-checksums.d.ts.map +0 -1
  118. package/mcp-server/dist/services/file-checksums.js +0 -34
  119. package/mcp-server/dist/services/file-checksums.js.map +0 -1
  120. package/mcp-server/dist/services/local-embeddings.d.ts +0 -23
  121. package/mcp-server/dist/services/local-embeddings.d.ts.map +0 -1
  122. package/mcp-server/dist/services/local-embeddings.js +0 -71
  123. package/mcp-server/dist/services/local-embeddings.js.map +0 -1
  124. package/mcp-server/dist/services/neural-interface.d.ts +0 -93
  125. package/mcp-server/dist/services/neural-interface.d.ts.map +0 -1
  126. package/mcp-server/dist/services/neural-interface.js +0 -250
  127. package/mcp-server/dist/services/neural-interface.js.map +0 -1
  128. package/mcp-server/dist/services/sqlite.d.ts +0 -85
  129. package/mcp-server/dist/services/sqlite.d.ts.map +0 -1
  130. package/mcp-server/dist/services/sqlite.js +0 -660
  131. package/mcp-server/dist/services/sqlite.js.map +0 -1
  132. package/mcp-server/dist/tools/browser-advanced.d.ts +0 -58
  133. package/mcp-server/dist/tools/browser-advanced.d.ts.map +0 -1
  134. package/mcp-server/dist/tools/browser-advanced.js +0 -100
  135. package/mcp-server/dist/tools/browser-advanced.js.map +0 -1
  136. package/mcp-server/dist/tools/browser-interact.d.ts +0 -154
  137. package/mcp-server/dist/tools/browser-interact.d.ts.map +0 -1
  138. package/mcp-server/dist/tools/browser-interact.js +0 -225
  139. package/mcp-server/dist/tools/browser-interact.js.map +0 -1
  140. package/mcp-server/dist/tools/browser-navigate.d.ts +0 -60
  141. package/mcp-server/dist/tools/browser-navigate.d.ts.map +0 -1
  142. package/mcp-server/dist/tools/browser-navigate.js +0 -66
  143. package/mcp-server/dist/tools/browser-navigate.js.map +0 -1
  144. package/mcp-server/dist/tools/browser-observe.d.ts +0 -346
  145. package/mcp-server/dist/tools/browser-observe.d.ts.map +0 -1
  146. package/mcp-server/dist/tools/browser-observe.js +0 -1179
  147. package/mcp-server/dist/tools/browser-observe.js.map +0 -1
  148. package/mcp-server/dist/tools/browser.d.ts +0 -7
  149. package/mcp-server/dist/tools/browser.d.ts.map +0 -1
  150. package/mcp-server/dist/tools/browser.js +0 -55
  151. package/mcp-server/dist/tools/browser.js.map +0 -1
  152. package/mcp-server/dist/tools/card-tools.d.ts +0 -82
  153. package/mcp-server/dist/tools/card-tools.d.ts.map +0 -1
  154. package/mcp-server/dist/tools/card-tools.js +0 -137
  155. package/mcp-server/dist/tools/card-tools.js.map +0 -1
  156. package/mcp-server/dist/tools/card.d.ts +0 -8
  157. package/mcp-server/dist/tools/card.d.ts.map +0 -1
  158. package/mcp-server/dist/tools/card.js +0 -14
  159. package/mcp-server/dist/tools/card.js.map +0 -1
  160. package/mcp-server/dist/tools/category.d.ts +0 -32
  161. package/mcp-server/dist/tools/category.d.ts.map +0 -1
  162. package/mcp-server/dist/tools/category.js +0 -290
  163. package/mcp-server/dist/tools/category.js.map +0 -1
  164. package/mcp-server/dist/tools/discord-channel.d.ts +0 -44
  165. package/mcp-server/dist/tools/discord-channel.d.ts.map +0 -1
  166. package/mcp-server/dist/tools/discord-channel.js +0 -236
  167. package/mcp-server/dist/tools/discord-channel.js.map +0 -1
  168. package/mcp-server/dist/tools/discord-guild.d.ts +0 -20
  169. package/mcp-server/dist/tools/discord-guild.d.ts.map +0 -1
  170. package/mcp-server/dist/tools/discord-guild.js +0 -138
  171. package/mcp-server/dist/tools/discord-guild.js.map +0 -1
  172. package/mcp-server/dist/tools/discord-member.d.ts +0 -26
  173. package/mcp-server/dist/tools/discord-member.d.ts.map +0 -1
  174. package/mcp-server/dist/tools/discord-member.js +0 -122
  175. package/mcp-server/dist/tools/discord-member.js.map +0 -1
  176. package/mcp-server/dist/tools/discord-message.d.ts +0 -36
  177. package/mcp-server/dist/tools/discord-message.d.ts.map +0 -1
  178. package/mcp-server/dist/tools/discord-message.js +0 -184
  179. package/mcp-server/dist/tools/discord-message.js.map +0 -1
  180. package/mcp-server/dist/tools/discord-onboarding.d.ts +0 -32
  181. package/mcp-server/dist/tools/discord-onboarding.d.ts.map +0 -1
  182. package/mcp-server/dist/tools/discord-onboarding.js +0 -179
  183. package/mcp-server/dist/tools/discord-onboarding.js.map +0 -1
  184. package/mcp-server/dist/tools/discord-role.d.ts +0 -34
  185. package/mcp-server/dist/tools/discord-role.d.ts.map +0 -1
  186. package/mcp-server/dist/tools/discord-role.js +0 -178
  187. package/mcp-server/dist/tools/discord-role.js.map +0 -1
  188. package/mcp-server/dist/tools/discord-thread.d.ts +0 -28
  189. package/mcp-server/dist/tools/discord-thread.d.ts.map +0 -1
  190. package/mcp-server/dist/tools/discord-thread.js +0 -88
  191. package/mcp-server/dist/tools/discord-thread.js.map +0 -1
  192. package/mcp-server/dist/tools/discord-webhook.d.ts +0 -32
  193. package/mcp-server/dist/tools/discord-webhook.d.ts.map +0 -1
  194. package/mcp-server/dist/tools/discord-webhook.js +0 -154
  195. package/mcp-server/dist/tools/discord-webhook.js.map +0 -1
  196. package/mcp-server/dist/tools/discord.d.ts +0 -7
  197. package/mcp-server/dist/tools/discord.d.ts.map +0 -1
  198. package/mcp-server/dist/tools/discord.js +0 -31
  199. package/mcp-server/dist/tools/discord.js.map +0 -1
  200. package/mcp-server/dist/tools/forget.d.ts +0 -14
  201. package/mcp-server/dist/tools/forget.d.ts.map +0 -1
  202. package/mcp-server/dist/tools/forget.js +0 -26
  203. package/mcp-server/dist/tools/forget.js.map +0 -1
  204. package/mcp-server/dist/tools/git-tools.d.ts +0 -24
  205. package/mcp-server/dist/tools/git-tools.d.ts.map +0 -1
  206. package/mcp-server/dist/tools/git-tools.js +0 -107
  207. package/mcp-server/dist/tools/git-tools.js.map +0 -1
  208. package/mcp-server/dist/tools/git.d.ts +0 -7
  209. package/mcp-server/dist/tools/git.d.ts.map +0 -1
  210. package/mcp-server/dist/tools/git.js +0 -9
  211. package/mcp-server/dist/tools/git.js.map +0 -1
  212. package/mcp-server/dist/tools/image-tools.d.ts +0 -24
  213. package/mcp-server/dist/tools/image-tools.d.ts.map +0 -1
  214. package/mcp-server/dist/tools/image-tools.js +0 -80
  215. package/mcp-server/dist/tools/image-tools.js.map +0 -1
  216. package/mcp-server/dist/tools/image.d.ts +0 -10
  217. package/mcp-server/dist/tools/image.d.ts.map +0 -1
  218. package/mcp-server/dist/tools/image.js +0 -12
  219. package/mcp-server/dist/tools/image.js.map +0 -1
  220. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +0 -97
  221. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +0 -1
  222. package/mcp-server/dist/tools/leonardo-browser-tools.js +0 -228
  223. package/mcp-server/dist/tools/leonardo-browser-tools.js.map +0 -1
  224. package/mcp-server/dist/tools/leonardo.d.ts +0 -13
  225. package/mcp-server/dist/tools/leonardo.d.ts.map +0 -1
  226. package/mcp-server/dist/tools/leonardo.js +0 -19
  227. package/mcp-server/dist/tools/leonardo.js.map +0 -1
  228. package/mcp-server/dist/tools/loop.d.ts +0 -30
  229. package/mcp-server/dist/tools/loop.d.ts.map +0 -1
  230. package/mcp-server/dist/tools/loop.js +0 -302
  231. package/mcp-server/dist/tools/loop.js.map +0 -1
  232. package/mcp-server/dist/tools/memories.d.ts +0 -26
  233. package/mcp-server/dist/tools/memories.d.ts.map +0 -1
  234. package/mcp-server/dist/tools/memories.js +0 -96
  235. package/mcp-server/dist/tools/memories.js.map +0 -1
  236. package/mcp-server/dist/tools/recall.d.ts +0 -41
  237. package/mcp-server/dist/tools/recall.d.ts.map +0 -1
  238. package/mcp-server/dist/tools/recall.js +0 -275
  239. package/mcp-server/dist/tools/recall.js.map +0 -1
  240. package/mcp-server/dist/tools/reflect.d.ts +0 -44
  241. package/mcp-server/dist/tools/reflect.d.ts.map +0 -1
  242. package/mcp-server/dist/tools/reflect.js +0 -118
  243. package/mcp-server/dist/tools/reflect.js.map +0 -1
  244. package/mcp-server/dist/tools/remember.d.ts +0 -38
  245. package/mcp-server/dist/tools/remember.d.ts.map +0 -1
  246. package/mcp-server/dist/tools/remember.js +0 -88
  247. package/mcp-server/dist/tools/remember.js.map +0 -1
  248. package/mcp-server/dist/tools/response.d.ts +0 -23
  249. package/mcp-server/dist/tools/response.d.ts.map +0 -1
  250. package/mcp-server/dist/tools/response.js +0 -24
  251. package/mcp-server/dist/tools/response.js.map +0 -1
  252. package/mcp-server/dist/tools/restore.d.ts +0 -14
  253. package/mcp-server/dist/tools/restore.d.ts.map +0 -1
  254. package/mcp-server/dist/tools/restore.js +0 -23
  255. package/mcp-server/dist/tools/restore.js.map +0 -1
  256. package/mcp-server/dist/tools/sync.d.ts +0 -18
  257. package/mcp-server/dist/tools/sync.d.ts.map +0 -1
  258. package/mcp-server/dist/tools/sync.js +0 -93
  259. package/mcp-server/dist/tools/sync.js.map +0 -1
  260. package/mcp-server/dist/tools/tictactoe-tools.d.ts +0 -18
  261. package/mcp-server/dist/tools/tictactoe-tools.d.ts.map +0 -1
  262. package/mcp-server/dist/tools/tictactoe-tools.js +0 -78
  263. package/mcp-server/dist/tools/tictactoe-tools.js.map +0 -1
  264. package/mcp-server/dist/tools/tictactoe.d.ts +0 -7
  265. package/mcp-server/dist/tools/tictactoe.d.ts.map +0 -1
  266. package/mcp-server/dist/tools/tictactoe.js +0 -9
  267. package/mcp-server/dist/tools/tictactoe.js.map +0 -1
  268. package/mcp-server/dist/tools/utils.d.ts +0 -10
  269. package/mcp-server/dist/tools/utils.d.ts.map +0 -1
  270. package/mcp-server/dist/tools/utils.js +0 -30
  271. package/mcp-server/dist/tools/utils.js.map +0 -1
  272. package/mcp-server/dist/tools/whiteboard-tools.d.ts +0 -194
  273. package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +0 -1
  274. package/mcp-server/dist/tools/whiteboard-tools.js +0 -198
  275. package/mcp-server/dist/tools/whiteboard-tools.js.map +0 -1
  276. package/mcp-server/dist/tools/whiteboard.d.ts +0 -8
  277. package/mcp-server/dist/tools/whiteboard.d.ts.map +0 -1
  278. package/mcp-server/dist/tools/whiteboard.js +0 -14
  279. package/mcp-server/dist/tools/whiteboard.js.map +0 -1
  280. package/mcp-server/dist/tui.d.ts +0 -3
  281. package/mcp-server/dist/tui.d.ts.map +0 -1
  282. package/mcp-server/dist/tui.js +0 -807
  283. package/mcp-server/dist/tui.js.map +0 -1
  284. package/mcp-server/dist/types.d.ts +0 -77
  285. package/mcp-server/dist/types.d.ts.map +0 -1
  286. package/mcp-server/dist/types.js +0 -2
  287. package/mcp-server/dist/types.js.map +0 -1
  288. 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 instance (or MCP-compatible AI tool) can connect to SynaBun and retain knowledge across sessions through semantic vector search. Memories are stored in a local SQLite database with built-in vector search — no external services, no API keys, no Docker.
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** — autonomous observation of user communication patterns, preferences, and behavioral singularity across sessions
76
- - **Claude Code `/synabun` Command** — single slash command hub with interactive menu for brainstorming, auditing, health checks, and memory search
77
- - **Leonardo AI Integration** — 4 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
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 72 tools listed.
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
- │ 72 tools across 9 groups: │
230
- │ Memory (8), Browser (39), │
231
- │ Whiteboard (5), Cards (5), │
232
- │ Discord (8), Leonardo (4), │
233
- │ Git (1), Loop (1), │
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 (72)
256
+ ## MCP Tools (76)
250
257
 
251
- SynaBun exposes 72 tools via the Model Context Protocol, organized into 9 groups:
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
- ### Browser (39 tools)
273
+ ### Profile (1 tool)
267
274
 
268
- 18 general browser automation tools + 21 social media extraction tools, all powered by Playwright with persistent Chromium sessions.
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 (4 tools)
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
- > **Tip:** Use the `/leonardo` skill in Claude Code 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.
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
- ## Claude Code Skills
665
+ ## Skills (Multi-Runtime)
593
666
 
594
- SynaBun ships [Claude Code skills](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials/custom-slash-commands) — slash commands that provide expert-guided workflows.
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 (72 tools).
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 (39 tools), whiteboard (5), cards (5), discord (8), leonardo AI (4), git, loop, tictactoe.
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 (72 tools)
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