Help us improve
Share bugs, ideas, or general feedback.
From authoring
Guides writing slash commands for Claude Code, covering structure, arguments, inline bash, and invocation control. Useful for creating mode-setting or workflow commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/authoring:commands**/commands/**/*.mdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Commands specify **constraints and mode**, not instructions. Claude already knows how to do most things — commands tell it what to do differently.
Share bugs, ideas, or general feedback.
Commands specify constraints and mode, not instructions. Claude already knows how to do most things — commands tell it what to do differently.
Commands and skills are the same thing now. .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both produce /deploy and use the same frontmatter. Existing commands/ files keep working. Prefer skills when you need bundled scripts, reference files, or per-skill hooks — see the skills-authoring skill for the full feature set.
---
description: One-line description (shows in /help)
allowed-tools: Tool(pattern:*), Tool(pattern:*)
argument-hint: [arg1] [arg2]
---
Prompt content. Set role, constraints, then get out of the way.
$ARGUMENTS — all args as a single string$ARGUMENTS[N] or $N — positional arg by 0-based index ($0 is first)${CLAUDE_SESSION_ID}, ${CLAUDE_SKILL_DIR} — runtime substitutions! immediately followed by a backtick-wrapped command (e.g. the bang-prefix form around git status). Output is included in context. The literal pattern is intentionally not shown verbatim here because the preprocessor evaluates it on raw text including inside fenced code blocks, which would run the example at command-load time.!, and close it with a normal triple-backtick fence. Each line runs as a separate shell command; Claude sees the combined output.@path/to/file.ts — file reference (contents included inline)Inline bash runs at template expansion time — it does not require allowed-tools. The allowed-tools field only governs tools the model can call at runtime.
Most commands should be user-only or agent-only — rarely both.
| Field | Who can invoke | Description in context | Use when |
|---|---|---|---|
| (default) | User + Agent | Yes | Rare — general-purpose commands |
disable-model-invocation: true | User only | No | Actions with side effects (commit, deploy, send) |
user-invocable: false | Agent only | Yes | Background knowledge, auto-applied patterns |
Default to disable-model-invocation: true for most commands. Agent auto-invocation is a footgun — commands that modify state, run tools, or trigger workflows should require explicit user intent. Reserve agent-invocable commands for read-only reference or context-injection where autonomous discovery is the point.
| Field | Purpose |
|---|---|
model | Override model (haiku for cheap, opus for capability) |
effort | Override effort level: low, medium, high, max |
argument-hint | Document expected args for autocomplete |
paths | Glob patterns — only activate when working with matching files |
context: fork | Run in an isolated subagent context |
agent | Subagent type when context: fork is set (Explore, Plan, etc.) |
hooks | Command-scoped hooks (same format as hooks.json, nested in frontmatter) |
shell | bash (default) or powershell for inline shell execution |
Functionally identical — same frontmatter, same invocation. Choose the file layout:
Single .md in commands/ | Directory in skills/ |
|---|---|
| Quick prompts, single file | Needs bundled scripts or reference files |
| Existing muscle memory | Per-skill hooks via hooks: frontmatter |
| <200 lines | Progressive disclosure across multiple .md files |
If a command needs to grow supporting files or bundled scripts, convert it to a skill directory.
description (won't appear in /help or Skill tool)allowed-tools: Bash(*) (overly permissive)@ references instead)argument-hint when args are expectednpx claudepluginhub crouton-labs/crouton-kit --plugin authoringCreate custom slash commands for Claude Code including syntax, arguments, bash execution, file references, and frontmatter configuration. Use when creating slash commands, custom commands, .md command files, or when asked about command creation, /command syntax, or command best practices.
Creates new Claude Code slash commands with YAML frontmatter, supporting argument hints, allowed tools, bash execution, file references, and advanced features.
Creates and manages custom slash commands in Claude Code. Covers command anatomy, frontmatter, arguments, bash execution, file references, and namespacing.