docs/cli/tutorials/plan-mode-steering.md
Architecting a complex solution requires precision. By combining Plan Mode's structured environment with model steering's real-time feedback, you can guide Gemini CLI through the research and design phases to ensure the final implementation plan is exactly what you need.
<!-- prettier-ignore -->[!NOTE] This is an experimental feature currently under active development and may need to be enabled under
/settings.
Plan Mode typically follows a linear path: research, propose, and draft. Adding model steering lets you:
Enter Plan Mode and start a task that requires research.
Prompt: /plan I want to implement a new notification service using Redis.
Gemini CLI enters Plan Mode and starts researching your existing codebase to identify where the new service should live.
As you see the agent calling tools like list_directory or grep_search, you
might realize it's missing the relevant context.
Action: While the spinner is active, type your hint:
"Don't forget to check packages/common/queues for the existing Redis config."
Result: Gemini CLI acknowledges your hint and immediately incorporates it into its research. You'll see it start exploring the directory you suggested in its very next turn.
After research, the agent starts drafting the implementation plan. If you notice it's proposing a design that doesn't align with your goals, steer it.
Action: Type:
"Actually, let's use a Publisher/Subscriber pattern instead of a simple queue for this service."
Result: The agent stops drafting the current version of the plan, re-evaluates the design based on your feedback, and starts a new draft that uses the Pub/Sub pattern.
Once the agent has used your hints to craft the perfect plan, review the final
.md file.
Action: Type: "Looks perfect. Let's start the implementation."
Gemini CLI exits Plan Mode and transitions to the implementation phase. Because the plan was refined in real-time with your feedback, the agent can now execute each step with higher confidence and fewer errors.
Logger class in src/utils."