Skip to Content
Slash CommandsSlash Commands

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.md files (/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-name shortcuts. See the Skills Guide for the full reference.

Built-in Commands Reference

Built-in commands are shortcuts for common actions. There are 55+ 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.

CommandPurpose
/add-dir <path>Add working directory
/agentsManage 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
/chromeConfigure Chrome browser integration
/clearClear conversation (aliases: /reset, /new)
/color [color|default]Set prompt bar color
/compact [instructions]Compact conversation with optional focus instructions
/configOpen Settings (alias: /settings)
/contextVisualize context usage as colored grid
/copy [N]Copy assistant response to clipboard; w writes to file
/costShow token usage statistics
/desktopContinue in Desktop app (alias: /app)
/diffInteractive diff viewer for uncommitted changes
/doctorDiagnose installation health
/effort [low|medium|high|max|auto]Set effort level. max requires Opus 4.6
/exitExit the REPL (alias: /quit)
/export [filename]Export the current conversation to a file or clipboard
/extra-usageConfigure extra usage for rate limits
/fast [on|off]Toggle fast mode
/feedbackSubmit feedback (alias: /bug)
/helpShow help
/hooksView hook configurations
/ideManage IDE integrations
/initInitialize CLAUDE.md. Set CLAUDE_CODE_NEW_INIT=true for interactive flow
/insightsGenerate session analysis report
/install-github-appSet up GitHub Actions app
/install-slack-appInstall Slack app
/keybindingsOpen keybindings configuration
/loginSwitch Anthropic accounts
/logoutSign out from your Anthropic account
/mcpManage MCP servers and OAuth
/memoryEdit CLAUDE.md, toggle auto-memory
/mobileQR code for mobile app (aliases: /ios, /android)
/model [model]Select model with left/right arrows for effort
/passesShare free week of Claude Code
/permissionsView/update permissions (alias: /allowed-tools)
/plan [description]Enter plan mode
/pluginManage plugins
/pr-comments [PR]Fetch GitHub PR comments
/privacy-settingsPrivacy settings (Pro/Max only)
/release-notesView changelog
/reload-pluginsReload active plugins
/remote-controlRemote control from claude.ai (alias: /rc)
/remote-envConfigure default remote environment
/rename [name]Rename session
/resume [session]Resume conversation (alias: /continue)
/reviewDeprecated — install the code-review plugin instead
/rewindRewind conversation and/or code (alias: /checkpoint)
/sandboxToggle sandbox mode
/schedule [description]Create/manage scheduled tasks
/security-reviewAnalyze branch for security vulnerabilities
/skillsList available skills
/statsVisualize daily usage, sessions, streaks
/statusShow version, model, account
/statuslineConfigure status line
/tasksList/manage background tasks
/terminal-setupConfigure terminal keybindings
/themeChange color theme
/vimToggle Vim/Normal modes
/voiceToggle push-to-talk voice dictation

Bundled Skills

These skills ship with Claude Code and are invoked like slash commands:

SkillPurpose
/batch <instruction>Orchestrate large-scale parallel changes using worktrees
/claude-apiLoad 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

CommandStatus
/reviewDeprecated — replaced by code-review plugin
/output-styleDeprecated since v2.1.73
/forkRenamed to /branch (alias still works, v2.1.77)

Recent Changes

  • /fork renamed to /branch with /fork kept as alias (v2.1.77)
  • /output-style deprecated (v2.1.73)
  • /review deprecated in favor of the code-review plugin
  • /effort command added with max level requiring Opus 4.6
  • /voice command added for push-to-talk voice dictation
  • /schedule command added for creating/managing scheduled tasks
  • /color command added for prompt bar customization
  • /model picker now shows human-readable labels (e.g., “Sonnet 4.6”) instead of raw model IDs
  • /resume supports /continue alias
  • 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:

ApproachLocationStatus
Skills (Recommended).claude/skills/<name>/SKILL.mdCurrent standard
Legacy Commands.claude/commands/<name>.mdStill 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

FieldPurposeDefault
nameCommand name (becomes /name)Directory name
descriptionBrief description (helps Claude know when to use it)First paragraph
argument-hintExpected arguments for auto-completionNone
allowed-toolsTools the command can use without permissionInherits
modelSpecific model to useInherits
disable-model-invocationIf true, only user can invoke (not Claude)false
user-invocableIf false, hide from / menutrue
contextSet to fork to run in isolated subagentNone
agentAgent type when using context: forkgeneral-purpose
hooksSkill-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 server
  • mcp__github__* - Wildcard access to all tools
  • mcp__github__get_issue - Specific tool access

Command Architecture

Command Lifecycle

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

Screenshot: /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: >10MB without 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

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

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

DoDon’t
Use clear, action-oriented namesCreate commands for one-time tasks
Include description with trigger conditionsBuild complex logic in commands
Keep commands focused on single taskHardcode sensitive information
Use disable-model-invocation for side effectsSkip the description field
Use ! prefix for dynamic contextAssume Claude knows current state
Organize related files in skill directoriesPut everything in one file

Troubleshooting

Command Not Found

Solutions:

  • Check file is in .claude/skills/<name>/SKILL.md or .claude/commands/<name>.md
  • Verify the name field in frontmatter matches expected command name
  • Restart Claude Code session
  • Run /help to see available commands

Command Not Executing as Expected

Solutions:

  • Add more specific instructions
  • Include examples in the skill file
  • Check allowed-tools if 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.

  • 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


Part of the Claude How To guide series

Last updated on