Extend Claude with skills changedskills
Nearest release: v2.1.289, published 7 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 4 Oct 2026 03:53 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 4 Oct 2026 04:07 UTC.
Upstream edited
Recorded here
Lines+14added
Lines−3removed
From line
517
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits58to this page, all time
#### Where you write the skill's name
The whole hunk
from line 517, old and new numbered
/
from line 517
517517
518518By default, both you and Claude can invoke any skill. You can type `/skill-name` to invoke it directly, and Claude can load it automatically when relevant to your conversation. Two frontmatter fields let you restrict this:
519519
520* **`disable-model-invocation: true`**: Only you can invoke the skill. Use this for workflows with side effects or that you want to control timing, like `/commit`, `/deploy`, or `/send-slack-message`. You don't want Claude deciding to deploy because your code looks ready.
520* **`disable-model-invocation: true`**: Claude can't invoke the skill on its own. Use this for workflows with side effects or that you want to control timing, like `/commit`, `/deploy`, or `/send-slack-message`. You don't want Claude deciding to deploy because your code looks ready.
521521
522522* **`user-invocable: false`**: Only Claude can invoke the skill. Use this for background knowledge that isn't actionable as a command. A `legacy-system-context` skill explains how an old system works. Claude should know this when relevant, but `/legacy-system-context` isn't a meaningful action for users to take.
523523
524This example creates a deploy skill that only you can trigger. If you set `disable-model-invocation: true`, Claude can't run the skill automatically:
524This example creates a deploy skill. If you set `disable-model-invocation: true`, Claude can't run the skill automatically:
525525
526526```yaml theme={null}
527527---
from line 545
545545| Frontmatter | You can invoke | Claude can invoke | When loaded into context |
546546| :- | :- | :- | :- |
547547| (default) | Yes | Yes | Description always in context, full skill loads when invoked |
548| `disable-model-invocation: true` | Yes | No | Description not in context, full skill loads when you invoke |
548| `disable-model-invocation: true` | Yes | Not on its own | Description not in context, full skill loads when invoked |
549549| `user-invocable: false` | No | Yes | Description always in context, full skill loads when invoked |
550550
551551<Note>
552552 In a regular session, skill descriptions are loaded into context so Claude knows what's available, but full skill content only loads when invoked. [Subagents with preloaded skills](/docs/en/sub-agents#preload-skills-into-subagents) work differently: the full skill content is injected at startup.
553553</Note>
554
555#### Where you write the skill's name
556
557To run a skill directly, put its name at the start of your message. After plain text, the name gives Claude permission to run the skill but doesn't run it:
558
559| Where | Example | What happens |
560| :- | :- | :- |
561| At the start of your message | `/deploy staging` | Claude Code runs the skill directly |
562| After plain text, as a separate word with no punctuation attached | `go ahead and /deploy to staging` | Nothing runs directly. The name counts as your permission for that message: Claude can run the skill while it responds, and judges from your wording whether you asked it to |
563
564To write about the skill without permitting a run, leave off the slash.
554565
555566### Skill content lifecycle
556567
No line in this hunk matches that.