hyperclaw 5.0.1 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -1
- package/README.md +247 -32
- package/dist/a2ui-protocol-Gzm29Gaw.js +75 -0
- package/dist/agents-routing-Biy5ew4a.js +4 -0
- package/dist/agents-routing-CL3HQNoM.js +327 -0
- package/dist/api-keys-guide-ChbThbPj.js +149 -0
- package/dist/audit-NPIMmOSq.js +441 -0
- package/dist/bounty-tools-BUqUKjt0.js +211 -0
- package/dist/browser-tools-CxJY6pAn.js +5 -0
- package/dist/browser-tools-JZ9ji6AW.js +179 -0
- package/dist/chat-qVuqhlPu.js +258 -0
- package/dist/claw-tasks-B-8RRMdq.js +80 -0
- package/dist/connector-1x1rCBHz.js +162 -0
- package/dist/connector-B4jeCULG.js +305 -0
- package/dist/connector-B7qngfkT.js +286 -0
- package/dist/connector-B8BK0GBo.js +531 -0
- package/dist/connector-BE9eJs8-.js +182 -0
- package/dist/connector-BEe-DTGQ.js +189 -0
- package/dist/connector-BU7p5ZgB.js +167 -0
- package/dist/connector-BUzzq7Ij.js +568 -0
- package/dist/connector-BpDqLgnW.js +419 -0
- package/dist/connector-BpW88ut2.js +189 -0
- package/dist/connector-Bxv-gy8U.js +167 -0
- package/dist/connector-Bz14zcJv.js +213 -0
- package/dist/connector-C1zP5-5q.js +85 -0
- package/dist/connector-CAcpcovF.js +498 -0
- package/dist/connector-CJgVjS58.js +181 -0
- package/dist/connector-Cf53D6qV.js +425 -0
- package/dist/connector-CyHmlbNz.js +508 -0
- package/dist/connector-D22mJGVu.js +340 -0
- package/dist/connector-D6RtMmlL.js +225 -0
- package/dist/connector-D9EnT8A4.js +280 -0
- package/dist/connector-DNDwIh37.js +239 -0
- package/dist/connector-Di27MeO4.js +350 -0
- package/dist/connector-Do0BPiHt.js +194 -0
- package/dist/connector-DvLwOfJy.js +192 -0
- package/dist/connector-DvU83NSq.js +181 -0
- package/dist/connector-DxskpDc_.js +173 -0
- package/dist/connector-byy3eISx.js +552 -0
- package/dist/connector-vV89hsyd.js +218 -0
- package/dist/cost-tracker-fnaj_6M9.js +103 -0
- package/dist/credentials-store-BxijEirw.js +77 -0
- package/dist/credentials-store-CPkVO6-z.js +4 -0
- package/dist/cron-tasks-L0mz1yyU.js +82 -0
- package/dist/daemon-CNyunwkR.js +5 -0
- package/dist/daemon-CindY8OK.js +318 -0
- package/dist/delivery-DgiZcJBp.js +4 -0
- package/dist/delivery-otAU4alM.js +95 -0
- package/dist/destructive-gate-CA0DtA5K.js +101 -0
- package/dist/developer-keys-Cnd1kswV.js +127 -0
- package/dist/developer-keys-DENo3ZA6.js +8 -0
- package/dist/doctor-Dgjoc3DG.js +230 -0
- package/dist/doctor-RwsOhtAl.js +6 -0
- package/dist/engine-D_VeoZHw.js +305 -0
- package/dist/engine-JjRnhlsE.js +7 -0
- package/dist/env-resolve-BFJXWl94.js +115 -0
- package/dist/env-resolve-bDYssfih.js +10 -0
- package/dist/extraction-tools-DbxnxIco.js +5 -0
- package/dist/extraction-tools-Dg7AHS35.js +91 -0
- package/dist/form_data-CGAy4HE0.js +8657 -0
- package/dist/gmail-watch-setup-C3uSWznp.js +40 -0
- package/dist/health-DUjluWHQ.js +6 -0
- package/dist/health-DVfkpUQW.js +152 -0
- package/dist/heartbeat-engine-CrgL4mrP.js +83 -0
- package/dist/hub-BO6bj8Yj.js +515 -0
- package/dist/hub-Bu52YZqW.js +6 -0
- package/dist/hyperclawbot-BrcoYLOp.js +505 -0
- package/dist/inference-DHR82Gh7.js +6 -0
- package/dist/inference-DhA8jpfH.js +2692 -0
- package/dist/knowledge-graph-BrYpSgxW.js +131 -0
- package/dist/loader-9JqY6Nlq.js +4 -0
- package/dist/loader-Cjdd1kw4.js +400 -0
- package/dist/logger-DCT2l9GV.js +83 -0
- package/dist/manager-3cq3DydI.js +4 -0
- package/dist/manager-BUrFrPuq.js +117 -0
- package/dist/manager-Bi9UYyVR.js +105 -0
- package/dist/manager-Biz9ixWJ.js +40 -0
- package/dist/manager-CBUHJiY7.js +6 -0
- package/dist/manager-CVLLaKmq.js +218 -0
- package/dist/mcp-CUoTCMw-.js +139 -0
- package/dist/mcp-loader-BIz-450x.js +94 -0
- package/dist/memory-OL77OMOr.js +270 -0
- package/dist/memory-auto-D-L2q21G.js +306 -0
- package/dist/memory-auto-DTcy5VBy.js +5 -0
- package/dist/memory-gUi4VaIf.js +4 -0
- package/dist/memory-integration-B8RSN4pr.js +91 -0
- package/dist/moltbook-B-40gQOL.js +81 -0
- package/dist/node-TWxRm84k.js +222 -0
- package/dist/nodes-registry-DKRtsbNg.js +52 -0
- package/dist/oauth-flow-JCfporKq.js +150 -0
- package/dist/oauth-provider-4R0EJlsT.js +110 -0
- package/dist/observability-CDZmeHfa.js +89 -0
- package/dist/onboard-BVOtKQdh.js +3641 -0
- package/dist/onboard-CGNIw27w.js +11 -0
- package/dist/orchestrator-CcKx1Ovk.js +189 -0
- package/dist/orchestrator-DcFfDLTX.js +6 -0
- package/dist/osint-B6BZKQAD.js +277 -0
- package/dist/pairing-B6RArWhD.js +196 -0
- package/dist/pairing-BsQ08DLq.js +4 -0
- package/dist/pc-access-B0KocJNe.js +819 -0
- package/dist/pc-access-DkzmugZ7.js +8 -0
- package/dist/pending-approval-C_HkX1QL.js +22 -0
- package/dist/providers-DxiamZSL.js +5 -0
- package/dist/providers-Dy15rDb7.js +657 -0
- package/dist/reminders-store-CzUY0zYx.js +58 -0
- package/dist/renderer-ANNfXsHn.js +225 -0
- package/dist/rules-BSQwwAYC.js +103 -0
- package/dist/run-main.js +112 -117
- package/dist/runner-BHRSOPEU.js +1271 -0
- package/dist/security--oQObeJO.js +4 -0
- package/dist/security-wBOg0TA8.js +73 -0
- package/dist/server-CbTTpB5m.js +1255 -0
- package/dist/server-DP_bPzvI.js +4 -0
- package/dist/session-store-B09r5HgB.js +5 -0
- package/dist/session-store-DCTQIVur.js +113 -0
- package/dist/sessions-tools-BdlN6Pb6.js +95 -0
- package/dist/sessions-tools-JVLDKSJ_.js +5 -0
- package/dist/skill-loader-B5oeliGu.js +7 -0
- package/dist/skill-loader-Wf3brNOj.js +160 -0
- package/dist/skill-runtime-BGlvly2s.js +102 -0
- package/dist/skill-runtime-DhL2T76p.js +5 -0
- package/dist/src-BbPa6Q8p.js +63 -0
- package/dist/src-BeXtfkK2.js +458 -0
- package/dist/src-CGQjRI4N.js +20 -0
- package/dist/sub-agent-tools-CmE345s_.js +39 -0
- package/dist/theme-D0smfC_l.js +8 -0
- package/dist/theme-DajRRZbA.js +180 -0
- package/dist/tool-policy-DgNqFWYn.js +189 -0
- package/dist/tts-elevenlabs-JeFaGNJU.js +61 -0
- package/dist/update-check-BVEqHhFY.js +83 -0
- package/dist/vision-fky3elEo.js +121 -0
- package/dist/vision-tools-C8B3776g.js +5 -0
- package/dist/vision-tools-dwn9p4el.js +51 -0
- package/dist/voice-transcription-B6RtplmN.js +138 -0
- package/dist/website-watch-tools-B-jRAeTe.js +139 -0
- package/dist/website-watch-tools-BC9xAL67.js +5 -0
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2025 Peter Steinberger
|
|
4
|
+
Copyright (c) 2026 HyperClaw Team
|
|
4
5
|
|
|
5
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
7
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
<img src="assets/icon.png" width="140" alt="HyperClaw">
|
|
3
3
|
<h1>🦅 HyperClaw</h1>
|
|
4
4
|
<p><strong>Your personal AI assistant — running on your hardware, talking on your channels.</strong></p>
|
|
@@ -88,7 +88,10 @@ The wizard walks you through: AI provider → model → channels → skills. Don
|
|
|
88
88
|
# After setup, start your assistant
|
|
89
89
|
hyperclaw daemon start
|
|
90
90
|
|
|
91
|
-
#
|
|
91
|
+
# Interactive terminal chat (multi-turn, streams responses)
|
|
92
|
+
hyperclaw chat
|
|
93
|
+
|
|
94
|
+
# Send a single message (non-interactive)
|
|
92
95
|
hyperclaw agent --message "What can you do?"
|
|
93
96
|
|
|
94
97
|
# Health check
|
|
@@ -126,7 +129,7 @@ HyperClaw connects to the channels you already use (28+ channels):
|
|
|
126
129
|
| ✈️ Telegram | ✅ Recommended | Bot API via @BotFather |
|
|
127
130
|
| 🎮 Discord | ✅ Recommended | discord.js — full bot |
|
|
128
131
|
| 🌐 WebChat | ✅ Built-in | Gateway WebSocket, no setup |
|
|
129
|
-
| 🖥️ CLI / Terminal | ✅ Built-in | `hyperclaw agent` |
|
|
132
|
+
| 🖥️ CLI / Terminal | ✅ Built-in | `hyperclaw chat` (interactive) · `hyperclaw agent -m "..."` (single) |
|
|
130
133
|
| 📲 WhatsApp (Baileys) | ✅ Available | No Meta API — scan QR |
|
|
131
134
|
| 📱 WhatsApp (Cloud API) | ✅ Available | Meta Business API |
|
|
132
135
|
| 💼 Slack | ✅ Available | Bolt — Events API |
|
|
@@ -186,18 +189,30 @@ Google Chat / Matrix / IRC / Mattermost / Teams / Nostr / WebChat
|
|
|
186
189
|
|
|
187
190
|
---
|
|
188
191
|
|
|
189
|
-
##
|
|
190
|
-
|
|
191
|
-
HyperClaw supports
|
|
192
|
-
|
|
193
|
-
| Provider |
|
|
194
|
-
|
|
195
|
-
| **Anthropic** | `anthropic`
|
|
196
|
-
| **
|
|
197
|
-
| **
|
|
198
|
-
| **
|
|
199
|
-
| **
|
|
200
|
-
| **
|
|
192
|
+
## AI Models
|
|
193
|
+
|
|
194
|
+
HyperClaw supports 20+ providers. Pick one in the wizard or set `provider.providerId` in config:
|
|
195
|
+
|
|
196
|
+
| Provider | ID | Notes |
|
|
197
|
+
|----------|-----|-------|
|
|
198
|
+
| **Anthropic** | `anthropic` | Claude Opus/Sonnet/Haiku — native streaming |
|
|
199
|
+
| **Anthropic OAuth** | `anthropic-oauth` | Claude Code / Max subscription |
|
|
200
|
+
| **OpenRouter** | `openrouter` | 200+ models — one key |
|
|
201
|
+
| **OpenAI** | `openai` | GPT-4o, o3, o4-mini |
|
|
202
|
+
| **Google** | `google` | Gemini 2.5 Pro, 2.0 Flash |
|
|
203
|
+
| **xAI** | `xai` | Grok 3, Grok 3 Mini |
|
|
204
|
+
| **Groq** | `groq` | Llama 3.3, Mixtral — fast inference |
|
|
205
|
+
| **Mistral** | `mistral` | Mistral Large, Codestral |
|
|
206
|
+
| **DeepSeek** | `deepseek` | DeepSeek V3, R1 reasoning |
|
|
207
|
+
| **Perplexity** | `perplexity` | Sonar — search-augmented AI |
|
|
208
|
+
| **Hugging Face** | `huggingface` | Open-source models |
|
|
209
|
+
| **MiniMax** | `minimax` | MiniMax Text-01 |
|
|
210
|
+
| **Qwen** | `qwen` | Alibaba Qwen 3, Qwen Max |
|
|
211
|
+
| **Z.AI** | `zai` | GLM-4 models |
|
|
212
|
+
| **Vercel AI Gateway** | `vercel-ai` | Multi-model proxy |
|
|
213
|
+
| **Ollama** | `ollama` | Local models — `ollama serve` |
|
|
214
|
+
| **LM Studio** | `lmstudio` | Local models — enable local server |
|
|
215
|
+
| **Custom** | `custom` | Any OpenAI-compatible `/chat/completions` |
|
|
201
216
|
|
|
202
217
|
---
|
|
203
218
|
|
|
@@ -313,6 +328,7 @@ Full guide: [docs/security.md](docs/security.md)
|
|
|
313
328
|
- **Auto-memory** — extracts facts from conversations automatically
|
|
314
329
|
- **Skills** — bundled and workspace skills (reminders, translator, web search, etc.)
|
|
315
330
|
- **Daemon mode** — launchd/systemd user service, auto-restart, `🩸` icon
|
|
331
|
+
- **Update notifications** — notifies when a newer version is available on npm (non-blocking check at startup)
|
|
316
332
|
- **MCP support** — Model Context Protocol server and client
|
|
317
333
|
- **Docker** — sandboxed agent execution, browser tools with Puppeteer
|
|
318
334
|
- **Tailscale** — Serve/Funnel for remote access without port forwarding
|
|
@@ -344,6 +360,134 @@ The Gateway alone delivers a great experience. Apps add extra features:
|
|
|
344
360
|
|
|
345
361
|
---
|
|
346
362
|
|
|
363
|
+
## Development channels
|
|
364
|
+
|
|
365
|
+
Three release channels, switch any time:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
hyperclaw update --channel stable # tagged releases (default)
|
|
369
|
+
hyperclaw update --channel beta # prereleases
|
|
370
|
+
hyperclaw update --channel dev # moving head of main
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
| Channel | npm dist-tag | Notes |
|
|
374
|
+
|---------|-------------|-------|
|
|
375
|
+
| `stable` | `latest` | Tagged releases — recommended |
|
|
376
|
+
| `beta` | `beta` | Prerelease — new features, may have rough edges |
|
|
377
|
+
| `dev` | `dev` | Latest main branch (when published) |
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## Integrations (Skills & Tools)
|
|
382
|
+
|
|
383
|
+
The agent has built-in tools for common integrations — no extra packages needed. Full reference: [docs/integrations.md](docs/integrations.md)
|
|
384
|
+
|
|
385
|
+
### Core Tools
|
|
386
|
+
|
|
387
|
+
| Tool | How to enable |
|
|
388
|
+
|------|---------------|
|
|
389
|
+
| **Weather** | Free — no key needed (Open-Meteo) |
|
|
390
|
+
| **Image generation** | Set `OPENAI_API_KEY` (DALL-E 3) or `STABILITY_API_KEY` |
|
|
391
|
+
| **GIF search** | Set `GIPHY_API_KEY` or `TENOR_API_KEY` |
|
|
392
|
+
| **Spotify** | Set `SPOTIFY_CLIENT_ID` + `SPOTIFY_CLIENT_SECRET` + `SPOTIFY_REFRESH_TOKEN` |
|
|
393
|
+
| **Home Assistant** | Set `HA_URL` + `HA_TOKEN` (long-lived access token) |
|
|
394
|
+
| **GitHub** | Set `GITHUB_TOKEN` |
|
|
395
|
+
| **Canvas** | Built-in — view at `http://localhost:18789/canvas` |
|
|
396
|
+
| **Browser** | Built-in — enable `browser.enabled: true` |
|
|
397
|
+
| **Gmail** | Set `GOOGLE_CREDENTIALS_PATH` + configure Pub/Sub |
|
|
398
|
+
|
|
399
|
+
### Productivity
|
|
400
|
+
|
|
401
|
+
| Tool | How to enable |
|
|
402
|
+
|------|---------------|
|
|
403
|
+
| **Apple Notes** | macOS only — built-in (requires Accessibility permissions) |
|
|
404
|
+
| **Apple Reminders** | macOS only — built-in (requires Accessibility permissions) |
|
|
405
|
+
| **Things 3** | macOS only — install Things 3, no extra config |
|
|
406
|
+
| **Obsidian** | Install Local REST API plugin, set `OBSIDIAN_API_KEY` (and optionally `OBSIDIAN_PORT`, default 27123) |
|
|
407
|
+
| **Bear Notes** | macOS only — install Bear, no extra config |
|
|
408
|
+
| **Trello** | Set `TRELLO_API_KEY` + `TRELLO_TOKEN` (from trello.com/app-key) |
|
|
409
|
+
|
|
410
|
+
### Music
|
|
411
|
+
|
|
412
|
+
| Tool | How to enable |
|
|
413
|
+
|------|---------------|
|
|
414
|
+
| **Sonos** | Set `SONOS_IP` to your speaker's local IP address |
|
|
415
|
+
| **Music search** | Free — no key needed (iTunes Search API) |
|
|
416
|
+
|
|
417
|
+
### Smart Home
|
|
418
|
+
|
|
419
|
+
| Tool | How to enable |
|
|
420
|
+
|------|---------------|
|
|
421
|
+
| **Philips Hue** | Set `HUE_BRIDGE_IP` + `HUE_USERNAME` (from bridge discovery) |
|
|
422
|
+
| **8Sleep** | Set `EIGHTSLEEP_EMAIL` + `EIGHTSLEEP_PASSWORD` |
|
|
423
|
+
|
|
424
|
+
### Security & Messaging
|
|
425
|
+
|
|
426
|
+
| Tool | How to enable |
|
|
427
|
+
|------|---------------|
|
|
428
|
+
| **1Password** | Install `op` CLI, set `OP_SERVICE_ACCOUNT_TOKEN` |
|
|
429
|
+
| **iMessage** | macOS only — built-in (requires Full Disk Access + Accessibility) |
|
|
430
|
+
|
|
431
|
+
Example — ask the agent:
|
|
432
|
+
```
|
|
433
|
+
"What's the weather in Athens for the next 3 days?"
|
|
434
|
+
"Generate an image of a space lobster"
|
|
435
|
+
"Play some Daft Punk on Spotify"
|
|
436
|
+
"Turn on the living room lights" # Home Assistant or Philips Hue
|
|
437
|
+
"List my open GitHub issues"
|
|
438
|
+
"Add 'Buy milk' to my Reminders"
|
|
439
|
+
"Create a note in Obsidian: Meeting notes..."
|
|
440
|
+
"Add a card to my Trello board"
|
|
441
|
+
"Set my 8Sleep to temperature 20 on the left side"
|
|
442
|
+
"Get my GitHub password from 1Password"
|
|
443
|
+
"Send an iMessage to +1234567890: I'll be late"
|
|
444
|
+
"What's playing on my Sonos?"
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## Agent-to-Agent (sessions tools)
|
|
450
|
+
|
|
451
|
+
When the gateway is running, the agent can communicate with other connected sessions:
|
|
452
|
+
|
|
453
|
+
| Tool | Description |
|
|
454
|
+
|------|-------------|
|
|
455
|
+
| `sessions_list` | List all active sessions connected to the gateway |
|
|
456
|
+
| `sessions_send` | Send a message to another session by session ID |
|
|
457
|
+
| `sessions_history` | Get the chat transcript of a session (`"self"` for current) |
|
|
458
|
+
|
|
459
|
+
Example — ask the agent:
|
|
460
|
+
```
|
|
461
|
+
"List all connected sessions and send a briefing to the first one"
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Terminal chat (`hyperclaw chat`)
|
|
467
|
+
|
|
468
|
+
Interactive multi-turn chat with the agent directly from your terminal:
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
hyperclaw chat # start a session
|
|
472
|
+
hyperclaw chat --thinking high # enable extended thinking
|
|
473
|
+
hyperclaw chat --session my-session # named session
|
|
474
|
+
hyperclaw chat --model claude-opus-4-6 # override model
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
| Input | Action |
|
|
478
|
+
|-------|--------|
|
|
479
|
+
| Any text + Enter | Send message to agent |
|
|
480
|
+
| `exit` / `quit` / `bye` | Quit the chat |
|
|
481
|
+
| `/exit` / `/quit` / `/bye` | Quit the chat |
|
|
482
|
+
| `Ctrl+C` | Quit the chat |
|
|
483
|
+
| `/clear` | Clear conversation history |
|
|
484
|
+
| `/model` | Show current model |
|
|
485
|
+
| `/help` | Show available commands |
|
|
486
|
+
|
|
487
|
+
Responses stream token-by-token as they are generated. The full conversation history is kept for the entire session (true multi-turn context).
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
347
491
|
## Chat commands
|
|
348
492
|
|
|
349
493
|
Send these in any connected channel (Telegram, Discord, Slack, etc.):
|
|
@@ -356,6 +500,91 @@ Send these in any connected channel (Telegram, Discord, Slack, etc.):
|
|
|
356
500
|
| `/think <level>` | `off` · `low` · `medium` · `high` · `xhigh` |
|
|
357
501
|
| `/verbose on\|off` | Verbose mode |
|
|
358
502
|
| `/usage off\|tokens\|full` | Per-response usage footer |
|
|
503
|
+
| `/restart` | Restart the gateway (owner-only in groups) |
|
|
504
|
+
| `/activation mention\|always` | Group activation toggle |
|
|
505
|
+
|
|
506
|
+
## SkillHub
|
|
507
|
+
|
|
508
|
+
SkillHub is HyperClaw's skill registry. Full guide: [docs/skillhub.md](docs/skillhub.md)
|
|
509
|
+
|
|
510
|
+
The agent can install skills on demand or you can install them via the wizard:
|
|
511
|
+
|
|
512
|
+
```bash
|
|
513
|
+
# Install a skill
|
|
514
|
+
hyperclaw skills install web-search
|
|
515
|
+
|
|
516
|
+
# List installed skills
|
|
517
|
+
hyperclaw skills list
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
Featured skills: `web-search` · `file-manager` · `code-runner` · `github-tools` · `calendar-tools` · `summarizer`
|
|
521
|
+
|
|
522
|
+
### Installing skills — 3 ways
|
|
523
|
+
|
|
524
|
+
**Option 1 — tell the agent (easiest):**
|
|
525
|
+
|
|
526
|
+
```
|
|
527
|
+
You › Install the web-search skill
|
|
528
|
+
You › Install this: https://clawhub.ai/user/skill-name
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
The agent automatically calls `install_skill_from_hub` — no commands needed.
|
|
532
|
+
|
|
533
|
+
**Option 2 — `/skills` inside `hyperclaw chat`:**
|
|
534
|
+
|
|
535
|
+
```
|
|
536
|
+
You › /skills
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
Shows installed skills and how to add more:
|
|
540
|
+
|
|
541
|
+
```
|
|
542
|
+
Installed skills:
|
|
543
|
+
• Web Search (web-search)
|
|
544
|
+
• File Manager (file-manager)
|
|
545
|
+
|
|
546
|
+
How to add a skill:
|
|
547
|
+
1. Tell the agent: "Install the web-search skill"
|
|
548
|
+
2. Paste a link: "Install this: https://clawhub.ai/user/skill-name"
|
|
549
|
+
3. CLI: hyperclaw skill install <name>
|
|
550
|
+
4. Re-run wizard: hyperclaw onboard
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
`/skills` also appears in `/help` and in the chat header when you open `hyperclaw chat`.
|
|
554
|
+
|
|
555
|
+
**Option 3 — CLI:**
|
|
556
|
+
|
|
557
|
+
```bash
|
|
558
|
+
hyperclaw skill install web-search
|
|
559
|
+
hyperclaw skills list
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### Install from URL
|
|
563
|
+
|
|
564
|
+
Give the agent a clawhub.ai link and it installs automatically:
|
|
565
|
+
|
|
566
|
+
```
|
|
567
|
+
"Install this skill: https://clawhub.ai/b0tresch/stealth-browser"
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
The agent calls `install_skill_from_hub` — fetches SKILL.md + extra files, writes them to `~/.hyperclaw/workspace/skills/`, and runs `npm install` if needed.
|
|
571
|
+
|
|
572
|
+
### Self-writing skills
|
|
573
|
+
|
|
574
|
+
The agent can create fully custom skills on demand:
|
|
575
|
+
|
|
576
|
+
```
|
|
577
|
+
"Create a skill that summarizes my daily Telegram messages"
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
`create_skill` supports:
|
|
581
|
+
- **`content`** — SKILL.md instructions
|
|
582
|
+
- **`files`** — JSON map of extra files (e.g. `{"scripts/run.js": "..."}`)
|
|
583
|
+
- **`npmInstall: "true"`** — auto-runs `npm install` after writing files
|
|
584
|
+
|
|
585
|
+
Skills are saved to `~/.hyperclaw/workspace/skills/{id}/` and loaded on the next message.
|
|
586
|
+
|
|
587
|
+
---
|
|
359
588
|
|
|
360
589
|
## HyperClaw Bot commands
|
|
361
590
|
|
|
@@ -378,23 +607,6 @@ Control the gateway remotely via your Telegram or Discord bot (`hyperclaw bot st
|
|
|
378
607
|
| `/security` | Security audit summary |
|
|
379
608
|
| `/help` | List all commands |
|
|
380
609
|
|
|
381
|
-
## Agent-to-Agent (session tools)
|
|
382
|
-
|
|
383
|
-
When the gateway is running, the agent has access to session tools for agent-to-agent communication:
|
|
384
|
-
|
|
385
|
-
| Tool | Description |
|
|
386
|
-
|------|-------------|
|
|
387
|
-
| `sessions_list` | List all active WebSocket sessions connected to the gateway |
|
|
388
|
-
| `sessions_send` | Send a message to another session (by session ID) |
|
|
389
|
-
| `sessions_history` | Get the chat transcript of a session (`"self"` for current) |
|
|
390
|
-
|
|
391
|
-
Example — ask the agent to ping another session:
|
|
392
|
-
```
|
|
393
|
-
"List all connected sessions and send a hello to the first one"
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
610
|
## From source
|
|
399
611
|
|
|
400
612
|
```bash
|
|
@@ -493,6 +705,9 @@ hyperclaw/
|
|
|
493
705
|
| Environment variables | [docs/environment.md](docs/environment.md) |
|
|
494
706
|
| API keys guide | [docs/API-KEYS-README.md](docs/API-KEYS-README.md) |
|
|
495
707
|
| OAuth providers | [docs/oauth-providers.md](docs/oauth-providers.md) |
|
|
708
|
+
| **Integrations (all tools)** | [docs/integrations.md](docs/integrations.md) |
|
|
709
|
+
| **SkillHub & custom skills** | [docs/skillhub.md](docs/skillhub.md) |
|
|
710
|
+
| **Update notifications** | [docs/update-notifications.md](docs/update-notifications.md) |
|
|
496
711
|
| **Security** | [docs/security.md](docs/security.md) · [SECURITY.md](SECURITY.md) |
|
|
497
712
|
| Deployment / Docker | [docs/deployment.md](docs/deployment.md) |
|
|
498
713
|
| Tailscale remote access | [docs/tailscale.md](docs/tailscale.md) |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
|
|
3
|
+
//#region src/canvas/a2ui-protocol.ts
|
|
4
|
+
/** Map HyperClaw component type to A2UI-compatible type. */
|
|
5
|
+
function toA2UIType(t) {
|
|
6
|
+
const map = {
|
|
7
|
+
chart: "chart",
|
|
8
|
+
table: "table",
|
|
9
|
+
form: "form",
|
|
10
|
+
markdown: "markdown",
|
|
11
|
+
image: "image",
|
|
12
|
+
custom: "custom",
|
|
13
|
+
script: "script"
|
|
14
|
+
};
|
|
15
|
+
return map[t] || "custom";
|
|
16
|
+
}
|
|
17
|
+
/** Convert a CanvasComponent to A2UI surface. */
|
|
18
|
+
function componentToSurface(c) {
|
|
19
|
+
return {
|
|
20
|
+
id: c.id,
|
|
21
|
+
type: toA2UIType(c.type),
|
|
22
|
+
props: {
|
|
23
|
+
title: c.title,
|
|
24
|
+
width: c.width || "half"
|
|
25
|
+
},
|
|
26
|
+
data: c.data
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Generate beginRendering from canvas state (full sync). */
|
|
30
|
+
function toBeginRendering(canvas) {
|
|
31
|
+
const surfaces = canvas.components.map(componentToSurface);
|
|
32
|
+
const dataModel = {};
|
|
33
|
+
for (const c of canvas.components) if (c.data != null) dataModel[c.id] = c.data;
|
|
34
|
+
return {
|
|
35
|
+
type: "beginRendering",
|
|
36
|
+
surfaceId: canvas.id,
|
|
37
|
+
surfaces,
|
|
38
|
+
dataModel: Object.keys(dataModel).length ? dataModel : void 0
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Generate surfaceUpdate for newly added component. */
|
|
42
|
+
function toSurfaceUpdate(canvasId, component) {
|
|
43
|
+
return {
|
|
44
|
+
type: "surfaceUpdate",
|
|
45
|
+
surfaceId: canvasId,
|
|
46
|
+
surfaces: [componentToSurface(component)]
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Generate dataModelUpdate when component data changes. */
|
|
50
|
+
function toDataModelUpdate(canvasId, componentId, data) {
|
|
51
|
+
return {
|
|
52
|
+
type: "dataModelUpdate",
|
|
53
|
+
surfaceId: canvasId,
|
|
54
|
+
updates: { [componentId]: data }
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Generate deleteSurface for removed components. */
|
|
58
|
+
function toDeleteSurface(canvasId, componentIds) {
|
|
59
|
+
return {
|
|
60
|
+
type: "deleteSurface",
|
|
61
|
+
surfaceId: canvasId,
|
|
62
|
+
surfaceIds: componentIds
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** Serialize A2UI messages to JSONL (one message per line). */
|
|
66
|
+
function toJSONL(messages) {
|
|
67
|
+
return messages.map((m) => JSON.stringify(m)).join("\n");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
exports.toBeginRendering = toBeginRendering;
|
|
72
|
+
exports.toDataModelUpdate = toDataModelUpdate;
|
|
73
|
+
exports.toDeleteSurface = toDeleteSurface;
|
|
74
|
+
exports.toJSONL = toJSONL;
|
|
75
|
+
exports.toSurfaceUpdate = toSurfaceUpdate;
|