174 lines
9.6 KiB
Markdown
174 lines
9.6 KiB
Markdown
# Commands Best Practice
|
|
|
|
<br>
|
|
[](../.claude/commands/)
|
|
|
|
Complete reference for Claude Code commands — command definitions, frontmatter fields, and all built-in slash commands.
|
|
|
|
<table width="100%">
|
|
<tr>
|
|
<td><a href="../">← Back to Claude Code Best Practice</a></td>
|
|
<td align="right"><img src="../!/claude-jumping.svg" alt="Claude" width="60" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
---
|
|
|
|
## Frontmatter Fields
|
|
|
|
Custom commands are defined in `.claude/commands/<name>.md` with optional YAML frontmatter.
|
|
|
|
| Field | Type | Required | Description |
|
|
|-------|------|----------|-------------|
|
|
| `description` | string | Recommended | What the command does. Shown in autocomplete and used by Claude for auto-discovery |
|
|
| `argument-hint` | string | No | Hint shown during autocomplete (e.g., `[issue-number]`, `[filename]`) |
|
|
| `allowed-tools` | string | No | Tools allowed without permission prompts when this command is active |
|
|
| `model` | string | No | Model to use when this command runs (e.g., `haiku`, `sonnet`, `opus`) |
|
|
|
|
---
|
|
|
|
## String Substitutions
|
|
|
|
Available inside command markdown for dynamic values:
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `$ARGUMENTS` | All arguments passed when invoking the command |
|
|
| `$ARGUMENTS[N]` | Access a specific argument by 0-based index |
|
|
| `$N` | Shorthand for `$ARGUMENTS[N]` (e.g., `$0`, `$1`) |
|
|
| `${CLAUDE_SESSION_ID}` | Current session identifier |
|
|
| `` !`command` `` | Dynamic context injection — shell command output replaces the placeholder before Claude sees it |
|
|
|
|
---
|
|
|
|
## Invocation
|
|
|
|
Custom commands are invoked by typing `/command-name` in Claude Code's interactive mode:
|
|
|
|
| Method | Description |
|
|
|--------|-------------|
|
|
| `/command-name` | Invoke directly from the command menu |
|
|
| `/command-name [args]` | Pass arguments that map to `$ARGUMENTS` |
|
|
| Autocomplete | Type `/` to see all available commands with descriptions |
|
|
| Subdirectories | Commands in subdirectories use `/subdir:command-name` |
|
|
|
|
---
|
|
|
|
## Example: Minimal Command
|
|
|
|
```yaml
|
|
---
|
|
description: Fetch and transform weather data for Karachi
|
|
model: haiku
|
|
---
|
|
|
|
Fetch the current temperature for Karachi, Pakistan and apply transformations.
|
|
```
|
|
|
|
## Example: Full-Featured Command (All Fields)
|
|
|
|
```yaml
|
|
---
|
|
description: Fix a GitHub issue by number, following team coding standards
|
|
argument-hint: [issue-number]
|
|
allowed-tools: Read, Edit, Write, Bash(gh *), Bash(npm test *)
|
|
model: sonnet
|
|
---
|
|
|
|
Fix GitHub issue $0 following our coding standards.
|
|
|
|
## Context
|
|
- PR diff: !`gh pr diff`
|
|
- Issue details: !`gh issue view $0`
|
|
|
|
## Steps
|
|
1. Read the issue description
|
|
2. Understand the requirements
|
|
3. Implement the fix
|
|
4. Write tests
|
|
5. Create a commit
|
|
|
|
Session: ${CLAUDE_SESSION_ID}
|
|
```
|
|
|
|
---
|
|
|
|
## Scope and Priority
|
|
|
|
When multiple commands share the same name, the higher-priority location wins:
|
|
|
|
| Location | Scope | Priority |
|
|
|----------|-------|----------|
|
|
| Project (`.claude/commands/`) | This project only | 1 (highest) |
|
|
| Personal (`~/.claude/commands/`) | All your projects | 2 |
|
|
| Plugin (`<plugin>/commands/`) | Where plugin is enabled | 3 (lowest) |
|
|
|
|
---
|
|
|
|
## Claude Commands
|
|
|
|
### All Commands
|
|
|
|
Built-in slash commands available in Claude Code's interactive mode:
|
|
|
|
| Command | Tag | Description |
|
|
|---------|-----|-------------|
|
|
| `/clear` |  | Clear conversation history and start fresh |
|
|
| `/compact [instructions]` |  | Compress conversation to free context window. Optional instructions focus the compaction |
|
|
| `/exit` |  | Exit the REPL |
|
|
| `/fork` |  | Fork the current conversation into a new session |
|
|
| `/rename <name>` |  | Rename the current session for easier identification |
|
|
| `/resume [session]` |  | Resume a previous conversation by ID or name, or open the session picker |
|
|
| `/rewind` |  | Rewind conversation and/or code to an earlier point |
|
|
| `/teleport` |  | Resume a remote session from claude.ai (subscribers only) |
|
|
| `/context` |  | Visualize current context usage as a colored grid with token counts |
|
|
| `/cost` |  | Show token usage statistics and spending for the current session |
|
|
| `/stats` |  | Visualize daily usage, session history, streaks, and model preferences |
|
|
| `/usage` |  | Show plan usage limits and rate limit status (subscription plans only) |
|
|
| `/fast` |  | Toggle fast mode — same Opus 4.6 model with faster output |
|
|
| `/model` |  | Switch models (haiku, sonnet, opus) and adjust effort level |
|
|
| `/plan` |  | Enter read-only planning mode — suggests approaches without making changes |
|
|
| `/init` |  | Initialize a new project with CLAUDE.md guide |
|
|
| `/memory` |  | View and edit CLAUDE.md memory files (user, project, and local scope) |
|
|
| `/config` |  | Open the interactive Settings interface with search functionality |
|
|
| `/keybindings` |  | Customize keyboard shortcuts per context, create chord sequences |
|
|
| `/permissions` |  | View or update tool permissions |
|
|
| `/sandbox` |  | Configure sandboxing with dependency status |
|
|
| `/statusline` |  | Set up Claude Code's status line UI |
|
|
| `/terminal-setup` |  | Enable shift+enter for newlines in IDE terminals |
|
|
| `/theme` |  | Change the color theme |
|
|
| `/vim` |  | Enable vim-style editing mode |
|
|
| `/agents` |  | Manage custom subagents — view, create, edit, delete |
|
|
| `/hooks` |  | Interactive interface to manage hooks |
|
|
| `/ide` |  | Connect to IDE integration |
|
|
| `/mcp` |  | Manage MCP server connections — add, enable, list, get info, OAuth |
|
|
| `/plugin` |  | Manage plugins — install, uninstall, enable, disable, browse marketplaces |
|
|
| `/skills` |  | View available skills and their descriptions |
|
|
| `/debug [description]` |  | Troubleshoot the current session by reading the debug log |
|
|
| `/doctor` |  | Check the health of your Claude Code installation |
|
|
| `/feedback` |  | Generate a GitHub issue URL for reporting bugs or feedback |
|
|
| `/help` |  | Show all available slash commands and usage help |
|
|
| `/tasks` |  | List and manage background tasks |
|
|
| `/todos` |  | List current TODO items |
|
|
| `/copy` |  | Copy the last assistant response to clipboard |
|
|
| `/export [filename]` |  | Export the current conversation to a file or clipboard |
|
|
| `/login` |  | Authenticate with Claude Code via OAuth |
|
|
| `/logout` |  | Log out from Claude Code |
|
|
|
|
### Commands in This Repository
|
|
|
|
Custom commands defined in `.claude/commands/` for this project:
|
|
|
|
| Command | Description | Model |
|
|
|---------|-------------|-------|
|
|
| [`weather-orchestrator`](../.claude/commands/weather-orchestrator.md) | Fetch and transform weather data for Karachi | haiku |
|
|
| [`workflows/best-practice/workflow-claude-subagents`](../.claude/commands/workflows/best-practice/workflow-claude-subagents.md) | Track Claude Code subagents report changes and find what needs updating | — |
|
|
|
|
---
|
|
|
|
## Sources
|
|
|
|
- [Claude Code Slash Commands](https://code.claude.com/docs/en/slash-commands)
|
|
- [Claude Code Interactive Mode](https://code.claude.com/docs/en/interactive-mode)
|
|
- [Claude Code CHANGELOG](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)
|