@zenku/agent-kit 0.1.7 → 0.1.9

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 (53) hide show
  1. package/agents/code-architect.agent +0 -0
  2. package/agents/code-explorer.agent +0 -0
  3. package/agents/code-reviewer.agent +0 -0
  4. package/agents/code-simplifier.agent +0 -0
  5. package/agents/silent-failure-hunter.agent +0 -0
  6. package/agents/skill-reviewer.agent +0 -0
  7. package/manifest.json +942 -4
  8. package/package.json +1 -1
  9. package/personas/zenku.persona +0 -0
  10. package/skills/1password.skill +0 -0
  11. package/skills/apple-notes.skill +0 -0
  12. package/skills/apple-reminders.skill +0 -0
  13. package/skills/bear-notes.skill +0 -0
  14. package/skills/blogwatcher.skill +0 -0
  15. package/skills/blucli.skill +0 -0
  16. package/skills/camsnap.skill +0 -0
  17. package/skills/eightctl.skill +0 -0
  18. package/skills/food-order.skill +0 -0
  19. package/skills/frontend-design.skill +0 -0
  20. package/skills/gemini.skill +0 -0
  21. package/skills/gifgrep.skill +0 -0
  22. package/skills/github.skill +0 -0
  23. package/skills/gog.skill +0 -0
  24. package/skills/goplaces.skill +0 -0
  25. package/skills/himalaya.skill +0 -0
  26. package/skills/imsg.skill +0 -0
  27. package/skills/local-places.skill +0 -0
  28. package/skills/mcporter.skill +0 -0
  29. package/skills/nano-banana-pro.skill +0 -0
  30. package/skills/nano-pdf.skill +0 -0
  31. package/skills/notion.skill +0 -0
  32. package/skills/obsidian.skill +0 -0
  33. package/skills/openai-image-gen.skill +0 -0
  34. package/skills/openai-whisper-api.skill +0 -0
  35. package/skills/openai-whisper.skill +0 -0
  36. package/skills/openhue.skill +0 -0
  37. package/skills/oracle.skill +0 -0
  38. package/skills/ordercli.skill +0 -0
  39. package/skills/peekaboo.skill +0 -0
  40. package/skills/sag.skill +0 -0
  41. package/skills/sherpa-onnx-tts.skill +0 -0
  42. package/skills/skill-creator.skill +0 -0
  43. package/skills/songsee.skill +0 -0
  44. package/skills/sonoscli.skill +0 -0
  45. package/skills/spotify-player.skill +0 -0
  46. package/skills/summarize.skill +0 -0
  47. package/skills/things-mac.skill +0 -0
  48. package/skills/tmux.skill +0 -0
  49. package/skills/trello.skill +0 -0
  50. package/skills/video-frames.skill +0 -0
  51. package/skills/wacli.skill +0 -0
  52. package/skills/weather.skill +0 -0
  53. package/skills/zenku-kanban.skill +0 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/manifest.json CHANGED
@@ -1,13 +1,951 @@
1
1
  {
2
2
  "skills": {
3
+ "1password": {
4
+ "name": "1password",
5
+ "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.",
6
+ "homepage": "https://developer.1password.com/docs/cli/get-started/",
7
+ "metadata": {
8
+ "zenku": {
9
+ "emoji": "🔐",
10
+ "requires": {
11
+ "bins": ["op"]
12
+ },
13
+ "install": [
14
+ {
15
+ "id": "brew",
16
+ "kind": "brew",
17
+ "formula": "1password-cli",
18
+ "bins": ["op"],
19
+ "label": "Install 1Password CLI (brew)"
20
+ }
21
+ ]
22
+ }
23
+ }
24
+ },
25
+ "apple-notes": {
26
+ "name": "apple-notes",
27
+ "description": "Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks the agent to add a note, list notes, search notes, or manage note folders.",
28
+ "homepage": "https://github.com/antoniorodr/memo",
29
+ "metadata": {
30
+ "zenku": {
31
+ "emoji": "📝",
32
+ "os": ["darwin"],
33
+ "requires": {
34
+ "bins": ["memo"]
35
+ },
36
+ "install": [
37
+ {
38
+ "id": "brew",
39
+ "kind": "brew",
40
+ "formula": "antoniorodr/memo/memo",
41
+ "bins": ["memo"],
42
+ "label": "Install memo via Homebrew"
43
+ }
44
+ ]
45
+ }
46
+ }
47
+ },
48
+ "apple-reminders": {
49
+ "name": "apple-reminders",
50
+ "description": "Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.",
51
+ "homepage": "https://github.com/steipete/remindctl",
52
+ "metadata": {
53
+ "zenku": {
54
+ "emoji": "⏰",
55
+ "os": ["darwin"],
56
+ "requires": {
57
+ "bins": ["remindctl"]
58
+ },
59
+ "install": [
60
+ {
61
+ "id": "brew",
62
+ "kind": "brew",
63
+ "formula": "steipete/tap/remindctl",
64
+ "bins": ["remindctl"],
65
+ "label": "Install remindctl via Homebrew"
66
+ }
67
+ ]
68
+ }
69
+ }
70
+ },
71
+ "bear-notes": {
72
+ "name": "bear-notes",
73
+ "description": "Create, search, and manage Bear notes via grizzly CLI.",
74
+ "homepage": "https://bear.app",
75
+ "metadata": {
76
+ "zenku": {
77
+ "emoji": "🐻",
78
+ "os": ["darwin"],
79
+ "requires": {
80
+ "bins": ["grizzly"]
81
+ },
82
+ "install": [
83
+ {
84
+ "id": "go",
85
+ "kind": "go",
86
+ "module": "github.com/tylerwince/grizzly/cmd/grizzly@latest",
87
+ "bins": ["grizzly"],
88
+ "label": "Install grizzly (go)"
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ },
94
+ "blogwatcher": {
95
+ "name": "blogwatcher",
96
+ "description": "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.",
97
+ "homepage": "https://github.com/Hyaxia/blogwatcher",
98
+ "metadata": {
99
+ "zenku": {
100
+ "emoji": "📰",
101
+ "requires": {
102
+ "bins": ["blogwatcher"]
103
+ },
104
+ "install": [
105
+ {
106
+ "id": "go",
107
+ "kind": "go",
108
+ "module": "github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest",
109
+ "bins": ["blogwatcher"],
110
+ "label": "Install blogwatcher (go)"
111
+ }
112
+ ]
113
+ }
114
+ }
115
+ },
116
+ "blucli": {
117
+ "name": "blucli",
118
+ "description": "BluOS CLI (blu) for discovery, playback, grouping, and volume.",
119
+ "homepage": "https://blucli.sh",
120
+ "metadata": {
121
+ "zenku": {
122
+ "emoji": "🫐",
123
+ "requires": {
124
+ "bins": ["blu"]
125
+ },
126
+ "install": [
127
+ {
128
+ "id": "go",
129
+ "kind": "go",
130
+ "module": "github.com/steipete/blucli/cmd/blu@latest",
131
+ "bins": ["blu"],
132
+ "label": "Install blucli (go)"
133
+ }
134
+ ]
135
+ }
136
+ }
137
+ },
138
+ "camsnap": {
139
+ "name": "camsnap",
140
+ "description": "Capture frames or clips from RTSP/ONVIF cameras.",
141
+ "homepage": "https://camsnap.ai",
142
+ "metadata": {
143
+ "zenku": {
144
+ "emoji": "📸",
145
+ "requires": {
146
+ "bins": ["camsnap"]
147
+ },
148
+ "install": [
149
+ {
150
+ "id": "brew",
151
+ "kind": "brew",
152
+ "formula": "steipete/tap/camsnap",
153
+ "bins": ["camsnap"],
154
+ "label": "Install camsnap (brew)"
155
+ }
156
+ ]
157
+ }
158
+ }
159
+ },
160
+ "eightctl": {
161
+ "name": "eightctl",
162
+ "description": "Control Eight Sleep pods (status, temperature, alarms, schedules).",
163
+ "homepage": "https://eightctl.sh",
164
+ "metadata": {
165
+ "zenku": {
166
+ "emoji": "🎛️",
167
+ "requires": {
168
+ "bins": ["eightctl"]
169
+ },
170
+ "install": [
171
+ {
172
+ "id": "go",
173
+ "kind": "go",
174
+ "module": "github.com/steipete/eightctl/cmd/eightctl@latest",
175
+ "bins": ["eightctl"],
176
+ "label": "Install eightctl (go)"
177
+ }
178
+ ]
179
+ }
180
+ }
181
+ },
182
+ "food-order": {
183
+ "name": "food-order",
184
+ "description": "Reorder Foodora orders + track ETA/status with ordercli. Never confirm without explicit user approval. Trigger when user mentions order food, reorder, or track ETA.",
185
+ "homepage": "https://ordercli.sh",
186
+ "metadata": {
187
+ "zenku": {
188
+ "emoji": "🥡",
189
+ "requires": {
190
+ "bins": ["ordercli"]
191
+ },
192
+ "install": [
193
+ {
194
+ "id": "go",
195
+ "kind": "go",
196
+ "module": "github.com/steipete/ordercli/cmd/ordercli@latest",
197
+ "bins": ["ordercli"],
198
+ "label": "Install ordercli (go)"
199
+ }
200
+ ]
201
+ }
202
+ }
203
+ },
3
204
  "frontend-design": {
4
205
  "name": "frontend-design",
5
206
  "description": "Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics."
6
207
  },
208
+ "gemini": {
209
+ "name": "gemini",
210
+ "description": "Gemini CLI for one-shot Q&A, summaries, and generation.",
211
+ "homepage": "https://ai.google.dev/",
212
+ "metadata": {
213
+ "zenku": {
214
+ "emoji": "♊️",
215
+ "requires": {
216
+ "bins": ["gemini"]
217
+ },
218
+ "install": [
219
+ {
220
+ "id": "brew",
221
+ "kind": "brew",
222
+ "formula": "gemini-cli",
223
+ "bins": ["gemini"],
224
+ "label": "Install Gemini CLI (brew)"
225
+ }
226
+ ]
227
+ }
228
+ }
229
+ },
230
+ "gifgrep": {
231
+ "name": "gifgrep",
232
+ "description": "Search GIF providers with CLI/TUI, download results, and extract stills/sheets.",
233
+ "homepage": "https://gifgrep.com",
234
+ "metadata": {
235
+ "zenku": {
236
+ "emoji": "🧲",
237
+ "requires": {
238
+ "bins": ["gifgrep"]
239
+ },
240
+ "install": [
241
+ {
242
+ "id": "brew",
243
+ "kind": "brew",
244
+ "formula": "steipete/tap/gifgrep",
245
+ "bins": ["gifgrep"],
246
+ "label": "Install gifgrep (brew)"
247
+ },
248
+ {
249
+ "id": "go",
250
+ "kind": "go",
251
+ "module": "github.com/steipete/gifgrep/cmd/gifgrep@latest",
252
+ "bins": ["gifgrep"],
253
+ "label": "Install gifgrep (go)"
254
+ }
255
+ ]
256
+ }
257
+ }
258
+ },
259
+ "github": {
260
+ "name": "github",
261
+ "description": "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.",
262
+ "metadata": {
263
+ "zenku": {
264
+ "emoji": "🐙",
265
+ "requires": {
266
+ "bins": ["gh"]
267
+ },
268
+ "install": [
269
+ {
270
+ "id": "brew",
271
+ "kind": "brew",
272
+ "formula": "gh",
273
+ "bins": ["gh"],
274
+ "label": "Install GitHub CLI (brew)"
275
+ },
276
+ {
277
+ "id": "apt",
278
+ "kind": "apt",
279
+ "package": "gh",
280
+ "bins": ["gh"],
281
+ "label": "Install GitHub CLI (apt)"
282
+ }
283
+ ]
284
+ }
285
+ }
286
+ },
287
+ "gog": {
288
+ "name": "gog",
289
+ "description": "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",
290
+ "homepage": "https://gogcli.sh",
291
+ "metadata": {
292
+ "zenku": {
293
+ "emoji": "🎮",
294
+ "requires": {
295
+ "bins": ["gog"]
296
+ },
297
+ "install": [
298
+ {
299
+ "id": "brew",
300
+ "kind": "brew",
301
+ "formula": "steipete/tap/gogcli",
302
+ "bins": ["gog"],
303
+ "label": "Install gog (brew)"
304
+ }
305
+ ]
306
+ }
307
+ }
308
+ },
309
+ "goplaces": {
310
+ "name": "goplaces",
311
+ "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.",
312
+ "homepage": "https://github.com/steipete/goplaces",
313
+ "metadata": {
314
+ "zenku": {
315
+ "emoji": "📍",
316
+ "requires": {
317
+ "bins": ["goplaces"],
318
+ "env": ["GOOGLE_PLACES_API_KEY"]
319
+ },
320
+ "primaryEnv": "GOOGLE_PLACES_API_KEY",
321
+ "install": [
322
+ {
323
+ "id": "brew",
324
+ "kind": "brew",
325
+ "formula": "steipete/tap/goplaces",
326
+ "bins": ["goplaces"],
327
+ "label": "Install goplaces (brew)"
328
+ }
329
+ ]
330
+ }
331
+ }
332
+ },
333
+ "himalaya": {
334
+ "name": "himalaya",
335
+ "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 (MIME Meta Language).",
336
+ "homepage": "https://github.com/pimalaya/himalaya",
337
+ "metadata": {
338
+ "zenku": {
339
+ "emoji": "📧",
340
+ "requires": {
341
+ "bins": ["himalaya"]
342
+ },
343
+ "install": [
344
+ {
345
+ "id": "brew",
346
+ "kind": "brew",
347
+ "formula": "himalaya",
348
+ "bins": ["himalaya"],
349
+ "label": "Install Himalaya (brew)"
350
+ }
351
+ ]
352
+ }
353
+ }
354
+ },
355
+ "imsg": {
356
+ "name": "imsg",
357
+ "description": "iMessage/SMS CLI for listing chats, history, watch, and sending.",
358
+ "homepage": "https://imsg.to",
359
+ "metadata": {
360
+ "zenku": {
361
+ "emoji": "📨",
362
+ "os": ["darwin"],
363
+ "requires": {
364
+ "bins": ["imsg"]
365
+ },
366
+ "install": [
367
+ {
368
+ "id": "brew",
369
+ "kind": "brew",
370
+ "formula": "steipete/tap/imsg",
371
+ "bins": ["imsg"],
372
+ "label": "Install imsg (brew)"
373
+ }
374
+ ]
375
+ }
376
+ }
377
+ },
378
+ "local-places": {
379
+ "name": "local-places",
380
+ "description": "Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.",
381
+ "homepage": "https://github.com/Hyaxia/local_places",
382
+ "metadata": {
383
+ "zenku": {
384
+ "emoji": "📍",
385
+ "requires": {
386
+ "bins": ["uv"],
387
+ "env": ["GOOGLE_PLACES_API_KEY"]
388
+ },
389
+ "primaryEnv": "GOOGLE_PLACES_API_KEY"
390
+ }
391
+ }
392
+ },
393
+ "mcporter": {
394
+ "name": "mcporter",
395
+ "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.",
396
+ "homepage": "http://mcporter.dev",
397
+ "metadata": {
398
+ "zenku": {
399
+ "emoji": "📦",
400
+ "requires": {
401
+ "bins": ["mcporter"]
402
+ },
403
+ "install": [
404
+ {
405
+ "id": "node",
406
+ "kind": "node",
407
+ "package": "mcporter",
408
+ "bins": ["mcporter"],
409
+ "label": "Install mcporter (node)"
410
+ }
411
+ ]
412
+ }
413
+ }
414
+ },
415
+ "nano-banana-pro": {
416
+ "name": "nano-banana-pro",
417
+ "description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).",
418
+ "homepage": "https://ai.google.dev/",
419
+ "metadata": {
420
+ "zenku": {
421
+ "emoji": "🍌",
422
+ "requires": {
423
+ "bins": ["uv"],
424
+ "env": ["GEMINI_API_KEY"]
425
+ },
426
+ "primaryEnv": "GEMINI_API_KEY",
427
+ "install": [
428
+ {
429
+ "id": "uv-brew",
430
+ "kind": "brew",
431
+ "formula": "uv",
432
+ "bins": ["uv"],
433
+ "label": "Install uv (brew)"
434
+ }
435
+ ]
436
+ }
437
+ }
438
+ },
439
+ "nano-pdf": {
440
+ "name": "nano-pdf",
441
+ "description": "Edit PDFs with natural-language instructions using the nano-pdf CLI.",
442
+ "homepage": "https://pypi.org/project/nano-pdf/",
443
+ "metadata": {
444
+ "zenku": {
445
+ "emoji": "📄",
446
+ "requires": {
447
+ "bins": ["nano-pdf"]
448
+ },
449
+ "install": [
450
+ {
451
+ "id": "uv",
452
+ "kind": "uv",
453
+ "package": "nano-pdf",
454
+ "bins": ["nano-pdf"],
455
+ "label": "Install nano-pdf (uv)"
456
+ }
457
+ ]
458
+ }
459
+ }
460
+ },
461
+ "notion": {
462
+ "name": "notion",
463
+ "description": "Notion API for creating and managing pages, databases, and blocks.",
464
+ "homepage": "https://developers.notion.com",
465
+ "metadata": {
466
+ "zenku": {
467
+ "emoji": "📝",
468
+ "requires": {
469
+ "env": ["NOTION_API_KEY"]
470
+ },
471
+ "primaryEnv": "NOTION_API_KEY"
472
+ }
473
+ }
474
+ },
475
+ "obsidian": {
476
+ "name": "obsidian",
477
+ "description": "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.",
478
+ "homepage": "https://help.obsidian.md",
479
+ "metadata": {
480
+ "zenku": {
481
+ "emoji": "💎",
482
+ "requires": {
483
+ "bins": ["obsidian-cli"]
484
+ },
485
+ "install": [
486
+ {
487
+ "id": "brew",
488
+ "kind": "brew",
489
+ "formula": "yakitrak/yakitrak/obsidian-cli",
490
+ "bins": ["obsidian-cli"],
491
+ "label": "Install obsidian-cli (brew)"
492
+ }
493
+ ]
494
+ }
495
+ }
496
+ },
497
+ "openai-image-gen": {
498
+ "name": "openai-image-gen",
499
+ "description": "Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.",
500
+ "homepage": "https://platform.openai.com/docs/api-reference/images",
501
+ "metadata": {
502
+ "zenku": {
503
+ "emoji": "🖼️",
504
+ "requires": {
505
+ "bins": ["python3"],
506
+ "env": ["OPENAI_API_KEY"]
507
+ },
508
+ "primaryEnv": "OPENAI_API_KEY",
509
+ "install": [
510
+ {
511
+ "id": "python-brew",
512
+ "kind": "brew",
513
+ "formula": "python",
514
+ "bins": ["python3"],
515
+ "label": "Install Python (brew)"
516
+ }
517
+ ]
518
+ }
519
+ }
520
+ },
521
+ "openai-whisper": {
522
+ "name": "openai-whisper",
523
+ "description": "Local speech-to-text with the Whisper CLI (no API key).",
524
+ "homepage": "https://openai.com/research/whisper",
525
+ "metadata": {
526
+ "zenku": {
527
+ "emoji": "🎙️",
528
+ "requires": {
529
+ "bins": ["whisper"]
530
+ },
531
+ "install": [
532
+ {
533
+ "id": "brew",
534
+ "kind": "brew",
535
+ "formula": "openai-whisper",
536
+ "bins": ["whisper"],
537
+ "label": "Install OpenAI Whisper (brew)"
538
+ }
539
+ ]
540
+ }
541
+ }
542
+ },
543
+ "openai-whisper-api": {
544
+ "name": "openai-whisper-api",
545
+ "description": "Transcribe audio via OpenAI Audio Transcriptions API (Whisper).",
546
+ "homepage": "https://platform.openai.com/docs/guides/speech-to-text",
547
+ "metadata": {
548
+ "zenku": {
549
+ "emoji": "☁️",
550
+ "requires": {
551
+ "bins": ["curl"],
552
+ "env": ["OPENAI_API_KEY"]
553
+ },
554
+ "primaryEnv": "OPENAI_API_KEY"
555
+ }
556
+ }
557
+ },
558
+ "openhue": {
559
+ "name": "openhue",
560
+ "description": "Control Philips Hue lights/scenes via the OpenHue CLI.",
561
+ "homepage": "https://www.openhue.io/cli",
562
+ "metadata": {
563
+ "zenku": {
564
+ "emoji": "💡",
565
+ "requires": {
566
+ "bins": ["openhue"]
567
+ },
568
+ "install": [
569
+ {
570
+ "id": "brew",
571
+ "kind": "brew",
572
+ "formula": "openhue/cli/openhue-cli",
573
+ "bins": ["openhue"],
574
+ "label": "Install OpenHue CLI (brew)"
575
+ }
576
+ ]
577
+ }
578
+ }
579
+ },
580
+ "oracle": {
581
+ "name": "oracle",
582
+ "description": "Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",
583
+ "homepage": "https://askoracle.dev",
584
+ "metadata": {
585
+ "zenku": {
586
+ "emoji": "🧿",
587
+ "requires": {
588
+ "bins": ["oracle"]
589
+ },
590
+ "install": [
591
+ {
592
+ "id": "node",
593
+ "kind": "node",
594
+ "package": "@steipete/oracle",
595
+ "bins": ["oracle"],
596
+ "label": "Install oracle (node)"
597
+ }
598
+ ]
599
+ }
600
+ }
601
+ },
602
+ "ordercli": {
603
+ "name": "ordercli",
604
+ "description": "Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).",
605
+ "homepage": "https://ordercli.sh",
606
+ "metadata": {
607
+ "zenku": {
608
+ "emoji": "🛵",
609
+ "requires": {
610
+ "bins": ["ordercli"]
611
+ },
612
+ "install": [
613
+ {
614
+ "id": "brew",
615
+ "kind": "brew",
616
+ "formula": "steipete/tap/ordercli",
617
+ "bins": ["ordercli"],
618
+ "label": "Install ordercli (brew)"
619
+ },
620
+ {
621
+ "id": "go",
622
+ "kind": "go",
623
+ "module": "github.com/steipete/ordercli/cmd/ordercli@latest",
624
+ "bins": ["ordercli"],
625
+ "label": "Install ordercli (go)"
626
+ }
627
+ ]
628
+ }
629
+ }
630
+ },
631
+ "peekaboo": {
632
+ "name": "peekaboo",
633
+ "description": "Capture and automate macOS UI with the Peekaboo CLI.",
634
+ "homepage": "https://peekaboo.boo",
635
+ "metadata": {
636
+ "zenku": {
637
+ "emoji": "👀",
638
+ "os": ["darwin"],
639
+ "requires": {
640
+ "bins": ["peekaboo"]
641
+ },
642
+ "install": [
643
+ {
644
+ "id": "brew",
645
+ "kind": "brew",
646
+ "formula": "steipete/tap/peekaboo",
647
+ "bins": ["peekaboo"],
648
+ "label": "Install Peekaboo (brew)"
649
+ }
650
+ ]
651
+ }
652
+ }
653
+ },
654
+ "sag": {
655
+ "name": "sag",
656
+ "description": "ElevenLabs text-to-speech with mac-style say UX.",
657
+ "homepage": "https://sag.sh",
658
+ "metadata": {
659
+ "zenku": {
660
+ "emoji": "🗣️",
661
+ "requires": {
662
+ "bins": ["sag"],
663
+ "env": ["ELEVENLABS_API_KEY"]
664
+ },
665
+ "primaryEnv": "ELEVENLABS_API_KEY",
666
+ "install": [
667
+ {
668
+ "id": "brew",
669
+ "kind": "brew",
670
+ "formula": "steipete/tap/sag",
671
+ "bins": ["sag"],
672
+ "label": "Install sag (brew)"
673
+ }
674
+ ]
675
+ }
676
+ }
677
+ },
678
+ "sherpa-onnx-tts": {
679
+ "name": "sherpa-onnx-tts",
680
+ "description": "Local text-to-speech via sherpa-onnx (offline, no cloud)",
681
+ "metadata": {
682
+ "zenku": {
683
+ "emoji": "🗣️",
684
+ "os": ["darwin", "linux", "win32"],
685
+ "requires": {
686
+ "env": ["SHERPA_ONNX_RUNTIME_DIR", "SHERPA_ONNX_MODEL_DIR"]
687
+ },
688
+ "install": [
689
+ {
690
+ "id": "download-runtime-macos",
691
+ "kind": "download",
692
+ "os": ["darwin"],
693
+ "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-osx-universal2-shared.tar.bz2",
694
+ "archive": "tar.bz2",
695
+ "extract": true,
696
+ "stripComponents": 1,
697
+ "targetDir": "~/.zenku/tools/sherpa-onnx-tts/runtime",
698
+ "label": "Download sherpa-onnx runtime (macOS)"
699
+ },
700
+ {
701
+ "id": "download-runtime-linux-x64",
702
+ "kind": "download",
703
+ "os": ["linux"],
704
+ "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-linux-x64-shared.tar.bz2",
705
+ "archive": "tar.bz2",
706
+ "extract": true,
707
+ "stripComponents": 1,
708
+ "targetDir": "~/.zenku/tools/sherpa-onnx-tts/runtime",
709
+ "label": "Download sherpa-onnx runtime (Linux x64)"
710
+ },
711
+ {
712
+ "id": "download-runtime-win-x64",
713
+ "kind": "download",
714
+ "os": ["win32"],
715
+ "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-win-x64-shared.tar.bz2",
716
+ "archive": "tar.bz2",
717
+ "extract": true,
718
+ "stripComponents": 1,
719
+ "targetDir": "~/.zenku/tools/sherpa-onnx-tts/runtime",
720
+ "label": "Download sherpa-onnx runtime (Windows x64)"
721
+ },
722
+ {
723
+ "id": "download-model-lessac",
724
+ "kind": "download",
725
+ "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-lessac-high.tar.bz2",
726
+ "archive": "tar.bz2",
727
+ "extract": true,
728
+ "targetDir": "~/.zenku/tools/sherpa-onnx-tts/models",
729
+ "label": "Download Piper en_US lessac (high)"
730
+ }
731
+ ]
732
+ }
733
+ }
734
+ },
7
735
  "skill-creator": {
8
736
  "name": "skill-creator",
9
737
  "description": "Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends the agent's capabilities with specialized knowledge, workflows, or tool integrations."
10
738
  },
739
+ "songsee": {
740
+ "name": "songsee",
741
+ "description": "Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.",
742
+ "homepage": "https://github.com/steipete/songsee",
743
+ "metadata": {
744
+ "zenku": {
745
+ "emoji": "🌊",
746
+ "requires": {
747
+ "bins": ["songsee"]
748
+ },
749
+ "install": [
750
+ {
751
+ "id": "brew",
752
+ "kind": "brew",
753
+ "formula": "steipete/tap/songsee",
754
+ "bins": ["songsee"],
755
+ "label": "Install songsee (brew)"
756
+ }
757
+ ]
758
+ }
759
+ }
760
+ },
761
+ "sonoscli": {
762
+ "name": "sonoscli",
763
+ "description": "Control Sonos speakers (discover/status/play/volume/group).",
764
+ "homepage": "https://sonoscli.sh",
765
+ "metadata": {
766
+ "zenku": {
767
+ "emoji": "🔊",
768
+ "requires": {
769
+ "bins": ["sonos"]
770
+ },
771
+ "install": [
772
+ {
773
+ "id": "go",
774
+ "kind": "go",
775
+ "module": "github.com/steipete/sonoscli/cmd/sonos@latest",
776
+ "bins": ["sonos"],
777
+ "label": "Install sonoscli (go)"
778
+ }
779
+ ]
780
+ }
781
+ }
782
+ },
783
+ "spotify-player": {
784
+ "name": "spotify-player",
785
+ "description": "Terminal Spotify playback/search via spogo (preferred) or spotify_player.",
786
+ "homepage": "https://www.spotify.com",
787
+ "metadata": {
788
+ "zenku": {
789
+ "emoji": "🎵",
790
+ "requires": {
791
+ "anyBins": ["spogo", "spotify_player"]
792
+ },
793
+ "install": [
794
+ {
795
+ "id": "brew",
796
+ "kind": "brew",
797
+ "formula": "spogo",
798
+ "tap": "steipete/tap",
799
+ "bins": ["spogo"],
800
+ "label": "Install spogo (brew)"
801
+ },
802
+ {
803
+ "id": "brew",
804
+ "kind": "brew",
805
+ "formula": "spotify_player",
806
+ "bins": ["spotify_player"],
807
+ "label": "Install spotify_player (brew)"
808
+ }
809
+ ]
810
+ }
811
+ }
812
+ },
813
+ "summarize": {
814
+ "name": "summarize",
815
+ "description": "Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).",
816
+ "homepage": "https://summarize.sh",
817
+ "metadata": {
818
+ "zenku": {
819
+ "emoji": "🧾",
820
+ "requires": {
821
+ "bins": ["summarize"]
822
+ },
823
+ "install": [
824
+ {
825
+ "id": "brew",
826
+ "kind": "brew",
827
+ "formula": "steipete/tap/summarize",
828
+ "bins": ["summarize"],
829
+ "label": "Install summarize (brew)"
830
+ }
831
+ ]
832
+ }
833
+ }
834
+ },
835
+ "things-mac": {
836
+ "name": "things-mac",
837
+ "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 the agent to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.",
838
+ "homepage": "https://github.com/ossianhempel/things3-cli",
839
+ "metadata": {
840
+ "zenku": {
841
+ "emoji": "✅",
842
+ "os": ["darwin"],
843
+ "requires": {
844
+ "bins": ["things"]
845
+ },
846
+ "install": [
847
+ {
848
+ "id": "go",
849
+ "kind": "go",
850
+ "module": "github.com/ossianhempel/things3-cli/cmd/things@latest",
851
+ "bins": ["things"],
852
+ "label": "Install things3-cli (go)"
853
+ }
854
+ ]
855
+ }
856
+ }
857
+ },
858
+ "tmux": {
859
+ "name": "tmux",
860
+ "description": "Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.",
861
+ "metadata": {
862
+ "zenku": {
863
+ "emoji": "🧵",
864
+ "os": ["darwin", "linux"],
865
+ "requires": {
866
+ "bins": ["tmux"]
867
+ }
868
+ }
869
+ }
870
+ },
871
+ "trello": {
872
+ "name": "trello",
873
+ "description": "Manage Trello boards, lists, and cards via the Trello REST API.",
874
+ "homepage": "https://developer.atlassian.com/cloud/trello/rest/",
875
+ "metadata": {
876
+ "zenku": {
877
+ "emoji": "📋",
878
+ "requires": {
879
+ "bins": ["jq"],
880
+ "env": ["TRELLO_API_KEY", "TRELLO_TOKEN"]
881
+ }
882
+ }
883
+ }
884
+ },
885
+ "video-frames": {
886
+ "name": "video-frames",
887
+ "description": "Extract frames or short clips from videos using ffmpeg.",
888
+ "homepage": "https://ffmpeg.org",
889
+ "metadata": {
890
+ "zenku": {
891
+ "emoji": "🎞️",
892
+ "requires": {
893
+ "bins": ["ffmpeg"]
894
+ },
895
+ "install": [
896
+ {
897
+ "id": "brew",
898
+ "kind": "brew",
899
+ "formula": "ffmpeg",
900
+ "bins": ["ffmpeg"],
901
+ "label": "Install ffmpeg (brew)"
902
+ }
903
+ ]
904
+ }
905
+ }
906
+ },
907
+ "wacli": {
908
+ "name": "wacli",
909
+ "description": "Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).",
910
+ "homepage": "https://wacli.sh",
911
+ "metadata": {
912
+ "zenku": {
913
+ "emoji": "📱",
914
+ "requires": {
915
+ "bins": ["wacli"]
916
+ },
917
+ "install": [
918
+ {
919
+ "id": "brew",
920
+ "kind": "brew",
921
+ "formula": "steipete/tap/wacli",
922
+ "bins": ["wacli"],
923
+ "label": "Install wacli (brew)"
924
+ },
925
+ {
926
+ "id": "go",
927
+ "kind": "go",
928
+ "module": "github.com/steipete/wacli/cmd/wacli@latest",
929
+ "bins": ["wacli"],
930
+ "label": "Install wacli (go)"
931
+ }
932
+ ]
933
+ }
934
+ }
935
+ },
936
+ "weather": {
937
+ "name": "weather",
938
+ "description": "Get current weather and forecasts (no API key required).",
939
+ "homepage": "https://wttr.in/:help",
940
+ "metadata": {
941
+ "zenku": {
942
+ "emoji": "🌤️",
943
+ "requires": {
944
+ "bins": ["curl"]
945
+ }
946
+ }
947
+ }
948
+ },
11
949
  "zenku-kanban": {
12
950
  "name": "zenku-kanban",
13
951
  "description": "Manage kanban projects, issues, labels, comments, and links via the zenku CLI. Use when the user wants to create/update/list kanban issues, manage projects, track work items, add comments, link issues, or manage labels. Also covers CLI installation and authentication (login/logout/whoami/profiles) as prerequisites. Trigger when user mentions zenku, kanban, issues, sprints, project boards, or task tracking via CLI."
@@ -34,22 +972,22 @@
34
972
  },
35
973
  "code-simplifier": {
36
974
  "name": "code-simplifier",
37
- "description": "Use this agent when code has been written or modified and needs to be simplified for clarity, consistency, and maintainability while preserving all functionality. This agent should be triggered automatically after completing a coding task or writing a logical chunk of code. It simplifies code by following project best practices while retaining all functionality. The agent focuses only on recently modified code unless instructed otherwise.\n\nExamples:\n\n<example>\nContext: The assistant has just implemented a new feature that adds user authentication to an API endpoint.\nuser: \"Please add authentication to the /api/users endpoint\"\nassistant: \"I've implemented the authentication for the /api/users endpoint. Here's the code:\"\n<commentary>\nSince a logical chunk of code has been written (authentication feature), use the code-simplifier agent to improve the code's clarity and maintainability while preserving functionality.\n</commentary>\nassistant: \"Now let me use the code-simplifier agent to refine this implementation for better clarity and maintainability\"\n</example>\n\n<example>\nContext: The assistant has just fixed a bug by adding several conditional checks.\nuser: \"Fix the null pointer exception in the data processor\"\nassistant: \"I've added the necessary null checks to prevent the exception:\"\n<commentary>\nAfter modifying code to fix a bug, use the code-simplifier agent to ensure the fix follows best practices and maintains code quality.\n</commentary>\nassistant: \"Let me refine this bug fix using the code-simplifier agent to ensure it follows our best practices\"\n</example>\n\n<example>\nContext: The assistant has just refactored a function to improve performance.\nuser: \"Optimize the data sorting algorithm for better performance\"\nassistant: \"I've optimized the sorting algorithm. Here's the updated implementation:\"\n<commentary>\nAfter completing a performance optimization task, use the code-simplifier agent to ensure the optimized code is also clear and maintainable.\n</commentary>\nassistant: \"Now I'll use the code-simplifier agent to ensure the optimized code is also clear and follows our coding standards\"\n</example>",
975
+ "description": "Use this agent when code has been written or modified and needs to be simplified for clarity, consistency, and maintainability while preserving all functionality. This agent should be triggered automatically after completing a coding task or writing a logical chunk of code. It simplifies code by following project best practices while retaining all functionality. The agent focuses only on recently modified code unless instructed otherwise.\n\nExamples:\n\n<example>\nContext: The assistant has just implemented a new feature that adds user authentication to an API endpoint.\nuser: \"Please add authentication to the /api/users endpoint\"\nassistant: \"I've implemented the authentication for the /api/users endpoint. Here's the code:\"\n<commentary>\nSince a logical chunk of code has been written (authentication feature), use the code-simplifier agent to improve the code's clarity and maintainability while preserving functionality.\n</commentary>\nassistant: \"Now let me use the code-simplifier agent to refine this implementation for better clarity and maintainability\"\n</example>\n\n<example>\nContext: The assistant has just fixed a bug by adding several conditional checks.\nuser: \"Fix the null pointer exception in the data processor\"\nassistant: \"I've added the necessary null checks to prevent the exception:\"\n<commentary>\nAfter modifying code to fix a bug, use the code-simplifier agent to ensure the fix follows best practices and maintains code quality.\n</commentary>\nassistant: \"Let me refine this bug fix using the code-simplifier agent to ensure it follows our best practices\"\n</example>\n\n<example>\nContext: The assistant has just refactored a function to improve performance.\nuser: \"Optimize the data sorting algorithm for better performance\"\nassistant: \"I've optimized the sorting algorithm. Here's the updated implementation:\"\n<commentary>\nAfter completing a performance optimization task, use the code-simplifier agent to ensure the optimized code is also clear and maintainable.\n</commentary>\nassistant: \"Now I'll use the code-simplifier agent to ensure the optimized code is also clear and follows our coding standards\"\n</example>\n",
38
976
  "model": "inherit",
39
977
  "color": "magenta"
40
978
  },
41
979
  "silent-failure-hunter": {
42
980
  "name": "silent-failure-hunter",
43
- "description": "Use this agent when reviewing code changes to identify silent failures, inadequate error handling, and inappropriate fallback behavior. This agent should be invoked proactively after completing a logical chunk of work that involves error handling, catch blocks, fallback logic, or any code that could potentially suppress errors.\n\n<example>\nContext: The user has just finished implementing a new feature that fetches data from an API with fallback behavior.\nuser: \"I've added error handling to the API client. Can you review it?\"\nassistant: \"Let me use the silent-failure-hunter agent to thoroughly examine the error handling in your changes.\"\n</example>\n\n<example>\nContext: The user has created a PR with changes that include try-catch blocks.\nuser: \"Please review PR #1234\"\nassistant: \"I'll use the silent-failure-hunter agent to check for any silent failures or inadequate error handling in this PR.\"\n</example>\n\n<example>\nContext: The user has just refactored error handling code.\nuser: \"I've updated the error handling in the authentication module\"\nassistant: \"Let me proactively use the silent-failure-hunter agent to ensure the error handling changes don't introduce silent failures.\"\n</example>",
981
+ "description": "Use this agent when reviewing code changes to identify silent failures, inadequate error handling, and inappropriate fallback behavior. This agent should be invoked proactively after completing a logical chunk of work that involves error handling, catch blocks, fallback logic, or any code that could potentially suppress errors.\n\n<example>\nContext: The user has just finished implementing a new feature that fetches data from an API with fallback behavior.\nuser: \"I've added error handling to the API client. Can you review it?\"\nassistant: \"Let me use the silent-failure-hunter agent to thoroughly examine the error handling in your changes.\"\n</example>\n\n<example>\nContext: The user has created a PR with changes that include try-catch blocks.\nuser: \"Please review PR #1234\"\nassistant: \"I'll use the silent-failure-hunter agent to check for any silent failures or inadequate error handling in this PR.\"\n</example>\n\n<example>\nContext: The user has just refactored error handling code.\nuser: \"I've updated the error handling in the authentication module\"\nassistant: \"Let me proactively use the silent-failure-hunter agent to ensure the error handling changes don't introduce silent failures.\"\n</example>\n",
44
982
  "model": "inherit",
45
983
  "color": "yellow"
46
984
  },
47
985
  "skill-reviewer": {
48
986
  "name": "skill-reviewer",
49
- "description": "Use this agent when the user has created or modified a skill and needs quality review, asks to \"review my skill\", \"check skill quality\", \"improve skill description\", or wants to ensure skill follows best practices. Trigger proactively after skill creation. Examples:\n\n<example>\nContext: User just created a new skill\nuser: \"I've created a PDF processing skill\"\nassistant: \"Great! Let me review the skill quality.\"\n<commentary>\nSkill created, proactively trigger skill-reviewer to ensure it follows best practices.\n</commentary>\nassistant: \"I'll use the skill-reviewer agent to review the skill.\"\n</example>\n\n<example>\nContext: User requests skill review\nuser: \"Review my skill and tell me how to improve it\"\nassistant: \"I'll use the skill-reviewer agent to analyze the skill quality.\"\n<commentary>\nExplicit skill review request triggers the agent.\n</commentary>\n</example>\n\n<example>\nContext: User modified skill description\nuser: \"I updated the skill description, does it look good?\"\nassistant: \"I'll use the skill-reviewer agent to review the changes.\"\n<commentary>\nSkill description modified, review for triggering effectiveness.\n</commentary>\n</example>",
987
+ "description": "Use this agent when the user has created or modified a skill and needs quality review, asks to \"review my skill\", \"check skill quality\", \"improve skill description\", or wants to ensure skill follows best practices. Trigger proactively after skill creation. Examples:\n\n<example>\nContext: User just created a new skill\nuser: \"I've created a PDF processing skill\"\nassistant: \"Great! Let me review the skill quality.\"\n<commentary>\nSkill created, proactively trigger skill-reviewer to ensure it follows best practices.\n</commentary>\nassistant: \"I'll use the skill-reviewer agent to review the skill.\"\n</example>\n\n<example>\nContext: User requests skill review\nuser: \"Review my skill and tell me how to improve it\"\nassistant: \"I'll use the skill-reviewer agent to analyze the skill quality.\"\n<commentary>\nExplicit skill review request triggers the agent.\n</commentary>\n</example>\n\n<example>\nContext: User modified skill description\nuser: \"I updated the skill description, does it look good?\"\nassistant: \"I'll use the skill-reviewer agent to review the changes.\"\n<commentary>\nSkill description modified, review for triggering effectiveness.\n</commentary>\n</example>\n",
50
988
  "model": "inherit",
51
989
  "color": "cyan",
52
- "tools": "[\"Read\", \"Grep\", \"Glob\"]"
990
+ "tools": ["Read", "Grep", "Glob"]
53
991
  }
54
992
  },
55
993
  "personas": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenku/agent-kit",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Agent kit (skills, agents, personas) for the Zenku ecosystem — works with Claude Code, OpenCode, and Codex CLI.",
5
5
  "files": [
6
6
  "skills",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file