Slash Command Creator
Create custom slash commands for Claude Code to automate frequently-used prompts.
Quick Start
Initialize a new command:
bash
scripts/init_command.py <command-name> [--scope project|personal]
Command Structure
Slash commands are Markdown files with optional YAML frontmatter:
markdown
--- description: Brief description shown in /help --- Your prompt instructions here. $ARGUMENTS
File Locations
| Scope | Path | Shown as |
|---|---|---|
| Project | .claude/commands/ | (project) |
| Personal | ~/.claude/commands/ | (user) |
Namespacing
Organize commands in subdirectories:
- •
.claude/commands/frontend/component.md→/componentshows "(project:frontend)" - •
~/.claude/commands/backend/api.md→/apishows "(user:backend)"
Features
Arguments
All arguments - $ARGUMENTS:
markdown
Fix issue #$ARGUMENTS following our coding standards # /fix-issue 123 → "Fix issue #123 following..."
Positional - $1, $2, etc.:
markdown
Review PR #$1 with priority $2 # /review 456 high → "Review PR #456 with priority high"
Bash Execution
Execute shell commands with ! prefix (requires allowed-tools in frontmatter):
markdown
--- allowed-tools: Bash(git status:*), Bash(git diff:*) --- Current status: !`git status` Changes: !`git diff HEAD`
File References
Include file contents with @ prefix:
markdown
Review @src/utils/helpers.js for issues. Compare @$1 with @$2.
Frontmatter Options
| 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.
Examples
See references/examples.md for complete examples including:
- •Simple review/explain commands
- •Commands with positional arguments
- •Git workflow commands with bash execution
- •Namespaced commands for frontend/backend
Creation Workflow
- •Identify the use case: What prompt do you repeat often?
- •Choose scope: Project (shared) or personal (private)?
- •Initialize: Run
scripts/init_command.py <name> - •Edit: Update description and body
- •Test: Run the command in Claude Code