Skip to content llms.txt

Gemini CLI — Commands

File format
Markdown
Discovery path
.gemini/commands
Global install path
~/.gemini/commands
Syllago install method
Symlink, Direct copy
Symlink support
Yes
Native frontmatter fields
name, description, prompt

Features

How each feature converts to syllago's canonical format. See format conversion for what these statuses mean.

Fields

Native frontmatter or config fields this provider exposes. The first column is the provider's own field name; the canonical key column links to syllago's cross-provider equivalent.

Provider fieldConversionCanonical keySummary
prompt Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → Commands are .toml files with a required prompt field and an optional one-line description; no other fields are documented in v1.

Other features

Behaviors, conventions, and capabilities that aren't tied to a single named field — things like path-based activation, discovery rules, and lifecycle behavior.

FeatureConversionSummary
argument_substitution Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → {{args}} placeholder injects all user-provided arguments; processed before shell injection (!{...}) and other substitutions; default argument handling collapses newlines
builtin_commands Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → built-in slash commands include /commands reload (reload command files without restart) and /help; user-defined commands supplement but do not replace built-ins
{{args}} argument injection placeholder Embedded Conversion type: Embedded No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → {{args}} in prompts is replaced with user-supplied text — raw in the body, shell-escaped inside !{...} blocks; absent placeholder appends args after two newlines.
File content injection with @{...} Embedded Conversion type: Embedded No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → @{...} inlines file content or directory listings (text, images, PDFs, audio, video) into the prompt, respecting .gitignore and .geminiignore.
Shell command injection with !{...} Embedded Conversion type: Embedded No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → !{...} executes a shell command and injects its stdout into the prompt, with user confirmation and automatic escaping of {{args}}.
Namespace via subdirectory path Preserved Conversion type: Preserved Syntax survives conversion but the target provider may not interpret it. Learn more → Path separators in the file path relative to commands/ become colons in the command name (e.g., git/commit.toml → /git:commit).
/commands reload for live updates Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → /commands reload picks up newly created or modified .toml files without restarting the CLI for iterative development.
Project commands override user commands Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → When the same command name exists in both project and user commands directories, the project version always wins.

Sources

Source
https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/custom-commands.md