Create and use custom slash commands to automate Claude Code workflows. Learn argument passing, frontmatter configuration, bash integration, and file references for building reusable prompts.
Slash commands are reusable prompt templates that automate recurring tasks in Claude Code. Define them once, invoke them anytime with /command-name [args].
Project-scoped (shared with team):
mkdir -p .claude/commands
echo "Analyze this code for performance issues:" > .claude/commands/optimize.md
Personal (across all projects):
mkdir -p ~/.claude/commands
echo "Review this code for security vulnerabilities:" > ~/.claude/commands/security-review.md
Invoke with /optimize or /security-review.
| Scope | Location | Scope | Shareable |
|:---:|:---:|:---:|:---:|
| Project | .claude/commands/ | Repository-specific | Yes (team) |
| Personal | ~/.claude/commands/ | All projects | No |
Organize commands in subdirectories (no effect on invocation):
.claude/commands/
├── frontend/
│ └── component.md # Invokes as `/component` (shows "project:frontend")
├── backend/
│ └── api.md # Invokes as `/api` (shows "project:backend")
└── security-review.md # Invokes as `/security-review`
Note: User-level and project-level commands with the same name conflict; only one is available.
$ARGUMENTSUse $ARGUMENTS when you need all arguments as a single string:
---
description: Fix issue with optional priority
argument-hint: [issue-number] [optional-priority]
---
Fix issue #$ARGUMENTS following our coding standards.
Usage: /fix-issue 123 → $ARGUMENTS = "123"
Usage: /fix-issue 123 high-priority → $ARGUMENTS = "123 high-priority"
$1, $2, ...Use positional parameters for structured commands:
---
description: Review pull request with priority and assignee
argument-hint: [pr-number] [priority] [assignee]
---
Review PR #$1 with priority $2 and assign to $3.
Focus on security, performance, and code style.
Usage: /review-pr 456 high alice → $1="456", $2="high", $3="alice"
When to use positional:
${3:-unassigned}All options are optional; commands work without frontmatter.
| Field | Purpose | Example |
|:---:|:---|:---|
| description | Shown in /help (required for SlashCommand tool) | "Fix security issues" |
| argument-hint | Argument syntax hint for autocomplete | "[issue] [priority]" |
| allowed-tools | Tools this command can invoke | Bash(git add:*), Bash(git status:*) |
| model | Override default model for this command | "claude-3-5-haiku-20241022" |
| disable-model-invocation | Prevent SlashCommand tool from triggering | true |
---
description: Create a git commit with staged changes
argument-hint: [message]
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
model: claude-3-5-haiku-20241022
---
Create a git commit with message: $ARGUMENTS
!Prefix inline commands with ! to execute before the command runs. Requires allowed-tools with Bash:
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git log:*)
description: Create a git commit
---
## Context
- Current status: !`git status`
- Staged changes: !`git diff --cached`
- Recent commits: !`git log --oneline -5`
## Your Task
Create a single commit summarizing the changes.
Output from bash commands is included in the prompt context.
@Include file contents in commands:
Review the implementation in @src/utils/helpers.js
Compare @src/old-version.js with @src/new-version.js
Use standard file references (e.g., @docs/, @src/).
---
description: Fix issue with priority level
argument-hint: [issue-number] [priority-level]
---
Fix GitHub issue #$1 with priority "$2".
Steps:
1. Understand the issue context
2. Write minimal, focused fix
3. Consider edge cases
4. Ensure tests pass
Usage: /fix-issue 42 high
---
allowed-tools: Bash(git diff:*), Bash(git log:*)
description: Review recent commits for code quality
argument-hint: "[number-of-commits]"
---
## Context
Recent changes:
!`git log --oneline -${1:-5}`
Full diff:
!`git diff HEAD~${1:-5}...HEAD`
## Your Task
Provide a code quality review focusing on readability, performance, and best practices.
Usage: /review-commits 3 → Reviews last 3 commits
---
description: Set up feature flags for testing
argument-hint: feature [enable|disable] [environment]
---
Configure feature "$1" to be $2 in the $3 environment.
Verify:
- Feature flag exists in @src/config/features.ts
- Environment is valid (dev, staging, production)
- Changes are tested before deployment
Usage: /feature dark-mode enable staging
The SlashCommand tool allows Claude to invoke your custom commands programmatically.
Add to CLAUDE.md or project instructions:
When appropriate, use /optimize to analyze code performance.
When fixing bugs, use /fix-issue with the issue number.
description frontmatterdisable-model-invocation: trueSlashCommand tool in permissionsPrevent Claude from auto-invoking a command:
---
disable-model-invocation: true
description: Manual review only
---
Your command content...
Fine-grained control via /permissions:
SlashCommand:/commit # Exact match: /commit only
SlashCommand:/review-pr:* # Prefix match: /review-pr with any args
Deny SlashCommand entirely to disable all auto-invocation.
✅ Do:
/optimize, /security-review)description for discoverability via /help and SlashCommand toolargument-hint for clear usage patterns❌ Don't:
allowed-toolsEssential commands you get for free:
| Command | Purpose |
|:---|:---|
| /help | List all commands (built-in + custom) |
| /config | Open Settings interface |
| /status | Show version, model, account |
| /cost | Token usage statistics |
| /model | Switch AI model |
| /memory | Edit CLAUDE.md |
| /rewind | Rewind conversation or code |
| /clear | Clear history |
| /agents | Manage custom AI subagents |
| /mcp | Manage MCP server connections |
In CLAUDE.md or project instructions:
## Custom Commands
Use these commands to accelerate development:
- `/optimize [file]` — Analyze code performance
- `/security-review [file]` — Check for vulnerabilities
- `/commit [message]` — Create atomic commits
- `/test [suite]` — Run tests with focus
In conversations:
> I'll use /optimize to check this function for performance issues.
Claude recognizes the slash and may auto-invoke if SlashCommand tool is enabled.
/mcp__server__prompt)/plugin-name:command or just /command)npx skills add CaptainCrouton89/Writing Slash Commands下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer