Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .claude/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill command-development -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .agents/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill command-development -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .cursor/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill command-development -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .gemini/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill command-development -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .github/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill command-development -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "command-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/command-development into .opencode/skills/command-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-development", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
command-development
GitHub stars
37k
Used in
10 other repos
Token cost
~4.8k tokens
SKILL.md length
1,197 words
Files
11 (incl. references)
Skills in repo
29
Repo updated
First seen
Licence
Apache-2.0
At a glance
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
Works in 5 steps: Single responsibility: One command, one… → Clear descriptions: Self-explanatory in… → Explicit dependencies: Use allowed-tools… → …
Creating a new slash command for a project, for personal use or for a plugin
SKILL.md covers Overview, Command Basics, File Format and YAML Frontmatter Fields, plus 5 more sections
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
What it does
This skill is a guide to writing Claude Code slash commands, which are prompts stored as Markdown files and run when invoked. It stresses that a command is written as instructions to Claude and not as a message to the user, and it shows a correct and an incorrect example side by side. It also notes that the .claude/commands/ folder is a legacy layout and that new work should use a skill folder with a SKILL.md file instead.
Topics include YAML frontmatter fields, dynamic arguments, file references, bash execution to gather context, interactive commands that ask the user questions, and organizing and namespacing commands. It explains where commands live: project commands in .claude/commands/, personal ones in ~/.claude/commands/, and plugin commands inside a plugin's commands folder, each labeled differently in /help.
The folder adds reference files on frontmatter, advanced workflows, documentation patterns, interactive commands, plugin features, marketplace considerations and testing strategies, plus example files for simple and plugin commands.
When your agent uses it
Creating a new slash command for a project, for personal use or for a plugin
Choosing frontmatter fields and arguments for a command
Making a command that asks the user questions while it runs
Deciding where commands should live and how to namespace them
Example prompts
“Create a /review-security slash command that checks the staged changes.”
“Add a command that takes an issue number as an argument and pulls in the related file.”
“Show me which frontmatter fields I can set on a custom command.”
“Write an interactive command that asks which environment to deploy to before it runs.”
Workflow steps
5 steps, taken from the first numbered list in SKILL.md.
1Single responsibility: One command, one task
2Clear descriptions: Self-explanatory in /help
3Explicit dependencies: Use allowed-tools when needed
4Document arguments: Always provide argument-hint
5Consistent naming: Use verb-noun pattern (review-pr, fix-issue)
What it can do on your machine
Read from SKILL.md and the folder at commit d4226d0. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown and yaml).
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Claude Code Command Development loads about 4.8k tokens when it runs, and up to ~31k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 1,197 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~127
When it runs· the whole SKILL.md, loaded when a task matches
~4.8k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~31k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/command-development/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
command-development
description
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
version
0.2.0
Command Development for Claude Code
Note: The .claude/commands/ directory is a legacy format. For new skills, use the .claude/skills/<name>/SKILL.md directory format. Both are loaded identically — the only difference is file layout. See the skill-development skill for the preferred format.
Overview
Slash commands are frequently-used prompts defined as Markdown files that Claude executes during interactive sessions. Understanding command structure, frontmatter options, and dynamic features enables creating powerful, reusable workflows.
Key concepts:
Markdown file format for commands
YAML frontmatter for configuration
Dynamic arguments and file references
Bash execution for context
Command organization and namespacing
Command Basics
What is a Slash Command?
A slash command is a Markdown file containing a prompt that Claude executes when invoked. Commands provide:
Reusability: Define once, use repeatedly
Consistency: Standardize common workflows
Sharing: Distribute across team or projects
Efficiency: Quick access to complex prompts
Critical: Commands are Instructions FOR Claude
Commands are written for agent consumption, not human consumption.
When a user invokes /command-name, the command content becomes Claude's instructions. Write commands as directives TO Claude about what to do, not as messages TO the user.
Correct approach (instructions for Claude):
markdown
Review this code for security vulnerabilities including:
- SQL injection
- XSS attacks
- Authentication issues
Provide specific line numbers and severity ratings.
Incorrect approach (messages to user):
markdown
This command will review your code for security issues.
You'll receive a report with vulnerability details.
The first example tells Claude what to do. The second tells the user what will happen but doesn't instruct Claude. Always use the first approach.
Command Locations
Project commands (shared with team):
Location: .claude/commands/
Scope: Available in specific project
Label: Shown as "(project)" in /help
Use for: Team workflows, project-specific tasks
Personal commands (available everywhere):
Location: ~/.claude/commands/
Scope: Available in all projects
Label: Shown as "(user)" in /help
Use for: Personal workflows, cross-project utilities
---
description: Fix issue by number
argument-hint: [issue-number]
---
Fix issue #$ARGUMENTS following our coding standards and best practices.
Usage:
> /fix-issue 123
> /fix-issue 456
Expands to:
Fix issue #123 following our coding standards...
Fix issue #456 following our coding standards...
Using Positional Arguments
Capture individual arguments with $1, $2, $3, etc.:
markdown
---
description: Review PR with priority and assignee
argument-hint: [pr-number] [priority] [assignee]
---
Review pull request #$1 with priority level $2.
After review, assign to $3 for follow-up.
Usage:
> /review-pr 123 high alice
Expands to:
Review pull request #123 with priority level high.
After review, assign to alice for follow-up.
Combining Arguments
Mix positional and remaining arguments:
markdown
Deploy $1 to $2 environment with options: $3
Usage:
> /deploy api staging --force --skip-tests
Expands to:
Deploy api to staging environment with options: --force --skip-tests
File References
Using @ Syntax
Include file contents in command:
markdown
---
description: Review specific file
argument-hint: [file-path]
---
Review @$1 for:
- Code quality
- Best practices
- Potential bugs
Usage:
> /review-file src/api/users.ts
Effect: Claude reads src/api/users.ts before processing command
Multiple File References
Reference multiple files:
markdown
Compare @src/old-version.js with @src/new-version.js
Identify:
- Breaking changes
- New features
- Bug fixes
Static File References
Reference known files without arguments:
markdown
Review @package.json and @tsconfig.json for consistency
Ensure:
- TypeScript version matches
- Dependencies are aligned
- Build configuration is correct
Bash Execution in Commands
Commands can execute bash commands inline to dynamically gather context before Claude processes the command. This is useful for including repository state, environment information, or project-specific context.
When to use:
Include dynamic context (git status, environment vars, etc.)
Gather project/repository state
Build context-aware workflows
Implementation details:
For complete syntax, examples, and best practices, see references/plugin-features-reference.md section on bash execution. The reference includes the exact syntax and multiple working examples to avoid execution issues
Explicit dependencies: Use allowed-tools when needed
Document arguments: Always provide argument-hint
Consistent naming: Use verb-noun pattern (review-pr, fix-issue)
Argument Handling
Validate arguments: Check for required arguments in prompt
Provide defaults: Suggest defaults when arguments missing
Document format: Explain expected argument format
Handle edge cases: Consider missing or invalid arguments
markdown
---
argument-hint: [pr-number]
---
$IF($1,
Review PR #$1,
Please provide a PR number. Usage: /review-pr [number]
)
Show full SKILL.md (487 more words)Show less
File References
Explicit paths: Use clear file paths
Check existence: Handle missing files gracefully
Relative paths: Use project-relative paths
Glob support: Consider using Glob tool for patterns
Bash Commands
Limit scope: Use Bash(git:*) not Bash(*)
Safe commands: Avoid destructive operations
Handle errors: Consider command failures
Keep fast: Long-running commands slow invocation
Documentation
Add comments: Explain complex logic
Provide examples: Show usage in comments
List requirements: Document dependencies
Version commands: Note breaking changes
markdown
---
description: Deploy application to environment
argument-hint: [environment] [version]
---
<!--
Usage: /deploy [staging|production] [version]
Requires: AWS credentials configured
Example: /deploy staging v1.2.3
-->
Deploy application to $1 environment using version $2...
Common Patterns
Review Pattern
markdown
---
description: Review code changes
allowed-tools: Read, Bash(git:*)
---
Files changed: !`git diff --name-only`
Review each file for:
1. Code quality and style
2. Potential bugs or issues
3. Test coverage
4. Documentation needs
Provide specific feedback for each file.
Testing Pattern
markdown
---
description: Run tests for specific file
argument-hint: [test-file]
allowed-tools: Bash(npm:*)
---
Run tests: !`npm test $1`
Analyze results and suggest fixes for failures.
Documentation Pattern
markdown
---
description: Generate documentation for file
argument-hint: [source-file]
---
Generate comprehensive documentation for @$1 including:
- Function/class descriptions
- Parameter documentation
- Return value descriptions
- Usage examples
- Edge cases and errors
See references/plugin-features-reference.md for detailed patterns.
Integration with Plugin Components
Commands can integrate with other plugin components for powerful workflows.
Agent Integration
Launch plugin agents for complex tasks:
markdown
---
description: Deep code review
argument-hint: [file-path]
---
Initiate comprehensive review of @$1 using the code-reviewer agent.
The agent will analyze:
- Code structure
- Security issues
- Performance
- Best practices
Agent uses plugin resources:
- ${CLAUDE_PLUGIN_ROOT}/config/rules.json
- ${CLAUDE_PLUGIN_ROOT}/checklists/review.md
Key points:
Agent must exist in plugin/agents/ directory
Claude uses Task tool to launch agent
Document agent capabilities
Reference plugin resources agent uses
Skill Integration
Leverage plugin skills for specialized knowledge:
markdown
---
description: Document API with standards
argument-hint: [api-file]
---
Document API in @$1 following plugin standards.
Use the api-docs-standards skill to ensure:
- Complete endpoint documentation
- Consistent formatting
- Example quality
- Error documentation
Generate production-ready API docs.
Key points:
Skill must exist in plugin/skills/ directory
Mention skill name to trigger invocation
Document skill purpose
Explain what skill provides
Hook Coordination
Design commands that work with plugin hooks:
Commands can prepare state for hooks to process
Hooks execute automatically on tool events
Commands should document expected hook behavior
Guide Claude on interpreting hook output
See references/plugin-features-reference.md for examples of commands that coordinate with hooks
Multi-Component Workflows
Combine agents, skills, and scripts:
markdown
---
description: Comprehensive review workflow
argument-hint: [file]
allowed-tools: Bash(node:*), Read
---
Target: @$1
Phase 1 - Static Analysis:
!`node ${CLAUDE_PLUGIN_ROOT}/scripts/lint.js $1`
Phase 2 - Deep Review:
Launch code-reviewer agent for detailed analysis.
Phase 3 - Standards Check:
Use coding-standards skill for validation.
Phase 4 - Report:
Template: @${CLAUDE_PLUGIN_ROOT}/templates/review.md
Compile findings into report following template.
When to use:
Complex multi-step workflows
Leverage multiple plugin capabilities
Require specialized analysis
Need structured outputs
Validation Patterns
Commands should validate inputs and resources before processing.
Argument Validation
markdown
---
description: Deploy with validation
argument-hint: [environment]
---
Validate environment: !`echo "$1" | grep -E "^(dev|staging|prod)$" || echo "INVALID"`
If $1 is valid environment:
Deploy to $1
Otherwise:
Explain valid environments: dev, staging, prod
Show usage: /deploy [environment]
File Existence Checks
markdown
---
description: Process configuration
argument-hint: [config-file]
---
Check file exists: !`test -f $1 && echo "EXISTS" || echo "MISSING"`
If file exists:
Process configuration: @$1
Otherwise:
Explain where to place config file
Show expected format
Provide example configuration
---
description: Build with error handling
allowed-tools: Bash(*)
---
Execute build: !`bash ${CLAUDE_PLUGIN_ROOT}/scripts/build.sh 2>&1 || echo "BUILD_FAILED"`
If build succeeded:
Report success and output location
If build failed:
Analyze error output
Suggest likely causes
Provide troubleshooting steps
Best practices:
Validate early in command
Provide helpful error messages
Suggest corrective actions
Handle edge cases gracefully
For detailed frontmatter field specifications, see references/frontmatter-reference.md.
For plugin-specific features and patterns, see references/plugin-features-reference.md.
For command pattern examples, see examples/ directory.
We found 30 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 10 other GitHub owners. This page covers the copy in anthropics/claude-plugins-official, which our catalogue first saw on October 7, 2026.
Claude Code Command Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Claude Code Command Development compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Claude Code Command Development this skillanthropics/claude-plugins-official
A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
Validates an Agent Skill package against a portable contract with a Python checker, then picks the smallest set of instruction, capability or lifecycle primitives for the task.
Guides creating or improving codewhale skills: file layout, discovery paths, writing rules and whether a need fits a skill, an MCP server, hooks or a plugin.
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts. This skill is a guide to writing Claude Code slash commands, which are prompts stored as Markdown files and run when invoked. It stresses that a command is written as instructions to Claude and not as a message to the user, and it shows a correct and an incorrect example side by side.
When should I use Claude Code Command Development?
Claude Code Command Development fits situations like: creating a new slash command for a project, for personal use or for a plugin; choosing frontmatter fields and arguments for a command; making a command that asks the user questions while it runs; deciding where commands should live and how to namespace them.
How do I install Claude Code Command Development in Claude Code?
Run `npx skills add anthropics/claude-plugins-official --skill command-development -a claude-code`. Or copy the skill folder (plugins/plugin-dev/skills/command-development in anthropics/claude-plugins-official) into .claude/skills/command-development in your project. Claude Code loads it when a task matches its description.
How do I install Claude Code Command Development in Codex?
Run `npx skills add anthropics/claude-plugins-official --skill command-development -a codex`. Or copy the skill folder (plugins/plugin-dev/skills/command-development in anthropics/claude-plugins-official) into .agents/skills/command-development in your project. Codex loads it when a task matches its description.
Can I use Claude Code Command Development in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anthropics/claude-plugins-official --skill command-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/command-development, .gemini/skills/command-development, .github/skills/command-development and .opencode/skills/command-development in your project.
What does Claude Code Command Development need to run?
SKILL.md names no scripts, command-line tools or credentials: Claude Code Command Development is instructions for the agent only.
Does Claude Code Command Development access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Claude Code Command Development safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Claude Code Command Development use?
Claude Code Command Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Claude Code Command Development use?
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 26k tokens, read only when the agent opens those files.
What are the alternatives to Claude Code Command Development?
Skills that share tags, products or a category with Claude Code Command Development: Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Mistral Vibe Plugin Creator (mistralai/mistral-vibe, 5.1k stars), Skill Contract Reviewer (rohitg00/ai-engineering-from-scratch, 65k stars) and Develop Wework Plugin (wecode-ai/Wegent, 868 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Claude Code Command Development?
anthropics (a GitHub organization, an official publisher) maintains it in anthropics/claude-plugins-official, which has 37,477 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 7, 2026.