The latest Claude Code release is 2.1.97, not 2.3.0 (which is this guide's own version). Update all 20 "Claude Code Version" footer lines to accurately reflect the documented Claude Code version. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Slash Commands
Overview
Slash commands are shortcuts that control Claude's behavior during an interactive session. They come in several types:
- Built-in commands: Provided by Claude Code (
/help,/clear,/model) - Skills: User-defined commands created as
SKILL.mdfiles (/optimize,/pr) - Plugin commands: Commands from installed plugins (
/frontend-design:frontend-design) - MCP prompts: Commands from MCP servers (
/mcp__github__list_prs)
Note
: Custom slash commands have been merged into skills. Files in
.claude/commands/still work, but skills (.claude/skills/) are now the recommended approach. Both create/command-nameshortcuts. See the Skills Guide for the full reference.
Built-in Commands Reference
Built-in commands are shortcuts for common actions. There are 60+ built-in commands and 5 bundled skills available. Type / in Claude Code to see the full list, or type / followed by any letters to filter.
| Command | Purpose |
|---|---|
/add-dir <path> |
Add working directory |
/agents |
Manage agent configurations |
/branch [name] |
Branch conversation into a new session (alias: /fork). Note: /fork renamed to /branch in v2.1.77 |
/btw <question> |
Side question without adding to history |
/chrome |
Configure Chrome browser integration |
/clear |
Clear conversation (aliases: /reset, /new) |
/color [color|default] |
Set prompt bar color |
/compact [instructions] |
Compact conversation with optional focus instructions |
/config |
Open Settings (alias: /settings) |
/context |
Visualize context usage as colored grid |
/copy [N] |
Copy assistant response to clipboard; w writes to file |
/cost |
Show token usage statistics |
/desktop |
Continue in Desktop app (alias: /app) |
/diff |
Interactive diff viewer for uncommitted changes |
/doctor |
Diagnose installation health |
/effort [low|medium|high|max|auto] |
Set effort level. max requires Opus 4.6 |
/exit |
Exit the REPL (alias: /quit) |
/export [filename] |
Export the current conversation to a file or clipboard |
/extra-usage |
Configure extra usage for rate limits |
/fast [on|off] |
Toggle fast mode |
/feedback |
Submit feedback (alias: /bug) |
/help |
Show help |
/hooks |
View hook configurations |
/ide |
Manage IDE integrations |
/init |
Initialize CLAUDE.md. Set CLAUDE_CODE_NEW_INIT=1 for interactive flow |
/insights |
Generate session analysis report |
/install-github-app |
Set up GitHub Actions app |
/install-slack-app |
Install Slack app |
/keybindings |
Open keybindings configuration |
/login |
Switch Anthropic accounts |
/logout |
Sign out from your Anthropic account |
/mcp |
Manage MCP servers and OAuth |
/memory |
Edit CLAUDE.md, toggle auto-memory |
/mobile |
QR code for mobile app (aliases: /ios, /android) |
/model [model] |
Select model with left/right arrows for effort |
/passes |
Share free week of Claude Code |
/permissions |
View/update permissions (alias: /allowed-tools) |
/plan [description] |
Enter plan mode |
/plugin |
Manage plugins |
/powerup |
Discover features through interactive lessons with animated demos |
/privacy-settings |
Privacy settings (Pro/Max only) |
/release-notes |
View changelog |
/reload-plugins |
Reload active plugins |
/remote-control |
Remote control from claude.ai (alias: /rc) |
/remote-env |
Configure default remote environment |
/rename [name] |
Rename session |
/resume [session] |
Resume conversation (alias: /continue) |
/review |
Deprecated — install the code-review plugin instead |
/rewind |
Rewind conversation and/or code (alias: /checkpoint) |
/sandbox |
Toggle sandbox mode |
/schedule [description] |
Create/manage Cloud scheduled tasks |
/security-review |
Analyze branch for security vulnerabilities |
/skills |
List available skills |
/stats |
Visualize daily usage, sessions, streaks |
/stickers |
Order Claude Code stickers |
/status |
Show version, model, account |
/statusline |
Configure status line |
/tasks |
List/manage background tasks |
/terminal-setup |
Configure terminal keybindings |
/theme |
Change color theme |
/ultraplan <prompt> |
Draft plan in ultraplan session, review in browser |
/upgrade |
Open upgrade page for higher plan tier |
/usage |
Show plan usage limits and rate limit status |
/voice |
Toggle push-to-talk voice dictation |
Bundled Skills
These skills ship with Claude Code and are invoked like slash commands:
| Skill | Purpose |
|---|---|
/batch <instruction> |
Orchestrate large-scale parallel changes using worktrees |
/claude-api |
Load Claude API reference for project language |
/debug [description] |
Enable debug logging |
/loop [interval] <prompt> |
Run prompt repeatedly on interval |
/simplify [focus] |
Review changed files for code quality |
Deprecated Commands
| Command | Status |
|---|---|
/review |
Deprecated — replaced by code-review plugin |
/output-style |
Deprecated since v2.1.73 |
/fork |
Renamed to /branch (alias still works, v2.1.77) |
/pr-comments |
Removed in v2.1.91 — ask Claude directly to view PR comments |
/vim |
Removed in v2.1.92 — use /config → Editor mode |
Recent Changes
/forkrenamed to/branchwith/forkkept as alias (v2.1.77)/output-styledeprecated (v2.1.73)/reviewdeprecated in favor of thecode-reviewplugin/effortcommand added withmaxlevel requiring Opus 4.6/voicecommand added for push-to-talk voice dictation/schedulecommand added for creating/managing scheduled tasks/colorcommand added for prompt bar customization- /pr-comments removed in v2.1.91 — ask Claude directly to view PR comments
- /vim removed in v2.1.92 — use /config → Editor mode instead
- /ultraplan added for browser-based plan review and execution
- /powerup added for interactive feature lessons
- /sandbox added for toggling sandbox mode
/modelpicker now shows human-readable labels (e.g., "Sonnet 4.6") instead of raw model IDs/resumesupports/continuealias- MCP prompts are available as
/mcp__<server>__<prompt>commands (see MCP Prompts as Commands)
Custom Commands (Now Skills)
Custom slash commands have been merged into skills. Both approaches create commands you can invoke with /command-name:
| Approach | Location | Status |
|---|---|---|
| Skills (Recommended) | .claude/skills/<name>/SKILL.md |
Current standard |
| Legacy Commands | .claude/commands/<name>.md |
Still works |
If a skill and a command share the same name, the skill takes precedence. For example, when both .claude/commands/review.md and .claude/skills/review/SKILL.md exist, the skill version is used.
Migration Path
Your existing .claude/commands/ files continue to work without changes. To migrate to skills:
Before (Command):
.claude/commands/optimize.md
After (Skill):
.claude/skills/optimize/SKILL.md
Why Skills?
Skills offer additional features over legacy commands:
- Directory structure: Bundle scripts, templates, and reference files
- Auto-invocation: Claude can trigger skills automatically when relevant
- Invocation control: Choose whether users, Claude, or both can invoke
- Subagent execution: Run skills in isolated contexts with
context: fork - Progressive disclosure: Load additional files only when needed
Creating a Custom Command as a Skill
Create a directory with a SKILL.md file:
mkdir -p .claude/skills/my-command
File: .claude/skills/my-command/SKILL.md
---
name: my-command
description: What this command does and when to use it
---
# My Command
Instructions for Claude to follow when this command is invoked.
1. First step
2. Second step
3. Third step
Frontmatter Reference
| Field | Purpose | Default |
|---|---|---|
name |
Command name (becomes /name) |
Directory name |
description |
Brief description (helps Claude know when to use it) | First paragraph |
argument-hint |
Expected arguments for auto-completion | None |
allowed-tools |
Tools the command can use without permission | Inherits |
model |
Specific model to use | Inherits |
disable-model-invocation |
If true, only user can invoke (not Claude) |
false |
user-invocable |
If false, hide from / menu |
true |
context |
Set to fork to run in isolated subagent |
None |
agent |
Agent type when using context: fork |
general-purpose |
hooks |
Skill-scoped hooks (PreToolUse, PostToolUse, Stop) | None |
Arguments
Commands can receive arguments:
All arguments with $ARGUMENTS:
---
name: fix-issue
description: Fix a GitHub issue by number
---
Fix issue #$ARGUMENTS following our coding standards
Usage: /fix-issue 123 → $ARGUMENTS becomes "123"
Individual arguments with $0, $1, etc.:
---
name: review-pr
description: Review a PR with priority
---
Review PR #$0 with priority $1
Usage: /review-pr 456 high → $0="456", $1="high"
Dynamic Context with Shell Commands
Execute bash commands before the prompt using !command``:
---
name: commit
description: Create a git commit with context
allowed-tools: Bash(git *)
---
## Context
- Current git status: !`git status`
- Current git diff: !`git diff HEAD`
- Current branch: !`git branch --show-current`
- Recent commits: !`git log --oneline -5`
## Your task
Based on the above changes, create a single git commit.
File References
Include file contents using @:
Review the implementation in @src/utils/helpers.js
Compare @src/old-version.js with @src/new-version.js
Plugin Commands
Plugins can provide custom commands:
/plugin-name:command-name
Or simply /command-name when there are no naming conflicts.
Examples:
/frontend-design:frontend-design
/commit-commands:commit
MCP Prompts as Commands
MCP servers can expose prompts as slash commands:
/mcp__<server-name>__<prompt-name> [arguments]
Examples:
/mcp__github__list_prs
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug title" high
MCP Permission Syntax
Control MCP server access in permissions:
mcp__github- Access entire GitHub MCP servermcp__github__*- Wildcard access to all toolsmcp__github__get_issue- Specific tool access
Command Architecture
graph TD
A["User Input: /command-name"] --> B{"Command Type?"}
B -->|Built-in| C["Execute Built-in"]
B -->|Skill| D["Load SKILL.md"]
B -->|Plugin| E["Load Plugin Command"]
B -->|MCP| F["Execute MCP Prompt"]
D --> G["Parse Frontmatter"]
G --> H["Substitute Variables"]
H --> I["Execute Shell Commands"]
I --> J["Send to Claude"]
J --> K["Return Results"]
Command Lifecycle
sequenceDiagram
participant User
participant Claude as Claude Code
participant FS as File System
participant CLI as Shell/Bash
User->>Claude: Types /optimize
Claude->>FS: Searches .claude/skills/ and .claude/commands/
FS-->>Claude: Returns optimize/SKILL.md
Claude->>Claude: Parses frontmatter
Claude->>CLI: Executes !`command` substitutions
CLI-->>Claude: Command outputs
Claude->>Claude: Substitutes $ARGUMENTS
Claude->>User: Processes prompt
Claude->>User: Returns results
Available Commands in This Folder
These example commands can be installed as skills or legacy commands.
1. /optimize - Code Optimization
Analyzes code for performance issues, memory leaks, and optimization opportunities.
Usage:
/optimize
[Paste your code]
2. /pr - Pull Request Preparation
Guides through PR preparation checklist including linting, testing, and commit formatting.
Usage:
/pr
3. /generate-api-docs - API Documentation Generator
Generates comprehensive API documentation from source code.
Usage:
/generate-api-docs
4. /commit - Git Commit with Context
Creates a git commit with dynamic context from your repository.
Usage:
/commit [optional message]
5. /push-all - Stage, Commit, and Push
Stages all changes, creates a commit, and pushes to remote with safety checks.
Usage:
/push-all
Safety Checks:
- Secrets:
.env*,*.key,*.pem,credentials.json - API Keys: Detects real keys vs. placeholders
- Large files:
>10MBwithout Git LFS - Build artifacts:
node_modules/,dist/,__pycache__/
6. /doc-refactor - Documentation Restructuring
Restructures project documentation for clarity and accessibility.
Usage:
/doc-refactor
7. /setup-ci-cd - CI/CD Pipeline Setup
Implements pre-commit hooks and GitHub Actions for quality assurance.
Usage:
/setup-ci-cd
8. /unit-test-expand - Test Coverage Expansion
Increases test coverage by targeting untested branches and edge cases.
Usage:
/unit-test-expand
Installation
As Skills (Recommended)
Copy to your skills directory:
# Create skills directory
mkdir -p .claude/skills
# For each command file, create a skill directory
for cmd in optimize pr commit; do
mkdir -p .claude/skills/$cmd
cp 01-slash-commands/$cmd.md .claude/skills/$cmd/SKILL.md
done
As Legacy Commands
Copy to your commands directory:
# Project-wide (team)
mkdir -p .claude/commands
cp 01-slash-commands/*.md .claude/commands/
# Personal use
mkdir -p ~/.claude/commands
cp 01-slash-commands/*.md ~/.claude/commands/
Creating Your Own Commands
Skill Template (Recommended)
Create .claude/skills/my-command/SKILL.md:
---
name: my-command
description: What this command does. Use when [trigger conditions].
argument-hint: [optional-args]
allowed-tools: Bash(npm *), Read, Grep
---
# Command Title
## Context
- Current branch: !`git branch --show-current`
- Related files: @package.json
## Instructions
1. First step
2. Second step with argument: $ARGUMENTS
3. Third step
## Output Format
- How to format the response
- What to include
User-Only Command (No Auto-Invocation)
For commands with side effects that Claude shouldn't trigger automatically:
---
name: deploy
description: Deploy to production
disable-model-invocation: true
allowed-tools: Bash(npm *), Bash(git *)
---
Deploy the application to production:
1. Run tests
2. Build application
3. Push to deployment target
4. Verify deployment
Best Practices
| Do | Don't |
|---|---|
| Use clear, action-oriented names | Create commands for one-time tasks |
Include description with trigger conditions |
Build complex logic in commands |
| Keep commands focused on single task | Hardcode sensitive information |
Use disable-model-invocation for side effects |
Skip the description field |
Use ! prefix for dynamic context |
Assume Claude knows current state |
| Organize related files in skill directories | Put everything in one file |
Troubleshooting
Command Not Found
Solutions:
- Check file is in
.claude/skills/<name>/SKILL.mdor.claude/commands/<name>.md - Verify the
namefield in frontmatter matches expected command name - Restart Claude Code session
- Run
/helpto see available commands
Command Not Executing as Expected
Solutions:
- Add more specific instructions
- Include examples in the skill file
- Check
allowed-toolsif using bash commands - Test with simple inputs first
Skill vs Command Conflict
If both exist with the same name, the skill takes precedence. Remove one or rename it.
Related Guides
- Skills - Full reference for skills (auto-invoked capabilities)
- Memory - Persistent context with CLAUDE.md
- Subagents - Delegated AI agents
- Plugins - Bundled command collections
- Hooks - Event-driven automation
Additional Resources
- Official Interactive Mode Documentation - Built-in commands reference
- Official Skills Documentation - Complete skills reference
- CLI Reference - Command-line options
Last Updated: April 9, 2026 Claude Code Version: 2.1.97 Compatible Models: Claude Sonnet 4.6, Claude Opus 4.6, Claude Haiku 4.5
Part of the Claude How To guide series
