Files
openclaw/docs/tools/skills-config.md

77 lines
2.5 KiB
Markdown
Raw Normal View History

2026-01-01 10:07:31 +01:00
---
summary: "Skills config schema and examples"
read_when:
- Adding or modifying skills config
- Adjusting bundled allowlist or install behavior
title: "Skills Config"
2026-01-01 10:07:31 +01:00
---
2026-01-31 21:13:13 +09:00
2026-01-01 10:07:31 +01:00
# Skills Config
2026-01-30 03:15:10 +01:00
All skills-related configuration lives under `skills` in `~/.openclaw/openclaw.json`.
2026-01-01 10:07:31 +01:00
```json5
{
skills: {
2026-01-15 04:07:29 +00:00
allowBundled: ["gemini", "peekaboo"],
2026-01-01 10:07:31 +01:00
load: {
2026-01-31 21:13:13 +09:00
extraDirs: ["~/Projects/agent-scripts/skills", "~/Projects/oss/some-skill-pack/skills"],
watch: true,
2026-01-31 21:13:13 +09:00
watchDebounceMs: 250,
2026-01-01 10:07:31 +01:00
},
install: {
preferBrew: true,
2026-01-31 21:13:13 +09:00
nodeManager: "npm", // npm | pnpm | yarn | bun (Gateway runtime still Node; bun not recommended)
2026-01-01 10:07:31 +01:00
},
entries: {
"nano-banana-pro": {
enabled: true,
apiKey: "GEMINI_KEY_HERE",
env: {
2026-01-31 21:13:13 +09:00
GEMINI_API_KEY: "GEMINI_KEY_HERE",
},
2026-01-01 10:07:31 +01:00
},
peekaboo: { enabled: true },
2026-01-31 21:13:13 +09:00
sag: { enabled: false },
},
},
2026-01-01 10:07:31 +01:00
}
```
## 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).
2026-01-01 10:07:31 +01:00
- `install.preferBrew`: prefer brew installers when available (default: true).
2026-01-01 17:57:57 +01:00
- `install.nodeManager`: node installer preference (`npm` | `pnpm` | `yarn` | `bun`, default: npm).
2026-01-13 07:58:47 +00:00
This only affects **skill installs**; the Gateway runtime should still be Node
(Bun not recommended for WhatsApp/Telegram).
2026-01-01 10:07:31 +01:00
- `entries.<skillKey>`: per-skill overrides.
Per-skill fields:
2026-01-31 21:13:13 +09:00
2026-01-01 10:07:31 +01:00
- `enabled`: set `false` to disable a skill even if its 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
2026-01-30 03:15:10 +01:00
`metadata.openclaw.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:
2026-01-31 21:13:13 +09:00
- `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.