Skills
Skills
.claude/skills/*/SKILL.md
Vendor docs
frontmatter
| name | type | required | meaning | concept | |
|---|---|---|---|---|---|
| agent | string |
Which subagent type to use when `context: fork` is set.
|
docs ↗ | ||
| allowed-tools | string |
Tools Claude can use without asking permission during the turn that invokes this skill. The grant clears when you send your next message. Accepts a space- or comma-separated string, or a YAML list. See Pre-approve tools for a skill.
|
docs ↗ | ||
| argument-hint | string |
Hint shown during autocomplete to indicate expected arguments. Example: `[issue-number]` or `[filename] [format]`.
|
docs ↗ | ||
| arguments | string |
Named positional arguments for `$name` substitution in the skill content. Accepts a space-separated string or a YAML list. Names map to argument positions in order.
|
docs ↗ | ||
| background | string |
Only applies with `context: fork`. Set to `false` to wait for the forked subagent's result in the turn that invoked the skill, instead of running it in the background. Default: `true`. Requires Claude Code v2.1.218 or later.
|
docs ↗ | ||
| compatibility | string |
Environment requirements for the skill, such as intended products or system prerequisites, as defined by the Agent Skills spec; see Using skill frontmatter outside Claude Code. Accepts a string of up to 500 characters. Claude Code accepts the field but doesn't act on it.
|
docs ↗ | ||
| context | string |
Set to `fork` to run in a forked subagent context. See Run skills in a subagent.
|
docs ↗ | ||
| description | string |
What the skill does and when to use it. Claude uses this to decide when to apply the skill. If omitted, uses the first paragraph of markdown content. Put the key use case first: the combined `description` and `when_to_use` text is truncated at 1,536 characters in the skill listing to reduce context usage.
|
docs ↗ | ||
| disable-model-invocation | string |
Set to `true` to prevent Claude from automatically loading this skill. Use for workflows you want to trigger manually with `/name`. Also prevents the skill from being preloaded into subagents. As of v2.1.196, also prevents the skill from running when a scheduled task fires with the skill as its prompt. Default: `false`.
|
docs ↗ | ||
| disallowed-tools | string |
Tools removed from Claude's available pool while this skill is active. Use for autonomous skills that should never call certain tools, such as `AskUserQuestion` for a background loop. Accepts a space- or comma-separated string, or a YAML list. The restriction clears when you send your next message. Like deny rules, the field can't remove `EndConversation` while any other tool remains.
|
docs ↗ | ||
| effort | string |
Effort level when this skill is active. Overrides the session effort level. Default: inherits from session. Options: `low`, `medium`, `high`, `xhigh`, `max`; available levels depend on the model.
|
docs ↗ | ||
| hooks | string |
Hooks that Claude Code registers when the skill is invoked and keeps running for the rest of the session. See Hooks in skills and agents for the configuration format and the `once` option.
|
docs ↗ | ||
| license | string |
License covering the skill. Part of the Agent Skills spec; see Using skill frontmatter outside Claude Code. Claude Code accepts the field but doesn't act on it.
|
docs ↗ | ||
| metadata | string |
Free-form YAML map for your own key-value data, such as entitlement or catalog fields, read by your own tooling from `SKILL.md`. Claude Code doesn't act on its contents, and drops a value that isn't a map. Don't reuse frontmatter field names such as `paths` as keys.
|
docs ↗ | ||
| model | string |
Model to use when this skill is active. The override applies for the rest of the current turn and is not saved to settings; the session model resumes on your next prompt. Accepts the same values as `/model`, or `inherit` to keep the active model. A value excluded by your organization's `availableModels` allowlist is not used and the session keeps its current model. With `context: fork`, the value sets the forked subagent's model instead, and an excluded value follows the same rules as a subagent model override.
|
docs ↗ | ||
| name | string |
Display name shown in skill listings. Defaults to the directory name. See How a skill gets its command name for how the field interacts with the name you type to invoke the skill.
|
docs ↗ | ||
| paths | string |
Glob patterns that limit when this skill is activated. Accepts a comma-separated string or a YAML list. When set, Claude loads the skill automatically only when working with files matching the patterns. Uses the same format as path-specific rules.
|
docs ↗ | ||
| shell | string |
Shell to use for `` !`command` `` and ` ```! ` blocks in this skill. Accepts `bash` (default) or `powershell`. Setting `powershell` runs inline shell commands via PowerShell when the PowerShell tool is enabled: it's on by default on Windows without Git Bash, on by default with Git Bash for claude.ai and Console accounts, and needs `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` in Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry sessions and on macOS, Linux, and WSL. Set it to `0` to turn the tool off.
|
docs ↗ | ||
| user-invocable | string |
Set to `false` when only Claude should invoke the skill: Claude Code hides it from the `/` menu and doesn't run it when you type `/name`. Use for background knowledge users shouldn't invoke directly. Default: `true`.
|
docs ↗ | ||
| when_to_use | string |
Additional context for when Claude should invoke the skill, such as trigger phrases or example requests. Appended to `description` in the skill listing and counts toward the 1,536-character cap.
|
docs ↗ |