# How the $ARGUMENTS Variable Works in Claude Code Skill Definitions

> Learn how the $ARGUMENTS variable in Claude Code Skills dynamically injects user input into prompts without custom parsing. Understand this key feature for building powerful Claude plugins.

- Repository: [Anthropic/claude-plugins-community](https://github.com/anthropics/claude-plugins-community)
- Tags: how-to-guide
- Published: 2026-08-28

---

**The $ARGUMENTS placeholder in SKILL.md files is replaced at runtime with the argument string a user provides after a slash command, enabling dynamic prompt injection without custom parsing code.**

The `anthropics/claude-plugins-community` repository defines interactive capabilities for Claude Code through declarative skill definitions. The **$ARGUMENTS variable** provides a clean mechanism for passing free-form user input directly into skill prompts, eliminating the need for custom argument parsing logic.

## Runtime Substitution Mechanism

When a user invokes a skill via slash command, the Claude Code platform captures everything after the command name as the **argument string**. The skill engine then performs template substitution before sending the prompt to the model.

### Step-by-Step Argument Injection

1. **User invokes the skill**: `/eli5 quantum computing`

2. **Claude Code extracts the argument string**: `quantum computing`

3. **Engine substitutes** `$ARGUMENTS` with that string while building the prompt

4. **The model receives** the concrete prompt: `Topic: quantum computing`

This process occurs automatically for any SKILL.md file containing the `$ARGUMENTS` token.

## Implementation in the Repository

According to the source code analysis, the `$ARGUMENTS` placeholder currently appears in a specific skill within the repository.

### The eli5 Skill Definition

The only skill utilizing `$ARGUMENTS` is the **eli5** skill, defined in [`eli5/skills/eli5/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/skills/eli5/SKILL.md). This file contains the template:

```markdown
Topic: $ARGUMENTS

```

When a user runs `/eli5 photosynthesis`, the engine transforms this template into `Topic: photosynthesis` before model inference.

## Syntax Patterns and Examples

The `$ARGUMENTS` variable follows a consistent placement pattern within skill templates.

### Basic Substitution Pattern

Skills typically frame user input with static context using this structure:

```markdown
<some static text> $ARGUMENTS <more static text>

```

This pattern ensures the model receives properly contextualized instructions while incorporating dynamic user input.

### Practical Runtime Examples

Below are concrete examples of how `$ARGUMENTS` resolves during execution:

**Example 1: Simple Topic Assignment**

- **Template**: `Topic: $ARGUMENTS`
- **User command**: `/eli5 photosynthesis`
- **Result**: `Topic: photosynthesis`

**Example 2: Embedded Explanation Request**

- **Template**: `Explain $ARGUMENTS in simple terms.`
- **User command**: `/eli5 blockchain`
- **Result**: `Explain blockchain in simple terms.`

**Example 3: Step-by-Step Instructions**

- **Template**: `Give a step-by-step guide for $ARGUMENTS.`
- **User command**: `/eli5 making coffee`
- **Result**: `Give a step-by-step guide for making coffee.`

## Integration with Other Placeholders

While `$ARGUMENTS` handles slash command inputs, skills can combine this token with other placeholders such as `$INPUT`, `$OUTPUT`, and `$CONTEXT` to build richer, multi-dimensional prompts. This composability allows skills to reference conversation history, previous outputs, or structured inputs alongside the raw argument string provided by the user.

## Summary

- **$ARGUMENTS** is a runtime placeholder in Claude Code SKILL.md files that gets replaced with user-provided text
- The variable appears specifically in [`eli5/skills/eli5/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/skills/eli5/SKILL.md) within the `anthropics/claude-plugins-community` repository
- Substitution happens automatically when users invoke skills with arguments (e.g., `/eli5 quantum computing`)
- No custom parsing code is required; the platform handles extraction and injection
- Skills can combine `$ARGUMENTS` with other placeholders like `$INPUT` and `$CONTEXT` for complex prompt engineering

## Frequently Asked Questions

### What is the $ARGUMENTS variable in Claude Code skills?

The `$ARGUMENTS` variable is a template placeholder used in SKILL.md files that automatically receives the text a user types after a slash command. It enables skills to accept free-form input without implementing custom argument parsing logic.

### How does the runtime substitution of $ARGUMENTS work?

When a user invokes a skill like `/eli5 quantum computing`, Claude Code extracts the string `quantum computing` and replaces every instance of `$ARGUMENTS` in the skill's template with this value before sending the prompt to the model.

### Where is $ARGUMENTS implemented in the anthropics/claude-plugins-community repository?

Currently, `$ARGUMENTS` is implemented only in the eli5 skill, specifically within the file [`eli5/skills/eli5/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/skills/eli5/SKILL.md). This skill uses the pattern `Topic: $ARGUMENTS` to receive explanation topics from users.

### Can $ARGUMENTS be used multiple times in a single skill template?

Yes, you can include `$ARGUMENTS` multiple times within a SKILL.md file, and each instance will be replaced with the same user-provided argument string during the substitution phase.