Guide for creating Claude Code slash commands. Use when the user wants to create a new slash command, update an existing slash command, or asks about slash command syntax, frontmatter options, or best practices.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
references/examples.mdreferences/frontmatter.mdscripts/init_command.pyCreate custom slash commands for Claude Code to automate frequently-used prompts.
Initialize a new command:
scripts/init_command.py <command-name> [--scope project|personal]
Slash commands are Markdown files with optional YAML frontmatter:
---
description: Brief description shown in /help
---
Your prompt instructions here.
$ARGUMENTS
| Scope | Path | Shown as |
|---|---|---|
| Project | .claude/commands/ | (project) |
| Personal | ~/.claude/commands/ | (user) |
Organize commands in subdirectories:
.claude/commands/frontend/component.md → /component shows "(project:frontend)"~/.claude/commands/backend/api.md → /api shows "(user:backend)"All arguments - $ARGUMENTS:
Fix issue #$ARGUMENTS following our coding standards
# /fix-issue 123 → "Fix issue #123 following..."
Positional - $1, $2, etc.:
Review PR #$1 with priority $2
# /review 456 high → "Review PR #456 with priority high"
Execute shell commands with ! prefix (requires allowed-tools in frontmatter):
---
allowed-tools: Bash(git status:*), Bash(git diff:*)
---
Current status: !`git status`
Changes: !`git diff HEAD`
Include file contents with @ prefix:
Review @src/utils/helpers.js for issues.
Compare @$1 with @$2.
| Field | Purpose | Required |
|---|---|---|
description | Brief description for /help | Yes |
allowed-tools | Tools the command can use | No |
argument-hint | Expected arguments hint | No |
model | Specific model to use | No |
disable-model-invocation | Prevent SlashCommand tool invocation | No |
See references/frontmatter.md for detailed reference.
See references/examples.md for complete examples including:
scripts/init_command.py <name>