# Commands Best Practice

[](../.claude/commands/)
Complete reference for Claude Code commands — command definitions, frontmatter fields, and all built-in slash commands.
---
## Frontmatter Fields
Custom commands are defined in `.claude/commands/.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 (`/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 ` |  | 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)