Docs: Minor change to website nav and headings (#10454)

Co-authored-by: Michael Bleigh <mbleigh@mbleigh.com>
This commit is contained in:
Jenna Inouye
2025-10-02 16:07:26 -07:00
committed by GitHub
parent 16d4701822
commit 2ab61dd16a
2 changed files with 17 additions and 13 deletions

View File

@@ -1,8 +1,8 @@
### Custom Commands # Custom Commands
Custom commands let you save and reuse your favorite or most frequently used prompts as personal shortcuts within Gemini CLI. You can create commands that are specific to a single project or commands that are available globally across all your projects, streamlining your workflow and ensuring consistency. Custom commands let you save and reuse your favorite or most frequently used prompts as personal shortcuts within Gemini CLI. You can create commands that are specific to a single project or commands that are available globally across all your projects, streamlining your workflow and ensuring consistency.
#### File locations and precedence ## File locations and precedence
Gemini CLI discovers commands from two locations, loaded in a specific order: Gemini CLI discovers commands from two locations, loaded in a specific order:
@@ -11,30 +11,30 @@ Gemini CLI discovers commands from two locations, loaded in a specific order:
If a command in the project directory has the same name as a command in the user directory, the **project command will always be used.** This allows projects to override global commands with project-specific versions. If a command in the project directory has the same name as a command in the user directory, the **project command will always be used.** This allows projects to override global commands with project-specific versions.
#### Naming and namespacing ## Naming and namespacing
The name of a command is determined by its file path relative to its `commands` directory. Subdirectories are used to create namespaced commands, with the path separator (`/` or `\`) being converted to a colon (`:`). The name of a command is determined by its file path relative to its `commands` directory. Subdirectories are used to create namespaced commands, with the path separator (`/` or `\`) being converted to a colon (`:`).
- A file at `~/.gemini/commands/test.toml` becomes the command `/test`. - A file at `~/.gemini/commands/test.toml` becomes the command `/test`.
- A file at `<project>/.gemini/commands/git/commit.toml` becomes the namespaced command `/git:commit`. - A file at `<project>/.gemini/commands/git/commit.toml` becomes the namespaced command `/git:commit`.
#### TOML File Format (v1) ## TOML File Format (v1)
Your command definition files must be written in the TOML format and use the `.toml` file extension. Your command definition files must be written in the TOML format and use the `.toml` file extension.
##### Required fields ### Required fields
- `prompt` (String): The prompt that will be sent to the Gemini model when the command is executed. This can be a single-line or multi-line string. - `prompt` (String): The prompt that will be sent to the Gemini model when the command is executed. This can be a single-line or multi-line string.
##### Optional fields ### Optional fields
- `description` (String): A brief, one-line description of what the command does. This text will be displayed next to your command in the `/help` menu. **If you omit this field, a generic description will be generated from the filename.** - `description` (String): A brief, one-line description of what the command does. This text will be displayed next to your command in the `/help` menu. **If you omit this field, a generic description will be generated from the filename.**
#### Handling arguments ## Handling arguments
Custom commands support two powerful methods for handling arguments. The CLI automatically chooses the correct method based on the content of your command\'s `prompt`. Custom commands support two powerful methods for handling arguments. The CLI automatically chooses the correct method based on the content of your command\'s `prompt`.
##### 1. Context-aware injection with `{{args}}` ### 1. Context-aware injection with `{{args}}`
If your `prompt` contains the special placeholder `{{args}}`, the CLI will replace that placeholder with the text the user typed after the command name. If your `prompt` contains the special placeholder `{{args}}`, the CLI will replace that placeholder with the text the user typed after the command name.
@@ -79,7 +79,7 @@ When you run `/grep-code It\'s complicated`:
5. The CLI prompts you to confirm this exact, secure command before execution. 5. The CLI prompts you to confirm this exact, secure command before execution.
6. The final prompt is sent. 6. The final prompt is sent.
##### 2. Default argument handling ### 2. Default argument handling
If your `prompt` does **not** contain the special placeholder `{{args}}`, the CLI uses a default behavior for handling arguments. If your `prompt` does **not** contain the special placeholder `{{args}}`, the CLI uses a default behavior for handling arguments.
@@ -120,7 +120,7 @@ The command follows this format: `/changelog <version> <type> <message>`
When you run `/changelog 1.2.0 added "New feature"`, the final text sent to the model will be the original prompt followed by two newlines and the command you typed. When you run `/changelog 1.2.0 added "New feature"`, the final text sent to the model will be the original prompt followed by two newlines and the command you typed.
##### 3. Executing Shell commands with `!{...}` ### 3. Executing Shell commands with `!{...}`
You can make your commands dynamic by executing shell commands directly within your `prompt` and injecting their output. This is ideal for gathering context from your local environment, like reading file content or checking the status of Git. You can make your commands dynamic by executing shell commands directly within your `prompt` and injecting their output. This is ideal for gathering context from your local environment, like reading file content or checking the status of Git.
@@ -158,7 +158,7 @@ Please generate a Conventional Commit message based on the following git diff:
When you run `/git:commit`, the CLI first executes `git diff --staged`, then replaces `!{git diff --staged}` with the output of that command before sending the final, complete prompt to the model. When you run `/git:commit`, the CLI first executes `git diff --staged`, then replaces `!{git diff --staged}` with the output of that command before sending the final, complete prompt to the model.
##### 4. Injecting file content with `@{...}` ### 4. Injecting file content with `@{...}`
You can directly embed the content of a file or a directory listing into your prompt using the `@{...}` syntax. This is useful for creating commands that operate on specific files. You can directly embed the content of a file or a directory listing into your prompt using the `@{...}` syntax. This is useful for creating commands that operate on specific files.
@@ -195,7 +195,7 @@ When you run `/review FileCommandLoader.ts`, the `@{docs/best-practices.md}` pla
--- ---
#### Example: A "Pure Function" refactoring command ## Example: A "Pure Function" refactoring command
Let's create a global command that asks the model to refactor a piece of code. Let's create a global command that asks the model to refactor a piece of code.

View File

@@ -2,6 +2,10 @@
{ {
"label": "Overview", "label": "Overview",
"items": [ "items": [
{
"label": "Introduction",
"slug": "docs"
},
{ {
"label": "Architecture Overview", "label": "Architecture Overview",
"slug": "docs/architecture" "slug": "docs/architecture"
@@ -115,7 +119,7 @@
"label": "Tools", "label": "Tools",
"items": [ "items": [
{ {
"label": "Overview", "label": "Introduction",
"slug": "docs/tools" "slug": "docs/tools"
}, },
{ {