Claude code slash commands
Skill JamesPrial/claude-plugins/.claude/skills/claude-code-slash-commands
Sample/PoC Claude plugin marketplace
npx -y skills add JamesPrial/claude-plugins --skill claude-code-slash-commandsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create custom slash commands for Claude Code. Use when the user wants to create, generate, or build a slash command (.md file) for Claude Code, or when they ask about slash command syntax, frontmatter options, argument handling, or want help organizing their commands. Triggers on phrases like "make a slash command", "create a command for Claude Code", "write a /command", or questions about $ARGUMENTS, allowed-tools, or command frontmatter.
SKILL.md
4.9 KB, as published. Nobody here has run it
Claude Code Slash Commands
Create custom slash commands for Claude Code as Markdown files with optional YAML frontmatter.
Quick Reference
| Location | Scope | Description Label |
|---|---|---|
.claude/commands/ | Project (shared via git) | (project) |
~/.claude/commands/ | Personal (all projects) | (user) |
Command Structure
---
allowed-tools: Tool1, Tool2(pattern:*)
argument-hint: [arg1] [arg2]
description: Brief description shown in /help
model: claude-sonnet-4-20250514
disable-model-invocation: false
---
Your prompt instructions here.
Use $ARGUMENTS for all args, or $1, $2, etc. for positional.
Reference files with @path/to/file.
Execute bash inline with !`command`.
Creating Commands
Workflow
- Determine scope (project vs personal)
- Choose command name (filename without .md)
- Write frontmatter (optional but recommended)
- Write prompt body with argument placeholders
- Save to appropriate location
Frontmatter Options
| Field | Purpose | Default |
|---|---|---|
allowed-tools | Tools the command can use | Inherits from conversation |
argument-hint | Shows in autocomplete (e.g., [file] [options]) | None |
description | Brief description for /help | First line of prompt |
model | Specific model to use | Inherits from conversation |
disable-model-invocation | Prevent SlashCommand tool from calling this | false |
Arguments
All arguments - $ARGUMENTS captures everything:
Fix issue #$ARGUMENTS following our standards
# /fix-issue 123 high-priority → "123 high-priority"
Positional - $1, $2, etc. for specific args:
Review PR #$1 with priority $2 and assign to $3
# /review-pr 456 high alice → $1="456", $2="high", $3="alice"
Bash Execution
Use ! prefix to execute bash and include output in context:
---
allowed-tools: Bash(git:*)
description: Create commit from staged changes
---
## Context
- Status: !`git status --short`
- Diff: !`git diff --cached`
- Branch: !`git branch --show-current`
## Task
Create a commit message for these changes.
Important: Must include allowed-tools with Bash permissions when using ! commands.
File References
Use @ prefix to include file contents:
Review @src/utils/helpers.js for security issues
Compare @old.js with @new.js
Namespacing
Subdirectories organize commands (shown in description, not command name):
.claude/commands/frontend/component.md→/component(project:frontend)~/.claude/commands/backend/api.md→/api(user:backend)
Examples
Simple Command
# .claude/commands/review.md
Review this code for bugs, security issues, and style violations.
With Arguments
---
argument-hint: [issue-number]
description: Fix GitHub issue
---
# .claude/commands/fix-issue.md
Fix issue #$ARGUMENTS following our coding standards and create a PR.
Git Commit Helper
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
argument-hint: [message]
description: Stage and commit changes
---
# .claude/commands/commit.md
## Current State
- Status: !`git status`
- Staged diff: !`git diff --cached`
- Branch: !`git branch --show-current`
## Instructions
Create a commit. If $ARGUMENTS provided, use as message. Otherwise generate from diff.
Code Generation
---
argument-hint: [component-name]
description: Generate React component
allowed-tools: Write
---
# .claude/commands/component.md
Create a React component named $1 with:
- TypeScript
- Tailwind styling
- Unit tests
- Storybook story
Reference our patterns: @src/components/Button.tsx
Multi-file Analysis
---
description: Compare implementations
argument-hint: [file1] [file2]
---
# .claude/commands/compare.md
Compare @$1 with @$2 and identify:
1. Architectural differences
2. Performance implications
3. Suggested improvements
Tips
- Keep descriptions concise (shown in /help)
- Use
argument-hintfor discoverability - Prefer
$1,$2when args have distinct roles - Use
$ARGUMENTSfor free-form input - Test commands with various argument patterns
- Use extended thinking keywords for complex analysis
See Also
For complex multi-step workflows with scripts, templates, and reference docs, consider using Agent Skills instead. See references/skills-vs-commands.md.