Skills (Clawdbot)
Clawdbot uses AgentSkills-compatible skill folders to teach the agent how to use tools. Each skill is a directory containing aSKILL.md with YAML frontmatter and instructions. Clawdbot loads bundled skills plus optional local overrides, and filters them at load time based on environment, config, and binary presence.
Locations and precedence
Skills are loaded from three places:- Bundled skills: shipped with the install (npm package or Clawdbot.app)
- Managed/local skills:
~/.clawdbot/skills - Workspace skills:
<workspace>/skills
<workspace>/skills (highest) → ~/.clawdbot/skills → bundled skills (lowest)
Additionally, you can configure extra skill folders (lowest precedence) via
skills.load.extraDirs in ~/.clawdbot/clawdbot.json.
Format (AgentSkills + Pi-compatible)
SKILL.md must include at least:
- We follow the AgentSkills spec for layout/intent.
- The parser used by the embedded agent supports single-line frontmatter keys only.
metadatashould be a single-line JSON object.- Use
{baseDir}in instructions to reference the skill folder path. - Optional frontmatter keys:
homepage— URL surfaced as “Website” in the macOS Skills UI (also supported viametadata.clawdbot.homepage).
Gating (load-time filters)
Clawdbot filters skills at load time usingmetadata (single-line JSON):
metadata.clawdbot:
always: true— always include the skill (skip other gates).emoji— optional emoji used by the macOS Skills UI.homepage— optional URL shown as “Website” in the macOS Skills UI.os— optional list of platforms (darwin,linux,win32). If set, the skill is only eligible on those OSes.requires.bins— list; each must exist onPATH.requires.anyBins— list; at least one must exist onPATH.requires.env— list; env var must exist or be provided in config.requires.config— list ofclawdbot.jsonpaths that must be truthy.primaryEnv— env var name associated withskills.entries.<name>.apiKey.install— optional array of installer specs used by the macOS Skills UI (brew/node/go/uv).
- If multiple installers are listed, the gateway picks a single preferred option (brew when available, otherwise node).
- Node installs honor
skills.install.nodeManagerinclawdbot.json(default: npm; options: npm/pnpm/yarn/bun). - Go installs: if
gois missing andbrewis available, the gateway installs Go via Homebrew first and setsGOBINto Homebrew’sbinwhen possible.
metadata.clawdbot is present, the skill is always eligible (unless
disabled in config or blocked by skills.allowBundled for bundled skills).
Config overrides (~/.clawdbot/clawdbot.json)
Bundled/managed skills can be toggled and supplied with env values:
metadata.clawdbot.skillKey, use that key under skills.entries.
Rules:
enabled: falsedisables the skill even if it’s bundled/installed.env: injected only if the variable isn’t already set in the process.apiKey: convenience for skills that declaremetadata.clawdbot.primaryEnv.allowBundled: optional allowlist for bundled skills only. If set, only bundled skills in the list are eligible (managed/workspace skills unaffected).
Environment injection (per agent run)
When an agent run starts, Clawdbot:- Reads skill metadata.
- Applies any
skills.entries.<key>.envorskills.entries.<key>.apiKeytoprocess.env. - Builds the system prompt with eligible skills.
- Restores the original environment after the run ends.
Session snapshot (performance)
Clawdbot snapshots the eligible skills when a session starts and reuses that list for subsequent turns in the same session. Changes to skills or config take effect on the next new session.Managed skills lifecycle
Clawdbot ships a baseline set of skills as bundled skills as part of the install (npm package or Clawdbot.app).~/.clawdbot/skills exists for local
overrides (for example, pinning/patching a skill without changing the bundled
copy). Workspace skills are user-owned and override both on name conflicts.
Config reference
Seedocs/skills-config.md for the full configuration schema.