Guide for creating Claude Code slash commands...
Create 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>