How to Pass Arguments to a Claude Code Slash Command
Make slash commands dynamic with $ARGUMENTS and positional placeholders so one command handles many inputs.
A static slash command is useful, but most of the time you want to feed it a value, like a ticket number or a file name. Claude Code supports argument placeholders inside command files. This guide builds a /fix command that takes an issue number and acts on it.
- An existing .claude/commands folder
- A command idea that varies by input
- Claude Code open in the project
Step 1: Choose between $ARGUMENTS and positional
Use $ARGUMENTS to capture everything typed after the command as one string. Use numbered placeholders like $1 and $2 when you want distinct positional values. Pick whichever matches how you will call the command.
| Placeholder | Captures | Example call |
|---|---|---|
| $ARGUMENTS | Everything after the command | /fix 482 high priority |
| $1, $2 | Each whitespace-separated token | /fix 482 high |
Step 2: Write the command with a placeholder
Drop the placeholder anywhere in the body. When you run the command, Claude Code substitutes the text you typed before sending the prompt.
---
description: Investigate and fix a GitHub issue by number
allowed-tools: Bash(git:*), Read, Edit, Grep
---
Work on issue #$1 with priority $2.
1. Find the relevant code with grep.
2. Explain the root cause in two sentences.
3. Propose a minimal fix and apply it.
4. Summarize what changed for the PR description.Step 3: Run it with values
Call the command followed by the arguments. The placeholders fill in and the prompt runs as if you had typed the whole thing.
Result: a single /fix command that adapts to any issue number and priority you pass, replacing a copy-pasted multi-step prompt with two short arguments.
Watch related tutorials
19:27
50:25
1:42:18
28:14
41:09
9:47