@hera-al/server 1.6.1

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 (348) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/bundled/apple-notes/SKILL.md +77 -0
  4. package/bundled/apple-reminders/SKILL.md +96 -0
  5. package/bundled/blogwatcher/SKILL.md +69 -0
  6. package/bundled/camsnap/SKILL.md +45 -0
  7. package/bundled/discord/SKILL.md +578 -0
  8. package/bundled/gemini/SKILL.md +43 -0
  9. package/bundled/gifgrep/SKILL.md +79 -0
  10. package/bundled/github/SKILL.md +77 -0
  11. package/bundled/gog/SKILL.md +116 -0
  12. package/bundled/goplaces/SKILL.md +52 -0
  13. package/bundled/himalaya/SKILL.md +257 -0
  14. package/bundled/himalaya/references/configuration.md +184 -0
  15. package/bundled/himalaya/references/message-composition.md +199 -0
  16. package/bundled/homebrew/SKILL.md +82 -0
  17. package/bundled/local-places/SERVER_README.md +101 -0
  18. package/bundled/local-places/SKILL.md +102 -0
  19. package/bundled/local-places/pyproject.toml +21 -0
  20. package/bundled/local-places/src/local_places/__init__.py +2 -0
  21. package/bundled/local-places/src/local_places/google_places.py +314 -0
  22. package/bundled/local-places/src/local_places/main.py +65 -0
  23. package/bundled/local-places/src/local_places/schemas.py +107 -0
  24. package/bundled/markitdown/SKILL.md +96 -0
  25. package/bundled/mcporter/SKILL.md +61 -0
  26. package/bundled/merge-pr/SKILL.md +187 -0
  27. package/bundled/merge-pr/agents/openai.yaml +4 -0
  28. package/bundled/nano-banana-pro/SKILL.md +58 -0
  29. package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
  30. package/bundled/nano-pdf/SKILL.md +38 -0
  31. package/bundled/open-prose/README.md +25 -0
  32. package/bundled/open-prose/index.ts +5 -0
  33. package/bundled/open-prose/openclaw.plugin.json +11 -0
  34. package/bundled/open-prose/package.json +15 -0
  35. package/bundled/open-prose/skills/prose/LICENSE +21 -0
  36. package/bundled/open-prose/skills/prose/SKILL.md +323 -0
  37. package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
  38. package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  39. package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
  40. package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
  41. package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
  42. package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
  43. package/bundled/open-prose/skills/prose/compiler.md +2971 -0
  44. package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  45. package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  46. package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  47. package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  48. package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  49. package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  50. package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  51. package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  52. package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  53. package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  54. package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  55. package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  56. package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  57. package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  58. package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  59. package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  60. package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  61. package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  62. package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  63. package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  64. package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  65. package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  66. package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  67. package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  68. package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  69. package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  70. package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  71. package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  72. package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  73. package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  74. package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  75. package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  76. package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  77. package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  78. package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  79. package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  80. package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  81. package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  82. package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  83. package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  84. package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  85. package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  86. package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  87. package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  88. package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  89. package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  90. package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  91. package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  92. package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  93. package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  94. package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  95. package/bundled/open-prose/skills/prose/examples/README.md +391 -0
  96. package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  97. package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  98. package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  99. package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  100. package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  101. package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  102. package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
  103. package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  104. package/bundled/open-prose/skills/prose/help.md +144 -0
  105. package/bundled/open-prose/skills/prose/lib/README.md +108 -0
  106. package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
  107. package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  108. package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  109. package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
  110. package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
  111. package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
  112. package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
  113. package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
  114. package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  115. package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
  116. package/bundled/open-prose/skills/prose/prose.md +1237 -0
  117. package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
  118. package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
  119. package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
  120. package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
  121. package/bundled/peekaboo/SKILL.md +190 -0
  122. package/bundled/prepare-pr/SKILL.md +277 -0
  123. package/bundled/prepare-pr/agents/openai.yaml +4 -0
  124. package/bundled/review-pr/SKILL.md +228 -0
  125. package/bundled/review-pr/agents/openai.yaml +4 -0
  126. package/bundled/sag/SKILL.md +87 -0
  127. package/bundled/skill-creator/SKILL.md +370 -0
  128. package/bundled/skill-creator/license.txt +202 -0
  129. package/bundled/skill-creator/scripts/init_skill.py +378 -0
  130. package/bundled/skill-creator/scripts/package_skill.py +111 -0
  131. package/bundled/skill-creator/scripts/quick_validate.py +101 -0
  132. package/bundled/spotify-player/SKILL.md +64 -0
  133. package/bundled/ssh/SKILL.md +119 -0
  134. package/bundled/summarize/SKILL.md +87 -0
  135. package/bundled/video-frames/SKILL.md +46 -0
  136. package/bundled/video-frames/scripts/frame.sh +81 -0
  137. package/bundled/voice-call/SKILL.md +45 -0
  138. package/bundled/wacli/SKILL.md +72 -0
  139. package/bundled/weather/SKILL.md +54 -0
  140. package/dist/agent/agent-service.d.ts +88 -0
  141. package/dist/agent/agent-service.js +1 -0
  142. package/dist/agent/message-queue.d.ts +24 -0
  143. package/dist/agent/message-queue.js +1 -0
  144. package/dist/agent/prompt-builder.d.ts +58 -0
  145. package/dist/agent/prompt-builder.js +1 -0
  146. package/dist/agent/session-agent.d.ts +197 -0
  147. package/dist/agent/session-agent.js +1 -0
  148. package/dist/agent/session-db.d.ts +26 -0
  149. package/dist/agent/session-db.js +1 -0
  150. package/dist/agent/session-error-handler.d.ts +37 -0
  151. package/dist/agent/session-error-handler.js +1 -0
  152. package/dist/agent/session-manager.d.ts +19 -0
  153. package/dist/agent/session-manager.js +1 -0
  154. package/dist/agent/workspace-files.d.ts +51 -0
  155. package/dist/agent/workspace-files.js +1 -0
  156. package/dist/auth/auth-middleware.d.ts +9 -0
  157. package/dist/auth/auth-middleware.js +1 -0
  158. package/dist/auth/node-signature-db.d.ts +30 -0
  159. package/dist/auth/node-signature-db.js +1 -0
  160. package/dist/auth/token-db.d.ts +38 -0
  161. package/dist/auth/token-db.js +1 -0
  162. package/dist/browser/browser-service.d.ts +9 -0
  163. package/dist/browser/browser-service.js +1 -0
  164. package/dist/channels/channel.d.ts +2 -0
  165. package/dist/channels/channel.js +1 -0
  166. package/dist/channels/responses.d.ts +21 -0
  167. package/dist/channels/responses.js +1 -0
  168. package/dist/commands/clear.d.ts +7 -0
  169. package/dist/commands/clear.js +1 -0
  170. package/dist/commands/cmd.d.ts +7 -0
  171. package/dist/commands/cmd.js +1 -0
  172. package/dist/commands/coder.d.ts +12 -0
  173. package/dist/commands/coder.js +1 -0
  174. package/dist/commands/command-registry.d.ts +12 -0
  175. package/dist/commands/command-registry.js +1 -0
  176. package/dist/commands/command.d.ts +22 -0
  177. package/dist/commands/command.js +1 -0
  178. package/dist/commands/compact.d.ts +7 -0
  179. package/dist/commands/compact.js +1 -0
  180. package/dist/commands/customsubagents.d.ts +15 -0
  181. package/dist/commands/customsubagents.js +1 -0
  182. package/dist/commands/help.d.ts +9 -0
  183. package/dist/commands/help.js +1 -0
  184. package/dist/commands/mcp.d.ts +9 -0
  185. package/dist/commands/mcp.js +1 -0
  186. package/dist/commands/model.d.ts +22 -0
  187. package/dist/commands/model.js +1 -0
  188. package/dist/commands/models.d.ts +11 -0
  189. package/dist/commands/models.js +1 -0
  190. package/dist/commands/new.d.ts +7 -0
  191. package/dist/commands/new.js +1 -0
  192. package/dist/commands/plugin.d.ts +7 -0
  193. package/dist/commands/plugin.js +1 -0
  194. package/dist/commands/sandbox.d.ts +12 -0
  195. package/dist/commands/sandbox.js +1 -0
  196. package/dist/commands/showtool.d.ts +12 -0
  197. package/dist/commands/showtool.js +1 -0
  198. package/dist/commands/status.d.ts +24 -0
  199. package/dist/commands/status.js +1 -0
  200. package/dist/commands/stop.d.ts +10 -0
  201. package/dist/commands/stop.js +1 -0
  202. package/dist/commands/subagents.d.ts +12 -0
  203. package/dist/commands/subagents.js +1 -0
  204. package/dist/commands/usage.d.ts +25 -0
  205. package/dist/commands/usage.js +1 -0
  206. package/dist/commands/useplugin.d.ts +7 -0
  207. package/dist/commands/useplugin.js +1 -0
  208. package/dist/config-watcher.d.ts +14 -0
  209. package/dist/config-watcher.js +1 -0
  210. package/dist/config.d.ts +267 -0
  211. package/dist/config.js +1 -0
  212. package/dist/cron/cron-service.d.ts +57 -0
  213. package/dist/cron/cron-service.js +1 -0
  214. package/dist/cron/heartbeat-token.d.ts +29 -0
  215. package/dist/cron/heartbeat-token.js +1 -0
  216. package/dist/cron/schedule.d.ts +3 -0
  217. package/dist/cron/schedule.js +1 -0
  218. package/dist/cron/store.d.ts +4 -0
  219. package/dist/cron/store.js +1 -0
  220. package/dist/cron/types.d.ts +47 -0
  221. package/dist/cron/types.js +1 -0
  222. package/dist/gateway/bridge.d.ts +38 -0
  223. package/dist/gateway/bridge.js +1 -0
  224. package/dist/gateway/channel-manager.d.ts +45 -0
  225. package/dist/gateway/channel-manager.js +1 -0
  226. package/dist/gateway/channels/qr-image.d.ts +5 -0
  227. package/dist/gateway/channels/qr-image.js +1 -0
  228. package/dist/gateway/channels/telegram.d.ts +39 -0
  229. package/dist/gateway/channels/telegram.js +1 -0
  230. package/dist/gateway/channels/webchat.d.ts +51 -0
  231. package/dist/gateway/channels/webchat.js +1 -0
  232. package/dist/gateway/channels/whatsapp.d.ts +40 -0
  233. package/dist/gateway/channels/whatsapp.js +1 -0
  234. package/dist/gateway/node-registry.d.ts +38 -0
  235. package/dist/gateway/node-registry.js +1 -0
  236. package/dist/heracli/index.d.ts +3 -0
  237. package/dist/heracli/index.js +2 -0
  238. package/dist/heracli/logs.d.ts +13 -0
  239. package/dist/heracli/logs.js +1 -0
  240. package/dist/heracli/security/audit.d.ts +17 -0
  241. package/dist/heracli/security/audit.js +1 -0
  242. package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
  243. package/dist/heracli/security/checks/channel-policies.js +1 -0
  244. package/dist/heracli/security/checks/credentials.d.ts +6 -0
  245. package/dist/heracli/security/checks/credentials.js +1 -0
  246. package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
  247. package/dist/heracli/security/checks/fs-permissions.js +1 -0
  248. package/dist/heracli/security/checks/network.d.ts +4 -0
  249. package/dist/heracli/security/checks/network.js +1 -0
  250. package/dist/heracli/security/report.d.ts +4 -0
  251. package/dist/heracli/security/report.js +1 -0
  252. package/dist/index.d.ts +3 -0
  253. package/dist/index.js +2 -0
  254. package/dist/installer/hera.d.ts +3 -0
  255. package/dist/installer/hera.js +2 -0
  256. package/dist/media/message-processor.d.ts +23 -0
  257. package/dist/media/message-processor.js +1 -0
  258. package/dist/memory/memory-manager.d.ts +21 -0
  259. package/dist/memory/memory-manager.js +1 -0
  260. package/dist/memory/memory-provider.d.ts +22 -0
  261. package/dist/memory/memory-provider.js +1 -0
  262. package/dist/memory/memory-search.d.ts +102 -0
  263. package/dist/memory/memory-search.js +1 -0
  264. package/dist/memory/recall-strategies.d.ts +2 -0
  265. package/dist/memory/recall-strategies.js +1 -0
  266. package/dist/nostromo/auth.d.ts +29 -0
  267. package/dist/nostromo/auth.js +1 -0
  268. package/dist/nostromo/nostromo.d.ts +23 -0
  269. package/dist/nostromo/nostromo.js +1 -0
  270. package/dist/nostromo/ui-html-layout.d.ts +3 -0
  271. package/dist/nostromo/ui-html-layout.js +1 -0
  272. package/dist/nostromo/ui-html-modals.d.ts +3 -0
  273. package/dist/nostromo/ui-html-modals.js +1 -0
  274. package/dist/nostromo/ui-js-agent.d.ts +3 -0
  275. package/dist/nostromo/ui-js-agent.js +1 -0
  276. package/dist/nostromo/ui-js-channels.d.ts +3 -0
  277. package/dist/nostromo/ui-js-channels.js +1 -0
  278. package/dist/nostromo/ui-js-competences.d.ts +3 -0
  279. package/dist/nostromo/ui-js-competences.js +1 -0
  280. package/dist/nostromo/ui-js-config.d.ts +3 -0
  281. package/dist/nostromo/ui-js-config.js +1 -0
  282. package/dist/nostromo/ui-js-core.d.ts +3 -0
  283. package/dist/nostromo/ui-js-core.js +1 -0
  284. package/dist/nostromo/ui-js-ops.d.ts +3 -0
  285. package/dist/nostromo/ui-js-ops.js +1 -0
  286. package/dist/nostromo/ui-js-prompts.d.ts +3 -0
  287. package/dist/nostromo/ui-js-prompts.js +1 -0
  288. package/dist/nostromo/ui-styles.d.ts +3 -0
  289. package/dist/nostromo/ui-styles.js +1 -0
  290. package/dist/nostromo/ui.d.ts +2 -0
  291. package/dist/nostromo/ui.js +1 -0
  292. package/dist/server.d.ts +80 -0
  293. package/dist/server.js +1 -0
  294. package/dist/stt/local-whisper.d.ts +9 -0
  295. package/dist/stt/local-whisper.js +1 -0
  296. package/dist/stt/openai-whisper.d.ts +14 -0
  297. package/dist/stt/openai-whisper.js +1 -0
  298. package/dist/stt/stt-loader.d.ts +4 -0
  299. package/dist/stt/stt-loader.js +1 -0
  300. package/dist/stt/stt-provider.d.ts +4 -0
  301. package/dist/stt/stt-provider.js +1 -0
  302. package/dist/tools/browser-tools.d.ts +9 -0
  303. package/dist/tools/browser-tools.js +1 -0
  304. package/dist/tools/cron-tools.d.ts +4 -0
  305. package/dist/tools/cron-tools.js +1 -0
  306. package/dist/tools/memory-tools.d.ts +3 -0
  307. package/dist/tools/memory-tools.js +1 -0
  308. package/dist/tools/message-tools.d.ts +5 -0
  309. package/dist/tools/message-tools.js +1 -0
  310. package/dist/tools/node-tools.d.ts +3 -0
  311. package/dist/tools/node-tools.js +1 -0
  312. package/dist/tools/server-tools.d.ts +2 -0
  313. package/dist/tools/server-tools.js +1 -0
  314. package/dist/tools/tts-tools.d.ts +3 -0
  315. package/dist/tools/tts-tools.js +1 -0
  316. package/dist/tts/tts-service.d.ts +19 -0
  317. package/dist/tts/tts-service.js +1 -0
  318. package/dist/utils/chunk.d.ts +3 -0
  319. package/dist/utils/chunk.js +1 -0
  320. package/dist/utils/logger.d.ts +16 -0
  321. package/dist/utils/logger.js +1 -0
  322. package/dist/utils/markdown/fences.d.ts +11 -0
  323. package/dist/utils/markdown/fences.js +1 -0
  324. package/dist/utils/markdown/ir.d.ts +33 -0
  325. package/dist/utils/markdown/ir.js +1 -0
  326. package/dist/utils/markdown/render.d.ts +19 -0
  327. package/dist/utils/markdown/render.js +1 -0
  328. package/dist/utils/markdown/tables.d.ts +3 -0
  329. package/dist/utils/markdown/tables.js +1 -0
  330. package/dist/utils/media-response.d.ts +29 -0
  331. package/dist/utils/media-response.js +1 -0
  332. package/dist/utils/package-paths.d.ts +5 -0
  333. package/dist/utils/package-paths.js +1 -0
  334. package/dist/utils/telegram-format.d.ts +13 -0
  335. package/dist/utils/telegram-format.js +1 -0
  336. package/installationPkg/.env.example +26 -0
  337. package/installationPkg/AGENTS.md +143 -0
  338. package/installationPkg/BOOTSTRAP.md +45 -0
  339. package/installationPkg/CBINT.json +16 -0
  340. package/installationPkg/HEARTBEAT.md +5 -0
  341. package/installationPkg/IDENTITY.md +7 -0
  342. package/installationPkg/SOUL.md +36 -0
  343. package/installationPkg/SYSTEM_PROMPT.md +55 -0
  344. package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
  345. package/installationPkg/TOOLS.md +36 -0
  346. package/installationPkg/USER.md +11 -0
  347. package/installationPkg/config.example.yaml +291 -0
  348. package/package.json +95 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 TGP (The Good Programmer)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,325 @@
1
+ # 💎 Hera Artificial Life
2
+
3
+ **The AI that doesn't just chat — it acts, evolves, and thinks ahead.**
4
+
5
+ Hera is not another chatbot wrapper. It's an autonomous AI platform that combines state-of-the-art language models with unprecedented levels of autonomy, action, and self-evolution. Built on Claude Agent SDK, Hera connects to multiple communication channels while maintaining context, learning from interactions, and proactively managing tasks without constant supervision.
6
+
7
+ ---
8
+
9
+ ## 🌟 What Makes Hera Different
10
+
11
+ ### Beyond Chat: True Autonomy
12
+ - **Proactive Actions**: Schedules its own tasks, monitors events, reaches out when needed
13
+ - **Self-Programming**: Creates and modifies its own skills, adapts workflows
14
+ - **Memory Evolution**: Nightly consolidation transforms daily interactions into long-term knowledge with RDF concept mapping
15
+ - **Multi-Modal Intelligence**: Voice (TTS/STT), vision, document processing, web search
16
+
17
+ ### Production-Ready Architecture
18
+ - **Multi-Channel Gateway**: Telegram, WhatsApp, Discord, WebChat — unified interface, consistent experience
19
+ - **Nostromo Control Center**: Advanced admin panel for real-time monitoring, configuration, and orchestration
20
+ - **Distributed Execution**: Remote nodes for browser automation, shell execution, cross-platform actions
21
+ - **Extensible by Design**: Skills, MCP tools, plugins — choose your level of integration
22
+
23
+ ### Built for Developers
24
+ - **MIT Licensed Components**: Core libraries available as `@hera-al/*` packages on npm
25
+ - **Claude Agent SDK Native**: Full toolkit access, streaming, artifacts, permissions
26
+ - **TypeScript Throughout**: Type-safe, maintainable, modern codebase
27
+ - **Docker Ready**: One command to production
28
+
29
+ ---
30
+
31
+ ## 🏗️ Architecture
32
+
33
+ ```
34
+ ┌─────────────────────────────────────────────────────────────┐
35
+ │ COMMUNICATION LAYER │
36
+ │ Telegram • WhatsApp • Discord • WebChat • Voice • Browser │
37
+ └────────────────────────┬────────────────────────────────────┘
38
+
39
+ ┌────────────────────────▼────────────────────────────────────┐
40
+ │ HERA GATEWAY │
41
+ │ • Session Management • Multi-format rendering │
42
+ │ • Permission System • Cron Scheduler │
43
+ │ • Memory Pipeline • Nostromo Admin Panel │
44
+ └────────────────────────┬────────────────────────────────────┘
45
+
46
+ ┌────────────────────────▼────────────────────────────────────┐
47
+ │ CLAUDE AGENT SDK │
48
+ │ Claude Sonnet 4.5 • Tool orchestration • Streaming │
49
+ └────────────────────────┬────────────────────────────────────┘
50
+
51
+ ┌───────────────┴───────────────┬─────────────────┐
52
+ │ │ │
53
+ ┌────────▼────────┐ ┌─────────▼──────┐ ┌───────▼────────┐
54
+ │ SKILLS │ │ MCP SERVERS │ │ REMOTE NODES │
55
+ │ • Google WS │ │ • Custom │ │ • OSXNode │
56
+ │ • xAI Search │ │ • Community │ │ • Browser CDP │
57
+ │ • Apple Notes │ │ • External │ │ • Shell Exec │
58
+ │ • Dreaming │ │ │ │ │
59
+ │ • Custom... │ │ │ │ │
60
+ └─────────────────┘ └────────────────┘ └────────────────┘
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 🎯 Core Components
66
+
67
+ ### Nostromo — The Command Center
68
+ Real-time admin panel providing:
69
+ - **Live Session Monitoring**: Active conversations, context windows, tool usage
70
+ - **Skill Management**: Install, update, configure, and publish skills
71
+ - **Cron Orchestration**: Schedule autonomous tasks, view execution history
72
+ - **Model Registry**: Switch between Claude, GPT-4, local models on the fly
73
+ - **Permission Dashboard**: Approve/deny tool executions, set policies
74
+ - **System Health**: Memory usage, API quotas, node connectivity
75
+
76
+ ### The Memory System
77
+ Three-tier memory architecture:
78
+ 1. **Session Memory**: Real-time context during conversations
79
+ 2. **Daily Logs**: Markdown files with full conversation history
80
+ 3. **Long-Term Memory**: Consolidated knowledge with semantic search and RDF Turtle concept maps
81
+
82
+ The `dreaming` skill runs nightly, identifying patterns, extracting insights, and updating the concept graph — Hera literally learns while you sleep.
83
+
84
+ ### Skills — Extensibility at Scale
85
+ Skills are self-contained capabilities that extend Hera's reach:
86
+
87
+ **Bundled Skills:**
88
+ - `google-workspace` — Gmail, Drive, Docs, Sheets, Slides (OAuth2 integrated)
89
+ - `xai-search` — Web and X (Twitter) search via Grok Responses API
90
+ - `apple-notes` & `apple-reminders` — Native macOS integration
91
+ - `weather` — Current conditions and forecasts
92
+ - `ssh` — Remote server management
93
+ - `dreaming` — Nightly memory consolidation and concept mapping
94
+ - `the-skill-guardian` — Security scanner for third-party skills (90+ malicious pattern detection)
95
+ - `skill-creator` — Meta-skill for creating and packaging new skills
96
+
97
+ **Create Your Own:**
98
+ ```bash
99
+ # Skills live in .claude/skills/<name>/
100
+ # SKILL.md defines capabilities
101
+ # scripts/ subfolder contains executables
102
+ # Full access to Hera's toolkit
103
+ ```
104
+
105
+ ### MCP Integration
106
+ Model Context Protocol (MCP) support allows:
107
+ - Connecting to external data sources (databases, APIs, SaaS)
108
+ - Using community MCP servers (Notion, Linear, GitHub, etc.)
109
+ - Building custom MCP servers for proprietary systems
110
+
111
+ ### Remote Nodes
112
+ WebSocket-based execution nodes for distributed actions:
113
+ - **StandardNode**: Shell execution on any machine (npm package: `@hera-al/standardnode`)
114
+ - **OSXNode**: Native macOS app with SwiftUI interface, markdown rendering, notifications
115
+ - **Browser Nodes**: Chrome DevTools Protocol (CDP) automation for web scraping, testing, interaction
116
+
117
+ ---
118
+
119
+ ## 🚀 Quick Start
120
+
121
+ ### Prerequisites
122
+ - Node.js 18+
123
+ - Anthropic API key
124
+ - (Optional) Telegram bot token, OpenAI API key for voice
125
+
126
+ ### Installation
127
+
128
+ ```bash
129
+ # Clone or install
130
+ npm install -g @hera-al/server
131
+ ```
132
+
133
+ ### Configuration
134
+
135
+ Create `.env`:
136
+ ```env
137
+ # Required
138
+ ANTHROPIC_API_KEY=sk-ant-...
139
+ DATA_FOLDER=/path/to/data
140
+
141
+ # Channels (optional)
142
+ TELEGRAM_BOT_TOKEN=123456789:ABC...
143
+ WHATSAPP_ENABLED=true
144
+
145
+ # Voice (optional)
146
+ OPENAI_API_KEY=sk-...
147
+ TTS_PROVIDER=openai
148
+ TTS_VOICE=echo
149
+
150
+ # Nostromo (optional)
151
+ NOSTROMO_PORT=3030
152
+ NOSTROMO_ENABLED=true
153
+ ```
154
+
155
+ See `.env.example` for all options.
156
+
157
+ ### Launch
158
+
159
+ ```bash
160
+ # Start the gateway
161
+ npm start
162
+
163
+ # Or with Nostromo
164
+ npm run server:with-nostromo
165
+
166
+ # CLI tools
167
+ hera # Interactive management CLI
168
+ heraserver # Start server programmatically
169
+ hera-install # Installation wizard
170
+ ```
171
+
172
+ Access Nostromo at `http://localhost:3030` (default).
173
+
174
+ ---
175
+
176
+ ## 📚 Use Cases
177
+
178
+ ### Personal AI Assistant
179
+ - Manages emails, calendar, reminders across platforms
180
+ - Proactively surfaces relevant information
181
+ - Learns preferences and adapts over time
182
+
183
+ ### Team Collaboration Hub
184
+ - Multi-channel presence (Slack, Discord, Telegram simultaneously)
185
+ - Skill-based workflows (CI/CD triggers, code reviews, deployments)
186
+ - Shared memory and knowledge base
187
+
188
+ ### Autonomous Automation
189
+ - Scheduled tasks via cron (data scraping, report generation, monitoring)
190
+ - Self-healing workflows (detect failures, retry with exponential backoff)
191
+ - Cross-platform orchestration (Mac → Linux → Cloud)
192
+
193
+ ### Research & Development
194
+ - Memory consolidation identifies patterns in conversations
195
+ - Concept mapping reveals hidden connections
196
+ - Export knowledge graphs for analysis
197
+
198
+ ---
199
+
200
+ ## 🧩 Ecosystem
201
+
202
+ ### Published Packages
203
+
204
+ | Package | Description | npm |
205
+ |---------|-------------|-----|
206
+ | `@hera-al/server` | Core gateway (coming soon) | — |
207
+ | `@hera-al/browser-server` | WebChat UI component | [📦](https://www.npmjs.com/package/@hera-al/browser-server) |
208
+ | `@hera-al/standardnode` | Remote execution node client | (coming soon) |
209
+
210
+ ### GitHub Organization
211
+ - **Main repo**: [hera-artificial-life/hera-al](https://github.com/hera-artificial-life/hera-al)
212
+ - **Skill repositories**: Skills developed by the community
213
+ - **OSXNode**: [hera-artificial-life/osxnode](https://github.com/hera-artificial-life/osxnode)
214
+
215
+ ---
216
+
217
+ ## 🔐 Security
218
+
219
+ ### The Skill Guardian
220
+ Before installing any third-party skill, run:
221
+ ```bash
222
+ hera skill-scan <path-to-skill>
223
+ ```
224
+
225
+ Detects 90+ malicious patterns including:
226
+ - Code execution & shell injection
227
+ - Data exfiltration & credential theft
228
+ - Persistence mechanisms
229
+ - Prompt injection attacks
230
+
231
+ ### Permission System
232
+ Fine-grained control over:
233
+ - Tool execution (approve/deny on demand or via policy)
234
+ - File system access (read/write boundaries)
235
+ - Network requests (allowlist/blocklist domains)
236
+ - Skill capabilities (sandbox mode)
237
+
238
+ ---
239
+
240
+ ## 🌱 Philosophy: Hera vs. OpenClaw
241
+
242
+ **OpenClaw** is the open-source framework — maximum flexibility, community-driven, all options on the table.
243
+
244
+ **Hera** is the opinionated product — curated experience, cohesive design, decisions made for you. Think Rails vs. Express, or macOS vs. Linux.
245
+
246
+ Both are valid. Hera makes choices so you don't have to. The building blocks (npm packages) are MIT licensed. The product (gateway + curated skills + Nostromo) is the Hera experience.
247
+
248
+ ---
249
+
250
+ ## 🛠️ Development
251
+
252
+ ### Project Structure
253
+ ```
254
+ grabmeabeer/
255
+ ├── src/ # Gateway source code
256
+ │ ├── channels/ # Telegram, WhatsApp, Discord, WebChat
257
+ │ ├── agent/ # Claude SDK integration
258
+ │ ├── memory/ # Semantic search, RDF concept map
259
+ │ ├── cron/ # Scheduler & job management
260
+ │ └── tools/ # Built-in tools (node_exec, TTS, etc.)
261
+ ├── browser-server/ # WebChat UI (published to npm)
262
+ ├── standardnode/ # Remote node client (published to npm)
263
+ ├── .claude/skills/ # Skill directory
264
+ ├── bundled/ # Pre-installed skills
265
+ ├── installationPkg/ # Installation wizard assets
266
+ └── nostromo/ # Admin panel source
267
+ ```
268
+
269
+ ### Contributing
270
+ 1. Fork the repo
271
+ 2. Create a feature branch
272
+ 3. Write tests (when applicable)
273
+ 4. Submit a pull request
274
+
275
+ **Skill contributions welcome!** See `.claude/skills/skill-creator/SKILL.md` for the template.
276
+
277
+ ---
278
+
279
+ ## 📖 Documentation
280
+
281
+ - **Installation Guide**: `docs/installation.md` (coming soon)
282
+ - **Skill Development**: `.claude/skills/skill-creator/SKILL.md`
283
+ - **API Reference**: `docs/api.md` (coming soon)
284
+ - **Nostromo Manual**: `docs/nostromo.md` (coming soon)
285
+
286
+ ---
287
+
288
+ ## 🙏 Credits
289
+
290
+ ### Built With
291
+ - [Claude Agent SDK](https://github.com/anthropics/anthropic-sdk-typescript) — Anthropic
292
+ - [grammY](https://grammy.dev) — Telegram bot framework
293
+ - [Hono](https://hono.dev) — Lightweight web framework
294
+ - [Zod](https://zod.dev) — TypeScript-first schema validation
295
+ - [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) — Fast SQLite bindings
296
+
297
+ ### Inspiration
298
+ Standing on the shoulders of giants: OpenClaw, AutoGPT, LangChain, and the entire open-source AI community.
299
+
300
+ ---
301
+
302
+ ## 📄 License
303
+
304
+ **MIT License** — see [LICENSE](./LICENSE) for details.
305
+
306
+ Core components (`@hera-al/*` packages) are free and open source. Build, fork, modify, deploy commercially — it's yours.
307
+
308
+ The Hera product (curated gateway + skills + Nostromo) represents our vision of what an AI agent should be. Use the components freely; experience Hera as intended.
309
+
310
+ ---
311
+
312
+ ## 🔗 Links
313
+
314
+ - **Website**: Coming soon
315
+ - **npm**: [@hera-al](https://www.npmjs.com/org/hera-al)
316
+ - **GitHub**: [hera-artificial-life](https://github.com/hera-artificial-life)
317
+ - **Author**: TGP (The Good Programmer)
318
+ - **Email**: heralife.dev@gmail.com
319
+
320
+ ---
321
+
322
+ <p align="center">
323
+ <strong>💎 Hera Artificial Life</strong><br>
324
+ <em>Opinionated AI. Curated experience. Unprecedented autonomy.</em>
325
+ </p>
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: apple-notes
3
+ description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
4
+ homepage: https://github.com/antoniorodr/memo
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "📝",
10
+ "os": ["darwin"],
11
+ "requires": { "bins": ["memo"] },
12
+ "install":
13
+ [
14
+ {
15
+ "id": "brew",
16
+ "kind": "brew",
17
+ "formula": "antoniorodr/memo/memo",
18
+ "bins": ["memo"],
19
+ "label": "Install memo via Homebrew",
20
+ },
21
+ ],
22
+ },
23
+ }
24
+ ---
25
+
26
+ # Apple Notes CLI
27
+
28
+ Use `memo notes` to manage Apple Notes directly from the terminal. Create, view, edit, delete, search, move notes between folders, and export to HTML/Markdown.
29
+
30
+ Setup
31
+
32
+ - Install (Homebrew): `brew tap antoniorodr/memo && brew install antoniorodr/memo/memo`
33
+ - Manual (pip): `pip install .` (after cloning the repo)
34
+ - macOS-only; if prompted, grant Automation access to Notes.app.
35
+
36
+ View Notes
37
+
38
+ - List all notes: `memo notes`
39
+ - Filter by folder: `memo notes -f "Folder Name"`
40
+ - Search notes (fuzzy): `memo notes -s "query"`
41
+
42
+ Create Notes
43
+
44
+ - Add a new note: `memo notes -a`
45
+ - Opens an interactive editor to compose the note.
46
+ - Quick add with title: `memo notes -a "Note Title"`
47
+
48
+ Edit Notes
49
+
50
+ - Edit existing note: `memo notes -e`
51
+ - Interactive selection of note to edit.
52
+
53
+ Delete Notes
54
+
55
+ - Delete a note: `memo notes -d`
56
+ - Interactive selection of note to delete.
57
+
58
+ Move Notes
59
+
60
+ - Move note to folder: `memo notes -m`
61
+ - Interactive selection of note and destination folder.
62
+
63
+ Export Notes
64
+
65
+ - Export to HTML/Markdown: `memo notes -ex`
66
+ - Exports selected note; uses Mistune for markdown processing.
67
+
68
+ Limitations
69
+
70
+ - Cannot edit notes containing images or attachments.
71
+ - Interactive prompts may require terminal access.
72
+
73
+ Notes
74
+
75
+ - macOS-only.
76
+ - Requires Apple Notes.app to be accessible.
77
+ - For automation, grant permissions in System Settings > Privacy & Security > Automation.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: apple-reminders
3
+ description: Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
4
+ homepage: https://github.com/steipete/remindctl
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "⏰",
10
+ "os": ["darwin"],
11
+ "requires": { "bins": ["remindctl"] },
12
+ "install":
13
+ [
14
+ {
15
+ "id": "brew",
16
+ "kind": "brew",
17
+ "formula": "steipete/tap/remindctl",
18
+ "bins": ["remindctl"],
19
+ "label": "Install remindctl via Homebrew",
20
+ },
21
+ ],
22
+ },
23
+ }
24
+ ---
25
+
26
+ # Apple Reminders CLI (remindctl)
27
+
28
+ Use `remindctl` to manage Apple Reminders directly from the terminal. It supports list filtering, date-based views, and scripting output.
29
+
30
+ Setup
31
+
32
+ - Install (Homebrew): `brew install steipete/tap/remindctl`
33
+ - From source: `pnpm install && pnpm build` (binary at `./bin/remindctl`)
34
+ - macOS-only; grant Reminders permission when prompted.
35
+
36
+ Permissions
37
+
38
+ - Check status: `remindctl status`
39
+ - Request access: `remindctl authorize`
40
+
41
+ View Reminders
42
+
43
+ - Default (today): `remindctl`
44
+ - Today: `remindctl today`
45
+ - Tomorrow: `remindctl tomorrow`
46
+ - Week: `remindctl week`
47
+ - Overdue: `remindctl overdue`
48
+ - Upcoming: `remindctl upcoming`
49
+ - Completed: `remindctl completed`
50
+ - All: `remindctl all`
51
+ - Specific date: `remindctl 2026-01-04`
52
+
53
+ Manage Lists
54
+
55
+ - List all lists: `remindctl list`
56
+ - Show list: `remindctl list Work`
57
+ - Create list: `remindctl list Projects --create`
58
+ - Rename list: `remindctl list Work --rename Office`
59
+ - Delete list: `remindctl list Work --delete`
60
+
61
+ Create Reminders
62
+
63
+ - Quick add: `remindctl add "Buy milk"`
64
+ - With list + due: `remindctl add --title "Call mom" --list Personal --due tomorrow`
65
+
66
+ Edit Reminders
67
+
68
+ - Edit title/due: `remindctl edit 1 --title "New title" --due 2026-01-04`
69
+
70
+ Complete Reminders
71
+
72
+ - Complete by id: `remindctl complete 1 2 3`
73
+
74
+ Delete Reminders
75
+
76
+ - Delete by id: `remindctl delete 4A83 --force`
77
+
78
+ Output Formats
79
+
80
+ - JSON (scripting): `remindctl today --json`
81
+ - Plain TSV: `remindctl today --plain`
82
+ - Counts only: `remindctl today --quiet`
83
+
84
+ Date Formats
85
+ Accepted by `--due` and date filters:
86
+
87
+ - `today`, `tomorrow`, `yesterday`
88
+ - `YYYY-MM-DD`
89
+ - `YYYY-MM-DD HH:mm`
90
+ - ISO 8601 (`2026-01-04T12:34:56Z`)
91
+
92
+ Notes
93
+
94
+ - macOS-only.
95
+ - If access is denied, enable Terminal/remindctl in System Settings → Privacy & Security → Reminders.
96
+ - If running over SSH, grant access on the Mac that runs the command.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: blogwatcher
3
+ description: Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
4
+ homepage: https://github.com/Hyaxia/blogwatcher
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "📰",
10
+ "requires": { "bins": ["blogwatcher"] },
11
+ "install":
12
+ [
13
+ {
14
+ "id": "go",
15
+ "kind": "go",
16
+ "module": "github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest",
17
+ "bins": ["blogwatcher"],
18
+ "label": "Install blogwatcher (go)",
19
+ },
20
+ ],
21
+ },
22
+ }
23
+ ---
24
+
25
+ # blogwatcher
26
+
27
+ Track blog and RSS/Atom feed updates with the `blogwatcher` CLI.
28
+
29
+ Install
30
+
31
+ - Go: `go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest`
32
+
33
+ Quick start
34
+
35
+ - `blogwatcher --help`
36
+
37
+ Common commands
38
+
39
+ - Add a blog: `blogwatcher add "My Blog" https://example.com`
40
+ - List blogs: `blogwatcher blogs`
41
+ - Scan for updates: `blogwatcher scan`
42
+ - List articles: `blogwatcher articles`
43
+ - Mark an article read: `blogwatcher read 1`
44
+ - Mark all articles read: `blogwatcher read-all`
45
+ - Remove a blog: `blogwatcher remove "My Blog"`
46
+
47
+ Example output
48
+
49
+ ```
50
+ $ blogwatcher blogs
51
+ Tracked blogs (1):
52
+
53
+ xkcd
54
+ URL: https://xkcd.com
55
+ ```
56
+
57
+ ```
58
+ $ blogwatcher scan
59
+ Scanning 1 blog(s)...
60
+
61
+ xkcd
62
+ Source: RSS | Found: 4 | New: 4
63
+
64
+ Found 4 new article(s) total!
65
+ ```
66
+
67
+ Notes
68
+
69
+ - Use `blogwatcher <command> --help` to discover flags and options.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: camsnap
3
+ description: Capture frames or clips from RTSP/ONVIF cameras.
4
+ homepage: https://camsnap.ai
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "📸",
10
+ "requires": { "bins": ["camsnap"] },
11
+ "install":
12
+ [
13
+ {
14
+ "id": "brew",
15
+ "kind": "brew",
16
+ "formula": "steipete/tap/camsnap",
17
+ "bins": ["camsnap"],
18
+ "label": "Install camsnap (brew)",
19
+ },
20
+ ],
21
+ },
22
+ }
23
+ ---
24
+
25
+ # camsnap
26
+
27
+ Use `camsnap` to grab snapshots, clips, or motion events from configured cameras.
28
+
29
+ Setup
30
+
31
+ - Config file: `~/.config/camsnap/config.yaml`
32
+ - Add camera: `camsnap add --name kitchen --host 192.168.0.10 --user user --pass pass`
33
+
34
+ Common commands
35
+
36
+ - Discover: `camsnap discover --info`
37
+ - Snapshot: `camsnap snap kitchen --out shot.jpg`
38
+ - Clip: `camsnap clip kitchen --dur 5s --out clip.mp4`
39
+ - Motion watch: `camsnap watch kitchen --threshold 0.2 --action '...'`
40
+ - Doctor: `camsnap doctor --probe`
41
+
42
+ Notes
43
+
44
+ - Requires `ffmpeg` on PATH.
45
+ - Prefer a short test capture before longer clips.