Skip to content llms.txt

argument_substitution

How user-provided arguments are injected into command templates. Mechanisms vary: $ARGUMENTS, {{args}}, positional $1/$2/${@:N}, and other interpolation syntaxes.

Type: object Content type: commands

ProviderSupportedMechanism
claude-code$ARGUMENTS (all args), $ARGUMENTS[N] (Nth arg), $N (positional), ${CLAUDE_SESSION_ID} and other env vars; shared with skills argument substitution
factory-droid$ARGUMENTS substitution in Markdown-type commands; equivalent to Claude Code's $ARGUMENTS pattern; Executable commands receive args via shell process stdin/args
gemini-cli{{args}} placeholder injects all user-provided arguments; processed before shell injection (!{...}) and other substitutions; default argument handling collapses newlines
opencodeNamed arguments via $VAR tokens substituted from user input at invocation (pattern observed in custom_commands.go — e.g. $ISSUE_NUMBER).
pipositional expansion: $1, $2 (specific positions), $@ or $ARGUMENTS (all args joined), ${@:N} (args from position N), ${@:N:L} (L args starting at N); richer syntax than most providers
roo-codeargument-hint frontmatter field documents expected arguments; user-supplied arguments are appended to the command body at invocation time
clineWorkflow markdown files are plain prompt templates with no documented argument-substitution placeholder (no {{args}} or equivalent)
codexno implementation details captured; only source is a redirect stub to external docs — cannot confirm argument substitution support
copilot-clicommand file format undocumented; no evidence of argument substitution in plugin.json schema or available sources
crushnot documented
windsurfCascade Workflows are plain Markdown prompt templates; no `{{args}}` or equivalent placeholder syntax is documented for user-provided arguments
zednot documented