mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-21 03:21:11 -07:00
- Promotes refreshed multi-row status area and footer as the default experience. - Stabilizes Composer row heights to prevent layout 'jitter' during typing and model turns. - Unifies active hook status and model loading indicators into a single, stable Row 1. - Refactors settings to use backward-compatible 'Hide' booleans (ui.hideStatusTips, ui.hideStatusWit). - Removes vestigial context usage bleed-through logic in minimal mode to align with global UX direction. - Relocates toast notifications to the top status row for improved visibility. - Updates all CLI UI snapshots and architectural tests to reflect the stabilized layout. - Fixes persistent TypeScript compilation errors in tests by refactoring async render helpers (`LoadingIndicator.test.tsx`, `AppHeader.test.tsx`, `ToolMessage.test.tsx`) to avoid direct destructuring of complex inferred return types, ensuring consistent Promise flattening across all CI environments (Node 20/22/24).
2.4 KiB
2.4 KiB
Gemini CLI planning tools
Planning tools let Gemini CLI switch into a safe, read-only "Plan Mode" for researching and planning complex changes, and to signal the finalization of a plan to the user.
1. enter_plan_mode (EnterPlanMode)
enter_plan_mode switches the CLI to Plan Mode. This tool is typically called
by the agent when you ask it to "start a plan" using natural language. In this
mode, the agent is restricted to read-only tools to allow for safe exploration
and planning.
Note: This tool is not available when the CLI is in YOLO mode.
- Tool name:
enter_plan_mode - Display name: Enter Plan Mode
- File:
enter-plan-mode.ts - Parameters:
reason(string, optional): A short reason explaining why the agent is entering plan mode (for example, "Starting a complex feature implementation").
- Behavior:
- Switches the CLI's approval mode to
PLAN. - Notifies the user that the agent has entered Plan Mode.
- Switches the CLI's approval mode to
- Output (
llmContent): A message indicating the switch, for example,Switching to Plan mode. - Confirmation: Yes. The user is prompted to confirm entering Plan Mode.
2. exit_plan_mode (ExitPlanMode)
exit_plan_mode signals that the planning phase is complete. It presents the
finalized plan to the user and requests approval to start the implementation.
- Tool name:
exit_plan_mode - Display name: Exit Plan Mode
- File:
exit-plan-mode.ts - Parameters:
plan_path(string, required): The path to the finalized Markdown plan file. This file MUST be located within the project's temporary plans directory (for example,~/.gemini/tmp/<project>/plans/).
- Behavior:
- Validates that the
plan_pathis within the allowed directory and that the file exists and has content. - Presents the plan to the user for review.
- If the user approves the plan:
- Switches the CLI's approval mode to the user's chosen approval mode (
DEFAULTorAUTO_EDIT). - Marks the plan as approved for implementation.
- Switches the CLI's approval mode to the user's chosen approval mode (
- If the user rejects the plan:
- Stays in Plan Mode.
- Returns user feedback to the model to refine the plan.
- Validates that the
- Output (
llmContent):- On approval: A message indicating the plan was approved and the new approval mode.
- On rejection: A message containing the user's feedback.
- Confirmation: Yes. Shows the finalized plan and asks for user approval to proceed with implementation.