mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-30 06:54:15 -07:00
Document todo tool (#11695)
This commit is contained in:
committed by
GitHub
parent
b40f67b76a
commit
30dd2f1dfe
@@ -12,6 +12,7 @@ This document lists the available keyboard shortcuts in the Gemini CLI.
|
|||||||
| `Ctrl+L` | Clear the screen. |
|
| `Ctrl+L` | Clear the screen. |
|
||||||
| `Ctrl+O` | Toggle the display of the debug console. |
|
| `Ctrl+O` | Toggle the display of the debug console. |
|
||||||
| `Ctrl+S` | Allows long responses to print fully, disabling truncation. Use your terminal's scrollback to view the entire output. |
|
| `Ctrl+S` | Allows long responses to print fully, disabling truncation. Use your terminal's scrollback to view the entire output. |
|
||||||
|
| `Ctrl+T` | Toggle the display of the todo list. |
|
||||||
| `Ctrl+Y` | Toggle auto-approval (YOLO mode) for all tool calls. |
|
| `Ctrl+Y` | Toggle auto-approval (YOLO mode) for all tool calls. |
|
||||||
|
|
||||||
## Input Prompt
|
## Input Prompt
|
||||||
|
|||||||
@@ -401,6 +401,18 @@ their corresponding top-level category object in your `settings.json` file.
|
|||||||
- **Description:** A denylist of MCP servers to exclude.
|
- **Description:** A denylist of MCP servers to exclude.
|
||||||
- **Default:** `undefined`
|
- **Default:** `undefined`
|
||||||
|
|
||||||
|
#### `useSmartEdit`
|
||||||
|
|
||||||
|
- **`useSmartEdit`** (boolean):
|
||||||
|
- **Description:** Enable the smart-edit tool instead of the replace tool.
|
||||||
|
- **Default:** `true`
|
||||||
|
|
||||||
|
#### `useWriteTodos`
|
||||||
|
|
||||||
|
- **`useWriteTodos`** (boolean):
|
||||||
|
- **Description:** Enable the write_todos tool.
|
||||||
|
- **Default:** `false`
|
||||||
|
|
||||||
#### `security`
|
#### `security`
|
||||||
|
|
||||||
- **`security.folderTrust.enabled`** (boolean):
|
- **`security.folderTrust.enabled`** (boolean):
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ This documentation is organized into the following sections:
|
|||||||
`google_web_search` tool.
|
`google_web_search` tool.
|
||||||
- **[Memory Tool](./tools/memory.md):** Documentation for the `save_memory`
|
- **[Memory Tool](./tools/memory.md):** Documentation for the `save_memory`
|
||||||
tool.
|
tool.
|
||||||
|
- **[Todo Tool](./tools/todos.md):** Documentation for the `write_todos` tool.
|
||||||
|
|
||||||
### Extensions
|
### Extensions
|
||||||
|
|
||||||
|
|||||||
@@ -146,6 +146,10 @@
|
|||||||
"label": "Memory",
|
"label": "Memory",
|
||||||
"slug": "docs/tools/memory"
|
"slug": "docs/tools/memory"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"label": "Todos",
|
||||||
|
"slug": "docs/tools/todos"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"label": "MCP Servers",
|
"label": "MCP Servers",
|
||||||
"slug": "docs/tools/mcp-server"
|
"slug": "docs/tools/mcp-server"
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ Gemini CLI's built-in tools can be broadly categorized as follows:
|
|||||||
tool for reading content from multiple files or directories.
|
tool for reading content from multiple files or directories.
|
||||||
- **[Memory Tool](./memory.md) (`save_memory`):** For saving and recalling
|
- **[Memory Tool](./memory.md) (`save_memory`):** For saving and recalling
|
||||||
information across sessions.
|
information across sessions.
|
||||||
|
- **[Todo Tool](./todos.md) (`write_todos`):** For managing subtasks of complex
|
||||||
|
requests.
|
||||||
|
|
||||||
Additionally, these tools incorporate:
|
Additionally, these tools incorporate:
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# Todo Tool (`write_todos`)
|
||||||
|
|
||||||
|
This document describes the `write_todos` tool for the Gemini CLI.
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
The `write_todos` tool allows the Gemini agent to create and manage a list of
|
||||||
|
subtasks for complex user requests. This provides you, the user, with greater
|
||||||
|
visibility into the agent's plan and its current progress.
|
||||||
|
|
||||||
|
### Arguments
|
||||||
|
|
||||||
|
`write_todos` takes one argument:
|
||||||
|
|
||||||
|
- `todos` (array of objects, required): The complete list of todo items. This
|
||||||
|
replaces the existing list. Each item includes:
|
||||||
|
- `description` (string): The task description.
|
||||||
|
- `status` (string): The current status (`pending`, `in_progress`,
|
||||||
|
`completed`, or `cancelled`).
|
||||||
|
|
||||||
|
## Behavior
|
||||||
|
|
||||||
|
The agent uses this tool to break down complex multi-step requests into a clear
|
||||||
|
plan.
|
||||||
|
|
||||||
|
- **Progress Tracking:** The agent updates this list as it works, marking tasks
|
||||||
|
as `completed` when done.
|
||||||
|
- **Single Focus:** Only one task will be marked `in_progress` at a time,
|
||||||
|
indicating exactly what the agent is currently working on.
|
||||||
|
- **Dynamic Updates:** The plan may evolve as the agent discovers new
|
||||||
|
information, leading to new tasks being added or unnecessary ones being
|
||||||
|
cancelled.
|
||||||
|
|
||||||
|
When active, the current `in_progress` task is displayed above the input box,
|
||||||
|
keeping you informed of the immediate action. You can toggle the full view of
|
||||||
|
the todo list at any time by pressing `Ctrl+T`.
|
||||||
|
|
||||||
|
Usage example (internal representation):
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
write_todos({
|
||||||
|
todos: [
|
||||||
|
{ description: 'Initialize new React project', status: 'completed' },
|
||||||
|
{ description: 'Implement state management', status: 'in_progress' },
|
||||||
|
{ description: 'Create API service', status: 'pending' },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important notes
|
||||||
|
|
||||||
|
- **Enabling:** This tool is disabled by default. To use it, you must enable it
|
||||||
|
in your `settings.json` file by setting `"useWriteTodos": true`.
|
||||||
|
|
||||||
|
- **Intended Use:** This tool is primarily used by the agent for complex,
|
||||||
|
multi-turn tasks. It is generally not used for simple, single-turn questions.
|
||||||
Reference in New Issue
Block a user