Skip to content

Add Gemini CLI ACP runtime support #42

@chaqchase

Description

@chaqchase

Summary

Gemini CLI ships an ACP mode (gemini --acp) specifically for IDE and tool integrations. That makes it a natural candidate for Sentinel's runtime picker alongside Codex and Claude.

Why this is worth doing

  • It gives Gemini users a native runtime option instead of forcing them through the Sentinel-managed provider path.
  • The ACP surface is documented clearly enough that we should be able to implement this without guessing at private behavior.
  • This is a good forcing function for building a provider-agnostic ACP client that we can reuse for more than one runtime.

Proposed scope

  • Detect Gemini CLI availability and auth/setup readiness.
  • Create, resume, prompt, and cancel Gemini-backed sessions.
  • Support streaming responses in the current thread UI.
  • Hook Gemini's approval/session mode model into Sentinel's existing runtime controls.
  • Pass MCP server details during initialization when available.

High-level implementation overview

  1. Build or reuse a generic ACP transport that handles JSON-RPC over stdio and the core lifecycle methods Gemini documents: initialize, authenticate, newSession, loadSession, prompt, and cancel.
  2. Add a Gemini-specific runtime adapter that launches gemini --acp, manages auth/setup checks, and maps Gemini session events back into Sentinel's thread/session abstractions.
  3. Wire in Gemini-specific session controls where they exist, especially setSessionMode and unstable_setSessionModel, so approval behavior and model switching feel native instead of bolted on.
  4. Account for Gemini's proxied file system and MCP handshake expectations during initialization so tools remain scoped to what Sentinel explicitly exposes.
  5. Extend engine registration, persisted thread state, and settings UI so Gemini behaves like the existing Codex/Claude runtimes rather than a separate experimental path.

Acceptance criteria

  • Gemini is selectable as an engine when the CLI is installed and configured.
  • Sentinel can initialize, create a session, send prompts, and render streaming responses.
  • Session resume works for Gemini-backed threads.
  • Model changes and approval mode changes are wired through where Gemini supports them.
  • Debugging/runtime errors are clear enough to troubleshoot without digging through raw protocol logs.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions