Most skills loader/install configuration lives underDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
skills in
~/.openclaw/openclaw.json. Agent-specific skill visibility lives under
agents.defaults.skills and agents.list[].skills.
agents.defaults.imageGenerationModel
plus the core image_generate tool. skills.entries.* is only for custom or
third-party skill workflows.
If you select a specific image provider/model, also configure that provider’s
auth/API key. Typical examples: GEMINI_API_KEY or GOOGLE_API_KEY for
google/*, OPENAI_API_KEY for openai/*, and FAL_KEY for fal/*.
Examples:
- Native Nano Banana Pro-style setup:
agents.defaults.imageGenerationModel.primary: "google/gemini-3-pro-image-preview" - Native fal setup:
agents.defaults.imageGenerationModel.primary: "fal/fal-ai/flux/dev"
Agent skill allowlists
Use agent config when you want the same machine/workspace skill roots, but a different visible skill set per agent.agents.defaults.skills: shared baseline allowlist for agents that omitagents.list[].skills.- Omit
agents.defaults.skillsto leave skills unrestricted by default. agents.list[].skills: explicit final skill set for that agent; it does not merge with defaults.agents.list[].skills: []: expose no skills for that agent.
Fields
- Built-in skill roots always include
~/.openclaw/skills,~/.agents/skills,<workspace>/.agents/skills, and<workspace>/skills. allowBundled: optional allowlist for bundled skills only. When set, only bundled skills in the list are eligible (managed, agent, and workspace skills unaffected).load.extraDirs: additional skill directories to scan (lowest precedence).load.allowSymlinkTargets: trusted real target directories that symlinked skill folders may resolve into even when the symlink lives outside that target root. Use this for intentional sibling-repo layouts such as~/.agents/skills/manager -> ~/Projects/manager/skills.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).openclaw setup --node-manageris narrower and currently acceptsnpm,pnpm, orbun. Setskills.install.nodeManager: "yarn"manually if you want Yarn-backed skill installs.
install.allowUploadedArchives: allow trustedoperator.adminGateway clients to install private zip archives staged throughskills.upload.*(default: false). This only enables the uploaded-archive path; normal ClawHub installs do not require it.entries.<skillKey>: per-skill overrides.agents.defaults.skills: optional default skill allowlist inherited by agents that omitagents.list[].skills.agents.list[].skills: optional per-agent final skill allowlist; explicit lists replace inherited defaults instead of merging.
Symlinked sibling repos
By default, each skill root is a containment boundary. If a skill folder under~/.agents/skills is a symlink that resolves outside ~/.agents/skills,
OpenClaw skips it and logs Skipping escaped skill path outside its configured root.
Keep the symlink layout and allow only the trusted target root:
~/.agents/skills/manager -> ~/Projects/manager/skills is accepted after
realpath resolution. extraDirs also scans the sibling repo directly, while
allowSymlinkTargets preserves the symlinked path for existing agent-skill
layouts. Keep target entries narrow; do not point at broad roots such as ~ or
~/Projects unless every skill tree under that root is trusted.
Per-skill fields:
enabled: setfalseto 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. Supports plaintext string or SecretRef object ({ source, provider, id }).
Notes
- Keys under
entriesmap to the skill name by default. If a skill definesmetadata.openclaw.skillKey, use that key instead. - Load precedence is
<workspace>/skills→<workspace>/.agents/skills→~/.agents/skills→~/.openclaw/skills→ bundled skills →skills.load.extraDirs. - Changes to skills are picked up on the next agent turn when the watcher is enabled.
Sandboxed skills and env vars
When a session is sandboxed, skill processes run inside the configured sandbox backend. The sandbox does not inherit the hostprocess.env.
Use one of:
agents.defaults.sandbox.docker.envfor the Docker backend (or per-agentagents.list[].sandbox.docker.env).- Bake the env into your custom sandbox image or remote sandbox environment.
Related
Skills
What skills are and how they load.
Creating skills
Authoring custom skill packs.
Slash commands
Native command catalog and chat directives.
Configuration reference
Full
skills and agents.skills schema.