@symerian/symi 3.0.21 → 3.0.22

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 (688) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/package.json +1 -1
  4. package/docs/.i18n/README.md +0 -31
  5. package/docs/.i18n/glossary.ja-JP.json +0 -14
  6. package/docs/.i18n/glossary.zh-CN.json +0 -210
  7. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  8. package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
  9. package/docs/CNAME +0 -1
  10. package/docs/assets/install-script.svg +0 -1
  11. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  12. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  13. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  14. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  15. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  16. package/docs/assets/pixel-symi.svg +0 -60
  17. package/docs/assets/showcase/agents-ui.jpg +0 -0
  18. package/docs/assets/showcase/bambu-cli.png +0 -0
  19. package/docs/assets/showcase/codexmonitor.png +0 -0
  20. package/docs/assets/showcase/gohome-grafana.png +0 -0
  21. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  22. package/docs/assets/showcase/oura-health.png +0 -0
  23. package/docs/assets/showcase/padel-cli.svg +0 -11
  24. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  25. package/docs/assets/showcase/papla-tts.jpg +0 -0
  26. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  27. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  28. package/docs/assets/showcase/roborock-status.svg +0 -13
  29. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  30. package/docs/assets/showcase/snag.png +0 -0
  31. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  32. package/docs/assets/showcase/wienerlinien.png +0 -0
  33. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  34. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  35. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  36. package/docs/assets/sponsors/blacksmith.svg +0 -14
  37. package/docs/assets/sponsors/openai.svg +0 -3
  38. package/docs/assets/symi-logo-text-dark.png +0 -0
  39. package/docs/assets/symi-logo-text.png +0 -0
  40. package/docs/automation/auth-monitoring.md +0 -44
  41. package/docs/automation/cron-jobs.md +0 -540
  42. package/docs/automation/cron-vs-heartbeat.md +0 -286
  43. package/docs/automation/gmail-pubsub.md +0 -256
  44. package/docs/automation/hooks.md +0 -998
  45. package/docs/automation/poll.md +0 -61
  46. package/docs/automation/troubleshooting.md +0 -122
  47. package/docs/automation/webhook.md +0 -213
  48. package/docs/brave-search.md +0 -41
  49. package/docs/capabilities.md +0 -151
  50. package/docs/channels/bluebubbles.md +0 -346
  51. package/docs/channels/broadcast-groups.md +0 -441
  52. package/docs/channels/channel-routing.md +0 -112
  53. package/docs/channels/feishu.md +0 -586
  54. package/docs/channels/googlechat.md +0 -253
  55. package/docs/channels/grammy.md +0 -31
  56. package/docs/channels/group-messages.md +0 -82
  57. package/docs/channels/groups.md +0 -364
  58. package/docs/channels/imessage.md +0 -366
  59. package/docs/channels/index.md +0 -46
  60. package/docs/channels/irc.md +0 -234
  61. package/docs/channels/line.md +0 -186
  62. package/docs/channels/location.md +0 -56
  63. package/docs/channels/matrix.md +0 -300
  64. package/docs/channels/mattermost.md +0 -158
  65. package/docs/channels/msteams.md +0 -769
  66. package/docs/channels/nextcloud-talk.md +0 -138
  67. package/docs/channels/nostr.md +0 -233
  68. package/docs/channels/pairing.md +0 -100
  69. package/docs/channels/signal.md +0 -322
  70. package/docs/channels/slack.md +0 -510
  71. package/docs/channels/telegram.md +0 -748
  72. package/docs/channels/tlon.md +0 -148
  73. package/docs/channels/troubleshooting.md +0 -110
  74. package/docs/channels/twitch.md +0 -379
  75. package/docs/channels/whatsapp.md +0 -444
  76. package/docs/channels/zalo.md +0 -192
  77. package/docs/channels/zalouser.md +0 -140
  78. package/docs/ci.md +0 -50
  79. package/docs/cli/acp.md +0 -182
  80. package/docs/cli/agent.md +0 -24
  81. package/docs/cli/agents.md +0 -75
  82. package/docs/cli/approvals.md +0 -50
  83. package/docs/cli/browser.md +0 -107
  84. package/docs/cli/channels.md +0 -73
  85. package/docs/cli/config.md +0 -50
  86. package/docs/cli/configure.md +0 -32
  87. package/docs/cli/cron.md +0 -44
  88. package/docs/cli/dashboard.md +0 -16
  89. package/docs/cli/devices.md +0 -73
  90. package/docs/cli/directory.md +0 -62
  91. package/docs/cli/dns.md +0 -23
  92. package/docs/cli/docs.md +0 -15
  93. package/docs/cli/doctor.md +0 -41
  94. package/docs/cli/gateway.md +0 -202
  95. package/docs/cli/health.md +0 -21
  96. package/docs/cli/hooks.md +0 -313
  97. package/docs/cli/index.md +0 -1029
  98. package/docs/cli/logs.md +0 -28
  99. package/docs/cli/memory.md +0 -45
  100. package/docs/cli/message.md +0 -214
  101. package/docs/cli/models.md +0 -79
  102. package/docs/cli/node.md +0 -112
  103. package/docs/cli/nodes.md +0 -73
  104. package/docs/cli/onboard.md +0 -76
  105. package/docs/cli/pairing.md +0 -21
  106. package/docs/cli/plugins.md +0 -92
  107. package/docs/cli/reset.md +0 -17
  108. package/docs/cli/sandbox.md +0 -152
  109. package/docs/cli/security.md +0 -64
  110. package/docs/cli/sessions.md +0 -16
  111. package/docs/cli/setup.md +0 -29
  112. package/docs/cli/skills.md +0 -26
  113. package/docs/cli/status.md +0 -25
  114. package/docs/cli/system.md +0 -60
  115. package/docs/cli/tui.md +0 -23
  116. package/docs/cli/uninstall.md +0 -17
  117. package/docs/cli/update.md +0 -98
  118. package/docs/cli/voicecall.md +0 -34
  119. package/docs/cli/webhooks.md +0 -25
  120. package/docs/concepts/agent-loop.md +0 -148
  121. package/docs/concepts/agent-workspace.md +0 -234
  122. package/docs/concepts/agent.md +0 -123
  123. package/docs/concepts/architecture.md +0 -135
  124. package/docs/concepts/compaction.md +0 -61
  125. package/docs/concepts/context.md +0 -161
  126. package/docs/concepts/features.md +0 -51
  127. package/docs/concepts/markdown-formatting.md +0 -128
  128. package/docs/concepts/memory.md +0 -729
  129. package/docs/concepts/messages.md +0 -153
  130. package/docs/concepts/model-failover.md +0 -149
  131. package/docs/concepts/model-providers.md +0 -424
  132. package/docs/concepts/models.md +0 -208
  133. package/docs/concepts/multi-agent.md +0 -521
  134. package/docs/concepts/oauth.md +0 -145
  135. package/docs/concepts/presence.md +0 -102
  136. package/docs/concepts/queue.md +0 -86
  137. package/docs/concepts/retry.md +0 -64
  138. package/docs/concepts/session-pruning.md +0 -123
  139. package/docs/concepts/session-tool.md +0 -213
  140. package/docs/concepts/session.md +0 -199
  141. package/docs/concepts/sessions.md +0 -10
  142. package/docs/concepts/streaming.md +0 -129
  143. package/docs/concepts/system-prompt.md +0 -128
  144. package/docs/concepts/timezone.md +0 -90
  145. package/docs/concepts/typebox.md +0 -289
  146. package/docs/concepts/typing-indicators.md +0 -68
  147. package/docs/concepts/usage-tracking.md +0 -35
  148. package/docs/date-time.md +0 -127
  149. package/docs/debug/node-issue.md +0 -85
  150. package/docs/diagnostics/flags.md +0 -91
  151. package/docs/docs.json +0 -1849
  152. package/docs/experiments/onboarding-config-protocol.md +0 -40
  153. package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
  154. package/docs/experiments/plans/cron-add-hardening.md +0 -62
  155. package/docs/experiments/plans/group-policy-hardening.md +0 -40
  156. package/docs/experiments/plans/openresponses-gateway.md +0 -123
  157. package/docs/experiments/plans/pty-process-supervision.md +0 -192
  158. package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
  159. package/docs/experiments/plans/thread-bound-subagents.md +0 -281
  160. package/docs/experiments/proposals/model-config.md +0 -36
  161. package/docs/experiments/research/memory.md +0 -228
  162. package/docs/gateway/authentication.md +0 -162
  163. package/docs/gateway/background-process.md +0 -96
  164. package/docs/gateway/bonjour.md +0 -177
  165. package/docs/gateway/bridge-protocol.md +0 -91
  166. package/docs/gateway/cli-backends.md +0 -225
  167. package/docs/gateway/configuration-examples.md +0 -610
  168. package/docs/gateway/configuration-reference.md +0 -2465
  169. package/docs/gateway/configuration.md +0 -488
  170. package/docs/gateway/discovery.md +0 -123
  171. package/docs/gateway/doctor.md +0 -282
  172. package/docs/gateway/gateway-lock.md +0 -34
  173. package/docs/gateway/health.md +0 -35
  174. package/docs/gateway/heartbeat.md +0 -374
  175. package/docs/gateway/index.md +0 -254
  176. package/docs/gateway/local-models.md +0 -150
  177. package/docs/gateway/logging.md +0 -113
  178. package/docs/gateway/multiple-gateways.md +0 -112
  179. package/docs/gateway/network-model.md +0 -20
  180. package/docs/gateway/openai-http-api.md +0 -119
  181. package/docs/gateway/openresponses-http-api.md +0 -333
  182. package/docs/gateway/pairing.md +0 -99
  183. package/docs/gateway/protocol.md +0 -221
  184. package/docs/gateway/remote-gateway-readme.md +0 -158
  185. package/docs/gateway/remote.md +0 -131
  186. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
  187. package/docs/gateway/sandboxing.md +0 -203
  188. package/docs/gateway/security/index.md +0 -931
  189. package/docs/gateway/tailscale.md +0 -132
  190. package/docs/gateway/tools-invoke-http-api.md +0 -110
  191. package/docs/gateway/troubleshooting.md +0 -317
  192. package/docs/gateway/trusted-proxy-auth.md +0 -270
  193. package/docs/glass-ui-rendering-invariants.md +0 -451
  194. package/docs/help/debugging.md +0 -162
  195. package/docs/help/environment.md +0 -107
  196. package/docs/help/faq.md +0 -2846
  197. package/docs/help/index.md +0 -21
  198. package/docs/help/scripts.md +0 -28
  199. package/docs/help/testing.md +0 -385
  200. package/docs/help/troubleshooting.md +0 -264
  201. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  202. package/docs/images/feishu-step2-create-app.png +0 -0
  203. package/docs/images/feishu-step3-credentials.png +0 -0
  204. package/docs/images/feishu-step4-permissions.png +0 -0
  205. package/docs/images/feishu-step5-bot-capability.png +0 -0
  206. package/docs/images/feishu-step6-event-subscription.png +0 -0
  207. package/docs/images/groups-flow.svg +0 -52
  208. package/docs/images/mobile-ui-screenshot.png +0 -0
  209. package/docs/index.md +0 -186
  210. package/docs/install/ansible.md +0 -207
  211. package/docs/install/bun.md +0 -59
  212. package/docs/install/development-channels.md +0 -75
  213. package/docs/install/docker.md +0 -583
  214. package/docs/install/exe-dev.md +0 -126
  215. package/docs/install/fly.md +0 -472
  216. package/docs/install/gcp.md +0 -499
  217. package/docs/install/hetzner.md +0 -347
  218. package/docs/install/index.md +0 -218
  219. package/docs/install/installer.md +0 -405
  220. package/docs/install/macos-vm.md +0 -281
  221. package/docs/install/migrating.md +0 -192
  222. package/docs/install/nix.md +0 -98
  223. package/docs/install/node.md +0 -138
  224. package/docs/install/northflank.mdx +0 -49
  225. package/docs/install/podman.md +0 -108
  226. package/docs/install/railway.mdx +0 -95
  227. package/docs/install/render.mdx +0 -158
  228. package/docs/install/uninstall.md +0 -128
  229. package/docs/install/updating.md +0 -231
  230. package/docs/ja-JP/AGENTS.md +0 -37
  231. package/docs/ja-JP/index.md +0 -183
  232. package/docs/ja-JP/start/getting-started.md +0 -125
  233. package/docs/ja-JP/start/wizard.md +0 -77
  234. package/docs/logging.md +0 -350
  235. package/docs/nav-tabs-underline.js +0 -100
  236. package/docs/network.md +0 -54
  237. package/docs/nodes/audio.md +0 -133
  238. package/docs/nodes/camera.md +0 -156
  239. package/docs/nodes/images.md +0 -72
  240. package/docs/nodes/index.md +0 -342
  241. package/docs/nodes/location-command.md +0 -113
  242. package/docs/nodes/media-understanding.md +0 -379
  243. package/docs/nodes/talk.md +0 -90
  244. package/docs/nodes/troubleshooting.md +0 -112
  245. package/docs/nodes/voicewake.md +0 -65
  246. package/docs/perplexity.md +0 -80
  247. package/docs/phase-6.5-pre-flight-audit.md +0 -268
  248. package/docs/pi-dev.md +0 -70
  249. package/docs/pi.md +0 -610
  250. package/docs/platforms/android.md +0 -151
  251. package/docs/platforms/digitalocean.md +0 -265
  252. package/docs/platforms/index.md +0 -53
  253. package/docs/platforms/ios.md +0 -108
  254. package/docs/platforms/linux.md +0 -94
  255. package/docs/platforms/mac/bundled-gateway.md +0 -73
  256. package/docs/platforms/mac/canvas.md +0 -125
  257. package/docs/platforms/mac/child-process.md +0 -69
  258. package/docs/platforms/mac/dev-setup.md +0 -104
  259. package/docs/platforms/mac/health.md +0 -34
  260. package/docs/platforms/mac/icon.md +0 -31
  261. package/docs/platforms/mac/logging.md +0 -57
  262. package/docs/platforms/mac/menu-bar.md +0 -81
  263. package/docs/platforms/mac/peekaboo.md +0 -65
  264. package/docs/platforms/mac/permissions.md +0 -50
  265. package/docs/platforms/mac/release.md +0 -85
  266. package/docs/platforms/mac/remote.md +0 -84
  267. package/docs/platforms/mac/signing.md +0 -47
  268. package/docs/platforms/mac/skills.md +0 -33
  269. package/docs/platforms/mac/voice-overlay.md +0 -60
  270. package/docs/platforms/mac/voicewake.md +0 -66
  271. package/docs/platforms/mac/webchat.md +0 -43
  272. package/docs/platforms/mac/xpc.md +0 -61
  273. package/docs/platforms/macos.md +0 -204
  274. package/docs/platforms/oracle.md +0 -303
  275. package/docs/platforms/raspberry-pi.md +0 -358
  276. package/docs/platforms/windows.md +0 -159
  277. package/docs/plugins/agent-tools.md +0 -99
  278. package/docs/plugins/community.md +0 -44
  279. package/docs/plugins/manifest.md +0 -71
  280. package/docs/plugins/voice-call.md +0 -322
  281. package/docs/plugins/zalouser.md +0 -81
  282. package/docs/prose.md +0 -134
  283. package/docs/providers/anthropic.md +0 -174
  284. package/docs/providers/bedrock.md +0 -176
  285. package/docs/providers/claude-max-api-proxy.md +0 -148
  286. package/docs/providers/cloudflare-ai-gateway.md +0 -71
  287. package/docs/providers/deepgram.md +0 -93
  288. package/docs/providers/github-copilot.md +0 -72
  289. package/docs/providers/glm.md +0 -33
  290. package/docs/providers/huggingface.md +0 -209
  291. package/docs/providers/index.md +0 -67
  292. package/docs/providers/litellm.md +0 -153
  293. package/docs/providers/minimax.md +0 -208
  294. package/docs/providers/models.md +0 -52
  295. package/docs/providers/moonshot.md +0 -142
  296. package/docs/providers/nvidia.md +0 -55
  297. package/docs/providers/ollama.md +0 -250
  298. package/docs/providers/openai.md +0 -62
  299. package/docs/providers/opencode.md +0 -36
  300. package/docs/providers/openrouter.md +0 -37
  301. package/docs/providers/qianfan.md +0 -38
  302. package/docs/providers/qwen.md +0 -53
  303. package/docs/providers/synthetic.md +0 -99
  304. package/docs/providers/together.md +0 -65
  305. package/docs/providers/venice.md +0 -267
  306. package/docs/providers/vercel-ai-gateway.md +0 -50
  307. package/docs/providers/vllm.md +0 -92
  308. package/docs/providers/xiaomi.md +0 -64
  309. package/docs/providers/zai.md +0 -38
  310. package/docs/refactor/exec-host.md +0 -316
  311. package/docs/refactor/outbound-session-mirroring.md +0 -83
  312. package/docs/refactor/plugin-sdk.md +0 -214
  313. package/docs/refactor/strict-config.md +0 -93
  314. package/docs/refactor/syminet.md +0 -417
  315. package/docs/reference/AGENTS.default.md +0 -123
  316. package/docs/reference/RELEASING.md +0 -120
  317. package/docs/reference/api-usage-costs.md +0 -138
  318. package/docs/reference/credits.md +0 -28
  319. package/docs/reference/device-models.md +0 -47
  320. package/docs/reference/rpc.md +0 -43
  321. package/docs/reference/session-management-compaction.md +0 -284
  322. package/docs/reference/test.md +0 -51
  323. package/docs/reference/token-use.md +0 -136
  324. package/docs/reference/transcript-hygiene.md +0 -151
  325. package/docs/reference/wizard.md +0 -265
  326. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
  327. package/docs/security/README.md +0 -16
  328. package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
  329. package/docs/security/formal-verification.md +0 -164
  330. package/docs/start/bootstrapping.md +0 -41
  331. package/docs/start/docs-directory.md +0 -63
  332. package/docs/start/getting-started.md +0 -135
  333. package/docs/start/hubs.md +0 -196
  334. package/docs/start/lore.md +0 -216
  335. package/docs/start/onboarding-overview.md +0 -51
  336. package/docs/start/onboarding.md +0 -81
  337. package/docs/start/quickstart.md +0 -22
  338. package/docs/start/setup.md +0 -160
  339. package/docs/start/showcase.md +0 -414
  340. package/docs/start/symi.md +0 -211
  341. package/docs/start/wizard-cli-automation.md +0 -158
  342. package/docs/start/wizard-cli-reference.md +0 -255
  343. package/docs/start/wizard.md +0 -109
  344. package/docs/style.css +0 -37
  345. package/docs/tools/agent-send.md +0 -52
  346. package/docs/tools/apply-patch.md +0 -51
  347. package/docs/tools/browser-linux-troubleshooting.md +0 -139
  348. package/docs/tools/browser-login.md +0 -67
  349. package/docs/tools/browser.md +0 -587
  350. package/docs/tools/chrome-extension.md +0 -183
  351. package/docs/tools/creating-skills.md +0 -54
  352. package/docs/tools/elevated.md +0 -55
  353. package/docs/tools/exec-approvals.md +0 -261
  354. package/docs/tools/exec.md +0 -184
  355. package/docs/tools/firecrawl.md +0 -61
  356. package/docs/tools/index.md +0 -540
  357. package/docs/tools/llm-task.md +0 -115
  358. package/docs/tools/loop-detection.md +0 -98
  359. package/docs/tools/multi-agent-sandbox-tools.md +0 -396
  360. package/docs/tools/pipeline.md +0 -340
  361. package/docs/tools/plugin.md +0 -687
  362. package/docs/tools/reactions.md +0 -21
  363. package/docs/tools/skills-config.md +0 -76
  364. package/docs/tools/skills.md +0 -300
  365. package/docs/tools/slash-commands.md +0 -202
  366. package/docs/tools/subagents.md +0 -232
  367. package/docs/tools/symihub.md +0 -256
  368. package/docs/tools/thinking.md +0 -75
  369. package/docs/tools/web.md +0 -265
  370. package/docs/tts.md +0 -398
  371. package/docs/vps.md +0 -43
  372. package/docs/web/control-ui.md +0 -247
  373. package/docs/web/dashboard.md +0 -46
  374. package/docs/web/index.md +0 -118
  375. package/docs/web/tui.md +0 -162
  376. package/docs/web/webchat.md +0 -53
  377. package/docs/whatsapp-symi-ai-zh.jpg +0 -0
  378. package/docs/whatsapp-symi.jpg +0 -0
  379. package/docs/zh-CN/AGENTS.md +0 -59
  380. package/docs/zh-CN/automation/auth-monitoring.md +0 -47
  381. package/docs/zh-CN/automation/cron-jobs.md +0 -422
  382. package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
  383. package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
  384. package/docs/zh-CN/automation/hooks.md +0 -881
  385. package/docs/zh-CN/automation/poll.md +0 -68
  386. package/docs/zh-CN/automation/troubleshooting.md +0 -8
  387. package/docs/zh-CN/automation/webhook.md +0 -161
  388. package/docs/zh-CN/brave-search.md +0 -48
  389. package/docs/zh-CN/channels/bluebubbles.md +0 -271
  390. package/docs/zh-CN/channels/broadcast-groups.md +0 -448
  391. package/docs/zh-CN/channels/channel-routing.md +0 -112
  392. package/docs/zh-CN/channels/feishu.md +0 -629
  393. package/docs/zh-CN/channels/googlechat.md +0 -257
  394. package/docs/zh-CN/channels/grammy.md +0 -38
  395. package/docs/zh-CN/channels/group-messages.md +0 -89
  396. package/docs/zh-CN/channels/groups.md +0 -369
  397. package/docs/zh-CN/channels/imessage.md +0 -300
  398. package/docs/zh-CN/channels/index.md +0 -52
  399. package/docs/zh-CN/channels/line.md +0 -180
  400. package/docs/zh-CN/channels/location.md +0 -63
  401. package/docs/zh-CN/channels/matrix.md +0 -221
  402. package/docs/zh-CN/channels/mattermost.md +0 -144
  403. package/docs/zh-CN/channels/msteams.md +0 -773
  404. package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
  405. package/docs/zh-CN/channels/nostr.md +0 -240
  406. package/docs/zh-CN/channels/pairing.md +0 -86
  407. package/docs/zh-CN/channels/signal.md +0 -207
  408. package/docs/zh-CN/channels/slack.md +0 -529
  409. package/docs/zh-CN/channels/telegram.md +0 -748
  410. package/docs/zh-CN/channels/tlon.md +0 -136
  411. package/docs/zh-CN/channels/troubleshooting.md +0 -34
  412. package/docs/zh-CN/channels/twitch.md +0 -385
  413. package/docs/zh-CN/channels/whatsapp.md +0 -411
  414. package/docs/zh-CN/channels/zalo.md +0 -196
  415. package/docs/zh-CN/channels/zalouser.md +0 -147
  416. package/docs/zh-CN/cli/acp.md +0 -173
  417. package/docs/zh-CN/cli/agent.md +0 -30
  418. package/docs/zh-CN/cli/agents.md +0 -82
  419. package/docs/zh-CN/cli/approvals.md +0 -57
  420. package/docs/zh-CN/cli/browser.md +0 -114
  421. package/docs/zh-CN/cli/channels.md +0 -80
  422. package/docs/zh-CN/cli/config.md +0 -57
  423. package/docs/zh-CN/cli/configure.md +0 -37
  424. package/docs/zh-CN/cli/cron.md +0 -43
  425. package/docs/zh-CN/cli/dashboard.md +0 -23
  426. package/docs/zh-CN/cli/devices.md +0 -74
  427. package/docs/zh-CN/cli/directory.md +0 -69
  428. package/docs/zh-CN/cli/dns.md +0 -30
  429. package/docs/zh-CN/cli/docs.md +0 -22
  430. package/docs/zh-CN/cli/doctor.md +0 -48
  431. package/docs/zh-CN/cli/gateway.md +0 -206
  432. package/docs/zh-CN/cli/health.md +0 -28
  433. package/docs/zh-CN/cli/hooks.md +0 -298
  434. package/docs/zh-CN/cli/index.md +0 -1025
  435. package/docs/zh-CN/cli/logs.md +0 -31
  436. package/docs/zh-CN/cli/memory.md +0 -52
  437. package/docs/zh-CN/cli/message.md +0 -205
  438. package/docs/zh-CN/cli/models.md +0 -85
  439. package/docs/zh-CN/cli/node.md +0 -115
  440. package/docs/zh-CN/cli/nodes.md +0 -80
  441. package/docs/zh-CN/cli/onboard.md +0 -36
  442. package/docs/zh-CN/cli/pairing.md +0 -28
  443. package/docs/zh-CN/cli/plugins.md +0 -66
  444. package/docs/zh-CN/cli/reset.md +0 -24
  445. package/docs/zh-CN/cli/sandbox.md +0 -158
  446. package/docs/zh-CN/cli/security.md +0 -33
  447. package/docs/zh-CN/cli/sessions.md +0 -23
  448. package/docs/zh-CN/cli/setup.md +0 -36
  449. package/docs/zh-CN/cli/skills.md +0 -33
  450. package/docs/zh-CN/cli/status.md +0 -32
  451. package/docs/zh-CN/cli/system.md +0 -63
  452. package/docs/zh-CN/cli/tui.md +0 -30
  453. package/docs/zh-CN/cli/uninstall.md +0 -24
  454. package/docs/zh-CN/cli/update.md +0 -101
  455. package/docs/zh-CN/cli/voicecall.md +0 -41
  456. package/docs/zh-CN/cli/webhooks.md +0 -32
  457. package/docs/zh-CN/concepts/agent-loop.md +0 -146
  458. package/docs/zh-CN/concepts/agent-workspace.md +0 -219
  459. package/docs/zh-CN/concepts/agent.md +0 -115
  460. package/docs/zh-CN/concepts/architecture.md +0 -122
  461. package/docs/zh-CN/concepts/compaction.md +0 -67
  462. package/docs/zh-CN/concepts/context.md +0 -168
  463. package/docs/zh-CN/concepts/features.md +0 -57
  464. package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
  465. package/docs/zh-CN/concepts/memory.md +0 -412
  466. package/docs/zh-CN/concepts/messages.md +0 -140
  467. package/docs/zh-CN/concepts/model-failover.md +0 -145
  468. package/docs/zh-CN/concepts/model-providers.md +0 -320
  469. package/docs/zh-CN/concepts/models.md +0 -196
  470. package/docs/zh-CN/concepts/multi-agent.md +0 -371
  471. package/docs/zh-CN/concepts/oauth.md +0 -151
  472. package/docs/zh-CN/concepts/presence.md +0 -99
  473. package/docs/zh-CN/concepts/queue.md +0 -91
  474. package/docs/zh-CN/concepts/retry.md +0 -71
  475. package/docs/zh-CN/concepts/session-pruning.md +0 -129
  476. package/docs/zh-CN/concepts/session-tool.md +0 -198
  477. package/docs/zh-CN/concepts/session.md +0 -158
  478. package/docs/zh-CN/concepts/sessions.md +0 -17
  479. package/docs/zh-CN/concepts/streaming.md +0 -131
  480. package/docs/zh-CN/concepts/system-prompt.md +0 -99
  481. package/docs/zh-CN/concepts/timezone.md +0 -94
  482. package/docs/zh-CN/concepts/typebox.md +0 -284
  483. package/docs/zh-CN/concepts/typing-indicators.md +0 -74
  484. package/docs/zh-CN/concepts/usage-tracking.md +0 -42
  485. package/docs/zh-CN/date-time.md +0 -128
  486. package/docs/zh-CN/debug/node-issue.md +0 -90
  487. package/docs/zh-CN/diagnostics/flags.md +0 -98
  488. package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
  489. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
  490. package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
  491. package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
  492. package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
  493. package/docs/zh-CN/experiments/research/memory.md +0 -235
  494. package/docs/zh-CN/gateway/authentication.md +0 -142
  495. package/docs/zh-CN/gateway/background-process.md +0 -100
  496. package/docs/zh-CN/gateway/bonjour.md +0 -174
  497. package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
  498. package/docs/zh-CN/gateway/cli-backends.md +0 -213
  499. package/docs/zh-CN/gateway/configuration-examples.md +0 -580
  500. package/docs/zh-CN/gateway/configuration.md +0 -3284
  501. package/docs/zh-CN/gateway/discovery.md +0 -123
  502. package/docs/zh-CN/gateway/doctor.md +0 -238
  503. package/docs/zh-CN/gateway/gateway-lock.md +0 -41
  504. package/docs/zh-CN/gateway/health.md +0 -42
  505. package/docs/zh-CN/gateway/heartbeat.md +0 -272
  506. package/docs/zh-CN/gateway/index.md +0 -335
  507. package/docs/zh-CN/gateway/local-models.md +0 -157
  508. package/docs/zh-CN/gateway/logging.md +0 -114
  509. package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
  510. package/docs/zh-CN/gateway/network-model.md +0 -23
  511. package/docs/zh-CN/gateway/openai-http-api.md +0 -125
  512. package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
  513. package/docs/zh-CN/gateway/pairing.md +0 -99
  514. package/docs/zh-CN/gateway/protocol.md +0 -220
  515. package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
  516. package/docs/zh-CN/gateway/remote.md +0 -133
  517. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
  518. package/docs/zh-CN/gateway/sandboxing.md +0 -188
  519. package/docs/zh-CN/gateway/security/index.md +0 -772
  520. package/docs/zh-CN/gateway/tailscale.md +0 -124
  521. package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
  522. package/docs/zh-CN/gateway/troubleshooting.md +0 -758
  523. package/docs/zh-CN/help/debugging.md +0 -160
  524. package/docs/zh-CN/help/environment.md +0 -88
  525. package/docs/zh-CN/help/faq.md +0 -2613
  526. package/docs/zh-CN/help/index.md +0 -28
  527. package/docs/zh-CN/help/scripts.md +0 -35
  528. package/docs/zh-CN/help/testing.md +0 -375
  529. package/docs/zh-CN/help/troubleshooting.md +0 -104
  530. package/docs/zh-CN/index.md +0 -183
  531. package/docs/zh-CN/install/ansible.md +0 -214
  532. package/docs/zh-CN/install/bun.md +0 -65
  533. package/docs/zh-CN/install/development-channels.md +0 -81
  534. package/docs/zh-CN/install/docker.md +0 -525
  535. package/docs/zh-CN/install/exe-dev.md +0 -127
  536. package/docs/zh-CN/install/fly.md +0 -476
  537. package/docs/zh-CN/install/gcp.md +0 -509
  538. package/docs/zh-CN/install/hetzner.md +0 -336
  539. package/docs/zh-CN/install/index.md +0 -193
  540. package/docs/zh-CN/install/installer.md +0 -128
  541. package/docs/zh-CN/install/macos-vm.md +0 -288
  542. package/docs/zh-CN/install/migrating.md +0 -199
  543. package/docs/zh-CN/install/nix.md +0 -99
  544. package/docs/zh-CN/install/node.md +0 -8
  545. package/docs/zh-CN/install/northflank.mdx +0 -56
  546. package/docs/zh-CN/install/railway.mdx +0 -102
  547. package/docs/zh-CN/install/render.mdx +0 -168
  548. package/docs/zh-CN/install/uninstall.md +0 -135
  549. package/docs/zh-CN/install/updating.md +0 -233
  550. package/docs/zh-CN/logging.md +0 -329
  551. package/docs/zh-CN/network.md +0 -59
  552. package/docs/zh-CN/nodes/audio.md +0 -120
  553. package/docs/zh-CN/nodes/camera.md +0 -162
  554. package/docs/zh-CN/nodes/images.md +0 -79
  555. package/docs/zh-CN/nodes/index.md +0 -348
  556. package/docs/zh-CN/nodes/location-command.md +0 -120
  557. package/docs/zh-CN/nodes/media-understanding.md +0 -380
  558. package/docs/zh-CN/nodes/talk.md +0 -97
  559. package/docs/zh-CN/nodes/troubleshooting.md +0 -8
  560. package/docs/zh-CN/nodes/voicewake.md +0 -72
  561. package/docs/zh-CN/perplexity.md +0 -84
  562. package/docs/zh-CN/pi-dev.md +0 -77
  563. package/docs/zh-CN/pi.md +0 -617
  564. package/docs/zh-CN/platforms/android.md +0 -155
  565. package/docs/zh-CN/platforms/digitalocean.md +0 -268
  566. package/docs/zh-CN/platforms/index.md +0 -60
  567. package/docs/zh-CN/platforms/ios.md +0 -114
  568. package/docs/zh-CN/platforms/linux.md +0 -101
  569. package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
  570. package/docs/zh-CN/platforms/mac/canvas.md +0 -128
  571. package/docs/zh-CN/platforms/mac/child-process.md +0 -73
  572. package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
  573. package/docs/zh-CN/platforms/mac/health.md +0 -41
  574. package/docs/zh-CN/platforms/mac/icon.md +0 -38
  575. package/docs/zh-CN/platforms/mac/logging.md +0 -64
  576. package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
  577. package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
  578. package/docs/zh-CN/platforms/mac/permissions.md +0 -46
  579. package/docs/zh-CN/platforms/mac/release.md +0 -92
  580. package/docs/zh-CN/platforms/mac/remote.md +0 -90
  581. package/docs/zh-CN/platforms/mac/signing.md +0 -54
  582. package/docs/zh-CN/platforms/mac/skills.md +0 -40
  583. package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
  584. package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
  585. package/docs/zh-CN/platforms/mac/webchat.md +0 -43
  586. package/docs/zh-CN/platforms/mac/xpc.md +0 -68
  587. package/docs/zh-CN/platforms/macos.md +0 -193
  588. package/docs/zh-CN/platforms/oracle.md +0 -310
  589. package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
  590. package/docs/zh-CN/platforms/windows.md +0 -156
  591. package/docs/zh-CN/plugins/agent-tools.md +0 -99
  592. package/docs/zh-CN/plugins/manifest.md +0 -68
  593. package/docs/zh-CN/plugins/voice-call.md +0 -250
  594. package/docs/zh-CN/plugins/zalouser.md +0 -88
  595. package/docs/zh-CN/prose.md +0 -141
  596. package/docs/zh-CN/providers/anthropic.md +0 -159
  597. package/docs/zh-CN/providers/bedrock.md +0 -170
  598. package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
  599. package/docs/zh-CN/providers/deepgram.md +0 -97
  600. package/docs/zh-CN/providers/github-copilot.md +0 -67
  601. package/docs/zh-CN/providers/glm.md +0 -39
  602. package/docs/zh-CN/providers/index.md +0 -66
  603. package/docs/zh-CN/providers/minimax.md +0 -206
  604. package/docs/zh-CN/providers/models.md +0 -55
  605. package/docs/zh-CN/providers/moonshot.md +0 -145
  606. package/docs/zh-CN/providers/ollama.md +0 -230
  607. package/docs/zh-CN/providers/openai.md +0 -68
  608. package/docs/zh-CN/providers/opencode.md +0 -41
  609. package/docs/zh-CN/providers/openrouter.md +0 -43
  610. package/docs/zh-CN/providers/qianfan.md +0 -8
  611. package/docs/zh-CN/providers/qwen.md +0 -55
  612. package/docs/zh-CN/providers/synthetic.md +0 -102
  613. package/docs/zh-CN/providers/venice.md +0 -274
  614. package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
  615. package/docs/zh-CN/providers/xiaomi.md +0 -68
  616. package/docs/zh-CN/providers/zai.md +0 -41
  617. package/docs/zh-CN/refactor/exec-host.md +0 -323
  618. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
  619. package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
  620. package/docs/zh-CN/refactor/strict-config.md +0 -100
  621. package/docs/zh-CN/refactor/syminet.md +0 -424
  622. package/docs/zh-CN/reference/AGENTS.default.md +0 -130
  623. package/docs/zh-CN/reference/RELEASING.md +0 -122
  624. package/docs/zh-CN/reference/api-usage-costs.md +0 -136
  625. package/docs/zh-CN/reference/credits.md +0 -34
  626. package/docs/zh-CN/reference/device-models.md +0 -54
  627. package/docs/zh-CN/reference/rpc.md +0 -48
  628. package/docs/zh-CN/reference/session-management-compaction.md +0 -286
  629. package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
  630. package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
  631. package/docs/zh-CN/reference/templates/BOOT.md +0 -17
  632. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
  633. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
  634. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  635. package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
  636. package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
  637. package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
  638. package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
  639. package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
  640. package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
  641. package/docs/zh-CN/reference/templates/USER.md +0 -30
  642. package/docs/zh-CN/reference/test.md +0 -57
  643. package/docs/zh-CN/reference/token-use.md +0 -119
  644. package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
  645. package/docs/zh-CN/reference/wizard.md +0 -9
  646. package/docs/zh-CN/security/formal-verification.md +0 -171
  647. package/docs/zh-CN/start/bootstrapping.md +0 -9
  648. package/docs/zh-CN/start/docs-directory.md +0 -69
  649. package/docs/zh-CN/start/getting-started.md +0 -201
  650. package/docs/zh-CN/start/hubs.md +0 -199
  651. package/docs/zh-CN/start/lore.md +0 -223
  652. package/docs/zh-CN/start/onboarding.md +0 -105
  653. package/docs/zh-CN/start/quickstart.md +0 -88
  654. package/docs/zh-CN/start/setup.md +0 -151
  655. package/docs/zh-CN/start/showcase.md +0 -421
  656. package/docs/zh-CN/start/symi.md +0 -244
  657. package/docs/zh-CN/start/wizard.md +0 -326
  658. package/docs/zh-CN/tools/agent-send.md +0 -58
  659. package/docs/zh-CN/tools/apply-patch.md +0 -57
  660. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
  661. package/docs/zh-CN/tools/browser-login.md +0 -75
  662. package/docs/zh-CN/tools/browser.md +0 -553
  663. package/docs/zh-CN/tools/chrome-extension.md +0 -183
  664. package/docs/zh-CN/tools/creating-skills.md +0 -61
  665. package/docs/zh-CN/tools/elevated.md +0 -62
  666. package/docs/zh-CN/tools/exec-approvals.md +0 -233
  667. package/docs/zh-CN/tools/exec.md +0 -169
  668. package/docs/zh-CN/tools/firecrawl.md +0 -68
  669. package/docs/zh-CN/tools/index.md +0 -508
  670. package/docs/zh-CN/tools/llm-task.md +0 -117
  671. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
  672. package/docs/zh-CN/tools/pipeline.md +0 -349
  673. package/docs/zh-CN/tools/plugin.md +0 -639
  674. package/docs/zh-CN/tools/reactions.md +0 -28
  675. package/docs/zh-CN/tools/skills-config.md +0 -78
  676. package/docs/zh-CN/tools/skills.md +0 -279
  677. package/docs/zh-CN/tools/slash-commands.md +0 -196
  678. package/docs/zh-CN/tools/subagents.md +0 -167
  679. package/docs/zh-CN/tools/symihub.md +0 -209
  680. package/docs/zh-CN/tools/thinking.md +0 -80
  681. package/docs/zh-CN/tools/web.md +0 -257
  682. package/docs/zh-CN/tts.md +0 -373
  683. package/docs/zh-CN/vps.md +0 -47
  684. package/docs/zh-CN/web/control-ui.md +0 -190
  685. package/docs/zh-CN/web/dashboard.md +0 -53
  686. package/docs/zh-CN/web/index.md +0 -118
  687. package/docs/zh-CN/web/tui.md +0 -166
  688. package/docs/zh-CN/web/webchat.md +0 -56
@@ -1,998 +0,0 @@
1
- ---
2
- summary: "Hooks: event-driven automation for commands and lifecycle events"
3
- read_when:
4
- - You want event-driven automation for /new, /reset, /stop, and agent lifecycle events
5
- - You want to build, install, or debug hooks
6
- title: "Hooks"
7
- ---
8
-
9
- # Hooks
10
-
11
- Hooks provide an extensible event-driven system for automating actions in response to agent commands and events. Hooks are automatically discovered from directories and can be managed via CLI commands, similar to how skills work in Symi.
12
-
13
- ## Getting Oriented
14
-
15
- Hooks are small scripts that run when something happens. There are two kinds:
16
-
17
- - **Hooks** (this page): run inside the Gateway when agent events fire, like `/new`, `/reset`, `/stop`, or lifecycle events.
18
- - **Webhooks**: external HTTP webhooks that let other systems trigger work in Symi. See [Webhook Hooks](/automation/webhook) or use `symi webhooks` for Gmail helper commands.
19
-
20
- Hooks can also be bundled inside plugins; see [Plugins](/tools/plugin#plugin-hooks).
21
-
22
- Common uses:
23
-
24
- - Save a memory snapshot when you reset a session
25
- - Keep an audit trail of commands for troubleshooting or compliance
26
- - Trigger follow-up automation when a session starts or ends
27
- - Write files into the agent workspace or call external APIs when events fire
28
-
29
- If you can write a small TypeScript function, you can write a hook. Hooks are discovered automatically, and you enable or disable them via the CLI.
30
-
31
- ## Overview
32
-
33
- The hooks system allows you to:
34
-
35
- - Save session context to memory when `/new` is issued
36
- - Log all commands for auditing
37
- - Trigger custom automations on agent lifecycle events
38
- - Extend Symi's behavior without modifying core code
39
-
40
- ## Getting Started
41
-
42
- ### Bundled Hooks
43
-
44
- Symi ships with four bundled hooks that are automatically discovered:
45
-
46
- - **💾 session-memory**: Saves session context to your agent workspace (default `~/.symi/workspace/memory/`) when you issue `/new`
47
- - **📎 bootstrap-extra-files**: Injects additional workspace bootstrap files from configured glob/path patterns during `agent:bootstrap`
48
- - **📝 command-logger**: Logs all command events to `~/.symi/logs/commands.log`
49
- - **🚀 boot-md**: Runs `BOOT.md` when the gateway starts (requires internal hooks enabled)
50
-
51
- List available hooks:
52
-
53
- ```bash
54
- symi hooks list
55
- ```
56
-
57
- Enable a hook:
58
-
59
- ```bash
60
- symi hooks enable session-memory
61
- ```
62
-
63
- Check hook status:
64
-
65
- ```bash
66
- symi hooks check
67
- ```
68
-
69
- Get detailed information:
70
-
71
- ```bash
72
- symi hooks info session-memory
73
- ```
74
-
75
- ### Onboarding
76
-
77
- During onboarding (`symi onboard`), you'll be prompted to enable recommended hooks. The wizard automatically discovers eligible hooks and presents them for selection.
78
-
79
- ## Hook Discovery
80
-
81
- Hooks are automatically discovered from three directories (in order of precedence):
82
-
83
- 1. **Workspace hooks**: `<workspace>/hooks/` (per-agent, highest precedence)
84
- 2. **Managed hooks**: `~/.symi/hooks/` (user-installed, shared across workspaces)
85
- 3. **Bundled hooks**: `<symi>/dist/hooks/bundled/` (shipped with Symi)
86
-
87
- Managed hook directories can be either a **single hook** or a **hook pack** (package directory).
88
-
89
- Each hook is a directory containing:
90
-
91
- ```
92
- my-hook/
93
- ├── HOOK.md # Metadata + documentation
94
- └── handler.ts # Handler implementation
95
- ```
96
-
97
- ## Hook Packs (npm/archives)
98
-
99
- Hook packs are standard npm packages that export one or more hooks via `symi.hooks` in
100
- `package.json`. Install them with:
101
-
102
- ```bash
103
- symi hooks install <path-or-spec>
104
- ```
105
-
106
- Npm specs are registry-only (package name + optional version/tag). Git/URL/file specs are rejected.
107
-
108
- Example `package.json`:
109
-
110
- ```json
111
- {
112
- "name": "@acme/my-hooks",
113
- "version": "0.1.0",
114
- "symi": {
115
- "hooks": ["./hooks/my-hook", "./hooks/other-hook"]
116
- }
117
- }
118
- ```
119
-
120
- Each entry points to a hook directory containing `HOOK.md` and `handler.ts` (or `index.ts`).
121
- Hook packs can ship dependencies; they will be installed under `~/.symi/hooks/<id>`.
122
- Each `symi.hooks` entry must stay inside the package directory after symlink
123
- resolution; entries that escape are rejected.
124
-
125
- Security note: `symi hooks install` installs dependencies with `npm install --ignore-scripts`
126
- (no lifecycle scripts). Keep hook pack dependency trees "pure JS/TS" and avoid packages that rely
127
- on `postinstall` builds.
128
-
129
- ## Hook Structure
130
-
131
- ### HOOK.md Format
132
-
133
- The `HOOK.md` file contains metadata in YAML frontmatter plus Markdown documentation:
134
-
135
- ```markdown
136
- ---
137
- name: my-hook
138
- description: "Short description of what this hook does"
139
- homepage: https://docs.symi.ai/automation/hooks#my-hook
140
- metadata: { "symi": { "emoji": "🔗", "events": ["command:new"], "requires": { "bins": ["node"] } } }
141
- ---
142
-
143
- # My Hook
144
-
145
- Detailed documentation goes here...
146
-
147
- ## What It Does
148
-
149
- - Listens for `/new` commands
150
- - Performs some action
151
- - Logs the result
152
-
153
- ## Requirements
154
-
155
- - Node.js must be installed
156
-
157
- ## Configuration
158
-
159
- No configuration needed.
160
- ```
161
-
162
- ### Metadata Fields
163
-
164
- The `metadata.symi` object supports:
165
-
166
- - **`emoji`**: Display emoji for CLI (e.g., `"💾"`)
167
- - **`events`**: Array of events to listen for (e.g., `["command:new", "command:reset"]`)
168
- - **`export`**: Named export to use (defaults to `"default"`)
169
- - **`homepage`**: Documentation URL
170
- - **`requires`**: Optional requirements
171
- - **`bins`**: Required binaries on PATH (e.g., `["git", "node"]`)
172
- - **`anyBins`**: At least one of these binaries must be present
173
- - **`env`**: Required environment variables
174
- - **`config`**: Required config paths (e.g., `["workspace.dir"]`)
175
- - **`os`**: Required platforms (e.g., `["darwin", "linux"]`)
176
- - **`always`**: Bypass eligibility checks (boolean)
177
- - **`install`**: Installation methods (for bundled hooks: `[{"id":"bundled","kind":"bundled"}]`)
178
-
179
- ### Handler Implementation
180
-
181
- The `handler.ts` file exports a `HookHandler` function:
182
-
183
- ```typescript
184
- import type { HookHandler } from "../../src/hooks/hooks.js";
185
-
186
- const myHandler: HookHandler = async (event) => {
187
- // Only trigger on 'new' command
188
- if (event.type !== "command" || event.action !== "new") {
189
- return;
190
- }
191
-
192
- console.log(`[my-hook] New command triggered`);
193
- console.log(` Session: ${event.sessionKey}`);
194
- console.log(` Timestamp: ${event.timestamp.toISOString()}`);
195
-
196
- // Your custom logic here
197
-
198
- // Optionally send message to user
199
- event.messages.push("✨ My hook executed!");
200
- };
201
-
202
- export default myHandler;
203
- ```
204
-
205
- #### Event Context
206
-
207
- Each event includes:
208
-
209
- ```typescript
210
- {
211
- type: 'command' | 'session' | 'agent' | 'gateway' | 'message',
212
- action: string, // e.g., 'new', 'reset', 'stop', 'received', 'sent'
213
- sessionKey: string, // Session identifier
214
- timestamp: Date, // When the event occurred
215
- messages: string[], // Push messages here to send to user
216
- context: {
217
- // Command events:
218
- sessionEntry?: SessionEntry,
219
- sessionId?: string,
220
- sessionFile?: string,
221
- commandSource?: string, // e.g., 'whatsapp', 'telegram'
222
- senderId?: string,
223
- workspaceDir?: string,
224
- bootstrapFiles?: WorkspaceBootstrapFile[],
225
- cfg?: SymiConfig,
226
- // Message events (see Message Events section for full details):
227
- from?: string, // message:received
228
- to?: string, // message:sent
229
- content?: string,
230
- channelId?: string,
231
- success?: boolean, // message:sent
232
- }
233
- }
234
- ```
235
-
236
- ## Event Types
237
-
238
- ### Command Events
239
-
240
- Triggered when agent commands are issued:
241
-
242
- - **`command`**: All command events (general listener)
243
- - **`command:new`**: When `/new` command is issued
244
- - **`command:reset`**: When `/reset` command is issued
245
- - **`command:stop`**: When `/stop` command is issued
246
-
247
- ### Agent Events
248
-
249
- - **`agent:bootstrap`**: Before workspace bootstrap files are injected (hooks may mutate `context.bootstrapFiles`)
250
-
251
- ### Gateway Events
252
-
253
- Triggered when the gateway starts:
254
-
255
- - **`gateway:startup`**: After channels start and hooks are loaded
256
-
257
- ### Message Events
258
-
259
- Triggered when messages are received or sent:
260
-
261
- - **`message`**: All message events (general listener)
262
- - **`message:received`**: When an inbound message is received from any channel
263
- - **`message:sent`**: When an outbound message is successfully sent
264
-
265
- #### Message Event Context
266
-
267
- Message events include rich context about the message:
268
-
269
- ```typescript
270
- // message:received context
271
- {
272
- from: string, // Sender identifier (phone number, user ID, etc.)
273
- content: string, // Message content
274
- timestamp?: number, // Unix timestamp when received
275
- accountId?: string, // Provider account ID for multi-account setups
276
- conversationId?: string, // Chat/conversation ID
277
- messageId?: string, // Message ID from the provider
278
- metadata?: { // Additional provider-specific data
279
- to?: string,
280
- provider?: string,
281
- surface?: string,
282
- threadId?: string,
283
- senderId?: string,
284
- senderName?: string,
285
- senderUsername?: string,
286
- senderE164?: string,
287
- }
288
- }
289
-
290
- // message:sent context
291
- {
292
- to: string, // Recipient identifier
293
- content: string, // Message content that was sent
294
- success: boolean, // Whether the send succeeded
295
- error?: string, // Error message if sending failed
296
- accountId?: string, // Provider account ID
297
- conversationId?: string, // Chat/conversation ID
298
- messageId?: string, // Message ID returned by the provider
299
- }
300
- ```
301
-
302
- #### Example: Message Logger Hook
303
-
304
- ```typescript
305
- import type { HookHandler } from "../../src/hooks/hooks.js";
306
- import { isMessageReceivedEvent, isMessageSentEvent } from "../../src/hooks/internal-hooks.js";
307
-
308
- const handler: HookHandler = async (event) => {
309
- if (isMessageReceivedEvent(event)) {
310
- console.log(`[message-logger] Received from ${event.context.from}: ${event.context.content}`);
311
- } else if (isMessageSentEvent(event)) {
312
- console.log(`[message-logger] Sent to ${event.context.to}: ${event.context.content}`);
313
- }
314
- };
315
-
316
- export default handler;
317
- ```
318
-
319
- ### Tool Result Hooks (Plugin API)
320
-
321
- These hooks are not event-stream listeners; they let plugins synchronously adjust tool results before Symi persists them.
322
-
323
- - **`tool_result_persist`**: transform tool results before they are written to the session transcript. Must be synchronous; return the updated tool result payload or `undefined` to keep it as-is. See [Agent Loop](/concepts/agent-loop).
324
-
325
- ### Future Events
326
-
327
- Planned event types:
328
-
329
- - **`session:start`**: When a new session begins
330
- - **`session:end`**: When a session ends
331
- - **`agent:error`**: When an agent encounters an error
332
-
333
- ## Creating Custom Hooks
334
-
335
- ### 1. Choose Location
336
-
337
- - **Workspace hooks** (`<workspace>/hooks/`): Per-agent, highest precedence
338
- - **Managed hooks** (`~/.symi/hooks/`): Shared across workspaces
339
-
340
- ### 2. Create Directory Structure
341
-
342
- ```bash
343
- mkdir -p ~/.symi/hooks/my-hook
344
- cd ~/.symi/hooks/my-hook
345
- ```
346
-
347
- ### 3. Create HOOK.md
348
-
349
- ```markdown
350
- ---
351
- name: my-hook
352
- description: "Does something useful"
353
- metadata: { "symi": { "emoji": "🎯", "events": ["command:new"] } }
354
- ---
355
-
356
- # My Custom Hook
357
-
358
- This hook does something useful when you issue `/new`.
359
- ```
360
-
361
- ### 4. Create handler.ts
362
-
363
- ```typescript
364
- import type { HookHandler } from "../../src/hooks/hooks.js";
365
-
366
- const handler: HookHandler = async (event) => {
367
- if (event.type !== "command" || event.action !== "new") {
368
- return;
369
- }
370
-
371
- console.log("[my-hook] Running!");
372
- // Your logic here
373
- };
374
-
375
- export default handler;
376
- ```
377
-
378
- ### 5. Enable and Test
379
-
380
- ```bash
381
- # Verify hook is discovered
382
- symi hooks list
383
-
384
- # Enable it
385
- symi hooks enable my-hook
386
-
387
- # Restart your gateway process (menu bar app restart on macOS, or restart your dev process)
388
-
389
- # Trigger the event
390
- # Send /new via your messaging channel
391
- ```
392
-
393
- ## Configuration
394
-
395
- ### New Config Format (Recommended)
396
-
397
- ```json
398
- {
399
- "hooks": {
400
- "internal": {
401
- "enabled": true,
402
- "entries": {
403
- "session-memory": { "enabled": true },
404
- "command-logger": { "enabled": false }
405
- }
406
- }
407
- }
408
- }
409
- ```
410
-
411
- ### Per-Hook Configuration
412
-
413
- Hooks can have custom configuration:
414
-
415
- ```json
416
- {
417
- "hooks": {
418
- "internal": {
419
- "enabled": true,
420
- "entries": {
421
- "my-hook": {
422
- "enabled": true,
423
- "env": {
424
- "MY_CUSTOM_VAR": "value"
425
- }
426
- }
427
- }
428
- }
429
- }
430
- }
431
- ```
432
-
433
- ### Extra Directories
434
-
435
- Load hooks from additional directories:
436
-
437
- ```json
438
- {
439
- "hooks": {
440
- "internal": {
441
- "enabled": true,
442
- "load": {
443
- "extraDirs": ["/path/to/more/hooks"]
444
- }
445
- }
446
- }
447
- }
448
- ```
449
-
450
- ### Legacy Config Format (Still Supported)
451
-
452
- The old config format still works for backwards compatibility:
453
-
454
- ```json
455
- {
456
- "hooks": {
457
- "internal": {
458
- "enabled": true,
459
- "handlers": [
460
- {
461
- "event": "command:new",
462
- "module": "./hooks/handlers/my-handler.ts",
463
- "export": "default"
464
- }
465
- ]
466
- }
467
- }
468
- }
469
- ```
470
-
471
- Note: `module` must be a workspace-relative path. Absolute paths and traversal outside the workspace are rejected.
472
-
473
- **Migration**: Use the new discovery-based system for new hooks. Legacy handlers are loaded after directory-based hooks.
474
-
475
- ## CLI Commands
476
-
477
- ### List Hooks
478
-
479
- ```bash
480
- # List all hooks
481
- symi hooks list
482
-
483
- # Show only eligible hooks
484
- symi hooks list --eligible
485
-
486
- # Verbose output (show missing requirements)
487
- symi hooks list --verbose
488
-
489
- # JSON output
490
- symi hooks list --json
491
- ```
492
-
493
- ### Hook Information
494
-
495
- ```bash
496
- # Show detailed info about a hook
497
- symi hooks info session-memory
498
-
499
- # JSON output
500
- symi hooks info session-memory --json
501
- ```
502
-
503
- ### Check Eligibility
504
-
505
- ```bash
506
- # Show eligibility summary
507
- symi hooks check
508
-
509
- # JSON output
510
- symi hooks check --json
511
- ```
512
-
513
- ### Enable/Disable
514
-
515
- ```bash
516
- # Enable a hook
517
- symi hooks enable session-memory
518
-
519
- # Disable a hook
520
- symi hooks disable command-logger
521
- ```
522
-
523
- ## Bundled hook reference
524
-
525
- ### session-memory
526
-
527
- Saves session context to memory when you issue `/new`.
528
-
529
- **Events**: `command:new`
530
-
531
- **Requirements**: `workspace.dir` must be configured
532
-
533
- **Output**: `<workspace>/memory/YYYY-MM-DD-slug.md` (defaults to `~/.symi/workspace`)
534
-
535
- **What it does**:
536
-
537
- 1. Uses the pre-reset session entry to locate the correct transcript
538
- 2. Extracts the last 15 lines of conversation
539
- 3. Uses LLM to generate a descriptive filename slug
540
- 4. Saves session metadata to a dated memory file
541
-
542
- **Example output**:
543
-
544
- ```markdown
545
- # Session: 2026-01-16 14:30:00 UTC
546
-
547
- - **Session Key**: agent:main:main
548
- - **Session ID**: abc123def456
549
- - **Source**: telegram
550
- ```
551
-
552
- **Filename examples**:
553
-
554
- - `2026-01-16-vendor-pitch.md`
555
- - `2026-01-16-api-design.md`
556
- - `2026-01-16-1430.md` (fallback timestamp if slug generation fails)
557
-
558
- **Enable**:
559
-
560
- ```bash
561
- symi hooks enable session-memory
562
- ```
563
-
564
- ### bootstrap-extra-files
565
-
566
- Injects additional bootstrap files (for example monorepo-local `AGENTS.md` / `TOOLS.md`) during `agent:bootstrap`.
567
-
568
- **Events**: `agent:bootstrap`
569
-
570
- **Requirements**: `workspace.dir` must be configured
571
-
572
- **Output**: No files written; bootstrap context is modified in-memory only.
573
-
574
- **Config**:
575
-
576
- ```json
577
- {
578
- "hooks": {
579
- "internal": {
580
- "enabled": true,
581
- "entries": {
582
- "bootstrap-extra-files": {
583
- "enabled": true,
584
- "paths": ["packages/*/AGENTS.md", "packages/*/TOOLS.md"]
585
- }
586
- }
587
- }
588
- }
589
- }
590
- ```
591
-
592
- **Notes**:
593
-
594
- - Paths are resolved relative to workspace.
595
- - Files must stay inside workspace (realpath-checked).
596
- - Only recognized bootstrap basenames are loaded.
597
- - Subagent allowlist is preserved (`AGENTS.md` and `TOOLS.md` only).
598
-
599
- **Enable**:
600
-
601
- ```bash
602
- symi hooks enable bootstrap-extra-files
603
- ```
604
-
605
- ### command-logger
606
-
607
- Logs all command events to a centralized audit file.
608
-
609
- **Events**: `command`
610
-
611
- **Requirements**: None
612
-
613
- **Output**: `~/.symi/logs/commands.log`
614
-
615
- **What it does**:
616
-
617
- 1. Captures event details (command action, timestamp, session key, sender ID, source)
618
- 2. Appends to log file in JSONL format
619
- 3. Runs silently in the background
620
-
621
- **Example log entries**:
622
-
623
- ```jsonl
624
- {"timestamp":"2026-01-16T14:30:00.000Z","action":"new","sessionKey":"agent:main:main","senderId":"+1234567890","source":"telegram"}
625
- {"timestamp":"2026-01-16T15:45:22.000Z","action":"stop","sessionKey":"agent:main:main","senderId":"user@example.com","source":"whatsapp"}
626
- ```
627
-
628
- **View logs**:
629
-
630
- ```bash
631
- # View recent commands
632
- tail -n 20 ~/.symi/logs/commands.log
633
-
634
- # Pretty-print with jq
635
- cat ~/.symi/logs/commands.log | jq .
636
-
637
- # Filter by action
638
- grep '"action":"new"' ~/.symi/logs/commands.log | jq .
639
- ```
640
-
641
- **Enable**:
642
-
643
- ```bash
644
- symi hooks enable command-logger
645
- ```
646
-
647
- ### boot-md
648
-
649
- Runs `BOOT.md` when the gateway starts (after channels start).
650
- Internal hooks must be enabled for this to run.
651
-
652
- **Events**: `gateway:startup`
653
-
654
- **Requirements**: `workspace.dir` must be configured
655
-
656
- **What it does**:
657
-
658
- 1. Reads `BOOT.md` from your workspace
659
- 2. Runs the instructions via the agent runner
660
- 3. Sends any requested outbound messages via the message tool
661
-
662
- **Enable**:
663
-
664
- ```bash
665
- symi hooks enable boot-md
666
- ```
667
-
668
- ## Best Practices
669
-
670
- ### Keep Handlers Fast
671
-
672
- Hooks run during command processing. Keep them lightweight:
673
-
674
- ```typescript
675
- // ✓ Good - async work, returns immediately
676
- const handler: HookHandler = async (event) => {
677
- void processInBackground(event); // Fire and forget
678
- };
679
-
680
- // ✗ Bad - blocks command processing
681
- const handler: HookHandler = async (event) => {
682
- await slowDatabaseQuery(event);
683
- await evenSlowerAPICall(event);
684
- };
685
- ```
686
-
687
- ### Handle Errors Gracefully
688
-
689
- Always wrap risky operations:
690
-
691
- ```typescript
692
- const handler: HookHandler = async (event) => {
693
- try {
694
- await riskyOperation(event);
695
- } catch (err) {
696
- console.error("[my-handler] Failed:", err instanceof Error ? err.message : String(err));
697
- // Don't throw - let other handlers run
698
- }
699
- };
700
- ```
701
-
702
- ### Filter Events Early
703
-
704
- Return early if the event isn't relevant:
705
-
706
- ```typescript
707
- const handler: HookHandler = async (event) => {
708
- // Only handle 'new' commands
709
- if (event.type !== "command" || event.action !== "new") {
710
- return;
711
- }
712
-
713
- // Your logic here
714
- };
715
- ```
716
-
717
- ### Use Specific Event Keys
718
-
719
- Specify exact events in metadata when possible:
720
-
721
- ```yaml
722
- metadata: { "symi": { "events": ["command:new"] } } # Specific
723
- ```
724
-
725
- Rather than:
726
-
727
- ```yaml
728
- metadata: { "symi": { "events": ["command"] } } # General - more overhead
729
- ```
730
-
731
- ## Debugging
732
-
733
- ### Enable Hook Logging
734
-
735
- The gateway logs hook loading at startup:
736
-
737
- ```
738
- Registered hook: session-memory -> command:new
739
- Registered hook: bootstrap-extra-files -> agent:bootstrap
740
- Registered hook: command-logger -> command
741
- Registered hook: boot-md -> gateway:startup
742
- ```
743
-
744
- ### Check Discovery
745
-
746
- List all discovered hooks:
747
-
748
- ```bash
749
- symi hooks list --verbose
750
- ```
751
-
752
- ### Check Registration
753
-
754
- In your handler, log when it's called:
755
-
756
- ```typescript
757
- const handler: HookHandler = async (event) => {
758
- console.log("[my-handler] Triggered:", event.type, event.action);
759
- // Your logic
760
- };
761
- ```
762
-
763
- ### Verify Eligibility
764
-
765
- Check why a hook isn't eligible:
766
-
767
- ```bash
768
- symi hooks info my-hook
769
- ```
770
-
771
- Look for missing requirements in the output.
772
-
773
- ## Testing
774
-
775
- ### Gateway Logs
776
-
777
- Monitor gateway logs to see hook execution:
778
-
779
- ```bash
780
- # macOS
781
- ./scripts/symilog.sh -f
782
-
783
- # Other platforms
784
- tail -f ~/.symi/gateway.log
785
- ```
786
-
787
- ### Test Hooks Directly
788
-
789
- Test your handlers in isolation:
790
-
791
- ```typescript
792
- import { test } from "vitest";
793
- import { createHookEvent } from "./src/hooks/hooks.js";
794
- import myHandler from "./hooks/my-hook/handler.js";
795
-
796
- test("my handler works", async () => {
797
- const event = createHookEvent("command", "new", "test-session", {
798
- foo: "bar",
799
- });
800
-
801
- await myHandler(event);
802
-
803
- // Assert side effects
804
- });
805
- ```
806
-
807
- ## Architecture
808
-
809
- ### Core Components
810
-
811
- - **`src/hooks/types.ts`**: Type definitions
812
- - **`src/hooks/workspace.ts`**: Directory scanning and loading
813
- - **`src/hooks/frontmatter.ts`**: HOOK.md metadata parsing
814
- - **`src/hooks/config.ts`**: Eligibility checking
815
- - **`src/hooks/hooks-status.ts`**: Status reporting
816
- - **`src/hooks/loader.ts`**: Dynamic module loader
817
- - **`src/cli/hooks-cli.ts`**: CLI commands
818
- - **`src/gateway/server-startup.ts`**: Loads hooks at gateway start
819
- - **`src/auto-reply/reply/commands-core.ts`**: Triggers command events
820
-
821
- ### Discovery Flow
822
-
823
- ```
824
- Gateway startup
825
-
826
- Scan directories (workspace → managed → bundled)
827
-
828
- Parse HOOK.md files
829
-
830
- Check eligibility (bins, env, config, os)
831
-
832
- Load handlers from eligible hooks
833
-
834
- Register handlers for events
835
- ```
836
-
837
- ### Event Flow
838
-
839
- ```
840
- User sends /new
841
-
842
- Command validation
843
-
844
- Create hook event
845
-
846
- Trigger hook (all registered handlers)
847
-
848
- Command processing continues
849
-
850
- Session reset
851
- ```
852
-
853
- ## Troubleshooting
854
-
855
- ### Hook Not Discovered
856
-
857
- 1. Check directory structure:
858
-
859
- ```bash
860
- ls -la ~/.symi/hooks/my-hook/
861
- # Should show: HOOK.md, handler.ts
862
- ```
863
-
864
- 2. Verify HOOK.md format:
865
-
866
- ```bash
867
- cat ~/.symi/hooks/my-hook/HOOK.md
868
- # Should have YAML frontmatter with name and metadata
869
- ```
870
-
871
- 3. List all discovered hooks:
872
-
873
- ```bash
874
- symi hooks list
875
- ```
876
-
877
- ### Hook Not Eligible
878
-
879
- Check requirements:
880
-
881
- ```bash
882
- symi hooks info my-hook
883
- ```
884
-
885
- Look for missing:
886
-
887
- - Binaries (check PATH)
888
- - Environment variables
889
- - Config values
890
- - OS compatibility
891
-
892
- ### Hook Not Executing
893
-
894
- 1. Verify hook is enabled:
895
-
896
- ```bash
897
- symi hooks list
898
- # Should show ✓ next to enabled hooks
899
- ```
900
-
901
- 2. Restart your gateway process so hooks reload.
902
-
903
- 3. Check gateway logs for errors:
904
-
905
- ```bash
906
- ./scripts/symilog.sh | grep hook
907
- ```
908
-
909
- ### Handler Errors
910
-
911
- Check for TypeScript/import errors:
912
-
913
- ```bash
914
- # Test import directly
915
- node -e "import('./path/to/handler.ts').then(console.log)"
916
- ```
917
-
918
- ## Migration Guide
919
-
920
- ### From Legacy Config to Discovery
921
-
922
- **Before**:
923
-
924
- ```json
925
- {
926
- "hooks": {
927
- "internal": {
928
- "enabled": true,
929
- "handlers": [
930
- {
931
- "event": "command:new",
932
- "module": "./hooks/handlers/my-handler.ts"
933
- }
934
- ]
935
- }
936
- }
937
- }
938
- ```
939
-
940
- **After**:
941
-
942
- 1. Create hook directory:
943
-
944
- ```bash
945
- mkdir -p ~/.symi/hooks/my-hook
946
- mv ./hooks/handlers/my-handler.ts ~/.symi/hooks/my-hook/handler.ts
947
- ```
948
-
949
- 2. Create HOOK.md:
950
-
951
- ```markdown
952
- ---
953
- name: my-hook
954
- description: "My custom hook"
955
- metadata: { "symi": { "emoji": "🎯", "events": ["command:new"] } }
956
- ---
957
-
958
- # My Hook
959
-
960
- Does something useful.
961
- ```
962
-
963
- 3. Update config:
964
-
965
- ```json
966
- {
967
- "hooks": {
968
- "internal": {
969
- "enabled": true,
970
- "entries": {
971
- "my-hook": { "enabled": true }
972
- }
973
- }
974
- }
975
- }
976
- ```
977
-
978
- 4. Verify and restart your gateway process:
979
-
980
- ```bash
981
- symi hooks list
982
- # Should show: 🎯 my-hook ✓
983
- ```
984
-
985
- **Benefits of migration**:
986
-
987
- - Automatic discovery
988
- - CLI management
989
- - Eligibility checking
990
- - Better documentation
991
- - Consistent structure
992
-
993
- ## See Also
994
-
995
- - [CLI Reference: hooks](/cli/hooks)
996
- - [Bundled Hooks README](https://github.com/symi/symi/tree/main/src/hooks/bundled)
997
- - [Webhook Hooks](/automation/webhook)
998
- - [Configuration](/gateway/configuration#hooks)