Gemini CLI: Event-Driven Scheduler

Gemini CLI

Gemini CLI v0.27.0 replaced its legacy tool execution system with a new event-driven scheduler, a foundational architectural change that makes the agent loop significantly more responsive and reliable. The new reactive, event-based model handles parallel tool calls, nested agent invocations, and multi-scheduler aggregation without blocking the interface β€” eliminating the latency and edge-case bugs that accumulated in the prior sequential system.


Event-Driven Scheduler Replaces Legacy Tool Execution in Gemini CLI v0.27.0

Released on February 3, 2026, Gemini CLI v0.27.0 introduced a new event-driven scheduler as the default engine for tool execution β€” a foundational architectural change that touches nearly every interaction between the user and the agent.

Why the Scheduler Matters

The tool execution scheduler is the core loop that drives an agentic coding session in Gemini CLI. Every time the model decides to call a tool β€” reading a file, running a shell command, searching the codebase, delegating to a subagent β€” the scheduler dispatches that call, collects the result, feeds it back to the model, and determines what happens next.

In the legacy system, this loop operated in a relatively synchronous, sequential manner. As Gemini CLI's feature set expanded β€” adding parallel tool calls, agent skills, subagent delegation, hooks, and plan mode β€” the legacy scheduler became a bottleneck and a source of edge-case bugs, particularly in complex multi-step sessions.

The New Architecture

The event-driven scheduler replaces the legacy system with a reactive, event-based model. Rather than blocking while waiting for a tool result, the scheduler emits and listens to events, enabling it to handle multiple concurrent tool calls and nested agent invocations without blocking the interface.

Key capabilities introduced with the new scheduler include:

  • Multi-scheduler tool aggregation β€” results from multiple concurrent tool calls are collected and presented together, reducing round-trip latency in complex multi-step tasks
  • Nested call IDs β€” each tool invocation carries a traceable identifier through the entire call chain, making complex agent behaviors easier to debug and correlate
  • Policy integration β€” the scheduler returns structured error messages when a tool call is denied by policy, replacing the ambiguous failures that could occur in the legacy system
  • Plan Mode enforcement β€” read-only policy in Plan Mode is enforced at the event level, ensuring no write calls slip through during the planning phase

Groundwork Laid Across Prior Releases

The v0.26.0 release had already added the underlying SchedulerStateManager for reactive tool state management and the type infrastructure the new scheduler depends on. The v0.27.0 switchover was therefore a natural culmination of several weeks of preparatory groundwork rather than a disruptive rewrite.

Google set enableEventDrivenScheduler: true as the default configuration immediately in v0.27.0. The practical result for users is a noticeably more responsive interface β€” particularly in sessions involving multiple tool calls, agent skill activations, or subagent delegations, where the old sequential model introduced perceptible delays between steps.