76 lines
2.5 KiB
Markdown
76 lines
2.5 KiB
Markdown
---
|
||
summary: "Skills config schema and examples"
|
||
read_when:
|
||
- Adding or modifying skills config
|
||
- Adjusting bundled allowlist or install behavior
|
||
---
|
||
# Skills Config
|
||
|
||
All skills-related configuration lives under `skills` in `~/.clawdbot/clawdbot.json`.
|
||
|
||
```json5
|
||
{
|
||
skills: {
|
||
allowBundled: ["gemini", "peekaboo"],
|
||
load: {
|
||
extraDirs: [
|
||
"~/Projects/agent-scripts/skills",
|
||
"~/Projects/oss/some-skill-pack/skills"
|
||
],
|
||
watch: true,
|
||
watchDebounceMs: 250
|
||
},
|
||
install: {
|
||
preferBrew: true,
|
||
nodeManager: "npm" // npm | pnpm | yarn | bun (Gateway runtime still Node; bun not recommended)
|
||
},
|
||
entries: {
|
||
"nano-banana-pro": {
|
||
enabled: true,
|
||
apiKey: "GEMINI_KEY_HERE",
|
||
env: {
|
||
GEMINI_API_KEY: "GEMINI_KEY_HERE"
|
||
}
|
||
},
|
||
peekaboo: { enabled: true },
|
||
sag: { enabled: false }
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## Fields
|
||
|
||
- `allowBundled`: optional allowlist for **bundled** skills only. When set, only
|
||
bundled skills in the list are eligible (managed/workspace skills unaffected).
|
||
- `load.extraDirs`: additional skill directories to scan (lowest precedence).
|
||
- `load.watch`: watch skill folders and refresh the skills snapshot (default: true).
|
||
- `load.watchDebounceMs`: debounce for skill watcher events in milliseconds (default: 250).
|
||
- `install.preferBrew`: prefer brew installers when available (default: true).
|
||
- `install.nodeManager`: node installer preference (`npm` | `pnpm` | `yarn` | `bun`, default: npm).
|
||
This only affects **skill installs**; the Gateway runtime should still be Node
|
||
(Bun not recommended for WhatsApp/Telegram).
|
||
- `entries.<skillKey>`: per-skill overrides.
|
||
|
||
Per-skill fields:
|
||
- `enabled`: set `false` to disable a skill even if it’s bundled/installed.
|
||
- `env`: environment variables injected for the agent run (only if not already set).
|
||
- `apiKey`: optional convenience for skills that declare a primary env var.
|
||
|
||
## Notes
|
||
|
||
- Keys under `entries` map to the skill name by default. If a skill defines
|
||
`metadata.clawdbot.skillKey`, use that key instead.
|
||
- Changes to skills are picked up on the next agent turn when the watcher is enabled.
|
||
|
||
### Sandboxed skills + env vars
|
||
|
||
When a session is **sandboxed**, skill processes run inside Docker. The sandbox
|
||
does **not** inherit the host `process.env`.
|
||
|
||
Use one of:
|
||
- `agents.defaults.sandbox.docker.env` (or per-agent `agents.list[].sandbox.docker.env`)
|
||
- bake the env into your custom sandbox image
|
||
|
||
Global `env` and `skills.entries.<skill>.env/apiKey` apply to **host** runs only.
|