-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
engine:geminiGemini CLI (google)Gemini CLI (google)enhancementNew feature or requestNew feature or request
Milestone
Description
Summary
Gemini CLI in non-interactive mode (which Untether uses via --output-format stream-json) converts all ASK_USER approval decisions to DENY, meaning write tools (file creation, editing) are blocked by default. The only way to enable write tools is --approval-mode=yolo.
Unlike Claude Code, Gemini CLI has no control channel for per-tool interactive approval — it's all-or-nothing.
Solution
Add an engine-aware "Approval mode" toggle to /config for Gemini, tied into the existing plan mode infrastructure:
- Home page: shows "Approval mode: read-only/full access" when engine is Gemini (alongside Claude's "Plan mode")
- Sub-page: "Read-only" (default, write tools blocked) / "Full access" (all tools approved via
--approval-mode=yolo) - Both Claude's plan mode and Gemini's approval mode use the same
permission_modefield onEngineOverrides, sharing theconfig:pmcallback prefix
Implementation
engine_overrides.py: addedPERMISSION_MODE_SUPPORTED_ENGINES = {"claude", "gemini"}config.py: made_page_homeand_page_planmodeengine-aware- Gemini runner's
build_args()already passes--approval-modefrompermission_mode— no runner changes needed - 9 new tests for Gemini approval mode UI
Files changed
src/untether/telegram/engine_overrides.pysrc/untether/telegram/commands/config.pytests/test_config_command.py
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
engine:geminiGemini CLI (google)Gemini CLI (google)enhancementNew feature or requestNew feature or request