In this categoryClaude Code · 45
- How to Install Claude Code on macOSStart
- How to Install Claude Code on Windows Natively (No WSL)
- How to Install Claude Code on Windows with WSL
- How to Start Your First Project with Claude Code
- How to Create a CLAUDE.md File for Your Project
- How to Configure Claude Code with settings.json
- How to Layer Global, Project, and Local CLAUDE.md Files
- How to Set Up a Permissions Allowlist in Claude Code
- How to Use Claude Code Inside VS Code
- How to Add a Custom Slash Command in Claude Code
- How to Create a Custom Slash Command in Claude Code
- How to Pass Arguments to a Claude Code Slash Command
- How to Use Claude Code Slash Commands (Full List + Examples)
- How to Add Custom Slash Commands to Claude Code (Arguments + Frontmatter)
- How to Fix command not found After Installing Claude Code
- How to Add Any MCP Server to Claude Code
- How to Connect an MCP Server to Claude Code
- Best MCP Servers for Coding in 2026
- How to Add a Filesystem MCP Server to Claude Code
- How to Connect the GitHub MCP Server to Claude Code
- How to Create Your First Subagent in Claude Code
- Context7 Alternatives: MCP Servers for Up-to-Date Docs
- How to Manage MCP Server Scopes in Claude Code
- How to Restrict the Tools a Subagent Can Use
- How to Debug a Failing MCP Server in Claude Code
- How to Generate Unit Tests for a Function with Claude Code
- How to Refactor a Long Function Safely with Claude Code
- How to Debug a Failing Test with Claude Code
- How to Review Your Own Diff Before Committing with Claude Code
- How to Rename a Symbol Across the Codebase with Claude Code
- How to Review a Teammate's Pull Request with Claude Code
- How to Raise Test Coverage on a Specific File with Claude Code
- How to Debug a Runtime Error from a Stack Trace with Claude Code
- How to Add an Integration Test for an API Route with Claude Code
- How to Teach Claude Code Your Test Conventions with CLAUDE.md
- How to Find Which Commit Broke a Test with Claude Code
- How to Set Up Hooks for Automation in Claude Code
- Claude Code Hooks Explained: Events, Config, and Blocking
- How to Block Risky Commands with a Claude Code Hook
- How to Auto-Format Files After Edits with a PostToolUse Hook
- How to Get a Notification When Claude Code Finishes a Task
- How to Give a Coding Agent a Clear Stop Condition
- How to Make an Agent Plan Before It Edits
- How to Keep an Agent Session Focused by Clearing Context
- How to Pin a Specific Model for One Project
How to Add Custom Slash Commands to Claude Code (Arguments + Frontmatter)
Write project-specific slash commands that run a prepared instruction with one keystroke, pass arguments, and pre-approve tools with frontmatter.
If you type the same prompt every day — run the test suite, write a changelog entry, deploy to staging — you can turn it into a slash command that lives in your repo alongside the code. Everyone on the team gets the same command automatically when they pull.
What you need
- Claude Code installed and authenticated
- A git repo with a .claude/ folder (or create one)
- About 5 minutes
Step 1: Create the commands folder
Step 2: Write a command file
Create a Markdown file. The filename becomes the command name. The file content is the instruction Claude runs when you type the command. Keep it specific: vague instructions produce vague output.
Read the git diff since the last tag and write a changelog entry in CHANGELOG.md.
Format: ## [version] - [today's date], then a bullet list grouped by Added, Changed, Fixed.
Do not include internal refactors or test changes.Step 3: Pass arguments
Use $ARGUMENTS to drop everything typed after the command into the prompt. For separate values, use positional placeholders: $1 is the first argument, $2 the second. This command takes an issue number and a target branch.
Fix issue #$1 and open a pull request against the $2 branch.
Read the issue, reproduce it, write a failing test, then make it pass.
Keep the change minimal and describe it in the PR body.Step 4: Add frontmatter (optional)
A YAML frontmatter block at the top of the file tunes how the command behaves. The most useful fields are argument-hint (shown in autocomplete), allowed-tools (pre-approve tools so the command runs without permission prompts), and model (run this command on a specific model).
---
argument-hint: [file]
allowed-tools: Read, Grep
description: Scan a file for auth, injection, and secret-leaking issues
---
Scan $ARGUMENTS for authentication, injection, and secret-leaking issues.
Group findings by severity. Suggest a concrete fix for each.
Do not edit any files; only report.Useful command ideas
- /deploy — run your deploy script and summarize what changed
- /review-security — scan the current diff for auth, injection, and secret-leaking issues
- /docstring — add a one-line docstring to every exported function in the current file
- /pr-description — write a pull request description from the current branch diff
- /todos — list every TODO comment in the repo with file and line number
FAQ
Where do personal commands go?
Put them in ~/.claude/commands/ (or ~/.claude/skills/<name>/SKILL.md) instead of the project folder. Personal commands follow you across every project and are not committed to any repo.
How do I pass multiple arguments?
Use positional placeholders. $1 is the first word after the command, $2 the second, and so on. $ARGUMENTS holds everything at once. Declare an argument-hint in frontmatter so autocomplete shows what the command expects.
Watch related tutorials
16:30
19:27
1:42:18
28:14
41:09
9:47New guides in your inbox
Fresh step-by-step how-to guides as we publish them. One email a week, no more.