@symerian/symi 3.0.16 → 3.0.18

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 (310) hide show
  1. package/dist/{audio-preflight-CBDFctZN.js → audio-preflight-BfmZbg4Y.js} +4 -4
  2. package/dist/{audio-preflight-gsZSpG-6.js → audio-preflight-DcuC-liM.js} +4 -4
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +8 -8
  5. package/dist/bundled/session-memory/handler.js +7 -7
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-nPMY1XTJ.js → chrome-Bo7cbvFK.js} +5 -5
  8. package/dist/{chrome-BjVab8gM.js → chrome-DYp18Q0t.js} +5 -5
  9. package/dist/{deliver-D-QFqm31.js → deliver-ChSIbiMM.js} +1 -1
  10. package/dist/{deliver-B4-bcot9.js → deliver-DEgRQM4J.js} +1 -1
  11. package/dist/extensionAPI.js +7 -7
  12. package/dist/{image-CDwtQjmt.js → image-Bx-hvoNJ.js} +1 -1
  13. package/dist/{image-CcS-vzTA.js → image-CQl_mjWk.js} +1 -1
  14. package/dist/llm-slug-generator.js +7 -7
  15. package/dist/{manager-BnEdHzmO.js → manager-D_pn0urG.js} +1 -1
  16. package/dist/{manager-09r0qPze.js → manager-YQxK2t0C.js} +1 -1
  17. package/dist/{pi-embedded-CWsY69-4.js → pi-embedded-CLw_ZzEZ.js} +16 -16
  18. package/dist/{pi-embedded-helpers-BBMy-lqr.js → pi-embedded-helpers-B5I53aw6.js} +4 -4
  19. package/dist/{pi-embedded-helpers-ChEYbgVj.js → pi-embedded-helpers-sUAEIC9X.js} +4 -4
  20. package/dist/plugin-sdk/{accounts-BfyWsC_i.js → accounts-CWFytwbR.js} +3 -3
  21. package/dist/plugin-sdk/{active-listener-DcJW7xAT.js → active-listener-BkZ4jHrL.js} +2 -2
  22. package/dist/plugin-sdk/{agent-scope-ChbGV6of.js → agent-scope-C9gfY_Gk.js} +2 -2
  23. package/dist/plugin-sdk/{audio-preflight-D3GtNLqW.js → audio-preflight-HKbdzXLZ.js} +21 -21
  24. package/dist/plugin-sdk/{bindings-CN2Qmefj.js → bindings-BaKIqPPy.js} +2 -2
  25. package/dist/plugin-sdk/{channel-web-DTyqujjA.js → channel-web-D5nWiTH1.js} +18 -18
  26. package/dist/plugin-sdk/{chrome-BKzAKr3K.js → chrome-klTSnz-9.js} +3 -3
  27. package/dist/plugin-sdk/{chunk-DhDkBujV.js → chunk-BbrYSny_.js} +1 -1
  28. package/dist/plugin-sdk/{command-format-CVrYFyZS.js → command-format-BN6tyZt6.js} +1 -1
  29. package/dist/plugin-sdk/{commands-registry-17yfZkHZ.js → commands-registry-CTzKKtY6.js} +4 -4
  30. package/dist/plugin-sdk/{config-7wk65zKC.js → config-Crv2qEdJ.js} +9 -9
  31. package/dist/plugin-sdk/{consolidate-exbAW0ml.js → consolidate-DT1QH65Q.js} +2 -2
  32. package/dist/plugin-sdk/{deliver-TxAcw7J5.js → deliver-7rOvAlrc.js} +12 -12
  33. package/dist/plugin-sdk/{diagnostic-Debx4frd.js → diagnostic-0nsxhWp7.js} +1 -1
  34. package/dist/plugin-sdk/{fs-safe-wBYbAkJF.js → fs-safe-DfWYBeWF.js} +1 -1
  35. package/dist/plugin-sdk/{gemini-auth-7U2pm2Ky.js → gemini-auth-C0N0_u49.js} +1 -1
  36. package/dist/plugin-sdk/{image-BtDVmYA5.js → image-WOSl2apK.js} +4 -4
  37. package/dist/plugin-sdk/index.js +43 -43
  38. package/dist/plugin-sdk/{ir-CKMvRrGW.js → ir-9J84MTls.js} +4 -4
  39. package/dist/plugin-sdk/{local-roots-c_gaPs01.js → local-roots-OLRDbvyY.js} +3 -3
  40. package/dist/plugin-sdk/{login-DUym1Jy0.js → login-C7x4q0i2.js} +7 -7
  41. package/dist/plugin-sdk/{login-qr-B-WBdvrX.js → login-qr-Dv5_MoAW.js} +9 -9
  42. package/dist/plugin-sdk/{manager-B71SCzos.js → manager-C83tK17x.js} +8 -8
  43. package/dist/plugin-sdk/{manifest-registry-Dnic6Chh.js → manifest-registry-CJMV-PI7.js} +1 -1
  44. package/dist/plugin-sdk/{markdown-tables-Dur7OTlM.js → markdown-tables-DXNKz5y_.js} +1 -1
  45. package/dist/plugin-sdk/{message-channel-BrAhJJV_.js → message-channel-aGy1HbQQ.js} +1 -1
  46. package/dist/plugin-sdk/{model-selection-B9qaVQSJ.js → model-selection-C-3-tpe7.js} +4 -4
  47. package/dist/plugin-sdk/{outbound-DB1wDM8b.js → outbound-DquCeSy5.js} +6 -6
  48. package/dist/plugin-sdk/{pi-auth-json-ZO118hoy.js → pi-auth-json-D9PDCXGn.js} +1 -1
  49. package/dist/plugin-sdk/{pi-embedded-helpers-s_U0Un7j.js → pi-embedded-helpers-D3ygfH7l.js} +16 -16
  50. package/dist/plugin-sdk/{plugins-DF81oSaI.js → plugins-DOwnSg9D.js} +4 -4
  51. package/dist/plugin-sdk/{pw-ai-CTwP02uv.js → pw-ai-rlengLjb.js} +8 -8
  52. package/dist/plugin-sdk/{qmd-manager-CBaSGant.js → qmd-manager-BzxFjRFa.js} +4 -4
  53. package/dist/plugin-sdk/{registry-CZVURNhF.js → registry-5iFfixlB.js} +2 -2
  54. package/dist/plugin-sdk/{replies-hwRbkU3z.js → replies-BXOzO_H5.js} +7 -7
  55. package/dist/plugin-sdk/{reply-prefix-CaXmzZlx.js → reply-prefix-INAKTqCU.js} +1 -1
  56. package/dist/plugin-sdk/{resolve-outbound-target-fxVSOBmk.js → resolve-outbound-target-DvbxHtqp.js} +2 -2
  57. package/dist/plugin-sdk/{resolve-route-ClCyiOeu.js → resolve-route-URXlY3AK.js} +3 -3
  58. package/dist/plugin-sdk/{runner-Cq5jvwQ7.js → runner-Bv0_DWoH.js} +9 -9
  59. package/dist/plugin-sdk/{session-B_TkB65Y.js → session-C3r8l7ou.js} +4 -4
  60. package/dist/plugin-sdk/{skill-commands-0LF9HTGr.js → skill-commands-KjLUGIdZ.js} +5 -5
  61. package/dist/plugin-sdk/{skills-BIT_O7J0.js → skills-BrsD4L5c.js} +7 -7
  62. package/dist/plugin-sdk/{sqlite-Bx5Y5U5X.js → sqlite-CjW7ME1H.js} +1 -1
  63. package/dist/plugin-sdk/{subsystem-CXqYeDy-.js → subsystem-DcOg1xJr.js} +1 -1
  64. package/dist/plugin-sdk/{synthesis-DtsYAj1E.js → synthesis-CY7YAasV.js} +38 -38
  65. package/dist/plugin-sdk/{target-errors-B8mokOeH.js → target-errors-BVWJGWFq.js} +2 -2
  66. package/dist/plugin-sdk/{thinking-Ca0DhqzO.js → thinking-CtsTDPOi.js} +3 -3
  67. package/dist/plugin-sdk/{tokens-CvlONEqh.js → tokens-8lqOTZCB.js} +1 -1
  68. package/dist/plugin-sdk/{tool-images-DpBaWEHT.js → tool-images-Cl_rGIUZ.js} +2 -2
  69. package/dist/plugin-sdk/{tool-loop-detection-BOvUFa0f.js → tool-loop-detection-Da4WUT_P.js} +2 -2
  70. package/dist/plugin-sdk/{unified-runner-CnM7lyNd.js → unified-runner-nwMnsZyj.js} +60 -60
  71. package/dist/plugin-sdk/web-BlweOZDp.js +54 -0
  72. package/dist/plugin-sdk/{whatsapp-actions-CvnfsFJm.js → whatsapp-actions-DpfaGYs7.js} +21 -21
  73. package/dist/{pw-ai-BW8_KeDf.js → pw-ai-BqxJG-Wh.js} +1 -1
  74. package/dist/{pw-ai-j9IE1K0-.js → pw-ai-C-NSGye0.js} +1 -1
  75. package/dist/{runner-8ALr2UII.js → runner-COGFTeDw.js} +1 -1
  76. package/dist/{runner-C4-9kFdR.js → runner-DhCi2lT1.js} +1 -1
  77. package/dist/{synthesis-Cph3LhA1.js → synthesis-CXZu24Vx.js} +7 -7
  78. package/dist/{synthesis-Cus0A2dL.js → synthesis-DrPxcMlQ.js} +7 -7
  79. package/dist/{unified-runner-CX80YMTk.js → unified-runner-iByUazvW.js} +16 -16
  80. package/dist/{web-ChozvJ7I.js → web-EsMQBIYf.js} +7 -7
  81. package/dist/{web-DFlsbXmQ.js → web-PPg5y6xI.js} +7 -7
  82. package/docs/.i18n/zh-CN.tm.jsonl +0 -20
  83. package/docs/automation/cron-jobs.md +0 -2
  84. package/docs/automation/hooks.md +0 -2
  85. package/docs/automation/poll.md +0 -8
  86. package/docs/automation/webhook.md +0 -2
  87. package/docs/capabilities.md +0 -2
  88. package/docs/channels/broadcast-groups.md +0 -1
  89. package/docs/channels/channel-routing.md +4 -10
  90. package/docs/channels/group-messages.md +0 -2
  91. package/docs/channels/groups.md +0 -10
  92. package/docs/channels/index.md +0 -1
  93. package/docs/channels/matrix.md +0 -2
  94. package/docs/channels/msteams.md +0 -2
  95. package/docs/channels/pairing.md +0 -3
  96. package/docs/channels/signal.md +0 -2
  97. package/docs/channels/troubleshooting.md +0 -7
  98. package/docs/cli/channels.md +0 -6
  99. package/docs/cli/configure.md +0 -1
  100. package/docs/cli/directory.md +0 -1
  101. package/docs/cli/index.md +0 -7
  102. package/docs/cli/message.md +1 -47
  103. package/docs/cli/status.md +0 -1
  104. package/docs/concepts/architecture.md +0 -1
  105. package/docs/concepts/features.md +0 -2
  106. package/docs/concepts/markdown-formatting.md +6 -8
  107. package/docs/concepts/memory.md +0 -4
  108. package/docs/concepts/messages.md +0 -1
  109. package/docs/concepts/models.md +0 -1
  110. package/docs/concepts/multi-agent.md +4 -19
  111. package/docs/concepts/queue.md +0 -3
  112. package/docs/concepts/retry.md +0 -5
  113. package/docs/concepts/session-tool.md +0 -2
  114. package/docs/concepts/session.md +2 -9
  115. package/docs/concepts/streaming.md +0 -2
  116. package/docs/concepts/system-prompt.md +0 -1
  117. package/docs/concepts/timezone.md +0 -1
  118. package/docs/date-time.md +0 -1
  119. package/docs/docs.json +2 -11
  120. package/docs/experiments/plans/cron-add-hardening.md +0 -1
  121. package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
  122. package/docs/experiments/plans/thread-bound-subagents.md +7 -64
  123. package/docs/gateway/configuration-examples.md +0 -10
  124. package/docs/gateway/configuration-reference.md +22 -47
  125. package/docs/gateway/configuration.md +0 -3
  126. package/docs/gateway/heartbeat.md +0 -2
  127. package/docs/gateway/security/index.md +1 -6
  128. package/docs/gateway/troubleshooting.md +0 -1
  129. package/docs/help/faq.md +0 -13
  130. package/docs/help/troubleshooting.md +0 -1
  131. package/docs/index.md +0 -6
  132. package/docs/install/ansible.md +2 -3
  133. package/docs/install/docker.md +1 -7
  134. package/docs/install/fly.md +0 -14
  135. package/docs/install/northflank.mdx +7 -11
  136. package/docs/install/railway.mdx +6 -10
  137. package/docs/install/render.mdx +1 -2
  138. package/docs/ja-JP/index.md +0 -3
  139. package/docs/pi.md +3 -5
  140. package/docs/platforms/digitalocean.md +0 -1
  141. package/docs/platforms/mac/voicewake.md +0 -1
  142. package/docs/providers/index.md +0 -2
  143. package/docs/refactor/outbound-session-mirroring.md +0 -2
  144. package/docs/reference/AGENTS.default.md +0 -1
  145. package/docs/reference/RELEASING.md +0 -1
  146. package/docs/reference/session-management-compaction.md +0 -1
  147. package/docs/reference/templates/AGENTS.md +0 -7
  148. package/docs/reference/wizard.md +0 -4
  149. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
  150. package/docs/security/README.md +0 -1
  151. package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
  152. package/docs/start/docs-directory.md +0 -1
  153. package/docs/start/hubs.md +0 -1
  154. package/docs/start/lore.md +0 -3
  155. package/docs/start/setup.md +0 -2
  156. package/docs/start/showcase.md +0 -2
  157. package/docs/start/symi.md +0 -4
  158. package/docs/start/wizard-cli-reference.md +0 -4
  159. package/docs/start/wizard.md +3 -4
  160. package/docs/tools/agent-send.md +0 -1
  161. package/docs/tools/elevated.md +0 -2
  162. package/docs/tools/exec-approvals.md +0 -1
  163. package/docs/tools/index.md +0 -7
  164. package/docs/tools/multi-agent-sandbox-tools.md +1 -2
  165. package/docs/tools/reactions.md +0 -1
  166. package/docs/tools/slash-commands.md +0 -14
  167. package/docs/tools/symihub.md +0 -1
  168. package/docs/tts.md +0 -1
  169. package/docs/web/control-ui.md +0 -1
  170. package/docs/zh-CN/automation/cron-jobs.md +0 -2
  171. package/docs/zh-CN/automation/poll.md +0 -8
  172. package/docs/zh-CN/automation/webhook.md +0 -2
  173. package/docs/zh-CN/channels/broadcast-groups.md +0 -1
  174. package/docs/zh-CN/channels/channel-routing.md +4 -9
  175. package/docs/zh-CN/channels/group-messages.md +0 -2
  176. package/docs/zh-CN/channels/groups.md +0 -10
  177. package/docs/zh-CN/channels/imessage.md +0 -2
  178. package/docs/zh-CN/channels/index.md +0 -1
  179. package/docs/zh-CN/channels/msteams.md +0 -2
  180. package/docs/zh-CN/channels/pairing.md +0 -3
  181. package/docs/zh-CN/channels/signal.md +0 -2
  182. package/docs/zh-CN/channels/slack.md +0 -2
  183. package/docs/zh-CN/channels/telegram.md +0 -3
  184. package/docs/zh-CN/channels/troubleshooting.md +0 -2
  185. package/docs/zh-CN/cli/channels.md +0 -6
  186. package/docs/zh-CN/cli/configure.md +0 -1
  187. package/docs/zh-CN/cli/directory.md +0 -1
  188. package/docs/zh-CN/cli/index.md +0 -7
  189. package/docs/zh-CN/cli/message.md +1 -42
  190. package/docs/zh-CN/cli/status.md +0 -1
  191. package/docs/zh-CN/concepts/architecture.md +0 -1
  192. package/docs/zh-CN/concepts/features.md +0 -2
  193. package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
  194. package/docs/zh-CN/concepts/messages.md +0 -1
  195. package/docs/zh-CN/concepts/multi-agent.md +4 -5
  196. package/docs/zh-CN/concepts/queue.md +0 -3
  197. package/docs/zh-CN/concepts/retry.md +0 -5
  198. package/docs/zh-CN/concepts/session-tool.md +0 -2
  199. package/docs/zh-CN/concepts/session.md +3 -11
  200. package/docs/zh-CN/concepts/streaming.md +0 -2
  201. package/docs/zh-CN/concepts/system-prompt.md +0 -2
  202. package/docs/zh-CN/concepts/timezone.md +0 -2
  203. package/docs/zh-CN/date-time.md +0 -1
  204. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
  205. package/docs/zh-CN/gateway/configuration-examples.md +0 -7
  206. package/docs/zh-CN/gateway/configuration.md +2 -50
  207. package/docs/zh-CN/gateway/heartbeat.md +0 -2
  208. package/docs/zh-CN/gateway/security/index.md +1 -6
  209. package/docs/zh-CN/gateway/troubleshooting.md +1 -14
  210. package/docs/zh-CN/help/faq.md +0 -15
  211. package/docs/zh-CN/index.md +0 -3
  212. package/docs/zh-CN/install/ansible.md +2 -3
  213. package/docs/zh-CN/install/docker.md +1 -7
  214. package/docs/zh-CN/install/fly.md +0 -14
  215. package/docs/zh-CN/install/northflank.mdx +7 -11
  216. package/docs/zh-CN/install/railway.mdx +6 -10
  217. package/docs/zh-CN/install/render.mdx +1 -2
  218. package/docs/zh-CN/pi.md +3 -5
  219. package/docs/zh-CN/platforms/digitalocean.md +0 -1
  220. package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
  221. package/docs/zh-CN/providers/index.md +0 -2
  222. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
  223. package/docs/zh-CN/reference/AGENTS.default.md +0 -1
  224. package/docs/zh-CN/reference/RELEASING.md +0 -1
  225. package/docs/zh-CN/reference/session-management-compaction.md +0 -1
  226. package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
  227. package/docs/zh-CN/start/docs-directory.md +0 -1
  228. package/docs/zh-CN/start/getting-started.md +0 -5
  229. package/docs/zh-CN/start/hubs.md +0 -1
  230. package/docs/zh-CN/start/lore.md +0 -3
  231. package/docs/zh-CN/start/setup.md +0 -2
  232. package/docs/zh-CN/start/showcase.md +0 -2
  233. package/docs/zh-CN/start/symi.md +0 -4
  234. package/docs/zh-CN/start/wizard.md +0 -5
  235. package/docs/zh-CN/tools/agent-send.md +0 -1
  236. package/docs/zh-CN/tools/elevated.md +0 -2
  237. package/docs/zh-CN/tools/exec-approvals.md +0 -1
  238. package/docs/zh-CN/tools/index.md +0 -7
  239. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
  240. package/docs/zh-CN/tools/reactions.md +0 -1
  241. package/docs/zh-CN/tools/slash-commands.md +0 -9
  242. package/docs/zh-CN/tts.md +0 -2
  243. package/docs/zh-CN/web/control-ui.md +0 -1
  244. package/package.json +1 -1
  245. package/dist/plugin-sdk/web-CIPJBHAU.js +0 -54
  246. package/docs/channels/discord.md +0 -998
  247. package/docs/zh-CN/channels/discord.md +0 -468
  248. package/skills/1password/SKILL.md +0 -71
  249. package/skills/1password/references/cli-examples.md +0 -29
  250. package/skills/1password/references/get-started.md +0 -17
  251. package/skills/apple-notes/SKILL.md +0 -78
  252. package/skills/apple-reminders/SKILL.md +0 -119
  253. package/skills/bear-notes/SKILL.md +0 -108
  254. package/skills/blogwatcher/SKILL.md +0 -70
  255. package/skills/blucli/SKILL.md +0 -48
  256. package/skills/bluebubbles/SKILL.md +0 -132
  257. package/skills/camsnap/SKILL.md +0 -46
  258. package/skills/canvas/SKILL.md +0 -204
  259. package/skills/connect-email/SKILL.md +0 -142
  260. package/skills/document-generation/SKILL.md +0 -83
  261. package/skills/eightctl/SKILL.md +0 -51
  262. package/skills/food-order/SKILL.md +0 -49
  263. package/skills/gemini/SKILL.md +0 -44
  264. package/skills/gh-issues/SKILL.md +0 -865
  265. package/skills/gifgrep/SKILL.md +0 -80
  266. package/skills/github/SKILL.md +0 -164
  267. package/skills/gog/SKILL.md +0 -117
  268. package/skills/goplaces/SKILL.md +0 -53
  269. package/skills/healthcheck/SKILL.md +0 -246
  270. package/skills/himalaya/SKILL.md +0 -258
  271. package/skills/himalaya/references/configuration.md +0 -184
  272. package/skills/himalaya/references/message-composition.md +0 -199
  273. package/skills/imsg/SKILL.md +0 -122
  274. package/skills/long-task/SKILL.md +0 -58
  275. package/skills/long-task/scripts/detach-task.sh +0 -187
  276. package/skills/nano-banana-pro/SKILL.md +0 -59
  277. package/skills/nano-banana-pro/scripts/generate_image.py +0 -184
  278. package/skills/nano-pdf/SKILL.md +0 -39
  279. package/skills/notion/SKILL.md +0 -173
  280. package/skills/obsidian/SKILL.md +0 -82
  281. package/skills/openai-image-gen/SKILL.md +0 -90
  282. package/skills/openai-image-gen/scripts/gen.py +0 -240
  283. package/skills/openai-whisper/SKILL.md +0 -39
  284. package/skills/openai-whisper-api/SKILL.md +0 -53
  285. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  286. package/skills/openhue/SKILL.md +0 -113
  287. package/skills/oracle/SKILL.md +0 -126
  288. package/skills/ordercli/SKILL.md +0 -79
  289. package/skills/peekaboo/SKILL.md +0 -191
  290. package/skills/reactions-extensive/SKILL.md +0 -30
  291. package/skills/reactions-minimal/SKILL.md +0 -31
  292. package/skills/safe-edit/SKILL.md +0 -51
  293. package/skills/sag/SKILL.md +0 -88
  294. package/skills/sherpa-onnx-tts/SKILL.md +0 -104
  295. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  296. package/skills/songsee/SKILL.md +0 -50
  297. package/skills/sonoscli/SKILL.md +0 -66
  298. package/skills/spotify-player/SKILL.md +0 -65
  299. package/skills/symihub/SKILL.md +0 -78
  300. package/skills/things-mac/SKILL.md +0 -87
  301. package/skills/tmux/SKILL.md +0 -153
  302. package/skills/tmux/scripts/find-sessions.sh +0 -112
  303. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  304. package/skills/trello/SKILL.md +0 -96
  305. package/skills/video-frames/SKILL.md +0 -47
  306. package/skills/video-frames/scripts/frame.sh +0 -81
  307. package/skills/voice-call/SKILL.md +0 -46
  308. package/skills/wacli/SKILL.md +0 -73
  309. package/skills/weather/SKILL.md +0 -113
  310. package/skills/xurl/SKILL.md +0 -462
@@ -1,87 +0,0 @@
1
- ---
2
- name: things-mac
3
- description: Manage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks Symi to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.
4
- homepage: https://github.com/ossianhempel/things3-cli
5
- metadata:
6
- {
7
- "symi":
8
- {
9
- "emoji": "✅",
10
- "os": ["darwin"],
11
- "requires": { "bins": ["things"] },
12
- "install":
13
- [
14
- {
15
- "id": "go",
16
- "kind": "go",
17
- "module": "github.com/ossianhempel/things3-cli/cmd/things@latest",
18
- "bins": ["things"],
19
- "label": "Install things3-cli (go)",
20
- },
21
- ],
22
- },
23
- }
24
- triggers: [things-mac, things, mac]
25
- ---
26
-
27
- # Things 3 CLI
28
-
29
- Use `things` to read your local Things database (inbox/today/search/projects/areas/tags) and to add/update todos via the Things URL scheme.
30
-
31
- Setup
32
-
33
- - Install (recommended, Apple Silicon): `GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest`
34
- - If DB reads fail: grant **Full Disk Access** to the calling app (Terminal for manual runs; `Symi.app` for gateway runs).
35
- - Optional: set `THINGSDB` (or pass `--db`) to point at your `ThingsData-*` folder.
36
- - Optional: set `THINGS_AUTH_TOKEN` to avoid passing `--auth-token` for update ops.
37
-
38
- Read-only (DB)
39
-
40
- - `things inbox --limit 50`
41
- - `things today`
42
- - `things upcoming`
43
- - `things search "query"`
44
- - `things projects` / `things areas` / `things tags`
45
-
46
- Write (URL scheme)
47
-
48
- - Prefer safe preview: `things --dry-run add "Title"`
49
- - Add: `things add "Title" --notes "..." --when today --deadline 2026-01-02`
50
- - Bring Things to front: `things --foreground add "Title"`
51
-
52
- Examples: add a todo
53
-
54
- - Basic: `things add "Buy milk"`
55
- - With notes: `things add "Buy milk" --notes "2% + bananas"`
56
- - Into a project/area: `things add "Book flights" --list "Travel"`
57
- - Into a project heading: `things add "Pack charger" --list "Travel" --heading "Before"`
58
- - With tags: `things add "Call dentist" --tags "health,phone"`
59
- - Checklist: `things add "Trip prep" --checklist-item "Passport" --checklist-item "Tickets"`
60
- - From STDIN (multi-line => title + notes):
61
- - `cat <<'EOF' | things add -`
62
- - `Title line`
63
- - `Notes line 1`
64
- - `Notes line 2`
65
- - `EOF`
66
-
67
- Examples: modify a todo (needs auth token)
68
-
69
- - First: get the ID (UUID column): `things search "milk" --limit 5`
70
- - Auth: set `THINGS_AUTH_TOKEN` or pass `--auth-token <TOKEN>`
71
- - Title: `things update --id <UUID> --auth-token <TOKEN> "New title"`
72
- - Notes replace: `things update --id <UUID> --auth-token <TOKEN> --notes "New notes"`
73
- - Notes append/prepend: `things update --id <UUID> --auth-token <TOKEN> --append-notes "..."` / `--prepend-notes "..."`
74
- - Move lists: `things update --id <UUID> --auth-token <TOKEN> --list "Travel" --heading "Before"`
75
- - Tags replace/add: `things update --id <UUID> --auth-token <TOKEN> --tags "a,b"` / `things update --id <UUID> --auth-token <TOKEN> --add-tags "a,b"`
76
- - Complete/cancel (soft-delete-ish): `things update --id <UUID> --auth-token <TOKEN> --completed` / `--canceled`
77
- - Safe preview: `things --dry-run update --id <UUID> --auth-token <TOKEN> --completed`
78
-
79
- Delete a todo?
80
-
81
- - Not supported by `things3-cli` right now (no “delete/move-to-trash” write command; `things trash` is read-only listing).
82
- - Options: use Things UI to delete/trash, or mark as `--completed` / `--canceled` via `things update`.
83
-
84
- Notes
85
-
86
- - macOS-only.
87
- - `--dry-run` prints the URL and does not open Things.
@@ -1,153 +0,0 @@
1
- ---
2
- name: tmux
3
- description: Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
4
- metadata: { "symi": { "emoji": "🧵", "os": ["darwin", "linux"], "requires": { "bins": ["tmux"] } } }
5
- triggers: [tmux]
6
- ---
7
-
8
- # tmux Session Control
9
-
10
- Control tmux sessions by sending keystrokes and reading output. Essential for managing Claude Code sessions.
11
-
12
- ## When to Use
13
-
14
- ✅ **USE this skill when:**
15
-
16
- - Monitoring Claude/Codex sessions in tmux
17
- - Sending input to interactive terminal applications
18
- - Scraping output from long-running processes in tmux
19
- - Navigating tmux panes/windows programmatically
20
- - Checking on background work in existing sessions
21
-
22
- ## When NOT to Use
23
-
24
- ❌ **DON'T use this skill when:**
25
-
26
- - Running one-off shell commands → use `exec` tool directly
27
- - Starting new background processes → use `exec` with `background:true`
28
- - Non-interactive scripts → use `exec` tool
29
- - The process isn't in tmux
30
- - You need to create a new tmux session → use `exec` with `tmux new-session`
31
-
32
- ## Example Sessions
33
-
34
- | Session | Purpose |
35
- | ----------------------- | --------------------------- |
36
- | `shared` | Primary interactive session |
37
- | `worker-2` - `worker-8` | Parallel worker sessions |
38
-
39
- ## Common Commands
40
-
41
- ### List Sessions
42
-
43
- ```bash
44
- tmux list-sessions
45
- tmux ls
46
- ```
47
-
48
- ### Capture Output
49
-
50
- ```bash
51
- # Last 20 lines of pane
52
- tmux capture-pane -t shared -p | tail -20
53
-
54
- # Entire scrollback
55
- tmux capture-pane -t shared -p -S -
56
-
57
- # Specific pane in window
58
- tmux capture-pane -t shared:0.0 -p
59
- ```
60
-
61
- ### Send Keys
62
-
63
- ```bash
64
- # Send text (doesn't press Enter)
65
- tmux send-keys -t shared "hello"
66
-
67
- # Send text + Enter
68
- tmux send-keys -t shared "y" Enter
69
-
70
- # Send special keys
71
- tmux send-keys -t shared Enter
72
- tmux send-keys -t shared Escape
73
- tmux send-keys -t shared C-c # Ctrl+C
74
- tmux send-keys -t shared C-d # Ctrl+D (EOF)
75
- tmux send-keys -t shared C-z # Ctrl+Z (suspend)
76
- ```
77
-
78
- ### Window/Pane Navigation
79
-
80
- ```bash
81
- # Select window
82
- tmux select-window -t shared:0
83
-
84
- # Select pane
85
- tmux select-pane -t shared:0.1
86
-
87
- # List windows
88
- tmux list-windows -t shared
89
- ```
90
-
91
- ### Session Management
92
-
93
- ```bash
94
- # Create new session
95
- tmux new-session -d -s newsession
96
-
97
- # Kill session
98
- tmux kill-session -t sessionname
99
-
100
- # Rename session
101
- tmux rename-session -t old new
102
- ```
103
-
104
- ## Sending Input Safely
105
-
106
- For interactive TUIs (Claude Code, Codex, etc.), split text and Enter into separate sends to avoid paste/multiline edge cases:
107
-
108
- ```bash
109
- tmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts"
110
- sleep 0.1
111
- tmux send-keys -t shared Enter
112
- ```
113
-
114
- ## Claude Code Session Patterns
115
-
116
- ### Check if Session Needs Input
117
-
118
- ```bash
119
- # Look for prompts
120
- tmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"
121
- ```
122
-
123
- ### Approve Claude Code Prompt
124
-
125
- ```bash
126
- # Send 'y' and Enter
127
- tmux send-keys -t worker-3 'y' Enter
128
-
129
- # Or select numbered option
130
- tmux send-keys -t worker-3 '2' Enter
131
- ```
132
-
133
- ### Check All Sessions Status
134
-
135
- ```bash
136
- for s in shared worker-2 worker-3 worker-4 worker-5 worker-6 worker-7 worker-8; do
137
- echo "=== $s ==="
138
- tmux capture-pane -t $s -p 2>/dev/null | tail -5
139
- done
140
- ```
141
-
142
- ### Send Task to Session
143
-
144
- ```bash
145
- tmux send-keys -t worker-4 "Fix the bug in auth.js" Enter
146
- ```
147
-
148
- ## Notes
149
-
150
- - Use `capture-pane -p` to print to stdout (essential for scripting)
151
- - `-S -` captures entire scrollback history
152
- - Target format: `session:window.pane` (e.g., `shared:0.0`)
153
- - Sessions persist across SSH disconnects
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- usage() {
5
- cat <<'USAGE'
6
- Usage: find-sessions.sh [-L socket-name|-S socket-path|-A] [-q pattern]
7
-
8
- List tmux sessions on a socket (default tmux socket if none provided).
9
-
10
- Options:
11
- -L, --socket tmux socket name (passed to tmux -L)
12
- -S, --socket-path tmux socket path (passed to tmux -S)
13
- -A, --all scan all sockets under SYMI_TMUX_SOCKET_DIR
14
- -q, --query case-insensitive substring to filter session names
15
- -h, --help show this help
16
- USAGE
17
- }
18
-
19
- socket_name=""
20
- socket_path=""
21
- query=""
22
- scan_all=false
23
- socket_dir="${SYMI_TMUX_SOCKET_DIR:-${SYMI_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/symi-tmux-sockets}}"
24
-
25
- while [[ $# -gt 0 ]]; do
26
- case "$1" in
27
- -L|--socket) socket_name="${2-}"; shift 2 ;;
28
- -S|--socket-path) socket_path="${2-}"; shift 2 ;;
29
- -A|--all) scan_all=true; shift ;;
30
- -q|--query) query="${2-}"; shift 2 ;;
31
- -h|--help) usage; exit 0 ;;
32
- *) echo "Unknown option: $1" >&2; usage; exit 1 ;;
33
- esac
34
- done
35
-
36
- if [[ "$scan_all" == true && ( -n "$socket_name" || -n "$socket_path" ) ]]; then
37
- echo "Cannot combine --all with -L or -S" >&2
38
- exit 1
39
- fi
40
-
41
- if [[ -n "$socket_name" && -n "$socket_path" ]]; then
42
- echo "Use either -L or -S, not both" >&2
43
- exit 1
44
- fi
45
-
46
- if ! command -v tmux >/dev/null 2>&1; then
47
- echo "tmux not found in PATH" >&2
48
- exit 1
49
- fi
50
-
51
- list_sessions() {
52
- local label="$1"; shift
53
- local tmux_cmd=(tmux "$@")
54
-
55
- if ! sessions="$("${tmux_cmd[@]}" list-sessions -F '#{session_name}\t#{session_attached}\t#{session_created_string}' 2>/dev/null)"; then
56
- echo "No tmux server found on $label" >&2
57
- return 1
58
- fi
59
-
60
- if [[ -n "$query" ]]; then
61
- sessions="$(printf '%s\n' "$sessions" | grep -i -- "$query" || true)"
62
- fi
63
-
64
- if [[ -z "$sessions" ]]; then
65
- echo "No sessions found on $label"
66
- return 0
67
- fi
68
-
69
- echo "Sessions on $label:"
70
- printf '%s\n' "$sessions" | while IFS=$'\t' read -r name attached created; do
71
- attached_label=$([[ "$attached" == "1" ]] && echo "attached" || echo "detached")
72
- printf ' - %s (%s, started %s)\n' "$name" "$attached_label" "$created"
73
- done
74
- }
75
-
76
- if [[ "$scan_all" == true ]]; then
77
- if [[ ! -d "$socket_dir" ]]; then
78
- echo "Socket directory not found: $socket_dir" >&2
79
- exit 1
80
- fi
81
-
82
- shopt -s nullglob
83
- sockets=("$socket_dir"/*)
84
- shopt -u nullglob
85
-
86
- if [[ "${#sockets[@]}" -eq 0 ]]; then
87
- echo "No sockets found under $socket_dir" >&2
88
- exit 1
89
- fi
90
-
91
- exit_code=0
92
- for sock in "${sockets[@]}"; do
93
- if [[ ! -S "$sock" ]]; then
94
- continue
95
- fi
96
- list_sessions "socket path '$sock'" -S "$sock" || exit_code=$?
97
- done
98
- exit "$exit_code"
99
- fi
100
-
101
- tmux_cmd=(tmux)
102
- socket_label="default socket"
103
-
104
- if [[ -n "$socket_name" ]]; then
105
- tmux_cmd+=(-L "$socket_name")
106
- socket_label="socket name '$socket_name'"
107
- elif [[ -n "$socket_path" ]]; then
108
- tmux_cmd+=(-S "$socket_path")
109
- socket_label="socket path '$socket_path'"
110
- fi
111
-
112
- list_sessions "$socket_label" "${tmux_cmd[@]:1}"
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- usage() {
5
- cat <<'USAGE'
6
- Usage: wait-for-text.sh -t target -p pattern [options]
7
-
8
- Poll a tmux pane for text and exit when found.
9
-
10
- Options:
11
- -t, --target tmux target (session:window.pane), required
12
- -p, --pattern regex pattern to look for, required
13
- -F, --fixed treat pattern as a fixed string (grep -F)
14
- -T, --timeout seconds to wait (integer, default: 15)
15
- -i, --interval poll interval in seconds (default: 0.5)
16
- -l, --lines number of history lines to inspect (integer, default: 1000)
17
- -h, --help show this help
18
- USAGE
19
- }
20
-
21
- target=""
22
- pattern=""
23
- grep_flag="-E"
24
- timeout=15
25
- interval=0.5
26
- lines=1000
27
-
28
- while [[ $# -gt 0 ]]; do
29
- case "$1" in
30
- -t|--target) target="${2-}"; shift 2 ;;
31
- -p|--pattern) pattern="${2-}"; shift 2 ;;
32
- -F|--fixed) grep_flag="-F"; shift ;;
33
- -T|--timeout) timeout="${2-}"; shift 2 ;;
34
- -i|--interval) interval="${2-}"; shift 2 ;;
35
- -l|--lines) lines="${2-}"; shift 2 ;;
36
- -h|--help) usage; exit 0 ;;
37
- *) echo "Unknown option: $1" >&2; usage; exit 1 ;;
38
- esac
39
- done
40
-
41
- if [[ -z "$target" || -z "$pattern" ]]; then
42
- echo "target and pattern are required" >&2
43
- usage
44
- exit 1
45
- fi
46
-
47
- if ! [[ "$timeout" =~ ^[0-9]+$ ]]; then
48
- echo "timeout must be an integer number of seconds" >&2
49
- exit 1
50
- fi
51
-
52
- if ! [[ "$lines" =~ ^[0-9]+$ ]]; then
53
- echo "lines must be an integer" >&2
54
- exit 1
55
- fi
56
-
57
- if ! command -v tmux >/dev/null 2>&1; then
58
- echo "tmux not found in PATH" >&2
59
- exit 1
60
- fi
61
-
62
- # End time in epoch seconds (integer, good enough for polling)
63
- start_epoch=$(date +%s)
64
- deadline=$((start_epoch + timeout))
65
-
66
- while true; do
67
- # -J joins wrapped lines, -S uses negative index to read last N lines
68
- pane_text="$(tmux capture-pane -p -J -t "$target" -S "-${lines}" 2>/dev/null || true)"
69
-
70
- if printf '%s\n' "$pane_text" | grep $grep_flag -- "$pattern" >/dev/null 2>&1; then
71
- exit 0
72
- fi
73
-
74
- now=$(date +%s)
75
- if (( now >= deadline )); then
76
- echo "Timed out after ${timeout}s waiting for pattern: $pattern" >&2
77
- echo "Last ${lines} lines from $target:" >&2
78
- printf '%s\n' "$pane_text" >&2
79
- exit 1
80
- fi
81
-
82
- sleep "$interval"
83
- done
@@ -1,96 +0,0 @@
1
- ---
2
- name: trello
3
- description: Manage Trello boards, lists, and cards via the Trello REST API.
4
- homepage: https://developer.atlassian.com/cloud/trello/rest/
5
- metadata:
6
- {
7
- "symi":
8
- { "emoji": "📋", "requires": { "bins": ["jq"], "env": ["TRELLO_API_KEY", "TRELLO_TOKEN"] } },
9
- }
10
- triggers: [trello]
11
- ---
12
-
13
- # Trello Skill
14
-
15
- Manage Trello boards, lists, and cards directly from Symi.
16
-
17
- ## Setup
18
-
19
- 1. Get your API key: https://trello.com/app-key
20
- 2. Generate a token (click "Token" link on that page)
21
- 3. Set environment variables:
22
- ```bash
23
- export TRELLO_API_KEY="your-api-key"
24
- export TRELLO_TOKEN="your-token"
25
- ```
26
-
27
- ## Usage
28
-
29
- All commands use curl to hit the Trello REST API.
30
-
31
- ### List boards
32
-
33
- ```bash
34
- curl -s "https://api.trello.com/1/members/me/boards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" | jq '.[] | {name, id}'
35
- ```
36
-
37
- ### List lists in a board
38
-
39
- ```bash
40
- curl -s "https://api.trello.com/1/boards/{boardId}/lists?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" | jq '.[] | {name, id}'
41
- ```
42
-
43
- ### List cards in a list
44
-
45
- ```bash
46
- curl -s "https://api.trello.com/1/lists/{listId}/cards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" | jq '.[] | {name, id, desc}'
47
- ```
48
-
49
- ### Create a card
50
-
51
- ```bash
52
- curl -s -X POST "https://api.trello.com/1/cards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" \
53
- -d "idList={listId}" \
54
- -d "name=Card Title" \
55
- -d "desc=Card description"
56
- ```
57
-
58
- ### Move a card to another list
59
-
60
- ```bash
61
- curl -s -X PUT "https://api.trello.com/1/cards/{cardId}?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" \
62
- -d "idList={newListId}"
63
- ```
64
-
65
- ### Add a comment to a card
66
-
67
- ```bash
68
- curl -s -X POST "https://api.trello.com/1/cards/{cardId}/actions/comments?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" \
69
- -d "text=Your comment here"
70
- ```
71
-
72
- ### Archive a card
73
-
74
- ```bash
75
- curl -s -X PUT "https://api.trello.com/1/cards/{cardId}?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" \
76
- -d "closed=true"
77
- ```
78
-
79
- ## Notes
80
-
81
- - Board/List/Card IDs can be found in the Trello URL or via the list commands
82
- - The API key and token provide full access to your Trello account - keep them secret!
83
- - Rate limits: 300 requests per 10 seconds per API key; 100 requests per 10 seconds per token; `/1/members` endpoints are limited to 100 requests per 900 seconds
84
-
85
- ## Examples
86
-
87
- ```bash
88
- # Get all boards
89
- curl -s "https://api.trello.com/1/members/me/boards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN&fields=name,id" | jq
90
-
91
- # Find a specific board by name
92
- curl -s "https://api.trello.com/1/members/me/boards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" | jq '.[] | select(.name | contains("Work"))'
93
-
94
- # Get all cards on a board
95
- curl -s "https://api.trello.com/1/boards/{boardId}/cards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" | jq '.[] | {name, list: .idList}'
96
- ```
@@ -1,47 +0,0 @@
1
- ---
2
- name: video-frames
3
- description: Extract frames or short clips from videos using ffmpeg.
4
- homepage: https://ffmpeg.org
5
- metadata:
6
- {
7
- "symi":
8
- {
9
- "emoji": "🎞️",
10
- "requires": { "bins": ["ffmpeg"] },
11
- "install":
12
- [
13
- {
14
- "id": "brew",
15
- "kind": "brew",
16
- "formula": "ffmpeg",
17
- "bins": ["ffmpeg"],
18
- "label": "Install ffmpeg (brew)",
19
- },
20
- ],
21
- },
22
- }
23
- triggers: [video-frames, video, frames]
24
- ---
25
-
26
- # Video Frames (ffmpeg)
27
-
28
- Extract a single frame from a video, or create quick thumbnails for inspection.
29
-
30
- ## Quick start
31
-
32
- First frame:
33
-
34
- ```bash
35
- {baseDir}/scripts/frame.sh /path/to/video.mp4 --out /tmp/frame.jpg
36
- ```
37
-
38
- At a timestamp:
39
-
40
- ```bash
41
- {baseDir}/scripts/frame.sh /path/to/video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
42
- ```
43
-
44
- ## Notes
45
-
46
- - Prefer `--time` for “what is happening around here?”.
47
- - Use a `.jpg` for quick share; use `.png` for crisp UI frames.
@@ -1,81 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- usage() {
5
- cat >&2 <<'EOF'
6
- Usage:
7
- frame.sh <video-file> [--time HH:MM:SS] [--index N] --out /path/to/frame.jpg
8
-
9
- Examples:
10
- frame.sh video.mp4 --out /tmp/frame.jpg
11
- frame.sh video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
12
- frame.sh video.mp4 --index 0 --out /tmp/frame0.png
13
- EOF
14
- exit 2
15
- }
16
-
17
- if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
18
- usage
19
- fi
20
-
21
- in="${1:-}"
22
- shift || true
23
-
24
- time=""
25
- index=""
26
- out=""
27
-
28
- while [[ $# -gt 0 ]]; do
29
- case "$1" in
30
- --time)
31
- time="${2:-}"
32
- shift 2
33
- ;;
34
- --index)
35
- index="${2:-}"
36
- shift 2
37
- ;;
38
- --out)
39
- out="${2:-}"
40
- shift 2
41
- ;;
42
- *)
43
- echo "Unknown arg: $1" >&2
44
- usage
45
- ;;
46
- esac
47
- done
48
-
49
- if [[ ! -f "$in" ]]; then
50
- echo "File not found: $in" >&2
51
- exit 1
52
- fi
53
-
54
- if [[ "$out" == "" ]]; then
55
- echo "Missing --out" >&2
56
- usage
57
- fi
58
-
59
- mkdir -p "$(dirname "$out")"
60
-
61
- if [[ "$index" != "" ]]; then
62
- ffmpeg -hide_banner -loglevel error -y \
63
- -i "$in" \
64
- -vf "select=eq(n\\,${index})" \
65
- -vframes 1 \
66
- "$out"
67
- elif [[ "$time" != "" ]]; then
68
- ffmpeg -hide_banner -loglevel error -y \
69
- -ss "$time" \
70
- -i "$in" \
71
- -frames:v 1 \
72
- "$out"
73
- else
74
- ffmpeg -hide_banner -loglevel error -y \
75
- -i "$in" \
76
- -vf "select=eq(n\\,0)" \
77
- -vframes 1 \
78
- "$out"
79
- fi
80
-
81
- echo "$out"
@@ -1,46 +0,0 @@
1
- ---
2
- name: voice-call
3
- description: Start voice calls via the Symi voice-call plugin.
4
- metadata:
5
- {
6
- "symi":
7
- {
8
- "emoji": "📞",
9
- "skillKey": "voice-call",
10
- "requires": { "config": ["plugins.entries.voice-call.enabled"] },
11
- },
12
- }
13
- triggers: [voice-call, voice, call]
14
- ---
15
-
16
- # Voice Call
17
-
18
- Use the voice-call plugin to start or inspect calls (Twilio, Telnyx, Plivo, or mock).
19
-
20
- ## CLI
21
-
22
- ```bash
23
- symi voicecall call --to "+15555550123" --message "Hello from Symi"
24
- symi voicecall status --call-id <id>
25
- ```
26
-
27
- ## Tool
28
-
29
- Use `voice_call` for agent-initiated calls.
30
-
31
- Actions:
32
-
33
- - `initiate_call` (message, to?, mode?)
34
- - `continue_call` (callId, message)
35
- - `speak_to_user` (callId, message)
36
- - `end_call` (callId)
37
- - `get_status` (callId)
38
-
39
- Notes:
40
-
41
- - Requires the voice-call plugin to be enabled.
42
- - Plugin config lives under `plugins.entries.voice-call.config`.
43
- - Twilio config: `provider: "twilio"` + `twilio.accountSid/authToken` + `fromNumber`.
44
- - Telnyx config: `provider: "telnyx"` + `telnyx.apiKey/connectionId` + `fromNumber`.
45
- - Plivo config: `provider: "plivo"` + `plivo.authId/authToken` + `fromNumber`.
46
- - Dev fallback: `provider: "mock"` (no network).