@framers/agentos-skills 0.3.0 → 0.4.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.
Files changed (100) hide show
  1. package/CONTRIBUTING.md +231 -0
  2. package/README.md +93 -58
  3. package/package.json +19 -31
  4. package/registry/community/.gitkeep +0 -0
  5. package/registry/curated/1password/SKILL.md +53 -0
  6. package/registry/curated/account-manager/SKILL.md +60 -0
  7. package/registry/curated/agent-config/SKILL.md +22 -0
  8. package/registry/curated/amazon-polly/SKILL.md +74 -0
  9. package/registry/curated/apple-notes/SKILL.md +45 -0
  10. package/registry/curated/apple-reminders/SKILL.md +46 -0
  11. package/registry/curated/audio-generation/SKILL.md +231 -0
  12. package/registry/curated/blog-publisher/SKILL.md +110 -0
  13. package/registry/curated/bluesky-bot/SKILL.md +93 -0
  14. package/registry/curated/cli-tools/SKILL.md +137 -0
  15. package/registry/curated/cloud-ops/SKILL.md +124 -0
  16. package/registry/curated/code-safety/SKILL.md +42 -0
  17. package/registry/curated/coding-agent/SKILL.md +40 -0
  18. package/registry/curated/company-research/SKILL.md +46 -0
  19. package/registry/curated/content-creator/SKILL.md +53 -0
  20. package/registry/curated/deep-research/SKILL.md +56 -0
  21. package/registry/curated/diarization/SKILL.md +83 -0
  22. package/registry/curated/discord-helper/SKILL.md +43 -0
  23. package/registry/curated/document-export/SKILL.md +54 -0
  24. package/registry/curated/email-intelligence/SKILL.md +41 -0
  25. package/registry/curated/emergent-tools/SKILL.md +225 -0
  26. package/registry/curated/endpoint-semantic/SKILL.md +72 -0
  27. package/registry/curated/facebook-bot/SKILL.md +94 -0
  28. package/registry/curated/git/SKILL.md +49 -0
  29. package/registry/curated/github/SKILL.md +142 -0
  30. package/registry/curated/google-cloud-stt/SKILL.md +71 -0
  31. package/registry/curated/google-cloud-tts/SKILL.md +71 -0
  32. package/registry/curated/grounding-guard/SKILL.md +38 -0
  33. package/registry/curated/healthcheck/SKILL.md +43 -0
  34. package/registry/curated/image-editing/SKILL.md +25 -0
  35. package/registry/curated/image-gen/SKILL.md +141 -0
  36. package/registry/curated/instagram-bot/SKILL.md +60 -0
  37. package/registry/curated/interactive-widgets/SKILL.md +85 -0
  38. package/registry/curated/linkedin-bot/SKILL.md +86 -0
  39. package/registry/curated/mastodon-bot/SKILL.md +104 -0
  40. package/registry/curated/memory-manager/SKILL.md +127 -0
  41. package/registry/curated/ml-content-classifier/SKILL.md +38 -0
  42. package/registry/curated/movie-lookup/SKILL.md +48 -0
  43. package/registry/curated/multimodal-rag/SKILL.md +153 -0
  44. package/registry/curated/notion/SKILL.md +43 -0
  45. package/registry/curated/obsidian/SKILL.md +42 -0
  46. package/registry/curated/openwakeword/SKILL.md +75 -0
  47. package/registry/curated/pii-redaction/SKILL.md +56 -0
  48. package/registry/curated/pinterest-bot/SKILL.md +45 -0
  49. package/registry/curated/piper/SKILL.md +72 -0
  50. package/registry/curated/porcupine/SKILL.md +74 -0
  51. package/registry/curated/reddit-bot/SKILL.md +74 -0
  52. package/registry/curated/seo-campaign/SKILL.md +51 -0
  53. package/registry/curated/site-deploy/SKILL.md +119 -0
  54. package/registry/curated/slack-helper/SKILL.md +43 -0
  55. package/registry/curated/social-broadcast/SKILL.md +145 -0
  56. package/registry/curated/spotify-player/SKILL.md +45 -0
  57. package/registry/curated/streaming-stt-deepgram/SKILL.md +84 -0
  58. package/registry/curated/streaming-stt-whisper/SKILL.md +82 -0
  59. package/registry/curated/streaming-tts-elevenlabs/SKILL.md +84 -0
  60. package/registry/curated/streaming-tts-openai/SKILL.md +83 -0
  61. package/registry/curated/structured-output/SKILL.md +22 -0
  62. package/registry/curated/summarize/SKILL.md +40 -0
  63. package/registry/curated/threads-bot/SKILL.md +82 -0
  64. package/registry/curated/tiktok-bot/SKILL.md +104 -0
  65. package/registry/curated/topicality/SKILL.md +37 -0
  66. package/registry/curated/trello/SKILL.md +44 -0
  67. package/registry/curated/twitter-bot/SKILL.md +63 -0
  68. package/registry/curated/video-generation/SKILL.md +225 -0
  69. package/registry/curated/vision-ocr/SKILL.md +82 -0
  70. package/registry/curated/voice-conversation/SKILL.md +65 -0
  71. package/registry/curated/vosk/SKILL.md +74 -0
  72. package/registry/curated/weather/SKILL.md +37 -0
  73. package/registry/curated/web-scraper/SKILL.md +60 -0
  74. package/registry/curated/web-search/SKILL.md +49 -0
  75. package/registry/curated/whisper-transcribe/SKILL.md +58 -0
  76. package/registry/curated/youtube-bot/SKILL.md +104 -0
  77. package/registry.json +2446 -0
  78. package/scripts/update-registry.mjs +126 -0
  79. package/scripts/validate-skill.mjs +304 -0
  80. package/types.d.ts +160 -0
  81. package/dist/SkillLoader.d.ts +0 -50
  82. package/dist/SkillLoader.d.ts.map +0 -1
  83. package/dist/SkillLoader.js +0 -291
  84. package/dist/SkillLoader.js.map +0 -1
  85. package/dist/SkillRegistry.d.ts +0 -135
  86. package/dist/SkillRegistry.d.ts.map +0 -1
  87. package/dist/SkillRegistry.js +0 -455
  88. package/dist/SkillRegistry.js.map +0 -1
  89. package/dist/index.d.ts +0 -13
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.js +0 -13
  92. package/dist/index.js.map +0 -1
  93. package/dist/paths.d.ts +0 -35
  94. package/dist/paths.d.ts.map +0 -1
  95. package/dist/paths.js +0 -71
  96. package/dist/paths.js.map +0 -1
  97. package/dist/types.d.ts +0 -231
  98. package/dist/types.d.ts.map +0 -1
  99. package/dist/types.js +0 -21
  100. package/dist/types.js.map +0 -1
package/registry.json ADDED
@@ -0,0 +1,2446 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "updated": "2026-03-28T13:31:49.809Z",
4
+ "categories": {
5
+ "curated": [
6
+ "1password",
7
+ "account-manager",
8
+ "agent-config",
9
+ "amazon-polly",
10
+ "apple-notes",
11
+ "apple-reminders",
12
+ "audio-generation",
13
+ "blog-publisher",
14
+ "bluesky-bot",
15
+ "cli-tools",
16
+ "cloud-ops",
17
+ "code-safety",
18
+ "coding-agent",
19
+ "company-research",
20
+ "content-creator",
21
+ "deep-research",
22
+ "diarization",
23
+ "discord-helper",
24
+ "document-export",
25
+ "email-intelligence",
26
+ "emergent-tools",
27
+ "endpoint-semantic",
28
+ "facebook-bot",
29
+ "git",
30
+ "github",
31
+ "google-cloud-stt",
32
+ "google-cloud-tts",
33
+ "grounding-guard",
34
+ "healthcheck",
35
+ "image-editing",
36
+ "image-gen",
37
+ "interactive-widgets",
38
+ "instagram-bot",
39
+ "linkedin-bot",
40
+ "mastodon-bot",
41
+ "memory-manager",
42
+ "ml-content-classifier",
43
+ "movie-lookup",
44
+ "multimodal-rag",
45
+ "notion",
46
+ "obsidian",
47
+ "openwakeword",
48
+ "pii-redaction",
49
+ "pinterest-bot",
50
+ "piper",
51
+ "porcupine",
52
+ "reddit-bot",
53
+ "seo-campaign",
54
+ "site-deploy",
55
+ "slack-helper",
56
+ "social-broadcast",
57
+ "spotify-player",
58
+ "streaming-stt-deepgram",
59
+ "streaming-stt-whisper",
60
+ "streaming-tts-elevenlabs",
61
+ "streaming-tts-openai",
62
+ "structured-output",
63
+ "summarize",
64
+ "threads-bot",
65
+ "tiktok-bot",
66
+ "topicality",
67
+ "trello",
68
+ "twitter-bot",
69
+ "video-generation",
70
+ "vision-ocr",
71
+ "voice-conversation",
72
+ "vosk",
73
+ "weather",
74
+ "web-scraper",
75
+ "web-search",
76
+ "whisper-transcribe",
77
+ "youtube-bot"
78
+ ],
79
+ "community": []
80
+ },
81
+ "skills": {
82
+ "curated": [
83
+ {
84
+ "id": "com.framers.skill.1password",
85
+ "name": "1password",
86
+ "displayName": "1password",
87
+ "version": "1.0.0",
88
+ "path": "registry/curated/1password",
89
+ "description": "Query and retrieve items from 1Password vaults using the 1Password CLI for secure credential access.",
90
+ "category": "security",
91
+ "namespace": "wunderland",
92
+ "verified": true,
93
+ "source": "curated",
94
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
95
+ "keywords": [
96
+ "1password",
97
+ "passwords",
98
+ "secrets",
99
+ "vault",
100
+ "credentials",
101
+ "security"
102
+ ],
103
+ "requiredSecrets": [
104
+ "1password.service_account_token"
105
+ ],
106
+ "metadata": {
107
+ "emoji": "🔐",
108
+ "primaryEnv": "OP_SERVICE_ACCOUNT_TOKEN",
109
+ "homepage": "https://developer.1password.com/docs/cli",
110
+ "requires": {
111
+ "bins": [
112
+ "op"
113
+ ]
114
+ },
115
+ "install": [
116
+ {
117
+ "id": "brew",
118
+ "kind": "brew",
119
+ "formula": "1password-cli",
120
+ "bins": [
121
+ "op"
122
+ ],
123
+ "label": "Install 1Password CLI (brew)"
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ "id": "com.framers.skill.account-manager",
130
+ "name": "account-manager",
131
+ "displayName": "account-manager",
132
+ "version": "1.0.0",
133
+ "path": "registry/curated/account-manager",
134
+ "description": "Social account management — registration flows, profile optimization, credential storage, multi-platform account orchestration.",
135
+ "category": "automation",
136
+ "namespace": "wunderland",
137
+ "verified": true,
138
+ "source": "curated",
139
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
140
+ "keywords": [
141
+ "accounts",
142
+ "credentials",
143
+ "registration",
144
+ "profiles",
145
+ "management",
146
+ "automation"
147
+ ],
148
+ "requiredTools": [
149
+ "credentialsSet",
150
+ "credentialsGet",
151
+ "credentialsList",
152
+ "credentialsImport",
153
+ "browserNavigate",
154
+ "browserClick",
155
+ "browserFill",
156
+ "browserScreenshot",
157
+ "browserSnapshot",
158
+ "browserSession"
159
+ ],
160
+ "metadata": {
161
+ "emoji": "🔑"
162
+ }
163
+ },
164
+ {
165
+ "id": "com.framers.skill.agent-config",
166
+ "name": "agent-config",
167
+ "displayName": "agent-config",
168
+ "version": "1.0.0",
169
+ "path": "registry/curated/agent-config",
170
+ "description": "Export and import agent configurations for sharing and backup",
171
+ "category": "uncategorized",
172
+ "namespace": "wunderland",
173
+ "verified": true,
174
+ "source": "curated",
175
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
176
+ "keywords": [
177
+ "agent",
178
+ "config",
179
+ "export",
180
+ "import",
181
+ "yaml",
182
+ "json"
183
+ ]
184
+ },
185
+ {
186
+ "id": "com.framers.skill.amazon-polly",
187
+ "name": "amazon-polly",
188
+ "displayName": "amazon-polly",
189
+ "version": "1.0.0",
190
+ "path": "registry/curated/amazon-polly",
191
+ "description": "Neural text-to-speech via Amazon Polly — high-quality voices, MP3 output, voice listing, default Joanna (en-US Neural).",
192
+ "category": "voice",
193
+ "namespace": "wunderland",
194
+ "verified": true,
195
+ "source": "curated",
196
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
197
+ "keywords": [
198
+ "voice",
199
+ "tts",
200
+ "text-to-speech",
201
+ "amazon",
202
+ "aws",
203
+ "polly",
204
+ "neural"
205
+ ],
206
+ "requiredSecrets": [
207
+ "aws.accessKeyId",
208
+ "aws.secretAccessKey"
209
+ ],
210
+ "metadata": {
211
+ "emoji": "🔊",
212
+ "primaryEnv": "AWS_ACCESS_KEY_ID",
213
+ "homepage": "https://docs.aws.amazon.com/polly/"
214
+ }
215
+ },
216
+ {
217
+ "id": "com.framers.skill.apple-notes",
218
+ "name": "apple-notes",
219
+ "displayName": "apple-notes",
220
+ "version": "1.0.0",
221
+ "path": "registry/curated/apple-notes",
222
+ "description": "Create, read, search, and manage notes in Apple Notes using AppleScript and macOS automation.",
223
+ "category": "productivity",
224
+ "namespace": "wunderland",
225
+ "verified": true,
226
+ "source": "curated",
227
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
228
+ "keywords": [
229
+ "apple-notes",
230
+ "macos",
231
+ "notes",
232
+ "applescript",
233
+ "automation"
234
+ ],
235
+ "requiredTools": [
236
+ "filesystem"
237
+ ],
238
+ "metadata": {
239
+ "emoji": "📱",
240
+ "os": [
241
+ "darwin"
242
+ ],
243
+ "requires": {
244
+ "bins": [
245
+ "osascript"
246
+ ]
247
+ }
248
+ }
249
+ },
250
+ {
251
+ "id": "com.framers.skill.apple-reminders",
252
+ "name": "apple-reminders",
253
+ "displayName": "apple-reminders",
254
+ "version": "1.0.0",
255
+ "path": "registry/curated/apple-reminders",
256
+ "description": "Create, manage, and query reminders and lists in Apple Reminders using AppleScript and macOS automation.",
257
+ "category": "productivity",
258
+ "namespace": "wunderland",
259
+ "verified": true,
260
+ "source": "curated",
261
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
262
+ "keywords": [
263
+ "apple-reminders",
264
+ "macos",
265
+ "reminders",
266
+ "tasks",
267
+ "applescript",
268
+ "automation"
269
+ ],
270
+ "requiredTools": [
271
+ "filesystem"
272
+ ],
273
+ "metadata": {
274
+ "emoji": "✅",
275
+ "os": [
276
+ "darwin"
277
+ ],
278
+ "requires": {
279
+ "bins": [
280
+ "osascript"
281
+ ]
282
+ }
283
+ }
284
+ },
285
+ {
286
+ "id": "com.framers.skill.audio-generation",
287
+ "name": "audio-generation",
288
+ "displayName": "audio-generation",
289
+ "version": "1.0.0",
290
+ "path": "registry/curated/audio-generation",
291
+ "description": "Music and sound effects generation — 8 providers with fallback chains, user-configurable preferences, local and cloud options.",
292
+ "category": "media",
293
+ "namespace": "wunderland",
294
+ "verified": true,
295
+ "source": "curated",
296
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
297
+ "keywords": [
298
+ "audio",
299
+ "music",
300
+ "sound-effects",
301
+ "sfx",
302
+ "generation",
303
+ "suno",
304
+ "elevenlabs",
305
+ "stable-audio",
306
+ "musicgen"
307
+ ],
308
+ "metadata": {
309
+ "emoji": "🎵"
310
+ }
311
+ },
312
+ {
313
+ "id": "com.framers.skill.blog-publisher",
314
+ "name": "blog-publisher",
315
+ "displayName": "blog-publisher",
316
+ "version": "1.0.0",
317
+ "path": "registry/curated/blog-publisher",
318
+ "description": "Blog publishing automation — long-form content creation, SEO optimization, cross-posting with canonical URLs, and multi-platform distribution.",
319
+ "category": "social-automation",
320
+ "namespace": "wunderland",
321
+ "verified": true,
322
+ "source": "curated",
323
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
324
+ "keywords": [
325
+ "blog",
326
+ "publishing",
327
+ "long-form",
328
+ "seo",
329
+ "cross-posting",
330
+ "dev-to",
331
+ "hashnode",
332
+ "medium",
333
+ "wordpress",
334
+ "automation"
335
+ ],
336
+ "requiredSecrets": [
337
+ "blog.devtoApiKey",
338
+ "blog.hashnodeToken",
339
+ "blog.mediumToken",
340
+ "blog.wordpressUrl",
341
+ "blog.wordpressToken"
342
+ ],
343
+ "requiredTools": [
344
+ "blogPublishArticle",
345
+ "blogUpdateArticle",
346
+ "blogListArticles",
347
+ "blogAnalytics",
348
+ "blogSchedule",
349
+ "blogCrossPost"
350
+ ],
351
+ "metadata": {
352
+ "emoji": "✍️",
353
+ "primaryEnv": "BLOG_DEVTO_API_KEY"
354
+ }
355
+ },
356
+ {
357
+ "id": "com.framers.skill.bluesky-bot",
358
+ "name": "bluesky-bot",
359
+ "displayName": "bluesky-bot",
360
+ "version": "1.0.0",
361
+ "path": "registry/curated/bluesky-bot",
362
+ "description": "Bluesky automation — decentralized social engagement, custom feed curation, authentic community building, and AT Protocol interaction.",
363
+ "category": "social-automation",
364
+ "namespace": "wunderland",
365
+ "verified": true,
366
+ "source": "curated",
367
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
368
+ "keywords": [
369
+ "bluesky",
370
+ "social-media",
371
+ "decentralized",
372
+ "atproto",
373
+ "community",
374
+ "feeds",
375
+ "automation"
376
+ ],
377
+ "requiredSecrets": [
378
+ "bluesky.handle",
379
+ "bluesky.appPassword"
380
+ ],
381
+ "requiredTools": [
382
+ "blueskyPost",
383
+ "blueskyReply",
384
+ "blueskyLike",
385
+ "blueskyRepost",
386
+ "blueskySearch",
387
+ "blueskyFeed",
388
+ "blueskyFollow",
389
+ "blueskyAnalytics"
390
+ ],
391
+ "metadata": {
392
+ "emoji": "🦋",
393
+ "primaryEnv": "BLUESKY_APP_PASSWORD"
394
+ }
395
+ },
396
+ {
397
+ "id": "com.framers.skill.cli-tools",
398
+ "name": "cli-tools",
399
+ "displayName": "cli-tools",
400
+ "version": "1.0.0",
401
+ "path": "registry/curated/cli-tools",
402
+ "description": "Shell execution patterns, CLI discovery, filesystem operations, and subprocess management for autonomous agent workflows.",
403
+ "category": "system",
404
+ "namespace": "wunderland",
405
+ "verified": true,
406
+ "source": "curated",
407
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
408
+ "keywords": [
409
+ "shell",
410
+ "cli",
411
+ "terminal",
412
+ "filesystem",
413
+ "subprocess",
414
+ "automation",
415
+ "devops",
416
+ "scripting"
417
+ ],
418
+ "requiredTools": [
419
+ "shell_execute",
420
+ "file_read",
421
+ "file_write",
422
+ "list_directory"
423
+ ],
424
+ "metadata": {
425
+ "emoji": "💻",
426
+ "primaryEnv": "SHELL",
427
+ "requires": {
428
+ "anyBins": [
429
+ "bash",
430
+ "zsh",
431
+ "sh"
432
+ ]
433
+ }
434
+ }
435
+ },
436
+ {
437
+ "id": "com.framers.skill.cloud-ops",
438
+ "name": "cloud-ops",
439
+ "displayName": "cloud-ops",
440
+ "version": "1.0.0",
441
+ "path": "registry/curated/cloud-ops",
442
+ "description": "Manage cloud infrastructure — monitor deployments, scale resources, manage databases, and handle domain operations across all supported providers.",
443
+ "category": "infrastructure",
444
+ "namespace": "wunderland",
445
+ "verified": true,
446
+ "source": "curated",
447
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
448
+ "keywords": [
449
+ "cloud",
450
+ "devops",
451
+ "infrastructure",
452
+ "monitoring",
453
+ "scaling",
454
+ "database",
455
+ "dns",
456
+ "ops"
457
+ ],
458
+ "metadata": {
459
+ "emoji": "☁",
460
+ "homepage": "https://wunderland.sh/docs/skills/cloud-ops"
461
+ }
462
+ },
463
+ {
464
+ "id": "com.framers.skill.code-safety",
465
+ "name": "code-safety",
466
+ "displayName": "code-safety",
467
+ "version": "1.0.0",
468
+ "path": "registry/curated/code-safety",
469
+ "description": "Scan LLM-generated code for security vulnerabilities using language-aware pattern rules",
470
+ "category": "security",
471
+ "namespace": "wunderland",
472
+ "verified": true,
473
+ "source": "curated",
474
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
475
+ "keywords": [
476
+ "guardrails",
477
+ "code-safety",
478
+ "security",
479
+ "injection",
480
+ "xss",
481
+ "owasp",
482
+ "static-analysis"
483
+ ],
484
+ "requiredTools": [
485
+ "scan_code"
486
+ ],
487
+ "metadata": {
488
+ "emoji": "🛡"
489
+ }
490
+ },
491
+ {
492
+ "id": "com.framers.skill.coding-agent",
493
+ "name": "coding-agent",
494
+ "displayName": "coding-agent",
495
+ "version": "1.0.0",
496
+ "path": "registry/curated/coding-agent",
497
+ "description": "Write, review, debug, refactor, and explain code across multiple programming languages and frameworks.",
498
+ "category": "developer-tools",
499
+ "namespace": "wunderland",
500
+ "verified": true,
501
+ "source": "curated",
502
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
503
+ "keywords": [
504
+ "coding",
505
+ "programming",
506
+ "code-review",
507
+ "debugging",
508
+ "refactoring",
509
+ "development"
510
+ ],
511
+ "requiredTools": [
512
+ "filesystem"
513
+ ],
514
+ "metadata": {
515
+ "emoji": "💻"
516
+ }
517
+ },
518
+ {
519
+ "id": "com.framers.skill.company-research",
520
+ "name": "company-research",
521
+ "displayName": "company-research",
522
+ "version": "1.0.0",
523
+ "path": "registry/curated/company-research",
524
+ "description": "Research companies and contacts using Clearbit enrichment API.",
525
+ "category": "business",
526
+ "namespace": "wunderland",
527
+ "verified": true,
528
+ "source": "curated",
529
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
530
+ "keywords": [
531
+ "clearbit",
532
+ "company",
533
+ "enrichment",
534
+ "contacts",
535
+ "b2b",
536
+ "research"
537
+ ],
538
+ "requiredSecrets": [
539
+ "clearbit.apiKey"
540
+ ],
541
+ "requiredTools": [
542
+ "clearbit_company",
543
+ "clearbit_person"
544
+ ],
545
+ "metadata": {
546
+ "emoji": "🏢",
547
+ "homepage": "https://clearbit.com"
548
+ }
549
+ },
550
+ {
551
+ "id": "com.framers.skill.content-creator",
552
+ "name": "content-creator",
553
+ "displayName": "content-creator",
554
+ "version": "1.0.0",
555
+ "path": "registry/curated/content-creator",
556
+ "description": "AI content creation — blog posts, social captions, video descriptions, newsletter copy, all SEO-optimized and platform-adapted.",
557
+ "category": "content",
558
+ "namespace": "wunderland",
559
+ "verified": true,
560
+ "source": "curated",
561
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
562
+ "keywords": [
563
+ "content",
564
+ "writing",
565
+ "blog",
566
+ "captions",
567
+ "seo",
568
+ "copywriting",
569
+ "creation"
570
+ ],
571
+ "requiredTools": [
572
+ "researchAggregate",
573
+ "researchTrending",
574
+ "extractUrl"
575
+ ],
576
+ "metadata": {
577
+ "emoji": "✍"
578
+ }
579
+ },
580
+ {
581
+ "id": "com.framers.skill.deep-research",
582
+ "name": "deep-research",
583
+ "displayName": "deep-research",
584
+ "version": "1.0.0",
585
+ "path": "registry/curated/deep-research",
586
+ "description": "Multi-source investigation — academic papers, web research, social media, cross-referencing, and comprehensive report generation.",
587
+ "category": "research",
588
+ "namespace": "wunderland",
589
+ "verified": true,
590
+ "source": "curated",
591
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
592
+ "keywords": [
593
+ "research",
594
+ "investigation",
595
+ "academic",
596
+ "fact-checking",
597
+ "cross-referencing",
598
+ "reports"
599
+ ],
600
+ "requiredSecrets": [
601
+ "serper.apiKey"
602
+ ],
603
+ "requiredTools": [
604
+ "researchInvestigate",
605
+ "researchAcademic",
606
+ "researchScrape",
607
+ "researchAggregate",
608
+ "researchTrending",
609
+ "extractUrl",
610
+ "extractYoutube",
611
+ "extractWikipedia"
612
+ ],
613
+ "metadata": {
614
+ "emoji": "🔎",
615
+ "primaryEnv": "SERPER_API_KEY"
616
+ }
617
+ },
618
+ {
619
+ "id": "com.framers.skill.diarization",
620
+ "name": "diarization",
621
+ "displayName": "diarization",
622
+ "version": "1.0.0",
623
+ "path": "registry/curated/diarization",
624
+ "description": "Speaker diarization — identifies and tracks who is speaking at each moment in an audio stream, using provider-delegated labels or local offline clustering.",
625
+ "category": "voice",
626
+ "namespace": "wunderland",
627
+ "verified": true,
628
+ "source": "curated",
629
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
630
+ "keywords": [
631
+ "voice",
632
+ "diarization",
633
+ "speaker-identification",
634
+ "multi-speaker",
635
+ "offline",
636
+ "deepgram"
637
+ ],
638
+ "metadata": {
639
+ "emoji": "👥",
640
+ "homepage": "https://docs.wunderland.sh/guides/voice"
641
+ }
642
+ },
643
+ {
644
+ "id": "com.framers.skill.discord-helper",
645
+ "name": "discord-helper",
646
+ "displayName": "discord-helper",
647
+ "version": "1.0.0",
648
+ "path": "registry/curated/discord-helper",
649
+ "description": "Manage Discord servers, channels, roles, and messages through the Discord API.",
650
+ "category": "communication",
651
+ "namespace": "wunderland",
652
+ "verified": true,
653
+ "source": "curated",
654
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
655
+ "keywords": [
656
+ "discord",
657
+ "messaging",
658
+ "server",
659
+ "moderation",
660
+ "community"
661
+ ],
662
+ "requiredSecrets": [
663
+ "discord.bot_token"
664
+ ],
665
+ "metadata": {
666
+ "emoji": "🎮",
667
+ "primaryEnv": "DISCORD_BOT_TOKEN",
668
+ "homepage": "https://discord.com/developers"
669
+ }
670
+ },
671
+ {
672
+ "id": "com.framers.skill.document-export",
673
+ "name": "document-export",
674
+ "displayName": "document-export",
675
+ "version": "1.0.0",
676
+ "path": "registry/curated/document-export",
677
+ "description": "Export research, reports, and analysis to PDF, DOCX, PPTX, CSV, and XLSX with professional formatting.",
678
+ "category": "productivity",
679
+ "namespace": "wunderland",
680
+ "verified": true,
681
+ "source": "curated",
682
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
683
+ "keywords": [
684
+ "document",
685
+ "export",
686
+ "pdf",
687
+ "docx",
688
+ "pptx",
689
+ "csv",
690
+ "xlsx",
691
+ "report",
692
+ "slides"
693
+ ],
694
+ "requiredTools": [
695
+ "document_export",
696
+ "document_suggest"
697
+ ],
698
+ "metadata": {
699
+ "emoji": "📄",
700
+ "homepage": "https://wunderland.sh"
701
+ }
702
+ },
703
+ {
704
+ "id": "com.framers.skill.email-intelligence",
705
+ "name": "email-intelligence",
706
+ "displayName": "Email Intelligence",
707
+ "version": "1.0.0",
708
+ "path": "registry/curated/email-intelligence",
709
+ "description": "",
710
+ "category": "uncategorized",
711
+ "namespace": "wunderland",
712
+ "verified": true,
713
+ "source": "curated",
714
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
715
+ "metadata": {
716
+ "primaryEnv": "INTERNAL_API_SECRET",
717
+ "emoji": "📧",
718
+ "requires": {
719
+ "env": [
720
+ "INTERNAL_API_SECRET"
721
+ ]
722
+ },
723
+ "requires_tools": [
724
+ "searchAcrossThreads",
725
+ "getThreadHierarchy",
726
+ "listProjects",
727
+ "getProjectSummary",
728
+ "getProjectTimeline",
729
+ "listAccounts",
730
+ "getAttachment",
731
+ "createProject",
732
+ "addThreadToProject",
733
+ "generateReport",
734
+ "getDigestPreview",
735
+ "syncStatus"
736
+ ],
737
+ "categories": [
738
+ "productivity",
739
+ "email",
740
+ "intelligence"
741
+ ]
742
+ }
743
+ },
744
+ {
745
+ "id": "com.framers.skill.emergent-tools",
746
+ "name": "emergent-tools",
747
+ "displayName": "emergent-tools",
748
+ "version": "2.0.0",
749
+ "path": "registry/curated/emergent-tools",
750
+ "description": "Self-improving agent toolkit — forge runtime tools, adapt personality traits, manage skills dynamically, compose multi-step workflows, and self-evaluate performance with bounded autonomy.",
751
+ "category": "productivity",
752
+ "namespace": "wunderland",
753
+ "verified": true,
754
+ "source": "curated",
755
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
756
+ "keywords": [
757
+ "emergent",
758
+ "tools",
759
+ "forge",
760
+ "sandbox",
761
+ "dynamic",
762
+ "runtime",
763
+ "LLM-judge",
764
+ "self-improvement",
765
+ "personality",
766
+ "skills",
767
+ "workflow",
768
+ "self-evaluation"
769
+ ],
770
+ "requiredTools": [
771
+ "forge_tool",
772
+ "adapt_personality",
773
+ "manage_skills",
774
+ "create_workflow",
775
+ "self_evaluate"
776
+ ],
777
+ "metadata": {
778
+ "emoji": "🔧"
779
+ }
780
+ },
781
+ {
782
+ "id": "com.framers.skill.endpoint-semantic",
783
+ "name": "endpoint-semantic",
784
+ "displayName": "endpoint-semantic",
785
+ "version": "1.0.0",
786
+ "path": "registry/curated/endpoint-semantic",
787
+ "description": "Semantic endpoint detection — uses an LLM to classify whether the user's utterance is a complete thought, reducing false turn boundaries on mid-sentence pauses.",
788
+ "category": "voice",
789
+ "namespace": "wunderland",
790
+ "verified": true,
791
+ "source": "curated",
792
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
793
+ "keywords": [
794
+ "voice",
795
+ "endpointing",
796
+ "turn-detection",
797
+ "semantic",
798
+ "llm",
799
+ "vad",
800
+ "silence"
801
+ ],
802
+ "metadata": {
803
+ "emoji": "💬",
804
+ "homepage": "https://docs.wunderland.sh/guides/voice"
805
+ }
806
+ },
807
+ {
808
+ "id": "com.framers.skill.facebook-bot",
809
+ "name": "facebook-bot",
810
+ "displayName": "facebook-bot",
811
+ "version": "1.0.0",
812
+ "path": "registry/curated/facebook-bot",
813
+ "description": "Facebook automation — community engagement, page management, visual content publishing, and audience growth.",
814
+ "category": "social-automation",
815
+ "namespace": "wunderland",
816
+ "verified": true,
817
+ "source": "curated",
818
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
819
+ "keywords": [
820
+ "facebook",
821
+ "social-media",
822
+ "community",
823
+ "pages",
824
+ "groups",
825
+ "visual-content",
826
+ "automation"
827
+ ],
828
+ "requiredSecrets": [
829
+ "facebook.accessToken"
830
+ ],
831
+ "requiredTools": [
832
+ "facebookPost",
833
+ "facebookComment",
834
+ "facebookLike",
835
+ "facebookShare",
836
+ "facebookSearch",
837
+ "facebookAnalytics",
838
+ "facebookSchedule",
839
+ "facebookPagePost"
840
+ ],
841
+ "metadata": {
842
+ "emoji": "📱",
843
+ "primaryEnv": "FACEBOOK_ACCESS_TOKEN"
844
+ }
845
+ },
846
+ {
847
+ "id": "com.framers.skill.git",
848
+ "name": "git",
849
+ "displayName": "git",
850
+ "version": "1.0.0",
851
+ "path": "registry/curated/git",
852
+ "description": "Work with Git repositories from the command line.",
853
+ "category": "developer-tools",
854
+ "namespace": "wunderland",
855
+ "verified": true,
856
+ "source": "curated",
857
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
858
+ "keywords": [
859
+ "git",
860
+ "version-control",
861
+ "vcs",
862
+ "branching",
863
+ "commits"
864
+ ],
865
+ "requiredTools": [
866
+ "filesystem"
867
+ ],
868
+ "metadata": {
869
+ "emoji": "🧰",
870
+ "requires": {
871
+ "bins": [
872
+ "git"
873
+ ]
874
+ },
875
+ "install": [
876
+ {
877
+ "id": "brew",
878
+ "kind": "brew",
879
+ "formula": "git",
880
+ "bins": [
881
+ "git"
882
+ ],
883
+ "label": "Install git (brew)"
884
+ },
885
+ {
886
+ "id": "apt",
887
+ "kind": "apt",
888
+ "package": "git",
889
+ "bins": [
890
+ "git"
891
+ ],
892
+ "os": [
893
+ "linux"
894
+ ],
895
+ "label": "Install git (apt)"
896
+ }
897
+ ]
898
+ }
899
+ },
900
+ {
901
+ "id": "com.framers.skill.github",
902
+ "name": "github",
903
+ "displayName": "github",
904
+ "version": "2.0.0",
905
+ "path": "registry/curated/github",
906
+ "description": "Full GitHub API integration — 26 tools for repos, issues, PRs, branches, commits, releases, Actions, files, gists, and codebase indexing.",
907
+ "category": "developer",
908
+ "namespace": "wunderland",
909
+ "verified": true,
910
+ "source": "curated",
911
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
912
+ "keywords": [
913
+ "github",
914
+ "git",
915
+ "repository",
916
+ "issues",
917
+ "pull-requests",
918
+ "code-review",
919
+ "ci-cd",
920
+ "releases",
921
+ "actions",
922
+ "api"
923
+ ],
924
+ "requiredSecrets": [
925
+ "github.token"
926
+ ],
927
+ "requiredTools": [
928
+ "github_search",
929
+ "github_repo_list",
930
+ "github_repo_info",
931
+ "github_repo_create",
932
+ "github_repo_index",
933
+ "github_file_read",
934
+ "github_file_write",
935
+ "github_gist_create",
936
+ "github_issue_list",
937
+ "github_issue_create",
938
+ "github_issue_update",
939
+ "github_comment_list",
940
+ "github_pr_list",
941
+ "github_pr_create",
942
+ "github_pr_diff",
943
+ "github_pr_review",
944
+ "github_pr_merge",
945
+ "github_pr_comment_list",
946
+ "github_pr_comment_create",
947
+ "github_branch_list",
948
+ "github_branch_create",
949
+ "github_commit_list",
950
+ "github_release_list",
951
+ "github_release_create",
952
+ "github_actions_list",
953
+ "github_actions_trigger"
954
+ ],
955
+ "metadata": {
956
+ "emoji": "💻"
957
+ }
958
+ },
959
+ {
960
+ "id": "com.framers.skill.google-cloud-stt",
961
+ "name": "google-cloud-stt",
962
+ "displayName": "google-cloud-stt",
963
+ "version": "1.0.0",
964
+ "path": "registry/curated/google-cloud-stt",
965
+ "description": "Batch speech-to-text via Google Cloud Speech-to-Text API — LINEAR16 PCM, configurable language, word-level confidence scores.",
966
+ "category": "voice",
967
+ "namespace": "wunderland",
968
+ "verified": true,
969
+ "source": "curated",
970
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
971
+ "keywords": [
972
+ "voice",
973
+ "stt",
974
+ "speech-to-text",
975
+ "google",
976
+ "cloud",
977
+ "batch"
978
+ ],
979
+ "requiredSecrets": [
980
+ "google.cloudSttCredentials"
981
+ ],
982
+ "metadata": {
983
+ "emoji": "🎤",
984
+ "primaryEnv": "GOOGLE_CLOUD_STT_CREDENTIALS",
985
+ "homepage": "https://cloud.google.com/speech-to-text/docs"
986
+ }
987
+ },
988
+ {
989
+ "id": "com.framers.skill.google-cloud-tts",
990
+ "name": "google-cloud-tts",
991
+ "displayName": "google-cloud-tts",
992
+ "version": "1.0.0",
993
+ "path": "registry/curated/google-cloud-tts",
994
+ "description": "Text-to-speech synthesis via Google Cloud Text-to-Speech API — MP3 output, configurable language and voice, voice listing.",
995
+ "category": "voice",
996
+ "namespace": "wunderland",
997
+ "verified": true,
998
+ "source": "curated",
999
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1000
+ "keywords": [
1001
+ "voice",
1002
+ "tts",
1003
+ "text-to-speech",
1004
+ "google",
1005
+ "cloud",
1006
+ "neural"
1007
+ ],
1008
+ "requiredSecrets": [
1009
+ "google.cloudTtsCredentials"
1010
+ ],
1011
+ "metadata": {
1012
+ "emoji": "🔊",
1013
+ "primaryEnv": "GOOGLE_CLOUD_TTS_CREDENTIALS",
1014
+ "homepage": "https://cloud.google.com/text-to-speech/docs"
1015
+ }
1016
+ },
1017
+ {
1018
+ "id": "com.framers.skill.grounding-guard",
1019
+ "name": "grounding-guard",
1020
+ "displayName": "grounding-guard",
1021
+ "version": "1.0.0",
1022
+ "path": "registry/curated/grounding-guard",
1023
+ "description": "Verify response faithfulness against RAG source documents using NLI entailment and LLM-as-judge",
1024
+ "category": "security",
1025
+ "namespace": "wunderland",
1026
+ "verified": true,
1027
+ "source": "curated",
1028
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1029
+ "keywords": [
1030
+ "guardrails",
1031
+ "hallucination",
1032
+ "grounding",
1033
+ "faithfulness",
1034
+ "nli",
1035
+ "rag",
1036
+ "fact-checking"
1037
+ ],
1038
+ "requiredTools": [
1039
+ "check_grounding"
1040
+ ],
1041
+ "metadata": {
1042
+ "emoji": "🔍"
1043
+ }
1044
+ },
1045
+ {
1046
+ "id": "com.framers.skill.healthcheck",
1047
+ "name": "healthcheck",
1048
+ "displayName": "healthcheck",
1049
+ "version": "1.0.0",
1050
+ "path": "registry/curated/healthcheck",
1051
+ "description": "Monitor health and availability of systems, services, APIs, and infrastructure endpoints.",
1052
+ "category": "devops",
1053
+ "namespace": "wunderland",
1054
+ "verified": true,
1055
+ "source": "curated",
1056
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1057
+ "keywords": [
1058
+ "monitoring",
1059
+ "health",
1060
+ "uptime",
1061
+ "infrastructure",
1062
+ "diagnostics",
1063
+ "status"
1064
+ ],
1065
+ "requiredTools": [
1066
+ "web-search"
1067
+ ],
1068
+ "metadata": {
1069
+ "emoji": "🏥",
1070
+ "requires": {
1071
+ "anyBins": [
1072
+ "curl",
1073
+ "wget"
1074
+ ]
1075
+ }
1076
+ }
1077
+ },
1078
+ {
1079
+ "id": "com.framers.skill.image-editing",
1080
+ "name": "image-editing",
1081
+ "displayName": "image-editing",
1082
+ "version": "1.0.0",
1083
+ "path": "registry/curated/image-editing",
1084
+ "description": "Edit, transform, and enhance images using AI models",
1085
+ "category": "uncategorized",
1086
+ "namespace": "wunderland",
1087
+ "verified": true,
1088
+ "source": "curated",
1089
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1090
+ "keywords": [
1091
+ "image",
1092
+ "editing",
1093
+ "img2img",
1094
+ "inpainting",
1095
+ "upscaling",
1096
+ "variation"
1097
+ ]
1098
+ },
1099
+ {
1100
+ "id": "com.framers.skill.image-gen",
1101
+ "name": "image-gen",
1102
+ "displayName": "image-gen",
1103
+ "version": "2.0.0",
1104
+ "path": "registry/curated/image-gen",
1105
+ "description": "Generate, edit, upscale, and variate images using the AgentOS multi-provider image pipeline with automatic fallback.",
1106
+ "category": "creative",
1107
+ "namespace": "wunderland",
1108
+ "verified": true,
1109
+ "source": "curated",
1110
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1111
+ "keywords": [
1112
+ "image-generation",
1113
+ "ai-art",
1114
+ "dall-e",
1115
+ "stable-diffusion",
1116
+ "flux",
1117
+ "replicate",
1118
+ "stability",
1119
+ "fal",
1120
+ "creative",
1121
+ "visual"
1122
+ ],
1123
+ "requiredTools": [
1124
+ "generate_image"
1125
+ ],
1126
+ "metadata": {
1127
+ "emoji": "🎨",
1128
+ "primaryEnv": "OPENAI_API_KEY",
1129
+ "homepage": "https://platform.openai.com/docs/guides/images"
1130
+ }
1131
+ },
1132
+ {
1133
+ "id": "com.framers.skill.interactive-widgets",
1134
+ "name": "interactive-widgets",
1135
+ "displayName": "Interactive Widgets",
1136
+ "version": "1.0.0",
1137
+ "path": "registry/curated/interactive-widgets",
1138
+ "description": "Generate interactive HTML/CSS/JS widgets — data visualizations, 3D scenes, dashboards, maps, and more.",
1139
+ "category": "productivity",
1140
+ "namespace": "wunderland",
1141
+ "verified": true,
1142
+ "source": "curated",
1143
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1144
+ "keywords": [
1145
+ "widget",
1146
+ "interactive",
1147
+ "html",
1148
+ "visualization",
1149
+ "d3",
1150
+ "threejs",
1151
+ "charts",
1152
+ "maps",
1153
+ "dashboard"
1154
+ ],
1155
+ "requiredTools": [
1156
+ "generate_widget"
1157
+ ],
1158
+ "metadata": {
1159
+ "emoji": "\u2728",
1160
+ "homepage": "https://wunderland.sh"
1161
+ }
1162
+ },
1163
+ {
1164
+ "id": "com.framers.skill.instagram-bot",
1165
+ "name": "instagram-bot",
1166
+ "displayName": "instagram-bot",
1167
+ "version": "1.0.0",
1168
+ "path": "registry/curated/instagram-bot",
1169
+ "description": "Instagram growth automation — post scheduling, story creation, hashtag strategy, Reel uploads, and engagement analytics.",
1170
+ "category": "social-automation",
1171
+ "namespace": "wunderland",
1172
+ "verified": true,
1173
+ "source": "curated",
1174
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1175
+ "keywords": [
1176
+ "instagram",
1177
+ "social-media",
1178
+ "growth",
1179
+ "reels",
1180
+ "stories",
1181
+ "hashtags",
1182
+ "automation"
1183
+ ],
1184
+ "requiredSecrets": [
1185
+ "instagram.accessToken"
1186
+ ],
1187
+ "requiredTools": [
1188
+ "instagramPost",
1189
+ "instagramReel",
1190
+ "instagramStory",
1191
+ "instagramComment",
1192
+ "instagramHashtags",
1193
+ "instagramExplore",
1194
+ "instagramAnalytics"
1195
+ ],
1196
+ "metadata": {
1197
+ "emoji": "📸",
1198
+ "primaryEnv": "INSTAGRAM_ACCESS_TOKEN"
1199
+ }
1200
+ },
1201
+ {
1202
+ "id": "com.framers.skill.linkedin-bot",
1203
+ "name": "linkedin-bot",
1204
+ "displayName": "linkedin-bot",
1205
+ "version": "1.0.0",
1206
+ "path": "registry/curated/linkedin-bot",
1207
+ "description": "LinkedIn automation — professional networking, thought leadership posts, company page management, and engagement.",
1208
+ "category": "social-automation",
1209
+ "namespace": "wunderland",
1210
+ "verified": true,
1211
+ "source": "curated",
1212
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1213
+ "keywords": [
1214
+ "linkedin",
1215
+ "social-media",
1216
+ "professional",
1217
+ "networking",
1218
+ "thought-leadership",
1219
+ "automation"
1220
+ ],
1221
+ "requiredSecrets": [
1222
+ "linkedin.accessToken"
1223
+ ],
1224
+ "requiredTools": [
1225
+ "linkedinPost",
1226
+ "linkedinComment",
1227
+ "linkedinLike",
1228
+ "linkedinShare",
1229
+ "linkedinSearch",
1230
+ "linkedinAnalytics",
1231
+ "linkedinSchedule",
1232
+ "linkedinOrgPost"
1233
+ ],
1234
+ "metadata": {
1235
+ "emoji": "💼",
1236
+ "primaryEnv": "LINKEDIN_ACCESS_TOKEN"
1237
+ }
1238
+ },
1239
+ {
1240
+ "id": "com.framers.skill.mastodon-bot",
1241
+ "name": "mastodon-bot",
1242
+ "displayName": "mastodon-bot",
1243
+ "version": "1.0.0",
1244
+ "path": "registry/curated/mastodon-bot",
1245
+ "description": "Mastodon automation — fediverse engagement, content-warned posts, instance-aware community participation, and boost-driven amplification.",
1246
+ "category": "social-automation",
1247
+ "namespace": "wunderland",
1248
+ "verified": true,
1249
+ "source": "curated",
1250
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1251
+ "keywords": [
1252
+ "mastodon",
1253
+ "fediverse",
1254
+ "social-media",
1255
+ "decentralized",
1256
+ "activitypub",
1257
+ "community",
1258
+ "automation"
1259
+ ],
1260
+ "requiredSecrets": [
1261
+ "mastodon.accessToken",
1262
+ "mastodon.instanceUrl"
1263
+ ],
1264
+ "requiredTools": [
1265
+ "mastodonPost",
1266
+ "mastodonReply",
1267
+ "mastodonBoost",
1268
+ "mastodonFavourite",
1269
+ "mastodonSearch",
1270
+ "mastodonTrending",
1271
+ "mastodonFollow",
1272
+ "mastodonAnalytics"
1273
+ ],
1274
+ "metadata": {
1275
+ "emoji": "🐘",
1276
+ "primaryEnv": "MASTODON_ACCESS_TOKEN"
1277
+ }
1278
+ },
1279
+ {
1280
+ "id": "com.framers.skill.memory-manager",
1281
+ "name": "memory-manager",
1282
+ "displayName": "memory-manager",
1283
+ "version": "1.0.0",
1284
+ "path": "registry/curated/memory-manager",
1285
+ "description": "Cognitive memory management — encode, recall, forget, set reminders, and maintain long-term knowledge using personality-modulated memory.",
1286
+ "category": "productivity",
1287
+ "namespace": "wunderland",
1288
+ "verified": true,
1289
+ "source": "curated",
1290
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1291
+ "keywords": [
1292
+ "memory",
1293
+ "cognitive",
1294
+ "recall",
1295
+ "reminders",
1296
+ "knowledge-management",
1297
+ "personality"
1298
+ ],
1299
+ "metadata": {
1300
+ "emoji": "🧠"
1301
+ }
1302
+ },
1303
+ {
1304
+ "id": "com.framers.skill.ml-content-classifier",
1305
+ "name": "ml-content-classifier",
1306
+ "displayName": "ml-content-classifier",
1307
+ "version": "1.0.0",
1308
+ "path": "registry/curated/ml-content-classifier",
1309
+ "description": "Real-time content safety classification using ML models (toxicity, prompt injection, jailbreak detection)",
1310
+ "category": "security",
1311
+ "namespace": "wunderland",
1312
+ "verified": true,
1313
+ "source": "curated",
1314
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1315
+ "keywords": [
1316
+ "guardrails",
1317
+ "safety",
1318
+ "toxicity",
1319
+ "injection",
1320
+ "jailbreak",
1321
+ "classifier",
1322
+ "ml",
1323
+ "bert",
1324
+ "onnx"
1325
+ ],
1326
+ "requiredTools": [
1327
+ "classify_content"
1328
+ ],
1329
+ "metadata": {
1330
+ "emoji": "🛡"
1331
+ }
1332
+ },
1333
+ {
1334
+ "id": "com.framers.skill.movie-lookup",
1335
+ "name": "movie-lookup",
1336
+ "displayName": "movie-lookup",
1337
+ "version": "1.0.0",
1338
+ "path": "registry/curated/movie-lookup",
1339
+ "description": "Research movies and TV shows using OMDB (IMDB/RT/Metacritic scores) and Letterboxd (community ratings and reviews).",
1340
+ "category": "entertainment",
1341
+ "namespace": "wunderland",
1342
+ "verified": true,
1343
+ "source": "curated",
1344
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1345
+ "keywords": [
1346
+ "movies",
1347
+ "tv",
1348
+ "imdb",
1349
+ "letterboxd",
1350
+ "rotten-tomatoes",
1351
+ "metacritic",
1352
+ "reviews"
1353
+ ],
1354
+ "requiredSecrets": [
1355
+ "omdb.apiKey"
1356
+ ],
1357
+ "requiredTools": [
1358
+ "omdb_search",
1359
+ "omdb_details",
1360
+ "letterboxd_movie"
1361
+ ],
1362
+ "metadata": {
1363
+ "emoji": "🎬",
1364
+ "homepage": "https://www.omdbapi.com"
1365
+ }
1366
+ },
1367
+ {
1368
+ "id": "com.framers.skill.multimodal-rag",
1369
+ "name": "multimodal-rag",
1370
+ "displayName": "multimodal-rag",
1371
+ "version": "2.0.0",
1372
+ "path": "registry/curated/multimodal-rag",
1373
+ "description": "Index and search across text, images, audio, video, and PDFs via the multimodal RAG pipeline and HTTP API.",
1374
+ "category": "productivity",
1375
+ "namespace": "wunderland",
1376
+ "verified": true,
1377
+ "source": "curated",
1378
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1379
+ "keywords": [
1380
+ "rag",
1381
+ "multimodal",
1382
+ "image",
1383
+ "audio",
1384
+ "video",
1385
+ "pdf",
1386
+ "search",
1387
+ "indexing",
1388
+ "memory"
1389
+ ],
1390
+ "requiredTools": [
1391
+ "vision-pipeline"
1392
+ ],
1393
+ "metadata": {
1394
+ "emoji": "🔍"
1395
+ }
1396
+ },
1397
+ {
1398
+ "id": "com.framers.skill.notion",
1399
+ "name": "notion",
1400
+ "displayName": "notion",
1401
+ "version": "1.0.0",
1402
+ "path": "registry/curated/notion",
1403
+ "description": "Read, create, and manage pages, databases, and content blocks in Notion workspaces.",
1404
+ "category": "productivity",
1405
+ "namespace": "wunderland",
1406
+ "verified": true,
1407
+ "source": "curated",
1408
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1409
+ "keywords": [
1410
+ "notion",
1411
+ "wiki",
1412
+ "database",
1413
+ "notes",
1414
+ "project-management",
1415
+ "knowledge-base"
1416
+ ],
1417
+ "requiredSecrets": [
1418
+ "notion.api_key"
1419
+ ],
1420
+ "metadata": {
1421
+ "emoji": "📓",
1422
+ "primaryEnv": "NOTION_API_KEY",
1423
+ "homepage": "https://developers.notion.com"
1424
+ }
1425
+ },
1426
+ {
1427
+ "id": "com.framers.skill.obsidian",
1428
+ "name": "obsidian",
1429
+ "displayName": "obsidian",
1430
+ "version": "1.0.0",
1431
+ "path": "registry/curated/obsidian",
1432
+ "description": "Read, create, and manage notes, links, and metadata in Obsidian vaults via the local filesystem.",
1433
+ "category": "productivity",
1434
+ "namespace": "wunderland",
1435
+ "verified": true,
1436
+ "source": "curated",
1437
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1438
+ "keywords": [
1439
+ "obsidian",
1440
+ "markdown",
1441
+ "notes",
1442
+ "knowledge-graph",
1443
+ "zettelkasten",
1444
+ "pkm"
1445
+ ],
1446
+ "requiredTools": [
1447
+ "filesystem"
1448
+ ],
1449
+ "metadata": {
1450
+ "emoji": "💎",
1451
+ "homepage": "https://obsidian.md"
1452
+ }
1453
+ },
1454
+ {
1455
+ "id": "com.framers.skill.openwakeword",
1456
+ "name": "openwakeword",
1457
+ "displayName": "openwakeword",
1458
+ "version": "1.0.0",
1459
+ "path": "registry/curated/openwakeword",
1460
+ "description": "Offline wake-word detection via OpenWakeWord ONNX models using onnxruntime-node — fully open-source, configurable threshold, any ONNX-compatible model supported.",
1461
+ "category": "voice",
1462
+ "namespace": "wunderland",
1463
+ "verified": true,
1464
+ "source": "curated",
1465
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1466
+ "keywords": [
1467
+ "voice",
1468
+ "wake-word",
1469
+ "hotword",
1470
+ "openwakeword",
1471
+ "onnx",
1472
+ "offline",
1473
+ "open-source",
1474
+ "privacy"
1475
+ ],
1476
+ "metadata": {
1477
+ "emoji": "🚨",
1478
+ "primaryEnv": "OPENWAKEWORD_MODEL_PATH",
1479
+ "homepage": "https://github.com/dscripka/openWakeWord"
1480
+ }
1481
+ },
1482
+ {
1483
+ "id": "com.framers.skill.pii-redaction",
1484
+ "name": "pii-redaction",
1485
+ "displayName": "pii-redaction",
1486
+ "version": "1.0.0",
1487
+ "path": "registry/curated/pii-redaction",
1488
+ "description": "Detect and redact personally identifiable information (PII) from text using a four-tier pipeline (regex + NLP + NER + LLM-as-judge)",
1489
+ "category": "security",
1490
+ "namespace": "wunderland",
1491
+ "verified": true,
1492
+ "source": "curated",
1493
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1494
+ "keywords": [
1495
+ "pii",
1496
+ "privacy",
1497
+ "redaction",
1498
+ "gdpr",
1499
+ "hipaa",
1500
+ "compliance",
1501
+ "security",
1502
+ "ner"
1503
+ ],
1504
+ "requiredTools": [
1505
+ "pii_scan",
1506
+ "pii_redact"
1507
+ ],
1508
+ "metadata": {
1509
+ "emoji": "🛡",
1510
+ "primaryEnv": "PII_LLM_API_KEY"
1511
+ }
1512
+ },
1513
+ {
1514
+ "id": "com.framers.skill.pinterest-bot",
1515
+ "name": "pinterest-bot",
1516
+ "displayName": "pinterest-bot",
1517
+ "version": "1.0.0",
1518
+ "path": "registry/curated/pinterest-bot",
1519
+ "description": "Pinterest automation — pin creation, board management, trending content discovery, scheduling, and analytics.",
1520
+ "category": "social-automation",
1521
+ "namespace": "wunderland",
1522
+ "verified": true,
1523
+ "source": "curated",
1524
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1525
+ "keywords": [
1526
+ "pinterest",
1527
+ "social-media",
1528
+ "pins",
1529
+ "boards",
1530
+ "visual-content",
1531
+ "scheduling",
1532
+ "automation"
1533
+ ],
1534
+ "requiredSecrets": [
1535
+ "pinterest.accessToken"
1536
+ ],
1537
+ "requiredTools": [
1538
+ "pinterestPin",
1539
+ "pinterestBoard",
1540
+ "pinterestSearch",
1541
+ "pinterestTrending",
1542
+ "pinterestAnalytics",
1543
+ "pinterestSchedule"
1544
+ ],
1545
+ "metadata": {
1546
+ "emoji": "📌",
1547
+ "primaryEnv": "PINTEREST_ACCESS_TOKEN"
1548
+ }
1549
+ },
1550
+ {
1551
+ "id": "com.framers.skill.piper",
1552
+ "name": "piper",
1553
+ "displayName": "piper",
1554
+ "version": "1.0.0",
1555
+ "path": "registry/curated/piper",
1556
+ "description": "Fully offline text-to-speech by spawning the Piper binary — ONNX model, WAV output, zero npm dependencies, no network required.",
1557
+ "category": "voice",
1558
+ "namespace": "wunderland",
1559
+ "verified": true,
1560
+ "source": "curated",
1561
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1562
+ "keywords": [
1563
+ "voice",
1564
+ "tts",
1565
+ "text-to-speech",
1566
+ "piper",
1567
+ "offline",
1568
+ "local",
1569
+ "privacy",
1570
+ "onnx"
1571
+ ],
1572
+ "metadata": {
1573
+ "emoji": "🔊",
1574
+ "homepage": "https://github.com/rhasspy/piper"
1575
+ }
1576
+ },
1577
+ {
1578
+ "id": "com.framers.skill.porcupine",
1579
+ "name": "porcupine",
1580
+ "displayName": "porcupine",
1581
+ "version": "1.0.0",
1582
+ "path": "registry/curated/porcupine",
1583
+ "description": "On-device wake-word detection via Picovoice Porcupine — privacy-preserving, configurable built-in keywords, per-keyword sensitivity tuning.",
1584
+ "category": "voice",
1585
+ "namespace": "wunderland",
1586
+ "verified": true,
1587
+ "source": "curated",
1588
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1589
+ "keywords": [
1590
+ "voice",
1591
+ "wake-word",
1592
+ "hotword",
1593
+ "porcupine",
1594
+ "picovoice",
1595
+ "offline",
1596
+ "privacy",
1597
+ "hands-free"
1598
+ ],
1599
+ "requiredSecrets": [
1600
+ "picovoice.accessKey"
1601
+ ],
1602
+ "metadata": {
1603
+ "emoji": "🚨",
1604
+ "primaryEnv": "PORCUPINE_ACCESS_KEY",
1605
+ "homepage": "https://picovoice.ai/platform/porcupine/"
1606
+ }
1607
+ },
1608
+ {
1609
+ "id": "com.framers.skill.reddit-bot",
1610
+ "name": "reddit-bot",
1611
+ "displayName": "reddit-bot",
1612
+ "version": "1.0.0",
1613
+ "path": "registry/curated/reddit-bot",
1614
+ "description": "Reddit community engagement — post to relevant subreddits, comment with expertise, vote, and build karma organically.",
1615
+ "category": "social-automation",
1616
+ "namespace": "wunderland",
1617
+ "verified": true,
1618
+ "source": "curated",
1619
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1620
+ "keywords": [
1621
+ "reddit",
1622
+ "social-media",
1623
+ "community",
1624
+ "comments",
1625
+ "karma",
1626
+ "subreddits",
1627
+ "automation"
1628
+ ],
1629
+ "requiredSecrets": [
1630
+ "reddit.clientId",
1631
+ "reddit.clientSecret",
1632
+ "reddit.username",
1633
+ "reddit.password"
1634
+ ],
1635
+ "requiredTools": [
1636
+ "redditSubmitPost",
1637
+ "redditComment",
1638
+ "redditVote",
1639
+ "redditSearch",
1640
+ "redditTrending",
1641
+ "redditSubscribe",
1642
+ "redditAnalytics"
1643
+ ],
1644
+ "metadata": {
1645
+ "emoji": "🤖",
1646
+ "primaryEnv": "REDDIT_CLIENT_ID"
1647
+ }
1648
+ },
1649
+ {
1650
+ "id": "com.framers.skill.seo-campaign",
1651
+ "name": "seo-campaign",
1652
+ "displayName": "seo-campaign",
1653
+ "version": "1.0.0",
1654
+ "path": "registry/curated/seo-campaign",
1655
+ "description": "SEO link building and optimization — directory submissions, content optimization, keyword research, and backlink tracking via browser automation.",
1656
+ "category": "marketing",
1657
+ "namespace": "wunderland",
1658
+ "verified": true,
1659
+ "source": "curated",
1660
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1661
+ "keywords": [
1662
+ "seo",
1663
+ "link-building",
1664
+ "directories",
1665
+ "keywords",
1666
+ "backlinks",
1667
+ "marketing",
1668
+ "automation"
1669
+ ],
1670
+ "requiredTools": [
1671
+ "browserNavigate",
1672
+ "browserClick",
1673
+ "browserFill",
1674
+ "browserScreenshot",
1675
+ "browserSnapshot",
1676
+ "browserWait",
1677
+ "researchAggregate",
1678
+ "researchTrending"
1679
+ ],
1680
+ "metadata": {
1681
+ "emoji": "📈"
1682
+ }
1683
+ },
1684
+ {
1685
+ "id": "com.framers.skill.site-deploy",
1686
+ "name": "site-deploy",
1687
+ "displayName": "site-deploy",
1688
+ "version": "1.0.0",
1689
+ "path": "registry/curated/site-deploy",
1690
+ "description": "Deploy websites and applications to cloud providers with automatic domain registration and DNS configuration.",
1691
+ "category": "infrastructure",
1692
+ "namespace": "wunderland",
1693
+ "verified": true,
1694
+ "source": "curated",
1695
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1696
+ "keywords": [
1697
+ "deploy",
1698
+ "cloud",
1699
+ "hosting",
1700
+ "domain",
1701
+ "dns",
1702
+ "devops",
1703
+ "vercel",
1704
+ "cloudflare",
1705
+ "aws",
1706
+ "digitalocean",
1707
+ "netlify",
1708
+ "heroku",
1709
+ "railway",
1710
+ "flyio"
1711
+ ],
1712
+ "requiredTools": [
1713
+ "siteDeployOrchestrate"
1714
+ ],
1715
+ "metadata": {
1716
+ "emoji": "🚀",
1717
+ "homepage": "https://wunderland.sh/docs/skills/site-deploy"
1718
+ }
1719
+ },
1720
+ {
1721
+ "id": "com.framers.skill.slack-helper",
1722
+ "name": "slack-helper",
1723
+ "displayName": "slack-helper",
1724
+ "version": "1.0.0",
1725
+ "path": "registry/curated/slack-helper",
1726
+ "description": "Manage Slack workspaces, channels, messages, and integrations through the Slack API.",
1727
+ "category": "communication",
1728
+ "namespace": "wunderland",
1729
+ "verified": true,
1730
+ "source": "curated",
1731
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1732
+ "keywords": [
1733
+ "slack",
1734
+ "messaging",
1735
+ "workspace",
1736
+ "notifications",
1737
+ "team-chat"
1738
+ ],
1739
+ "requiredSecrets": [
1740
+ "slack.bot_token",
1741
+ "slack.app_token"
1742
+ ],
1743
+ "metadata": {
1744
+ "emoji": "💬",
1745
+ "primaryEnv": "SLACK_BOT_TOKEN",
1746
+ "secondaryEnvs": [
1747
+ "SLACK_APP_TOKEN"
1748
+ ],
1749
+ "homepage": "https://api.slack.com"
1750
+ }
1751
+ },
1752
+ {
1753
+ "id": "com.framers.skill.social-broadcast",
1754
+ "name": "social-broadcast",
1755
+ "displayName": "Social Broadcast",
1756
+ "version": "1.0.0",
1757
+ "path": "registry/curated/social-broadcast",
1758
+ "description": "",
1759
+ "category": "uncategorized",
1760
+ "namespace": "wunderland",
1761
+ "verified": true,
1762
+ "source": "curated",
1763
+ "verifiedAt": "2026-03-28T13:31:49.809Z"
1764
+ },
1765
+ {
1766
+ "id": "com.framers.skill.spotify-player",
1767
+ "name": "spotify-player",
1768
+ "displayName": "spotify-player",
1769
+ "version": "1.0.0",
1770
+ "path": "registry/curated/spotify-player",
1771
+ "description": "Control Spotify playback, manage playlists, search music, and get recommendations via the Spotify API.",
1772
+ "category": "media",
1773
+ "namespace": "wunderland",
1774
+ "verified": true,
1775
+ "source": "curated",
1776
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1777
+ "keywords": [
1778
+ "spotify",
1779
+ "music",
1780
+ "playback",
1781
+ "playlists",
1782
+ "streaming",
1783
+ "audio"
1784
+ ],
1785
+ "requiredSecrets": [
1786
+ "spotify.client_id",
1787
+ "spotify.client_secret",
1788
+ "spotify.refresh_token"
1789
+ ],
1790
+ "metadata": {
1791
+ "emoji": "🎵",
1792
+ "primaryEnv": "SPOTIFY_CLIENT_ID",
1793
+ "secondaryEnvs": [
1794
+ "SPOTIFY_CLIENT_SECRET",
1795
+ "SPOTIFY_REFRESH_TOKEN"
1796
+ ],
1797
+ "homepage": "https://developer.spotify.com"
1798
+ }
1799
+ },
1800
+ {
1801
+ "id": "com.framers.skill.streaming-stt-deepgram",
1802
+ "name": "streaming-stt-deepgram",
1803
+ "displayName": "streaming-stt-deepgram",
1804
+ "version": "1.0.0",
1805
+ "path": "registry/curated/streaming-stt-deepgram",
1806
+ "description": "Real-time streaming speech-to-text via Deepgram WebSocket API — sub-300 ms latency, Nova-2 model, speaker diarization, auto-reconnect.",
1807
+ "category": "voice",
1808
+ "namespace": "wunderland",
1809
+ "verified": true,
1810
+ "source": "curated",
1811
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1812
+ "keywords": [
1813
+ "voice",
1814
+ "stt",
1815
+ "speech-to-text",
1816
+ "deepgram",
1817
+ "streaming",
1818
+ "real-time",
1819
+ "diarization"
1820
+ ],
1821
+ "requiredSecrets": [
1822
+ "deepgram.apiKey"
1823
+ ],
1824
+ "metadata": {
1825
+ "emoji": "🎤",
1826
+ "primaryEnv": "DEEPGRAM_API_KEY",
1827
+ "homepage": "https://developers.deepgram.com/docs/getting-started-with-live-streaming-audio"
1828
+ }
1829
+ },
1830
+ {
1831
+ "id": "com.framers.skill.streaming-stt-whisper",
1832
+ "name": "streaming-stt-whisper",
1833
+ "displayName": "streaming-stt-whisper",
1834
+ "version": "1.0.0",
1835
+ "path": "registry/curated/streaming-stt-whisper",
1836
+ "description": "Chunked sliding-window streaming speech-to-text via OpenAI Whisper HTTP API — compatible with local Faster-Whisper, Groq, and OpenRouter endpoints.",
1837
+ "category": "voice",
1838
+ "namespace": "wunderland",
1839
+ "verified": true,
1840
+ "source": "curated",
1841
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1842
+ "keywords": [
1843
+ "voice",
1844
+ "stt",
1845
+ "speech-to-text",
1846
+ "whisper",
1847
+ "openai",
1848
+ "streaming",
1849
+ "local",
1850
+ "offline-compatible"
1851
+ ],
1852
+ "requiredSecrets": [
1853
+ "openai.apiKey"
1854
+ ],
1855
+ "metadata": {
1856
+ "emoji": "🎙️",
1857
+ "primaryEnv": "OPENAI_API_KEY",
1858
+ "homepage": "https://platform.openai.com/docs/guides/speech-to-text"
1859
+ }
1860
+ },
1861
+ {
1862
+ "id": "com.framers.skill.streaming-tts-elevenlabs",
1863
+ "name": "streaming-tts-elevenlabs",
1864
+ "displayName": "streaming-tts-elevenlabs",
1865
+ "version": "1.0.0",
1866
+ "path": "registry/curated/streaming-tts-elevenlabs",
1867
+ "description": "Real-time streaming text-to-speech via ElevenLabs WebSocket API — persistent connection, sentence-boundary flushing, turbo and multilingual models.",
1868
+ "category": "voice",
1869
+ "namespace": "wunderland",
1870
+ "verified": true,
1871
+ "source": "curated",
1872
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1873
+ "keywords": [
1874
+ "voice",
1875
+ "tts",
1876
+ "text-to-speech",
1877
+ "elevenlabs",
1878
+ "streaming",
1879
+ "websocket",
1880
+ "high-quality"
1881
+ ],
1882
+ "requiredSecrets": [
1883
+ "elevenlabs.apiKey"
1884
+ ],
1885
+ "metadata": {
1886
+ "emoji": "🔊",
1887
+ "primaryEnv": "ELEVENLABS_API_KEY",
1888
+ "homepage": "https://elevenlabs.io/docs/api-reference/text-to-speech"
1889
+ }
1890
+ },
1891
+ {
1892
+ "id": "com.framers.skill.streaming-tts-openai",
1893
+ "name": "streaming-tts-openai",
1894
+ "displayName": "streaming-tts-openai",
1895
+ "version": "1.0.0",
1896
+ "path": "registry/curated/streaming-tts-openai",
1897
+ "description": "Low-latency streaming text-to-speech via OpenAI TTS API — adaptive sentence chunking, concurrent fetch pipelining, six voices.",
1898
+ "category": "voice",
1899
+ "namespace": "wunderland",
1900
+ "verified": true,
1901
+ "source": "curated",
1902
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1903
+ "keywords": [
1904
+ "voice",
1905
+ "tts",
1906
+ "text-to-speech",
1907
+ "openai",
1908
+ "streaming",
1909
+ "low-latency"
1910
+ ],
1911
+ "requiredSecrets": [
1912
+ "openai.apiKey"
1913
+ ],
1914
+ "metadata": {
1915
+ "emoji": "🔊",
1916
+ "primaryEnv": "OPENAI_API_KEY",
1917
+ "homepage": "https://platform.openai.com/docs/guides/text-to-speech"
1918
+ }
1919
+ },
1920
+ {
1921
+ "id": "com.framers.skill.structured-output",
1922
+ "name": "structured-output",
1923
+ "displayName": "structured-output",
1924
+ "version": "1.0.0",
1925
+ "path": "registry/curated/structured-output",
1926
+ "description": "Extract structured JSON data from text using Zod schemas",
1927
+ "category": "uncategorized",
1928
+ "namespace": "wunderland",
1929
+ "verified": true,
1930
+ "source": "curated",
1931
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1932
+ "keywords": [
1933
+ "structured-output",
1934
+ "json",
1935
+ "extraction",
1936
+ "schema",
1937
+ "zod"
1938
+ ]
1939
+ },
1940
+ {
1941
+ "id": "com.framers.skill.summarize",
1942
+ "name": "summarize",
1943
+ "displayName": "summarize",
1944
+ "version": "1.0.0",
1945
+ "path": "registry/curated/summarize",
1946
+ "description": "Summarize text content, web pages, documents, and long-form articles into concise, structured summaries.",
1947
+ "category": "information",
1948
+ "namespace": "wunderland",
1949
+ "verified": true,
1950
+ "source": "curated",
1951
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1952
+ "keywords": [
1953
+ "summarization",
1954
+ "text-processing",
1955
+ "tldr",
1956
+ "reading",
1957
+ "content-analysis"
1958
+ ],
1959
+ "requiredTools": [
1960
+ "web-search"
1961
+ ],
1962
+ "metadata": {
1963
+ "emoji": "📝"
1964
+ }
1965
+ },
1966
+ {
1967
+ "id": "com.framers.skill.threads-bot",
1968
+ "name": "threads-bot",
1969
+ "displayName": "threads-bot",
1970
+ "version": "1.0.0",
1971
+ "path": "registry/curated/threads-bot",
1972
+ "description": "Threads automation — conversational engagement, text-first content, real-time discussions, and community building.",
1973
+ "category": "social-automation",
1974
+ "namespace": "wunderland",
1975
+ "verified": true,
1976
+ "source": "curated",
1977
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
1978
+ "keywords": [
1979
+ "threads",
1980
+ "social-media",
1981
+ "conversational",
1982
+ "text-first",
1983
+ "engagement",
1984
+ "automation"
1985
+ ],
1986
+ "requiredSecrets": [
1987
+ "threads.accessToken"
1988
+ ],
1989
+ "requiredTools": [
1990
+ "threadsPost",
1991
+ "threadsReply",
1992
+ "threadsLike",
1993
+ "threadsSearch",
1994
+ "threadsAnalytics",
1995
+ "threadsQuote"
1996
+ ],
1997
+ "metadata": {
1998
+ "emoji": "🧵",
1999
+ "primaryEnv": "THREADS_ACCESS_TOKEN"
2000
+ }
2001
+ },
2002
+ {
2003
+ "id": "com.framers.skill.tiktok-bot",
2004
+ "name": "tiktok-bot",
2005
+ "displayName": "tiktok-bot",
2006
+ "version": "1.0.0",
2007
+ "path": "registry/curated/tiktok-bot",
2008
+ "description": "TikTok automation — short-form video publishing, trending sound discovery, hashtag challenges, and community engagement.",
2009
+ "category": "social-automation",
2010
+ "namespace": "wunderland",
2011
+ "verified": true,
2012
+ "source": "curated",
2013
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2014
+ "keywords": [
2015
+ "tiktok",
2016
+ "video",
2017
+ "short-form",
2018
+ "social-media",
2019
+ "trending",
2020
+ "hashtag-challenges",
2021
+ "automation"
2022
+ ],
2023
+ "requiredSecrets": [
2024
+ "tiktok.accessToken"
2025
+ ],
2026
+ "requiredTools": [
2027
+ "tiktokUpload",
2028
+ "tiktokDiscover",
2029
+ "tiktokEngage",
2030
+ "tiktokSearch",
2031
+ "tiktokTrending",
2032
+ "tiktokAnalytics"
2033
+ ],
2034
+ "metadata": {
2035
+ "emoji": "🎵",
2036
+ "primaryEnv": "TIKTOK_ACCESS_TOKEN"
2037
+ }
2038
+ },
2039
+ {
2040
+ "id": "com.framers.skill.topicality",
2041
+ "name": "topicality",
2042
+ "displayName": "topicality",
2043
+ "version": "1.0.0",
2044
+ "path": "registry/curated/topicality",
2045
+ "description": "Enforce allowed and forbidden conversation topics using semantic embedding similarity with session-aware drift detection",
2046
+ "category": "security",
2047
+ "namespace": "wunderland",
2048
+ "verified": true,
2049
+ "source": "curated",
2050
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2051
+ "keywords": [
2052
+ "guardrails",
2053
+ "topics",
2054
+ "topicality",
2055
+ "off-topic",
2056
+ "embeddings",
2057
+ "drift-detection"
2058
+ ],
2059
+ "requiredTools": [
2060
+ "check_topic"
2061
+ ],
2062
+ "metadata": {
2063
+ "emoji": "🎯"
2064
+ }
2065
+ },
2066
+ {
2067
+ "id": "com.framers.skill.trello",
2068
+ "name": "trello",
2069
+ "displayName": "trello",
2070
+ "version": "1.0.0",
2071
+ "path": "registry/curated/trello",
2072
+ "description": "Manage Trello boards, lists, cards, checklists, and team workflows via the Trello API.",
2073
+ "category": "productivity",
2074
+ "namespace": "wunderland",
2075
+ "verified": true,
2076
+ "source": "curated",
2077
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2078
+ "keywords": [
2079
+ "trello",
2080
+ "kanban",
2081
+ "project-management",
2082
+ "boards",
2083
+ "tasks",
2084
+ "workflow"
2085
+ ],
2086
+ "requiredSecrets": [
2087
+ "trello.api_key",
2088
+ "trello.token"
2089
+ ],
2090
+ "metadata": {
2091
+ "emoji": "📋",
2092
+ "primaryEnv": "TRELLO_API_KEY",
2093
+ "secondaryEnvs": [
2094
+ "TRELLO_TOKEN"
2095
+ ],
2096
+ "homepage": "https://developer.atlassian.com/cloud/trello"
2097
+ }
2098
+ },
2099
+ {
2100
+ "id": "com.framers.skill.twitter-bot",
2101
+ "name": "twitter-bot",
2102
+ "displayName": "twitter-bot",
2103
+ "version": "1.0.0",
2104
+ "path": "registry/curated/twitter-bot",
2105
+ "description": "Automated Twitter/X engagement — personality-driven reply bot, thread creation, trending engagement, and analytics tracking.",
2106
+ "category": "social-automation",
2107
+ "namespace": "wunderland",
2108
+ "verified": true,
2109
+ "source": "curated",
2110
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2111
+ "keywords": [
2112
+ "twitter",
2113
+ "social-media",
2114
+ "engagement",
2115
+ "reply-bot",
2116
+ "threads",
2117
+ "trending",
2118
+ "automation"
2119
+ ],
2120
+ "requiredSecrets": [
2121
+ "twitter.bearerToken",
2122
+ "twitter.apiKey",
2123
+ "twitter.apiSecret",
2124
+ "twitter.accessToken",
2125
+ "twitter.accessSecret"
2126
+ ],
2127
+ "requiredTools": [
2128
+ "twitterPost",
2129
+ "twitterReply",
2130
+ "twitterSearch",
2131
+ "twitterTrending",
2132
+ "twitterLike",
2133
+ "twitterRetweet",
2134
+ "twitterThread",
2135
+ "twitterAnalytics"
2136
+ ],
2137
+ "metadata": {
2138
+ "emoji": "🐦",
2139
+ "primaryEnv": "TWITTER_BEARER_TOKEN"
2140
+ }
2141
+ },
2142
+ {
2143
+ "id": "com.framers.skill.video-generation",
2144
+ "name": "video-generation",
2145
+ "displayName": "video-generation",
2146
+ "version": "1.0.0",
2147
+ "path": "registry/curated/video-generation",
2148
+ "description": "Video generation, analysis, and scene detection — text-to-video, image-to-video, structured scene descriptions with RAG indexing, and general-purpose visual change detection.",
2149
+ "category": "media",
2150
+ "namespace": "wunderland",
2151
+ "verified": true,
2152
+ "source": "curated",
2153
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2154
+ "keywords": [
2155
+ "video",
2156
+ "generation",
2157
+ "analysis",
2158
+ "scene-detection",
2159
+ "RAG",
2160
+ "multimodal",
2161
+ "runway",
2162
+ "replicate",
2163
+ "fal"
2164
+ ],
2165
+ "metadata": {
2166
+ "emoji": "🎬"
2167
+ }
2168
+ },
2169
+ {
2170
+ "id": "com.framers.skill.vision-ocr",
2171
+ "name": "vision-ocr",
2172
+ "displayName": "vision-ocr",
2173
+ "version": "1.1.0",
2174
+ "path": "registry/curated/vision-ocr",
2175
+ "description": "Extract text from images using OCR and vision AI with the performOCR() high-level API or the full VisionPipeline.",
2176
+ "category": "vision",
2177
+ "namespace": "wunderland",
2178
+ "verified": true,
2179
+ "source": "curated",
2180
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2181
+ "keywords": [
2182
+ "vision",
2183
+ "ocr",
2184
+ "text-extraction",
2185
+ "document",
2186
+ "handwriting"
2187
+ ],
2188
+ "requiredTools": [
2189
+ "vision-pipeline"
2190
+ ]
2191
+ },
2192
+ {
2193
+ "id": "com.framers.skill.voice-conversation",
2194
+ "name": "voice-conversation",
2195
+ "displayName": "voice-conversation",
2196
+ "version": "1.0.0",
2197
+ "path": "registry/curated/voice-conversation",
2198
+ "description": "Run provider-agnostic live voice conversations with VAD, silence boundaries, wake-word gating, STT, and TTS through the AgentOS speech runtime.",
2199
+ "category": "communication",
2200
+ "namespace": "wunderland",
2201
+ "verified": true,
2202
+ "source": "curated",
2203
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2204
+ "keywords": [
2205
+ "voice",
2206
+ "speech",
2207
+ "conversation",
2208
+ "stt",
2209
+ "tts",
2210
+ "vad",
2211
+ "wake-word",
2212
+ "whisper",
2213
+ "elevenlabs"
2214
+ ],
2215
+ "metadata": {
2216
+ "emoji": "🎤"
2217
+ }
2218
+ },
2219
+ {
2220
+ "id": "com.framers.skill.vosk",
2221
+ "name": "vosk",
2222
+ "displayName": "vosk",
2223
+ "version": "1.0.0",
2224
+ "path": "registry/curated/vosk",
2225
+ "description": "Fully offline speech-to-text via the Vosk library — streaming recognition, 16 kHz PCM, no network required after model download.",
2226
+ "category": "voice",
2227
+ "namespace": "wunderland",
2228
+ "verified": true,
2229
+ "source": "curated",
2230
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2231
+ "keywords": [
2232
+ "voice",
2233
+ "stt",
2234
+ "speech-to-text",
2235
+ "vosk",
2236
+ "offline",
2237
+ "local",
2238
+ "privacy"
2239
+ ],
2240
+ "metadata": {
2241
+ "emoji": "🎤",
2242
+ "homepage": "https://alphacephei.com/vosk/"
2243
+ }
2244
+ },
2245
+ {
2246
+ "id": "com.framers.skill.weather",
2247
+ "name": "weather",
2248
+ "displayName": "weather",
2249
+ "version": "1.0.0",
2250
+ "path": "registry/curated/weather",
2251
+ "description": "Look up current weather conditions, forecasts, and severe weather alerts for any location worldwide.",
2252
+ "category": "information",
2253
+ "namespace": "wunderland",
2254
+ "verified": true,
2255
+ "source": "curated",
2256
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2257
+ "keywords": [
2258
+ "weather",
2259
+ "forecast",
2260
+ "climate",
2261
+ "location"
2262
+ ],
2263
+ "requiredTools": [
2264
+ "web-search"
2265
+ ],
2266
+ "metadata": {
2267
+ "emoji": "☀️",
2268
+ "homepage": "https://openweathermap.org"
2269
+ }
2270
+ },
2271
+ {
2272
+ "id": "com.framers.skill.web-scraper",
2273
+ "name": "web-scraper",
2274
+ "displayName": "web-scraper",
2275
+ "version": "1.0.0",
2276
+ "path": "registry/curated/web-scraper",
2277
+ "description": "Autonomous web scraping — navigate sites, extract structured data, handle pagination, anti-detection, and proxy rotation.",
2278
+ "category": "automation",
2279
+ "namespace": "wunderland",
2280
+ "verified": true,
2281
+ "source": "curated",
2282
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2283
+ "keywords": [
2284
+ "scraping",
2285
+ "browser",
2286
+ "extraction",
2287
+ "data",
2288
+ "pagination",
2289
+ "proxy",
2290
+ "automation"
2291
+ ],
2292
+ "requiredTools": [
2293
+ "browserNavigate",
2294
+ "browserClick",
2295
+ "browserFill",
2296
+ "browserExtract",
2297
+ "browserScreenshot",
2298
+ "browserSnapshot",
2299
+ "browserScroll",
2300
+ "browserWait",
2301
+ "browserEvaluate",
2302
+ "browserSession"
2303
+ ],
2304
+ "metadata": {
2305
+ "emoji": "🕸"
2306
+ }
2307
+ },
2308
+ {
2309
+ "id": "com.framers.skill.web-search",
2310
+ "name": "web-search",
2311
+ "displayName": "web-search",
2312
+ "version": "1.0.0",
2313
+ "path": "registry/curated/web-search",
2314
+ "description": "Search the web for up-to-date information, news, documentation, and answers to questions.",
2315
+ "category": "information",
2316
+ "namespace": "wunderland",
2317
+ "verified": true,
2318
+ "source": "curated",
2319
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2320
+ "keywords": [
2321
+ "search",
2322
+ "web",
2323
+ "research",
2324
+ "information-retrieval",
2325
+ "news",
2326
+ "documentation"
2327
+ ],
2328
+ "requiredTools": [
2329
+ "web-search"
2330
+ ],
2331
+ "metadata": {
2332
+ "emoji": "🔍"
2333
+ }
2334
+ },
2335
+ {
2336
+ "id": "com.framers.skill.whisper-transcribe",
2337
+ "name": "whisper-transcribe",
2338
+ "displayName": "whisper-transcribe",
2339
+ "version": "1.0.0",
2340
+ "path": "registry/curated/whisper-transcribe",
2341
+ "description": "Transcribe audio and video files to text using OpenAI Whisper or compatible speech-to-text APIs.",
2342
+ "category": "media",
2343
+ "namespace": "wunderland",
2344
+ "verified": true,
2345
+ "source": "curated",
2346
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2347
+ "keywords": [
2348
+ "transcription",
2349
+ "whisper",
2350
+ "speech-to-text",
2351
+ "audio",
2352
+ "stt",
2353
+ "voice"
2354
+ ],
2355
+ "requiredSecrets": [
2356
+ "openai.api_key"
2357
+ ],
2358
+ "requiredTools": [
2359
+ "filesystem"
2360
+ ],
2361
+ "metadata": {
2362
+ "emoji": "🎙️",
2363
+ "primaryEnv": "OPENAI_API_KEY",
2364
+ "homepage": "https://platform.openai.com/docs/guides/speech-to-text",
2365
+ "requires": {
2366
+ "anyBins": [
2367
+ "ffmpeg",
2368
+ "ffprobe"
2369
+ ]
2370
+ },
2371
+ "install": [
2372
+ {
2373
+ "id": "brew-ffmpeg",
2374
+ "kind": "brew",
2375
+ "formula": "ffmpeg",
2376
+ "bins": [
2377
+ "ffmpeg",
2378
+ "ffprobe"
2379
+ ],
2380
+ "label": "Install ffmpeg (brew)"
2381
+ },
2382
+ {
2383
+ "id": "apt-ffmpeg",
2384
+ "kind": "apt",
2385
+ "package": "ffmpeg",
2386
+ "bins": [
2387
+ "ffmpeg",
2388
+ "ffprobe"
2389
+ ],
2390
+ "os": [
2391
+ "linux"
2392
+ ],
2393
+ "label": "Install ffmpeg (apt)"
2394
+ }
2395
+ ]
2396
+ }
2397
+ },
2398
+ {
2399
+ "id": "com.framers.skill.youtube-bot",
2400
+ "name": "youtube-bot",
2401
+ "displayName": "youtube-bot",
2402
+ "version": "1.0.0",
2403
+ "path": "registry/curated/youtube-bot",
2404
+ "description": "YouTube automation — video publishing, Shorts creation, community engagement, playlist management, and channel growth analytics.",
2405
+ "category": "social-automation",
2406
+ "namespace": "wunderland",
2407
+ "verified": true,
2408
+ "source": "curated",
2409
+ "verifiedAt": "2026-03-28T13:31:49.809Z",
2410
+ "keywords": [
2411
+ "youtube",
2412
+ "video",
2413
+ "shorts",
2414
+ "social-media",
2415
+ "content-creation",
2416
+ "playlists",
2417
+ "automation"
2418
+ ],
2419
+ "requiredSecrets": [
2420
+ "youtube.apiKey",
2421
+ "youtube.oauth2Token"
2422
+ ],
2423
+ "requiredTools": [
2424
+ "youtubeUpload",
2425
+ "youtubeShort",
2426
+ "youtubeComment",
2427
+ "youtubeSearch",
2428
+ "youtubeTrending",
2429
+ "youtubePlaylist",
2430
+ "youtubeAnalytics",
2431
+ "youtubeSchedule"
2432
+ ],
2433
+ "metadata": {
2434
+ "emoji": "🎬",
2435
+ "primaryEnv": "YOUTUBE_API_KEY"
2436
+ }
2437
+ }
2438
+ ],
2439
+ "community": []
2440
+ },
2441
+ "stats": {
2442
+ "totalSkills": 71,
2443
+ "curatedCount": 71,
2444
+ "communityCount": 0
2445
+ }
2446
+ }