cue-ai 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +926 -62
- package/package.json +6 -5
- package/profiles/README.md +12 -12
- package/profiles/SCHEMA.md +31 -3
- package/profiles/_cache/README.md +1 -1
- package/profiles/_types.ts +26 -1
- package/profiles/affiliate/profile.yaml +67 -0
- package/profiles/backend/profile.yaml +1 -0
- package/profiles/career/profile.yaml +13 -0
- package/profiles/core/profile.yaml +76 -9
- package/profiles/creative-media/README.md +1 -1
- package/profiles/cybersecurity/profile.yaml +779 -756
- package/profiles/ecc/profile.yaml +39 -0
- package/profiles/event-design/profile.yaml +10 -0
- package/profiles/fleet-control/README.md +1 -1
- package/profiles/frontend/profile.yaml +14 -0
- package/profiles/full/README.md +1 -1
- package/profiles/go-api/profile.yaml +9 -0
- package/profiles/marketing/profile.yaml +15 -1
- package/profiles/nextjs/profile.yaml +8 -0
- package/profiles/predict-everything/profile.yaml +9 -0
- package/profiles/python-api/profile.yaml +8 -0
- package/profiles/rust/profile.yaml +27 -0
- package/profiles/rust-cli/profile.yaml +14 -0
- package/profiles/rust-core/profile.yaml +35 -0
- package/profiles/rust-embedded/profile.yaml +11 -0
- package/profiles/rust-ffi/profile.yaml +13 -0
- package/profiles/rust-game/profile.yaml +11 -0
- package/profiles/rust-wasm/profile.yaml +11 -0
- package/profiles/rust-web/profile.yaml +17 -0
- package/profiles/schema.json +44 -4
- package/profiles/trendradar/profile.yaml +11 -0
- package/profiles/video/profile.yaml +10 -0
- package/resources/mcps/README.md +39 -164
- package/resources/mcps/configs/claude.sanitized.json +55 -0
- package/resources/mcps/configs/claude_runtime.sanitized.json +62 -1
- package/resources/skills/README.md +70 -113
- package/resources/skills/skills/design/headless-gif-demo/SKILL.md +57 -12
- package/resources/skills/skills/event-design/wedding-invitations/SKILL.md +43 -0
- package/resources/skills/skills/meta/acpx/SKILL.md +78 -0
- package/resources/skills/skills/meta/awesome-list-submit/SKILL.md +463 -0
- package/resources/skills/skills/meta/cue-usage/SKILL.md +24 -0
- package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +24 -0
- package/resources/skills/skills/predict-everything/mirofish/SKILL.md +75 -0
- package/resources/skills/skills/research/trendradar/SKILL.md +88 -0
- package/resources/skills/skills/rust/async-tokio/SKILL.md +27 -0
- package/resources/skills/skills/rust/axum-api/SKILL.md +38 -0
- package/resources/skills/skills/rust/bacon-watch/SKILL.md +24 -0
- package/resources/skills/skills/rust/bevy/SKILL.md +43 -0
- package/resources/skills/skills/rust/bindgen/SKILL.md +39 -0
- package/resources/skills/skills/rust/cargo-audit/SKILL.md +26 -0
- package/resources/skills/skills/rust/cargo-basics/SKILL.md +28 -0
- package/resources/skills/skills/rust/cargo-chef/SKILL.md +43 -0
- package/resources/skills/skills/rust/cargo-edit/SKILL.md +26 -0
- package/resources/skills/skills/rust/cargo-expand/SKILL.md +24 -0
- package/resources/skills/skills/rust/cargo-flamegraph/SKILL.md +26 -0
- package/resources/skills/skills/rust/cargo-fuzz/SKILL.md +34 -0
- package/resources/skills/skills/rust/cargo-hack/SKILL.md +26 -0
- package/resources/skills/skills/rust/cargo-msrv/SKILL.md +30 -0
- package/resources/skills/skills/rust/cargo-mutants/SKILL.md +26 -0
- package/resources/skills/skills/rust/cargo-nextest/SKILL.md +24 -0
- package/resources/skills/skills/rust/cargo-readme/SKILL.md +36 -0
- package/resources/skills/skills/rust/cbindgen/SKILL.md +41 -0
- package/resources/skills/skills/rust/chisel-tool/SKILL.md +32 -0
- package/resources/skills/skills/rust/clap-cli/SKILL.md +44 -0
- package/resources/skills/skills/rust/clippy-and-fmt/SKILL.md +25 -0
- package/resources/skills/skills/rust/cross-compile/SKILL.md +26 -0
- package/resources/skills/skills/rust/embedded/SKILL.md +33 -0
- package/resources/skills/skills/rust/error-handling/SKILL.md +32 -0
- package/resources/skills/skills/rust/just-runner/SKILL.md +26 -0
- package/resources/skills/skills/rust/mdbook/SKILL.md +25 -0
- package/resources/skills/skills/rust/napi-rs/SKILL.md +32 -0
- package/resources/skills/skills/rust/no-std/SKILL.md +42 -0
- package/resources/skills/skills/rust/property-testing/SKILL.md +35 -0
- package/resources/skills/skills/rust/pyo3/SKILL.md +40 -0
- package/resources/skills/skills/rust/ratatui-tui/SKILL.md +36 -0
- package/resources/skills/skills/rust/release-plz/SKILL.md +27 -0
- package/resources/skills/skills/rust/reqwest/SKILL.md +37 -0
- package/resources/skills/skills/rust/sccache/SKILL.md +28 -0
- package/resources/skills/skills/rust/serde/SKILL.md +30 -0
- package/resources/skills/skills/rust/snapshot-testing/SKILL.md +30 -0
- package/resources/skills/skills/rust/sqlx-cli/SKILL.md +33 -0
- package/resources/skills/skills/rust/tracing/SKILL.md +36 -0
- package/resources/skills/skills/rust/typos-spellcheck/SKILL.md +31 -0
- package/resources/skills/skills/rust/uniffi/SKILL.md +38 -0
- package/resources/skills/skills/rust/wasm-rust/SKILL.md +27 -0
- package/resources/skills/skills/security/agentshield/SKILL.md +119 -0
- package/src/commands/_index.ts +91 -3
- package/src/commands/ai-score.e2e.test.ts +113 -0
- package/src/commands/ai.ts +179 -0
- package/src/commands/benchmark.ts +258 -0
- package/src/commands/clean.ts +109 -0
- package/src/commands/cli.test.ts +192 -0
- package/src/commands/cli.ts +303 -0
- package/src/commands/completions.ts +4 -0
- package/src/commands/cost.ts +77 -3
- package/src/commands/current.ts +1 -1
- package/src/commands/debug.test.ts +62 -0
- package/src/commands/debug.ts +212 -0
- package/src/commands/diff.ts +105 -0
- package/src/commands/discover.scoring.test.ts +216 -0
- package/src/commands/discover.test.ts +145 -0
- package/src/commands/discover.ts +2618 -0
- package/src/commands/eval-behavior.test.ts +56 -0
- package/src/commands/eval-behavior.ts +189 -0
- package/src/commands/eval.test.ts +102 -0
- package/src/commands/eval.ts +348 -0
- package/src/commands/evolve.ts +291 -0
- package/src/commands/failures.test.ts +78 -0
- package/src/commands/failures.ts +393 -0
- package/src/commands/feedback.ts +219 -0
- package/src/commands/import-profile.ts +28 -5
- package/src/commands/init.ts +26 -0
- package/src/commands/launch.e2e.test.ts +127 -0
- package/src/commands/launch.ts +193 -11
- package/src/commands/lint-skill.ts +157 -0
- package/src/commands/lock.ts +21 -1
- package/src/commands/marketplace.ts +850 -4
- package/src/commands/migrate.ts +100 -0
- package/src/commands/new.ts +1 -1
- package/src/commands/optimizer.ts +94 -30
- package/src/commands/profile-draft-skill.test.ts +96 -0
- package/src/commands/profile-draft-skill.ts +287 -0
- package/src/commands/profile-evolve.test.ts +126 -0
- package/src/commands/profile-evolve.ts +0 -0
- package/src/commands/profile-suggest.ts +223 -0
- package/src/commands/profile.ts +41 -0
- package/src/commands/quick.ts +2 -17
- package/src/commands/replay-whatif.ts +142 -0
- package/src/commands/replay.ts +6 -0
- package/src/commands/scan.ts +2 -2
- package/src/commands/score.ts +304 -0
- package/src/commands/security.ts +47 -7
- package/src/commands/share.ts +1 -1
- package/src/commands/shell.ts +17 -0
- package/src/commands/skills.ts +2 -2
- package/src/commands/sources.ts +2 -2
- package/src/commands/status.ts +14 -0
- package/src/commands/submit-profile.ts +262 -0
- package/src/commands/suggest.ts +170 -0
- package/src/commands/upgrade.ts +154 -0
- package/src/commands/use.ts +35 -5
- package/src/commands/validate.ts +1 -1
- package/src/index.ts +24 -1
- package/src/lib/analytics.ts +121 -3
- package/src/lib/auto-detect.ts +38 -5
- package/src/lib/cache.ts +47 -6
- package/src/lib/claude-binary.ts +39 -0
- package/src/lib/cli-extractor.ts +77 -0
- package/src/lib/cluster-skills.test.ts +268 -0
- package/src/lib/cluster-skills.ts +290 -0
- package/src/lib/credentials-sync.test.ts +208 -0
- package/src/lib/credentials-sync.ts +205 -0
- package/src/lib/mcp-materializer.test.ts +1 -1
- package/src/lib/persona-playbooks.test.ts +111 -0
- package/src/lib/pr-poster.test.ts +243 -0
- package/src/lib/pr-poster.ts +285 -0
- package/src/lib/pr-throttle.test.ts +148 -0
- package/src/lib/pr-throttle.ts +209 -0
- package/src/lib/profile-generator.test.ts +1 -1
- package/src/lib/profile-generator.ts +2 -2
- package/src/lib/profile-linter.test.ts +6 -3
- package/src/lib/profile-linter.ts +71 -8
- package/src/lib/profile-loader.test.ts +1 -1
- package/src/lib/profile-loader.ts +16 -0
- package/src/lib/resolver-local.test.ts +1 -1
- package/src/lib/resolver-npx.test.ts +76 -1
- package/src/lib/resolver-npx.ts +35 -3
- package/src/lib/resolver-plugins.test.ts +1 -1
- package/src/lib/runtime-materializer.test.ts +213 -18
- package/src/lib/runtime-materializer.ts +364 -53
- package/src/lib/scan-plugins.test.ts +1 -1
- package/src/lib/skill-linter.test.ts +174 -0
- package/src/lib/skill-linter.ts +507 -0
- package/src/lib/skill-subset.test.ts +95 -0
- package/src/lib/skill-subset.ts +166 -0
- package/src/lib/star-prompt.ts +11 -1
- package/src/lib/uvx-installer.test.ts +229 -0
- package/src/lib/uvx-installer.ts +278 -0
|
@@ -13,6 +13,61 @@
|
|
|
13
13
|
},
|
|
14
14
|
"cue-tty-watch": {
|
|
15
15
|
"command": "/home/deadpool/Documents/cue/resources/mcps/cue-tty-watch/bin/cue-tty-watch"
|
|
16
|
+
},
|
|
17
|
+
"agentshield": {
|
|
18
|
+
"command": "/home/deadpool/Documents/cue/resources/mcps/agentshield/bin/agentshield"
|
|
19
|
+
},
|
|
20
|
+
"x-api": {
|
|
21
|
+
"command": "npm",
|
|
22
|
+
"args": [
|
|
23
|
+
"start"
|
|
24
|
+
],
|
|
25
|
+
"cwd": "${HOME}/.x-api-mcp",
|
|
26
|
+
"env": {
|
|
27
|
+
"X_API_KEY": "${X_API_KEY}",
|
|
28
|
+
"X_API_SECRET": "${X_API_SECRET}",
|
|
29
|
+
"X_BEARER_TOKEN": "${X_BEARER_TOKEN}",
|
|
30
|
+
"X_ACCESS_TOKEN": "${X_ACCESS_TOKEN}",
|
|
31
|
+
"X_ACCESS_TOKEN_SECRET": "${X_ACCESS_TOKEN_SECRET}"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"trendradar": {
|
|
35
|
+
"command": "uvx",
|
|
36
|
+
"args": [
|
|
37
|
+
"--from",
|
|
38
|
+
"git+https://github.com/sansan0/TrendRadar.git",
|
|
39
|
+
"trendradar-mcp"
|
|
40
|
+
],
|
|
41
|
+
"env": {}
|
|
42
|
+
},
|
|
43
|
+
"mapi-devdocs": {
|
|
44
|
+
"type": "http",
|
|
45
|
+
"url": "https://merchantapi.googleapis.com/devdocs/mcp/"
|
|
46
|
+
},
|
|
47
|
+
"mitre-attack": {
|
|
48
|
+
"command": "/home/deadpool/.local/bin/mitre-attack-mcp",
|
|
49
|
+
"args": [],
|
|
50
|
+
"env": {}
|
|
51
|
+
},
|
|
52
|
+
"cve-search": {
|
|
53
|
+
"command": "uv",
|
|
54
|
+
"args": [
|
|
55
|
+
"--directory",
|
|
56
|
+
"/home/deadpool/.config/cue/cache/cve-search_mcp",
|
|
57
|
+
"run",
|
|
58
|
+
"main.py"
|
|
59
|
+
],
|
|
60
|
+
"env": {}
|
|
61
|
+
},
|
|
62
|
+
"shodan": {
|
|
63
|
+
"command": "npx",
|
|
64
|
+
"args": [
|
|
65
|
+
"-y",
|
|
66
|
+
"@burtthecoder/mcp-shodan"
|
|
67
|
+
],
|
|
68
|
+
"env": {
|
|
69
|
+
"SHODAN_API_KEY": "${SHODAN_API_KEY}"
|
|
70
|
+
}
|
|
16
71
|
}
|
|
17
72
|
},
|
|
18
73
|
"source": "claude",
|
|
@@ -113,8 +113,69 @@
|
|
|
113
113
|
},
|
|
114
114
|
"cue-tty-watch": {
|
|
115
115
|
"command": "/home/deadpool/Documents/cue/resources/mcps/cue-tty-watch/bin/cue-tty-watch"
|
|
116
|
+
},
|
|
117
|
+
"x-api": {
|
|
118
|
+
"command": "npm",
|
|
119
|
+
"args": [
|
|
120
|
+
"start"
|
|
121
|
+
],
|
|
122
|
+
"cwd": "${HOME}/.x-api-mcp",
|
|
123
|
+
"env": {
|
|
124
|
+
"X_API_KEY": "${X_API_KEY}",
|
|
125
|
+
"X_API_SECRET": "${X_API_SECRET}",
|
|
126
|
+
"X_BEARER_TOKEN": "${X_BEARER_TOKEN}",
|
|
127
|
+
"X_ACCESS_TOKEN": "${X_ACCESS_TOKEN}",
|
|
128
|
+
"X_ACCESS_TOKEN_SECRET": "${X_ACCESS_TOKEN_SECRET}"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"reddit": {
|
|
132
|
+
"command": "npx",
|
|
133
|
+
"args": [
|
|
134
|
+
"reddit-mcp-server"
|
|
135
|
+
],
|
|
136
|
+
"env": {
|
|
137
|
+
"REDDIT_CLIENT_ID": "${REDDIT_CLIENT_ID}",
|
|
138
|
+
"REDDIT_CLIENT_SECRET": "${REDDIT_CLIENT_SECRET}",
|
|
139
|
+
"REDDIT_USERNAME": "${REDDIT_USERNAME}",
|
|
140
|
+
"REDDIT_PASSWORD": "${REDDIT_PASSWORD}",
|
|
141
|
+
"REDDIT_SAFE_MODE": "standard",
|
|
142
|
+
"REDDIT_AUTH_MODE": "auto"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"google-ads-mcp": {
|
|
146
|
+
"command": "pipx",
|
|
147
|
+
"args": [
|
|
148
|
+
"run",
|
|
149
|
+
"--spec",
|
|
150
|
+
"git+https://github.com/googleads/google-ads-mcp.git",
|
|
151
|
+
"google-ads-mcp"
|
|
152
|
+
],
|
|
153
|
+
"env": {
|
|
154
|
+
"GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}",
|
|
155
|
+
"GOOGLE_PROJECT_ID": "${GOOGLE_PROJECT_ID}",
|
|
156
|
+
"GOOGLE_ADS_DEVELOPER_TOKEN": "${GOOGLE_ADS_DEVELOPER_TOKEN}"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"meta-ads": {
|
|
160
|
+
"command": "npx",
|
|
161
|
+
"args": [
|
|
162
|
+
"-y",
|
|
163
|
+
"meta-ads-mcp@latest"
|
|
164
|
+
],
|
|
165
|
+
"env": {
|
|
166
|
+
"META_ACCESS_TOKEN": "${META_ACCESS_TOKEN}",
|
|
167
|
+
"META_AD_ACCOUNT_ID": "${META_AD_ACCOUNT_ID}"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"mapi-devdocs": {
|
|
171
|
+
"command": "npx",
|
|
172
|
+
"args": [
|
|
173
|
+
"-y",
|
|
174
|
+
"mcp-remote",
|
|
175
|
+
"https://merchantapi.googleapis.com/devdocs/mcp"
|
|
176
|
+
]
|
|
116
177
|
}
|
|
117
178
|
},
|
|
118
179
|
"source": "claude_runtime",
|
|
119
180
|
"source_path": "~/.claude.json"
|
|
120
|
-
}
|
|
181
|
+
}
|
|
@@ -1,135 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
┌───────────────────────────────────────────────────────────────┐
|
|
3
|
-
│ │
|
|
4
|
-
│ r e c o d e e e / s k i l l s │
|
|
5
|
-
│ ───────────────────────────────── │
|
|
6
|
-
│ 167 skills · 20 categories · one source of truth │
|
|
7
|
-
│ │
|
|
8
|
-
└───────────────────────────────────────────────────────────────┘
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
> **My laptop's current skill set.** This is the live snapshot of every agent
|
|
12
|
-
> skill installed on my machine — the same folders that Claude Code and Codex
|
|
13
|
-
> read at runtime. The repo is the source; my `~/.claude/skills` and
|
|
14
|
-
> `~/.codex/skills` are just symlinks back here.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Why this exists
|
|
1
|
+
# cue/skills — Skill Library
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
edit it, copy it to a new project, forget where the original lived. This repo
|
|
22
|
-
is the one place that's allowed to be authoritative. If a skill isn't here, it
|
|
23
|
-
isn't real on this laptop.
|
|
3
|
+
> 127 skills across 21 categories. The source of truth for all local skills used by [cue](https://github.com/opencue/cue) profiles.
|
|
24
4
|
|
|
25
|
-
|
|
26
|
-
symlink. Edit a file under `skills/` and every agent picks it up on next load —
|
|
27
|
-
no copy, no resync, no drift.
|
|
28
|
-
|
|
29
|
-
---
|
|
5
|
+
## What's here
|
|
30
6
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
```text
|
|
7
|
+
```
|
|
34
8
|
skills/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
9
|
+
├── skills/ The skill library
|
|
10
|
+
│ ├── browser/ Playwright, screenshots
|
|
11
|
+
│ ├── caveman/ Terse mode, commits, compression
|
|
12
|
+
│ ├── colony/ Multi-agent coordination
|
|
13
|
+
│ ├── deployment/ Coolify, Supabase, pnpm
|
|
14
|
+
│ ├── design/ UI/UX, branding, SVG, Remotion
|
|
15
|
+
│ ├── github/ GitHub CLI, CI fixes, auth
|
|
16
|
+
│ ├── higgsfield/ AI image/video generation
|
|
17
|
+
│ ├── hostinger/ DNS, domains, VPS
|
|
18
|
+
│ ├── medusa/ Medusa v2 ecommerce
|
|
19
|
+
│ ├── meta/ Profile management, memory, helpers
|
|
20
|
+
│ ├── nvidia/ cuOpt, GPU optimization
|
|
21
|
+
│ ├── obsidian/ Vault, markdown, canvas
|
|
22
|
+
│ ├── orchestration/ Fleet, pipelines, workers
|
|
23
|
+
│ ├── research/ Search, papers, keywords
|
|
24
|
+
│ ├── review/ Code review, security, testing
|
|
25
|
+
│ ├── secrets/ Envoult, credential management
|
|
26
|
+
│ ├── stripe/ Payments, webhooks
|
|
27
|
+
│ └── ...
|
|
28
|
+
├── scripts/ Install, sync, lint scripts
|
|
29
|
+
├── plugins/ Claude Code plugin definitions
|
|
30
|
+
└── catalog/ Auto-generated skill index
|
|
50
31
|
```
|
|
51
32
|
|
|
52
|
-
|
|
33
|
+
## Skill format
|
|
53
34
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
| Folder | Count | What lives here |
|
|
57
|
-
| ----------------- | ----: | ---------------------------------------------------------------- |
|
|
58
|
-
| `ai/` | 3 | Anthropic SDK integration, prompt caching, Claude migration |
|
|
59
|
-
| `automation/` | 2 | Task scheduling, cron jobs, recurring automation |
|
|
60
|
-
| `caveman/` | 5 | Token compression — caveman, caveman-commit, caveman-review, … |
|
|
61
|
-
| `colony/` | 2 | Colony coordination, prompts, and handoff surfaces |
|
|
62
|
-
| `content/` | 8 | Technical writing, copywriting, theming, docs, PDF, browser work |
|
|
63
|
-
| `deployment/` | 3 | Coolify, pnpm, Supabase |
|
|
64
|
-
| `design/` | 19 | UI, UX, visual design, image-direction, brandkit, mockups |
|
|
65
|
-
| `github/` | 6 | github CLI, gh-fix-ci, gitguardex, worktrees, branch finish |
|
|
66
|
-
| `growth/` | 12 | CRO, analytics, retention, referrals, free-tool growth |
|
|
67
|
-
| `higgsfield/` | 4 | Higgsfield AI — generate, soul-id, photoshoot, marketplace |
|
|
68
|
-
| `hostinger/` | 4 | Hostinger domains, DNS, hosting, VPS |
|
|
69
|
-
| `marketing/` | 18 | SEO, ads, email, launch, PMM, pricing, community, RevOps-adjacent |
|
|
70
|
-
| `medusa/` | 14 | Medusa commerce, storefronts, db migrations, woocommerce import |
|
|
71
|
-
| `meta/` | 25 | Agent meta, config, workflow, plans, doctor, hud, ask-*, trace |
|
|
72
|
-
| `obsidian/` | 4 | Obsidian vault tooling and JSON canvas |
|
|
73
|
-
| `orchestration/` | 13 | autopilot, ralph, team, subagents, ultraqa, ultrawork, pipeline |
|
|
74
|
-
| `private/` | 1 | Host- / account-specific skills (no secrets in repo) |
|
|
75
|
-
| `research/` | 11 | autoresearch, interviews, customer/competitor research, keywords |
|
|
76
|
-
| `review/` | 11 | code/security/architecture review, debugging, TDD, verification |
|
|
77
|
-
| `stripe/` | 2 | Stripe integration and webhooks |
|
|
78
|
-
|
|
79
|
-
> Skill leaf names are unique repo-wide so symlink installs never collide.
|
|
35
|
+
Each skill is a directory with a `SKILL.md` file:
|
|
80
36
|
|
|
37
|
+
```markdown
|
|
81
38
|
---
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```sh
|
|
86
|
-
./scripts/install-local.sh
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
The installer walks every category for `SKILL.md` files and links each parent
|
|
90
|
-
folder into both:
|
|
91
|
-
|
|
92
|
-
- `~/.codex/skills/<skill-name>`
|
|
93
|
-
- `~/.claude/skills/<skill-name>`
|
|
94
|
-
|
|
95
|
-
Existing skill folders at the destination are moved to timestamped backups
|
|
96
|
-
before linking — nothing is overwritten silently.
|
|
97
|
-
|
|
98
|
-
`docs/installed-sources.tsv` records where each imported skill came from at
|
|
99
|
-
last import and whether duplicates were skipped.
|
|
100
|
-
|
|
39
|
+
description: "When user says X, do Y"
|
|
40
|
+
allowed-tools: ["tool_name"]
|
|
101
41
|
---
|
|
102
42
|
|
|
103
|
-
|
|
43
|
+
# Skill Name
|
|
104
44
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
3. Re-run `./scripts/install-local.sh`. The installer is idempotent.
|
|
45
|
+
Instructions for the model...
|
|
46
|
+
```
|
|
108
47
|
|
|
109
|
-
|
|
110
|
-
anymore. Better to have `deployment/coolify/` with one entry than a special
|
|
111
|
-
case.
|
|
48
|
+
The `description` frontmatter is what the LLM matches against to decide when to use the skill.
|
|
112
49
|
|
|
113
|
-
|
|
50
|
+
## How cue uses this
|
|
114
51
|
|
|
115
|
-
|
|
52
|
+
Profiles reference skills by `category/slug`:
|
|
116
53
|
|
|
117
|
-
|
|
54
|
+
```yaml
|
|
55
|
+
# profiles/backend/profile.yaml
|
|
56
|
+
skills:
|
|
57
|
+
local:
|
|
58
|
+
- review/code-review
|
|
59
|
+
- deployment/coolify
|
|
60
|
+
- github/gh-fix-ci
|
|
61
|
+
```
|
|
118
62
|
|
|
119
|
-
|
|
120
|
-
account-specific surfaces. Secrets and connection details (IPs, usernames,
|
|
121
|
-
tokens) **must** come from environment variables or `~/.ssh/config` aliases —
|
|
122
|
-
never from committed files. The bundled scripts under `private/myvps/` enforce
|
|
123
|
-
this: they fail fast if `SUPA_SCHEMA_SSH_TARGET` isn't set.
|
|
63
|
+
At launch, cue symlinks these into the runtime's `skills/` directory.
|
|
124
64
|
|
|
125
|
-
|
|
65
|
+
## Adding a skill
|
|
126
66
|
|
|
127
|
-
```
|
|
128
|
-
|
|
67
|
+
```bash
|
|
68
|
+
cue skills-new my-skill # scaffold
|
|
69
|
+
# edit skills/<category>/my-skill/SKILL.md
|
|
70
|
+
cue skills-lint my-skill # validate
|
|
71
|
+
cue skills-test my-skill # test
|
|
129
72
|
```
|
|
130
73
|
|
|
131
|
-
|
|
74
|
+
Or manually: create `skills/<category>/<slug>/SKILL.md` with the frontmatter format above.
|
|
132
75
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
76
|
+
## Categories
|
|
77
|
+
|
|
78
|
+
| Category | Skills | Domain |
|
|
79
|
+
|----------|--------|--------|
|
|
80
|
+
| `browser` | 1 | Playwright, screenshots |
|
|
81
|
+
| `caveman` | 5 | Terse mode, commits |
|
|
82
|
+
| `design` | 16 | UI/UX, branding, SVG |
|
|
83
|
+
| `medusa` | 14 | Ecommerce platform |
|
|
84
|
+
| `meta` | 18 | Profile helpers, memory |
|
|
85
|
+
| `nvidia` | 12 | GPU optimization |
|
|
86
|
+
| `review` | 5 | Code quality, security |
|
|
87
|
+
| `research` | 8 | Search, papers |
|
|
88
|
+
|
|
89
|
+
## Related
|
|
90
|
+
|
|
91
|
+
- [cue](https://github.com/opencue/cue) — the profile manager
|
|
92
|
+
- [resources/mcps](../mcps/) — MCP server registry
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "When user asks to record a high-quality CLI demo GIF that needs Kitty graphics protocol (real PNG icons inline) — use this headless
|
|
3
|
-
requires_mcps: []
|
|
4
|
-
allowed-tools: Bash(Xvfb:*), Bash(kitty:*), Bash(tmux:*), Bash(xdotool:*), Bash(ffmpeg:*), Bash(/usr/bin/ffmpeg:*), Read(*), Write(*)
|
|
2
|
+
description: "When user asks to record a high-quality CLI demo GIF that needs Kitty graphics protocol (real PNG icons inline) — use this headless cage/Wayland + Kitty + tmux + ffmpeg pipeline instead of vhs/asciinema which don't speak the Kitty protocol. Includes auto-redaction of moving text via tesseract OCR."
|
|
3
|
+
requires_mcps: [cue-tty-watch]
|
|
4
|
+
allowed-tools: Bash(cage:*), Bash(weston:*), Bash(Xvfb:*), Bash(kitty:*), Bash(tmux:*), Bash(xdotool:*), Bash(wf-recorder:*), Bash(grim:*), Bash(ffmpeg:*), Bash(/usr/bin/ffmpeg:*), Bash(tesseract:*), Bash(convert:*), Read(*), Write(*), mcp__cue-tty-watch__*
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Headless GIF demos with
|
|
7
|
+
# Headless GIF demos with Cage (Wayland) + Kitty + tmux + auto-redaction
|
|
8
|
+
|
|
9
|
+
> Updated pipeline: prefer **cage** (headless wlroots compositor) over Xvfb when on a Wayland host.
|
|
10
|
+
> Kitty graphics protocol works through wf-recorder → real brand-icon PNGs render in the GIF.
|
|
11
|
+
> Tesseract OCR + `redact_video` MCP tool handles moving-text redaction automatically.
|
|
8
12
|
|
|
9
13
|
When you need a demo GIF of a CLI tool that uses **Kitty graphics protocol** (e.g. cue's brand-logo PNGs in `cue optimizer`), `vhs` and `asciinema` won't work — they render in `ttyd` which doesn't speak the protocol. Logos show as garbled placeholder boxes or fall back to emoji.
|
|
10
14
|
|
|
@@ -20,15 +24,19 @@ This skill captures the working pipeline: spin up a virtual X display, run real
|
|
|
20
24
|
|
|
21
25
|
## Required tools
|
|
22
26
|
|
|
23
|
-
| Tool |
|
|
27
|
+
| Tool | Purpose | Install |
|
|
24
28
|
|---|---|---|
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `kitty` |
|
|
29
|
-
| `tmux` |
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
| `cage` | Headless wlroots compositor (preferred over weston — speaks `wlr-screencopy`) | `sudo apt install cage` |
|
|
30
|
+
| `wf-recorder` | Wayland screen capture (needs wlroots compositor) | `sudo apt install wf-recorder` |
|
|
31
|
+
| `grim` | Wayland screenshot (for preflight checks) | `sudo apt install grim` |
|
|
32
|
+
| `kitty` | Terminal with graphics protocol — renders brand PNGs inline | already there |
|
|
33
|
+
| `tmux` | Drives the demo via `send-keys` (works on any display protocol) | already there |
|
|
34
|
+
| `/usr/bin/ffmpeg` (apt) | Used to convert mp4→gif. Nix's `ffmpeg` lacks `x11grab`/`palettegen` features sometimes — apt build is safer. | `sudo apt install ffmpeg` |
|
|
35
|
+
| `tesseract` | OCR for auto-redaction. Returns bounding boxes per word/line. | `sudo apt install tesseract-ocr tesseract-ocr-eng` |
|
|
36
|
+
| `ollama` + `moondream` | Optional: fast vision Q&A ("is the splash visible yet?") | `ollama pull moondream` |
|
|
37
|
+
| `opencv-python`, `scenedetect`, `numpy`, `pillow` | Vision scripting in `~/.venvs/video` (or similar) | `pip install opencv-python-headless scenedetect numpy pillow` |
|
|
38
|
+
|
|
39
|
+
**Fallback (X11-only systems):** `Xvfb` + `ffmpeg x11grab` + `xdotool`. Same shape, X-only verbs.
|
|
32
40
|
|
|
33
41
|
## The pipeline
|
|
34
42
|
|
|
@@ -166,3 +174,40 @@ Pathological capture (means kitty didn't render to Xvfb):
|
|
|
166
174
|
3. Test-run; check the preflight screenshot is non-empty
|
|
167
175
|
4. Iterate on timing — pickers and Claude Code splash both need 2–3 s headroom
|
|
168
176
|
5. Commit both the script and the resulting GIF — re-running gives byte-identical output for a fixed tape
|
|
177
|
+
|
|
178
|
+
## Auto-redaction with the cue-tty-watch MCP
|
|
179
|
+
|
|
180
|
+
When the demo captures sensitive moving text (email in a splash card that scrolls as content is added below), don't fight per-frame `drawbox` coordinates by hand. The `cue-tty-watch` MCP (autoloaded on every cue profile via `core` inheritance) wraps tesseract + scenedetect + moondream so the agent can do this automatically:
|
|
181
|
+
|
|
182
|
+
| MCP tool | Backed by | Use when |
|
|
183
|
+
|---|---|---|
|
|
184
|
+
| `screenshot(display)` | `xwd` / `grim` | "What's on the headless display right now?" |
|
|
185
|
+
| `tmux_pane(socket, session)` | `tmux capture-pane -p` | "What text did the inner shell render?" |
|
|
186
|
+
| `send_keys_tmux(...)` | `tmux send-keys` | Drive the demo non-interactively |
|
|
187
|
+
| `find_text(image, query)` | `tesseract` | Get `{x,y,w,h}` for every occurrence of a substring in a frame |
|
|
188
|
+
| `ask_about_image(image, q)` | `ollama` + `moondream` | Fast yes/no-style vision Q&A ("did the splash render?") |
|
|
189
|
+
| `detect_scenes(video)` | `scenedetect` (`ContentDetector`) | Find scene-cut timestamps automatically |
|
|
190
|
+
| **`redact_video(in, out, query)`** | All of the above | **One call**: walks the video, OCRs each sampled frame, finds `query`, builds per-frame drawbox+drawtext filter, encodes the output |
|
|
191
|
+
|
|
192
|
+
`redact_video` is the killer. The "email scrolls up as Claude responds and my fixed drawbox is in the wrong place" problem reduces to:
|
|
193
|
+
|
|
194
|
+
```jsonc
|
|
195
|
+
// MCP call
|
|
196
|
+
{
|
|
197
|
+
"tool": "redact_video",
|
|
198
|
+
"input_path": "/tmp/cue-demo-raw.mp4",
|
|
199
|
+
"output_path": "/tmp/cue-demo-redacted.mp4",
|
|
200
|
+
"query": "webubusiness",
|
|
201
|
+
"label": "[ account info · redacted ]",
|
|
202
|
+
"samples_per_second": 4,
|
|
203
|
+
"pad": 6
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Then convert the redacted mp4 → gif with the standard 2-pass palette pipeline.
|
|
208
|
+
|
|
209
|
+
Why this beats the manual approach:
|
|
210
|
+
- No more 3-phase time-gated drawboxes that leak at transitions
|
|
211
|
+
- Adapts automatically to any future demo (different fonts, scroll speeds, splash layouts)
|
|
212
|
+
- Handles boundaries cleanly — text disappears one frame, box disappears the next
|
|
213
|
+
- Works for ANY moving sensitive text, not just the email row
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wedding-invitations
|
|
3
|
+
description: Use when designing a wedding invitation, save-the-date, or RSVP card from a conversation — bespoke HTML rendered to a print-ready PNG, any language, any aesthetic, fully local. Pointer to upstream wyx-sg/wedding-invitation-skill.
|
|
4
|
+
allowed-tools: Bash(chromium:*), Bash(google-chrome:*), Bash(microsoft-edge:*), Bash(node:*), Bash(git:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Wedding Invitations — bespoke, local, multilingual
|
|
8
|
+
|
|
9
|
+
[`wyx-sg/wedding-invitation-skill`](https://github.com/wyx-sg/wedding-invitation-skill) — designs a one-off wedding invitation from a conversation. Outputs a print-ready PNG (1080×1440 portrait or 1080×1920 9:16 poster). Renders locally via a headless Chromium browser; no uploads, no cloud, no telemetry.
|
|
10
|
+
|
|
11
|
+
## When to use
|
|
12
|
+
- "Help me make a wedding invitation"
|
|
13
|
+
- "Design a save-the-date in [language]"
|
|
14
|
+
- Save-the-dates, RSVP cards, programs, menus, place cards — anything the same HTML→PNG pipeline can produce
|
|
15
|
+
- Multilingual collateral (English, Chinese, Spanish, Japanese, Korean, or any combination)
|
|
16
|
+
- Aesthetic directions covered by the upstream gallery: new-chinese, wabi-sabi, art-deco, morandi, modern-minimal, mediterranean, retro-poster, etc.
|
|
17
|
+
|
|
18
|
+
## How
|
|
19
|
+
1. **Talk** — the skill asks for language(s), names, date, venue, style preference
|
|
20
|
+
2. **Preview** — aesthetic directions shown visually in your browser
|
|
21
|
+
3. **Design** — Claude writes a unique HTML template from scratch
|
|
22
|
+
4. **Iterate** — natural-language tweaks ("bigger font" / "softer color" / "swap the photo")
|
|
23
|
+
5. **Export** — one command screenshots the HTML → high-res PNG
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
```bash
|
|
27
|
+
git clone https://github.com/wyx-sg/wedding-invitation-skill \
|
|
28
|
+
~/.claude/skills/wedding-invitation
|
|
29
|
+
```
|
|
30
|
+
Then invoke via `/wedding-invitation` in Claude Code, or just ask: "help me make a wedding invitation."
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
- `node` 18+
|
|
34
|
+
- A Chromium-family browser: `chromium`, `google-chrome`, or `microsoft-edge` (any one suffices)
|
|
35
|
+
- `git` for the install
|
|
36
|
+
|
|
37
|
+
The upstream `render.js` auto-locates whichever browser you have. On Linux: `cue cli install chromium`. On macOS: `brew install --cask chromium` (or any Chrome already installed works). On Windows: Edge ships with the OS.
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
- **Privacy**: photos, names, addresses stay on your machine. The only network requests are Google Fonts CDN loads from your browser during HTML preview — font URLs only, nothing about you.
|
|
41
|
+
- **Not a template gallery**: each invitation is designed fresh from your prompt. The 20 gallery examples are showcases, not picks.
|
|
42
|
+
- **Other agents**: the skill is Claude-Code-first but works with Codex CLI, Cursor, Aider, Gemini CLI — tell the agent "read SKILL.md and help me make a wedding invitation."
|
|
43
|
+
- **Sibling collateral**: this skill specializes in invitations but the HTML→PNG pipeline generalizes — for programs/menus/place cards, the same workflow applies; ask Claude to adapt the template.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: acpx
|
|
3
|
+
description: Delegate work to another coding agent (codex, claude, pi, openclaw, gemini, cursor, copilot, droid, etc.) over the Agent Client Protocol via acpx. Use when the user says "delegate to <agent>", "run codex", "use claude code", "have <agent> do X", "spawn a sub-agent", "agent-to-agent", mentions ACP, or when the work belongs in a different harness than the one you're in. Prefer this over PTY scraping or `tmux send-keys` to a foreign agent.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# acpx — talk to other coding agents over ACP
|
|
7
|
+
|
|
8
|
+
`acpx` is a headless CLI that lets one agent drive another over the **Agent
|
|
9
|
+
Client Protocol (ACP)**. Persistent sessions, prompt queueing, structured
|
|
10
|
+
tool-call output, soft-close lifecycle. You get a real conversation with the
|
|
11
|
+
target agent instead of scraping its terminal.
|
|
12
|
+
|
|
13
|
+
⚠️ acpx is in alpha; the surface may shift. Pin via `npm install -g acpx@latest`
|
|
14
|
+
or `npx acpx@latest` for one-offs. State lives in `~/.acpx/`.
|
|
15
|
+
|
|
16
|
+
## When to reach for it
|
|
17
|
+
|
|
18
|
+
- User asks you to **delegate** a task to another agent ("get codex to fix X",
|
|
19
|
+
"have claude refactor Y").
|
|
20
|
+
- You're in one harness and the task is clearly a better fit for another
|
|
21
|
+
(e.g. you're in Claude Code and the user wants the Codex CLI to run the
|
|
22
|
+
task because of model availability or workflow preference).
|
|
23
|
+
- The user wants **parallel work in the same repo** by different agents
|
|
24
|
+
without stomping on each other.
|
|
25
|
+
- You'd otherwise be tempted to `tmux send-keys`, `expect`, or screen-scrape
|
|
26
|
+
another agent's TUI — stop, use acpx instead.
|
|
27
|
+
|
|
28
|
+
Do **not** use acpx for the agent you're already running inside. Use your
|
|
29
|
+
native tools.
|
|
30
|
+
|
|
31
|
+
## Setup (one-time)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
npm install -g acpx@latest # global (faster)
|
|
35
|
+
# or
|
|
36
|
+
npx acpx@latest <agent> "<prompt>" # no install
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Underlying coding-agent CLIs (`codex`, `claude`, `gemini`, etc.) must already
|
|
40
|
+
be installed and authenticated separately — acpx is a client, not a bundler.
|
|
41
|
+
Run `cue cli install acpx` to install via the cli recipe registry.
|
|
42
|
+
|
|
43
|
+
## Core commands
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
acpx codex sessions new # create a session for this dir
|
|
47
|
+
acpx codex 'fix the failing tests' # run a prompt
|
|
48
|
+
acpx codex -s api 'paginate the endpoint' # parallel named session
|
|
49
|
+
acpx codex sessions list # see what's open
|
|
50
|
+
acpx codex status # is it running / idle / dead
|
|
51
|
+
acpx codex cancel # cooperative cancel (sends ACP cancel)
|
|
52
|
+
acpx codex sessions close # soft-close (keeps history)
|
|
53
|
+
acpx codex exec 'one-shot summary' # stateless, no saved session
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Substitute `codex` with `claude`, `pi`, `openclaw`, `gemini`, `cursor`,
|
|
57
|
+
`copilot`, `droid`, `iflow`, `kilocode`, `kimi`, `kiro`, `opencode`, `qoder`,
|
|
58
|
+
`qwen`, `trae`. For custom ACP servers: `acpx --agent './bin/my-acp' '...'`.
|
|
59
|
+
|
|
60
|
+
## Useful flags
|
|
61
|
+
|
|
62
|
+
- `--no-wait` — queue prompt, return immediately (fire-and-forget).
|
|
63
|
+
- `--format json` — NDJSON event stream, good for automation/jq pipelines.
|
|
64
|
+
- `--format quiet` — final assistant text only.
|
|
65
|
+
- `--approve-all` / `--approve-reads` / `--deny-all` — permission gates.
|
|
66
|
+
- `--cwd <path>` — run against a different working directory.
|
|
67
|
+
- `--timeout <s>` — wall-clock cap on a single prompt.
|
|
68
|
+
- `--ttl <s>` — keep queue owner alive between prompts (default 300).
|
|
69
|
+
- `--file <path>` / stdin — load prompt body from file or pipe.
|
|
70
|
+
|
|
71
|
+
## Full reference
|
|
72
|
+
|
|
73
|
+
- Skill source: <https://raw.githubusercontent.com/openclaw/acpx/main/skills/acpx/SKILL.md>
|
|
74
|
+
- CLI reference: <https://raw.githubusercontent.com/openclaw/acpx/main/docs/CLI.md>
|
|
75
|
+
- Built-in agent list: <https://github.com/openclaw/acpx/blob/main/agents/README.md>
|
|
76
|
+
|
|
77
|
+
When something's not obvious, read those — they're the canonical source and
|
|
78
|
+
they evolve faster than this stub.
|