Claude CodeIntermediate

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.

6 minIntermediate

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.

PlaceholderCapturesExample call
$ARGUMENTSEverything after the command/fix 482 high priority
$1, $2Each 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.

.claude/commands/fix.md
---
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.
.claude/commands/fix.md
Explorer
changelog.md
fix.md
.claude/commands/fix.md
1---
2description: Investigate and fix a GitHub issue
3---
4
5Work on issue #$1 with priority $2.
6...
$1 and $2 are replaced with the tokens you type after /fix.
Add file context with @
You can reference files inside a command body using an @ path, for example @src/config.ts, to have Claude read that file as part of the command without you attaching it each time.

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.

Claude Code
You
/fix 482 high
Agent
Working on issue #482 (priority high). Root cause: upload handler does not guard against empty files. Applied a guard in upload.ts. Ready for the PR summary?

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

Tags
#slash-commands#arguments#workflow#prompt