clawpowers 1.1.4 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +126 -0
- package/COMPATIBILITY.md +13 -0
- package/KNOWN_LIMITATIONS.md +19 -0
- package/LICENSE +44 -0
- package/LICENSING.md +10 -0
- package/README.md +378 -210
- package/SECURITY.md +52 -0
- package/dist/index.d.ts +1477 -0
- package/dist/index.js +3464 -0
- package/dist/index.js.map +1 -0
- package/native/Cargo.lock +4863 -0
- package/native/Cargo.toml +73 -0
- package/native/crates/canonical/Cargo.toml +24 -0
- package/native/crates/canonical/src/lib.rs +673 -0
- package/native/crates/compression/Cargo.toml +20 -0
- package/native/crates/compression/benches/compression_bench.rs +42 -0
- package/native/crates/compression/src/lib.rs +393 -0
- package/native/crates/evm-eth/Cargo.toml +13 -0
- package/native/crates/evm-eth/src/lib.rs +105 -0
- package/native/crates/fee/Cargo.toml +15 -0
- package/native/crates/fee/src/lib.rs +281 -0
- package/native/crates/index/Cargo.toml +16 -0
- package/native/crates/index/src/lib.rs +277 -0
- package/native/crates/policy/Cargo.toml +17 -0
- package/native/crates/policy/src/lib.rs +614 -0
- package/native/crates/security/Cargo.toml +22 -0
- package/native/crates/security/src/lib.rs +478 -0
- package/native/crates/tokens/Cargo.toml +13 -0
- package/native/crates/tokens/src/lib.rs +534 -0
- package/native/crates/verification/Cargo.toml +23 -0
- package/native/crates/verification/src/lib.rs +333 -0
- package/native/crates/wallet/Cargo.toml +20 -0
- package/native/crates/wallet/src/lib.rs +261 -0
- package/native/crates/x402/Cargo.toml +30 -0
- package/native/crates/x402/src/lib.rs +423 -0
- package/native/ffi/Cargo.toml +34 -0
- package/native/ffi/build.rs +4 -0
- package/native/ffi/index.node +0 -0
- package/native/ffi/src/lib.rs +352 -0
- package/native/ffi/tests/integration.rs +354 -0
- package/native/pyo3/Cargo.toml +26 -0
- package/native/pyo3/pyproject.toml +16 -0
- package/native/pyo3/src/lib.rs +407 -0
- package/native/pyo3/tests/test_smoke.py +180 -0
- package/native/wasm/Cargo.toml +44 -0
- package/native/wasm/pkg/.gitignore +6 -0
- package/native/wasm/pkg/clawpowers_wasm.d.ts +208 -0
- package/native/wasm/pkg/clawpowers_wasm.js +872 -0
- package/native/wasm/pkg/clawpowers_wasm_bg.wasm +0 -0
- package/native/wasm/pkg/clawpowers_wasm_bg.wasm.d.ts +40 -0
- package/native/wasm/pkg/package.json +17 -0
- package/native/wasm/pkg-node/.gitignore +6 -0
- package/native/wasm/pkg-node/clawpowers_wasm.d.ts +143 -0
- package/native/wasm/pkg-node/clawpowers_wasm.js +798 -0
- package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm +0 -0
- package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm.d.ts +40 -0
- package/native/wasm/pkg-node/package.json +13 -0
- package/native/wasm/src/lib.rs +433 -0
- package/package.json +71 -44
- package/src/skills/catalog.ts +435 -0
- package/src/skills/executor.ts +56 -0
- package/src/skills/index.ts +3 -0
- package/src/skills/itp/SKILL.md +112 -0
- package/src/skills/loader.ts +193 -0
- package/.claude-plugin/manifest.json +0 -19
- package/.codex/INSTALL.md +0 -36
- package/.cursor-plugin/manifest.json +0 -21
- package/.opencode/INSTALL.md +0 -52
- package/ARCHITECTURE.md +0 -69
- package/bin/clawpowers.js +0 -625
- package/bin/clawpowers.sh +0 -91
- package/docs/demo/clawpowers-demo.cast +0 -197
- package/docs/demo/clawpowers-demo.gif +0 -0
- package/docs/launch-images/25-skills-breakdown.jpg +0 -0
- package/docs/launch-images/clawpowers-vs-superpowers.jpg +0 -0
- package/docs/launch-images/economic-code-optimization.jpg +0 -0
- package/docs/launch-images/native-vs-bridge-2.jpg +0 -0
- package/docs/launch-images/native-vs-bridge.jpg +0 -0
- package/docs/launch-images/post1-hero-lobster.jpg +0 -0
- package/docs/launch-images/post2-dashboard.jpg +0 -0
- package/docs/launch-images/post3-superpowers.jpg +0 -0
- package/docs/launch-images/post4-before-after.jpg +0 -0
- package/docs/launch-images/post5-install-now.jpg +0 -0
- package/docs/launch-images/ultimate-stack.jpg +0 -0
- package/docs/launch-posts.md +0 -76
- package/docs/quickstart-first-transaction.md +0 -204
- package/gemini-extension.json +0 -32
- package/hooks/session-start +0 -205
- package/hooks/session-start.cmd +0 -43
- package/hooks/session-start.js +0 -163
- package/runtime/demo/README.md +0 -78
- package/runtime/demo/x402-mock-server.js +0 -230
- package/runtime/feedback/analyze.js +0 -621
- package/runtime/feedback/analyze.sh +0 -546
- package/runtime/init.js +0 -210
- package/runtime/init.sh +0 -178
- package/runtime/metrics/collector.js +0 -361
- package/runtime/metrics/collector.sh +0 -308
- package/runtime/payments/ledger.js +0 -305
- package/runtime/payments/ledger.sh +0 -262
- package/runtime/payments/pipeline.js +0 -455
- package/runtime/persistence/store.js +0 -433
- package/runtime/persistence/store.sh +0 -303
- package/skill.json +0 -106
- package/skills/agent-bounties/SKILL.md +0 -553
- package/skills/agent-payments/SKILL.md +0 -479
- package/skills/brainstorming/SKILL.md +0 -233
- package/skills/content-pipeline/SKILL.md +0 -282
- package/skills/cross-project-knowledge/SKILL.md +0 -345
- package/skills/dispatching-parallel-agents/SKILL.md +0 -305
- package/skills/economic-code-optimization/SKILL.md +0 -265
- package/skills/executing-plans/SKILL.md +0 -255
- package/skills/finishing-a-development-branch/SKILL.md +0 -260
- package/skills/formal-verification-lite/SKILL.md +0 -441
- package/skills/learn-how-to-learn/SKILL.md +0 -235
- package/skills/market-intelligence/SKILL.md +0 -323
- package/skills/meta-skill-evolution/SKILL.md +0 -325
- package/skills/prospecting/SKILL.md +0 -454
- package/skills/receiving-code-review/SKILL.md +0 -225
- package/skills/requesting-code-review/SKILL.md +0 -206
- package/skills/security-audit/SKILL.md +0 -353
- package/skills/self-healing-code/SKILL.md +0 -369
- package/skills/subagent-driven-development/SKILL.md +0 -244
- package/skills/systematic-debugging/SKILL.md +0 -355
- package/skills/test-driven-development/SKILL.md +0 -416
- package/skills/using-clawpowers/SKILL.md +0 -160
- package/skills/using-git-worktrees/SKILL.md +0 -261
- package/skills/validator/SKILL.md +0 -281
- package/skills/verification-before-completion/SKILL.md +0 -254
- package/skills/writing-plans/SKILL.md +0 -276
- package/skills/writing-skills/SKILL.md +0 -260
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawPowers Agent — Skills Catalog
|
|
3
|
+
*
|
|
4
|
+
* Static catalog of all skills available to ClawPowers.
|
|
5
|
+
* Sources:
|
|
6
|
+
* - openclaw-bundled: 51 skills bundled with OpenClaw
|
|
7
|
+
* - managed: skills installed in ~/.openclaw/skills/
|
|
8
|
+
*
|
|
9
|
+
* Generated by reading SKILL.md frontmatter from each skill directory.
|
|
10
|
+
* This is a STATIC array so it works everywhere (no runtime file I/O).
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// ─── Types ────────────────────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
export interface SkillEntry {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
source: 'openclaw-bundled' | 'clawpowers' | 'managed';
|
|
19
|
+
category: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ─── OpenClaw Bundled Skills (51) ─────────────────────────────────────────────
|
|
23
|
+
|
|
24
|
+
export const SKILLS_CATALOG: SkillEntry[] = [
|
|
25
|
+
// ── productivity ──────────────────────────────────────────────────────────
|
|
26
|
+
{
|
|
27
|
+
name: '1password',
|
|
28
|
+
description: 'Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.',
|
|
29
|
+
source: 'openclaw-bundled',
|
|
30
|
+
category: 'productivity',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'apple-notes',
|
|
34
|
+
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.',
|
|
35
|
+
source: 'openclaw-bundled',
|
|
36
|
+
category: 'productivity',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'apple-reminders',
|
|
40
|
+
description: 'Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.',
|
|
41
|
+
source: 'openclaw-bundled',
|
|
42
|
+
category: 'productivity',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'bear-notes',
|
|
46
|
+
description: 'Create, search, and manage Bear notes via grizzly CLI.',
|
|
47
|
+
source: 'openclaw-bundled',
|
|
48
|
+
category: 'productivity',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'notion',
|
|
52
|
+
description: 'Notion API for creating and managing pages, databases, and blocks.',
|
|
53
|
+
source: 'openclaw-bundled',
|
|
54
|
+
category: 'productivity',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'obsidian',
|
|
58
|
+
description: 'Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.',
|
|
59
|
+
source: 'openclaw-bundled',
|
|
60
|
+
category: 'productivity',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'things-mac',
|
|
64
|
+
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 OpenClaw to add a task to Things, list items, or search tasks.',
|
|
65
|
+
source: 'openclaw-bundled',
|
|
66
|
+
category: 'productivity',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'trello',
|
|
70
|
+
description: 'Manage Trello boards, lists, and cards via the Trello REST API.',
|
|
71
|
+
source: 'openclaw-bundled',
|
|
72
|
+
category: 'productivity',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'summarize',
|
|
76
|
+
description: 'Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for "transcribe this YouTube/video").',
|
|
77
|
+
source: 'openclaw-bundled',
|
|
78
|
+
category: 'productivity',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'tmux',
|
|
82
|
+
description: 'Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.',
|
|
83
|
+
source: 'openclaw-bundled',
|
|
84
|
+
category: 'productivity',
|
|
85
|
+
},
|
|
86
|
+
// ── development ───────────────────────────────────────────────────────────
|
|
87
|
+
{
|
|
88
|
+
name: 'coding-agent',
|
|
89
|
+
description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases.',
|
|
90
|
+
source: 'openclaw-bundled',
|
|
91
|
+
category: 'development',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'github',
|
|
95
|
+
description: 'GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing diffs.',
|
|
96
|
+
source: 'openclaw-bundled',
|
|
97
|
+
category: 'development',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'gh-issues',
|
|
101
|
+
description: 'Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments.',
|
|
102
|
+
source: 'openclaw-bundled',
|
|
103
|
+
category: 'development',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'skill-creator',
|
|
107
|
+
description: 'Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file.',
|
|
108
|
+
source: 'openclaw-bundled',
|
|
109
|
+
category: 'development',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'clawhub',
|
|
113
|
+
description: 'Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish your own skills.',
|
|
114
|
+
source: 'openclaw-bundled',
|
|
115
|
+
category: 'development',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'oracle',
|
|
119
|
+
description: 'Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).',
|
|
120
|
+
source: 'openclaw-bundled',
|
|
121
|
+
category: 'development',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'mcporter',
|
|
125
|
+
description: 'Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.',
|
|
126
|
+
source: 'openclaw-bundled',
|
|
127
|
+
category: 'development',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'nano-pdf',
|
|
131
|
+
description: 'Edit PDFs with natural-language instructions using the nano-pdf CLI.',
|
|
132
|
+
source: 'openclaw-bundled',
|
|
133
|
+
category: 'development',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'node-connect',
|
|
137
|
+
description: 'Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing.',
|
|
138
|
+
source: 'openclaw-bundled',
|
|
139
|
+
category: 'development',
|
|
140
|
+
},
|
|
141
|
+
// ── communication ─────────────────────────────────────────────────────────
|
|
142
|
+
{
|
|
143
|
+
name: 'discord',
|
|
144
|
+
description: 'Discord ops via the message tool (channel=discord).',
|
|
145
|
+
source: 'openclaw-bundled',
|
|
146
|
+
category: 'communication',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: 'slack',
|
|
150
|
+
description: 'Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.',
|
|
151
|
+
source: 'openclaw-bundled',
|
|
152
|
+
category: 'communication',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'bluebubbles',
|
|
156
|
+
description: 'Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=bluebubbles.',
|
|
157
|
+
source: 'openclaw-bundled',
|
|
158
|
+
category: 'communication',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'imsg',
|
|
162
|
+
description: 'iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.',
|
|
163
|
+
source: 'openclaw-bundled',
|
|
164
|
+
category: 'communication',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: 'wacli',
|
|
168
|
+
description: 'Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).',
|
|
169
|
+
source: 'openclaw-bundled',
|
|
170
|
+
category: 'communication',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'himalaya',
|
|
174
|
+
description: 'CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML.',
|
|
175
|
+
source: 'openclaw-bundled',
|
|
176
|
+
category: 'communication',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: 'gog',
|
|
180
|
+
description: 'Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.',
|
|
181
|
+
source: 'openclaw-bundled',
|
|
182
|
+
category: 'communication',
|
|
183
|
+
},
|
|
184
|
+
// ── media ─────────────────────────────────────────────────────────────────
|
|
185
|
+
{
|
|
186
|
+
name: 'camsnap',
|
|
187
|
+
description: 'Capture frames or clips from RTSP/ONVIF cameras.',
|
|
188
|
+
source: 'openclaw-bundled',
|
|
189
|
+
category: 'media',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: 'gifgrep',
|
|
193
|
+
description: 'Search GIF providers with CLI/TUI, download results, and extract stills/sheets.',
|
|
194
|
+
source: 'openclaw-bundled',
|
|
195
|
+
category: 'media',
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: 'video-frames',
|
|
199
|
+
description: 'Extract frames or short clips from videos using ffmpeg.',
|
|
200
|
+
source: 'openclaw-bundled',
|
|
201
|
+
category: 'media',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: 'openai-whisper',
|
|
205
|
+
description: 'Local speech-to-text with the Whisper CLI (no API key).',
|
|
206
|
+
source: 'openclaw-bundled',
|
|
207
|
+
category: 'media',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: 'openai-whisper-api',
|
|
211
|
+
description: 'Transcribe audio via OpenAI Audio Transcriptions API (Whisper).',
|
|
212
|
+
source: 'openclaw-bundled',
|
|
213
|
+
category: 'media',
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'sag',
|
|
217
|
+
description: 'ElevenLabs text-to-speech with mac-style say UX.',
|
|
218
|
+
source: 'openclaw-bundled',
|
|
219
|
+
category: 'media',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
name: 'sherpa-onnx-tts',
|
|
223
|
+
description: 'Local text-to-speech via sherpa-onnx (offline, no cloud).',
|
|
224
|
+
source: 'openclaw-bundled',
|
|
225
|
+
category: 'media',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: 'songsee',
|
|
229
|
+
description: 'Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.',
|
|
230
|
+
source: 'openclaw-bundled',
|
|
231
|
+
category: 'media',
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: 'voice-call',
|
|
235
|
+
description: 'Start voice calls via the OpenClaw voice-call plugin.',
|
|
236
|
+
source: 'openclaw-bundled',
|
|
237
|
+
category: 'media',
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
name: 'peekaboo',
|
|
241
|
+
description: 'Capture and automate macOS UI with the Peekaboo CLI.',
|
|
242
|
+
source: 'openclaw-bundled',
|
|
243
|
+
category: 'media',
|
|
244
|
+
},
|
|
245
|
+
// ── music ─────────────────────────────────────────────────────────────────
|
|
246
|
+
{
|
|
247
|
+
name: 'spotify-player',
|
|
248
|
+
description: 'Terminal Spotify playback/search via spogo (preferred) or spotify_player.',
|
|
249
|
+
source: 'openclaw-bundled',
|
|
250
|
+
category: 'music',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: 'sonoscli',
|
|
254
|
+
description: 'Control Sonos speakers (discover/status/play/volume/group).',
|
|
255
|
+
source: 'openclaw-bundled',
|
|
256
|
+
category: 'music',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: 'blucli',
|
|
260
|
+
description: 'BluOS CLI (blu) for discovery, playback, grouping, and volume.',
|
|
261
|
+
source: 'openclaw-bundled',
|
|
262
|
+
category: 'music',
|
|
263
|
+
},
|
|
264
|
+
// ── smart-home ────────────────────────────────────────────────────────────
|
|
265
|
+
{
|
|
266
|
+
name: 'openhue',
|
|
267
|
+
description: 'Control Philips Hue lights and scenes via the OpenHue CLI.',
|
|
268
|
+
source: 'openclaw-bundled',
|
|
269
|
+
category: 'smart-home',
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
name: 'eightctl',
|
|
273
|
+
description: 'Control Eight Sleep pods (status, temperature, alarms, schedules).',
|
|
274
|
+
source: 'openclaw-bundled',
|
|
275
|
+
category: 'smart-home',
|
|
276
|
+
},
|
|
277
|
+
// ── ai ────────────────────────────────────────────────────────────────────
|
|
278
|
+
{
|
|
279
|
+
name: 'gemini',
|
|
280
|
+
description: 'Gemini CLI for one-shot Q&A, summaries, and generation.',
|
|
281
|
+
source: 'openclaw-bundled',
|
|
282
|
+
category: 'ai',
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
name: 'canvas',
|
|
286
|
+
description: 'Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android). Great for displaying games, visualizations, and dashboards.',
|
|
287
|
+
source: 'openclaw-bundled',
|
|
288
|
+
category: 'ai',
|
|
289
|
+
},
|
|
290
|
+
// ── utilities ─────────────────────────────────────────────────────────────
|
|
291
|
+
{
|
|
292
|
+
name: 'blogwatcher',
|
|
293
|
+
description: 'Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.',
|
|
294
|
+
source: 'openclaw-bundled',
|
|
295
|
+
category: 'utilities',
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'goplaces',
|
|
299
|
+
description: 'Query Google Places API (New) via the goplaces CLI for text search, place details, resolve, and reviews. Use for human-friendly place lookup or JSON output for scripts.',
|
|
300
|
+
source: 'openclaw-bundled',
|
|
301
|
+
category: 'utilities',
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
name: 'healthcheck',
|
|
305
|
+
description: 'Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, or OpenClaw cron health.',
|
|
306
|
+
source: 'openclaw-bundled',
|
|
307
|
+
category: 'utilities',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
name: 'model-usage',
|
|
311
|
+
description: 'Use CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost details.',
|
|
312
|
+
source: 'openclaw-bundled',
|
|
313
|
+
category: 'utilities',
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
name: 'ordercli',
|
|
317
|
+
description: 'Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).',
|
|
318
|
+
source: 'openclaw-bundled',
|
|
319
|
+
category: 'utilities',
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
name: 'session-logs',
|
|
323
|
+
description: 'Search and analyze your own session logs (older/parent conversations) using jq.',
|
|
324
|
+
source: 'openclaw-bundled',
|
|
325
|
+
category: 'utilities',
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: 'weather',
|
|
329
|
+
description: 'Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or other weather APIs.',
|
|
330
|
+
source: 'openclaw-bundled',
|
|
331
|
+
category: 'utilities',
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: 'xurl',
|
|
335
|
+
description: 'A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with X/Twitter programmatically.',
|
|
336
|
+
source: 'openclaw-bundled',
|
|
337
|
+
category: 'utilities',
|
|
338
|
+
},
|
|
339
|
+
|
|
340
|
+
// ─── Managed Skills (~/.openclaw/skills/) ──────────────────────────────────
|
|
341
|
+
{
|
|
342
|
+
name: 'agent-nexus-2',
|
|
343
|
+
description: 'Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution.',
|
|
344
|
+
source: 'managed',
|
|
345
|
+
category: 'development',
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
name: 'autoresearch',
|
|
349
|
+
description: 'Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage.',
|
|
350
|
+
source: 'managed',
|
|
351
|
+
category: 'development',
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: 'business-strategy',
|
|
355
|
+
description: 'PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy.',
|
|
356
|
+
source: 'managed',
|
|
357
|
+
category: 'productivity',
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
name: 'coding-discipline.skill',
|
|
361
|
+
description: 'Enforces strict TypeScript coding standards, test-first development, and zero-stub policies for production-grade agent code.',
|
|
362
|
+
source: 'managed',
|
|
363
|
+
category: 'development',
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
name: 'content-writer',
|
|
367
|
+
description: 'Use this skill everytime you are writing an article, social media post, email, etc.',
|
|
368
|
+
source: 'managed',
|
|
369
|
+
category: 'communication',
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
name: 'execution-validation.skill',
|
|
373
|
+
description: 'Multi-round automated validation pipeline for TypeScript/Solidity projects before publish or deploy.',
|
|
374
|
+
source: 'managed',
|
|
375
|
+
category: 'development',
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
name: 'humanize',
|
|
379
|
+
description: 'Transforms AI-generated writing into content that reads authentically human — passing AI detectors and resonating with real readers.',
|
|
380
|
+
source: 'managed',
|
|
381
|
+
category: 'communication',
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
name: 'polyclaw',
|
|
385
|
+
description: 'Trade on Polymarket via split + CLOB execution. Browse markets, track positions with P&L, discover hedges via LLM. Polygon/Web3.',
|
|
386
|
+
source: 'managed',
|
|
387
|
+
category: 'finance',
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
name: 'prospector',
|
|
391
|
+
description: 'Find leads, prospects, and contacts matching an Ideal Customer Profile. Searches companies via Exa and enriches contacts via Apollo, outputting to CSV and optionally syncing to Attio CRM.',
|
|
392
|
+
source: 'managed',
|
|
393
|
+
category: 'productivity',
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
name: 'rsi.skill',
|
|
397
|
+
description: 'RSI self-improvement cycles implementing measure → hypothesize → mutate → test → apply/discard → repeat for agent capability enhancement.',
|
|
398
|
+
source: 'managed',
|
|
399
|
+
category: 'development',
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
name: 'security',
|
|
403
|
+
description: 'Infrastructure threat detection, vulnerability management, and security audit workflows for the OpenClaw workspace.',
|
|
404
|
+
source: 'managed',
|
|
405
|
+
category: 'utilities',
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
name: 'strykr-prism',
|
|
409
|
+
description: 'Real-time financial data API for AI agents. Stocks, crypto, forex, ETFs. 120+ endpoints. Alternative to Alpha Vantage, CoinGecko. Works with Claude, Cursor.',
|
|
410
|
+
source: 'managed',
|
|
411
|
+
category: 'finance',
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
name: 'taskbridge',
|
|
415
|
+
description: 'Bridge tasks between agent sessions, preserving context and handoff state for long-running multi-session workflows.',
|
|
416
|
+
source: 'managed',
|
|
417
|
+
category: 'productivity',
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
name: 'validator-agent',
|
|
421
|
+
description: 'Multi-round automated validation pipeline for TypeScript/Solidity projects. Runs 8 rounds of checks before any publish or deploy: compile gate, lint, test suite, security audit, type coverage, docs, changelog, and final review.',
|
|
422
|
+
source: 'managed',
|
|
423
|
+
category: 'development',
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
name: 'webmcp-payments',
|
|
427
|
+
description: 'Handle HTTP 402 Payment Required responses via agentpay-mcp, enabling autonomous micropayment execution within configured spending limits.',
|
|
428
|
+
source: 'managed',
|
|
429
|
+
category: 'finance',
|
|
430
|
+
},
|
|
431
|
+
];
|
|
432
|
+
|
|
433
|
+
// ─── Count ────────────────────────────────────────────────────────────────────
|
|
434
|
+
|
|
435
|
+
export const SKILLS_COUNT = SKILLS_CATALOG.length;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawPowers Skills — Skill Executor
|
|
3
|
+
* Execute skills and track outcomes in procedural memory.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ProceduralMemory } from '../memory/procedural.js';
|
|
7
|
+
|
|
8
|
+
export interface SkillExecutionContext {
|
|
9
|
+
readonly taskId: string;
|
|
10
|
+
readonly input: string;
|
|
11
|
+
readonly metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface SkillExecutionResult {
|
|
15
|
+
readonly success: boolean;
|
|
16
|
+
readonly output: string;
|
|
17
|
+
readonly durationMs: number;
|
|
18
|
+
readonly error?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class SkillExecutor {
|
|
22
|
+
constructor(
|
|
23
|
+
private readonly skillsDir: string,
|
|
24
|
+
private readonly memory: ProceduralMemory
|
|
25
|
+
) {}
|
|
26
|
+
|
|
27
|
+
async execute(skillName: string, context: SkillExecutionContext): Promise<SkillExecutionResult> {
|
|
28
|
+
const start = Date.now();
|
|
29
|
+
try {
|
|
30
|
+
const result: SkillExecutionResult = {
|
|
31
|
+
success: true,
|
|
32
|
+
output: `Skill ${skillName} loaded from ${this.skillsDir}`,
|
|
33
|
+
durationMs: Date.now() - start,
|
|
34
|
+
};
|
|
35
|
+
await this.memory.update(skillName, {
|
|
36
|
+
succeeded: true,
|
|
37
|
+
durationMs: result.durationMs,
|
|
38
|
+
taskId: context.taskId,
|
|
39
|
+
});
|
|
40
|
+
return result;
|
|
41
|
+
} catch (err: unknown) {
|
|
42
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
43
|
+
await this.memory.update(skillName, {
|
|
44
|
+
succeeded: false,
|
|
45
|
+
durationMs: Date.now() - start,
|
|
46
|
+
taskId: context.taskId,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
success: false,
|
|
50
|
+
output: '',
|
|
51
|
+
durationMs: Date.now() - start,
|
|
52
|
+
error: errorMessage,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: itp
|
|
3
|
+
description: "Identical Twins Protocol — compressed agent-to-agent messaging for repeated operational language. Use when sending messages between agents."
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
requires:
|
|
7
|
+
bins: [python3]
|
|
8
|
+
env: []
|
|
9
|
+
config: []
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ITP — Identical Twins Protocol
|
|
13
|
+
|
|
14
|
+
Compressed agent-to-agent messaging protocol that uses a shared codebook of common patterns, operations, and agent shorthand.
|
|
15
|
+
|
|
16
|
+
Current measured performance is workload-dependent. The live v1 corpus benchmark shows **11.9% aggregate token reduction** across 25 messages, with delegation and status traffic compressing best. Separate swarm docs also include **modeled** prompt-cache economics layered on top of those live prompt sizes. Keep those two measurement types distinct.
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
### 1. Start the ITP Server
|
|
21
|
+
|
|
22
|
+
The ITP server runs as a FastAPI service on port 8100:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Via LaunchAgent (recommended — auto-starts on boot)
|
|
26
|
+
launchctl load ~/Library/LaunchAgents/com.agenteconomy.itp-server.plist
|
|
27
|
+
|
|
28
|
+
# Or manually
|
|
29
|
+
cd /Users/billwilson/.openclaw/workspace/tools/itp
|
|
30
|
+
python3 -m uvicorn itp_server:app --host 127.0.0.1 --port 8100
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Verify Health
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
curl http://localhost:8100/health
|
|
37
|
+
# → {"status": "ok", "version": "1.0.0", ...}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## API Endpoints
|
|
41
|
+
|
|
42
|
+
### Encode Message
|
|
43
|
+
`POST /tools/encode`
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"message": "Please analyze the trading performance and provide a status update",
|
|
47
|
+
"source_agent": "max",
|
|
48
|
+
"target_agent": "trading-director"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
Returns: `{ "encoded": "ITP:...", "was_compressed": true, "savings_pct": 45.2, ... }`
|
|
52
|
+
|
|
53
|
+
### Decode Message
|
|
54
|
+
`POST /tools/decode`
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"message": "ITP:ANL+TRD/PERF→STS/UPD"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
Returns: `{ "decoded": "...", "was_itp": true, ... }`
|
|
61
|
+
|
|
62
|
+
### Health Check
|
|
63
|
+
`GET /health`
|
|
64
|
+
Returns: `{ "status": "ok", ... }`
|
|
65
|
+
|
|
66
|
+
### Statistics
|
|
67
|
+
`GET /tools/stats`
|
|
68
|
+
Returns compression analytics and savings metrics.
|
|
69
|
+
|
|
70
|
+
### Codebook
|
|
71
|
+
`GET /tools/codebook`
|
|
72
|
+
Returns current codebook contents and stats.
|
|
73
|
+
|
|
74
|
+
### History
|
|
75
|
+
`GET /tools/history?limit=20`
|
|
76
|
+
Returns recent ITP message history.
|
|
77
|
+
|
|
78
|
+
## TypeScript Client
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import { encode, decode, healthCheck } from 'clawpowers/itp';
|
|
82
|
+
|
|
83
|
+
// Encode a message (graceful fallback if server is down)
|
|
84
|
+
const result = await encode("Analyze trading performance");
|
|
85
|
+
// { encoded: "ITP:...", wasCompressed: true, savingsPct: 45.2 }
|
|
86
|
+
|
|
87
|
+
// Decode an ITP message
|
|
88
|
+
const decoded = await decode("ITP:ANL+TRD/PERF");
|
|
89
|
+
// { decoded: "Analyze trading performance", wasItp: true }
|
|
90
|
+
|
|
91
|
+
// Check server status
|
|
92
|
+
const alive = await healthCheck();
|
|
93
|
+
// true or false
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Swarm Integration
|
|
97
|
+
|
|
98
|
+
ITP integrates with the Parallel Swarm module to compress task descriptions before fan-out and decode results after collection:
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
import { encodeTaskDescription, decodeSwarmResult } from 'clawpowers/itp/swarm-bridge';
|
|
102
|
+
|
|
103
|
+
// Compress task before sending to sub-agents
|
|
104
|
+
const compressedTask = await encodeTaskDescription(task);
|
|
105
|
+
|
|
106
|
+
// Decode result from sub-agent
|
|
107
|
+
const decodedResult = await decodeSwarmResult(result);
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Graceful Degradation
|
|
111
|
+
|
|
112
|
+
All ITP functions fail gracefully — if the ITP server is unreachable, messages pass through unchanged with no errors thrown. This ensures ITP never blocks agent operations.
|