# Gemini CLI

Gemini CLI and chock: install methods and steps, what it can enforce, and the evidence behind it.

Install methods: sync. Agentseam tier block+rewrite, grade best-effort before a tool runs.

> Ask the user before running any command on this page: each one changes how their agent or repository behaves.

## Install methods

- Repo hooks: `chock sync --repo . --agents gemini` writes `.gemini/settings.json` (ask the user before running it)

## Note

Gemini CLI is not an install target of chock: Antigravity CLI replaces Gemini CLI for unpaid users, so chock builds no Gemini CLI plugin. Use the Antigravity plugin. (Source: Chock's install command (`src/chock/install/cli.py`, `--client gemini-cli`) and agentseam's matrix notes for `gemini_cli`)

## What it can enforce

- Tier: block+rewrite
- Grade before a tool runs: best-effort
- Fail mode before a tool runs: open
- Basis: vendor-source
- Recorded: 2026-08-28

## Events

| Event | Can block | Can rewrite | Fail mode |
| --- | --- | --- | --- |
| pre_tool | yes | yes | open |
| post_tool | yes | no | open |
| prompt_submit | yes | no | open |
| stop | yes | no | open |
| session_start | no | no | open |
| session_end | no | no | open |
| pre_compact | no | no | open |

## Ask support

Answers an ask with: ask. Honours ask: yes. Evidence: tested (tests/test_guard_fail_to_ask.py::test_a_crashed_guard_asks_rather_than_allowing).

## Hook timeout

Default 60 seconds, set by the timeout field in ms.

Vendor source: https://github.com/google-gemini/gemini-cli/blob/main/docs/hooks/reference.md

## Test status

- Repo hooks: untested. A test of the plugin says nothing about repo hooks.
- No row in the engine's list of live tests for this agent.

## Known limits

Top-level `decision: allow|deny|ask` + `reason` (not nested); rewrite merges via hookSpecificOutput.tool_input; exit 2 also blocks. Write tools are write_file/replace. Fail mode is not documented as closed, so pre_tool is rated best-effort rather than enforced. Source (read from a clone, 2026-08-28) corrected two things the hooks reference alone had settled wrongly. `ask` IS honoured, at BeforeTool only: hook-utils routes isAskDecision() to PolicyDecision.ASK_USER and calls resolveConfirmation with forcedDecision:'ask_user', which prompts even where the user's own policy rule would have auto-allowed -- a stronger ask than most vendors here can express, and this adapter was degrading it to a deny. At BeforeAgent/AfterAgent only isBlockingDecision() is consulted, so an ask there is inert and the degradation is right. Conversely `allow` is read NOWHERE: nothing in the tree tests for it and hookAggregator synthesises it when no hook objected, so unlike VS Code's permissionDecision:allow it cannot skip a confirmation. Superseded (consumer tiers): Google's own post 'An important update: Transitioning Gemini CLI to Antigravity CLI' (https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/, 2026-05-19) announces 'the sunsetting of Gemini CLI in favor of Antigravity CLI' and says Gemini CLI stops serving Google AI Pro, Ultra and free Code Assist users on 2026-06-18, while enterprise access 'remains unchanged'. The CLI still ships (npm @google/gemini-cli 0.63.0, 2026-10-06, not npm-deprecated), so this row stays for paid and enterprise users; new work should target the antigravity row. Install's file was checked against source (google-gemini/gemini-cli@51617c1, read 2026-10-13): hookRegistry.ts reads settings `hooks` as event -> [{matcher, hooks: [{type, command}]}], the shape hook_config() writes, and settingsSchema.ts gives those objects no additionalProperties: false, so settings validation passes the `_agentseam` marker through. Project hooks load only in a trusted folder (hookRegistry.ts: 'Project hooks disabled because the folder is not trusted'); folder trust is off by default, and where a user turns it on the folder is trusted from Gemini's trust dialog or /permissions (geminicli.com/docs/cli/trusted-folders). Not run.


---

Built from engine [5a4b6287a46e](https://github.com/open-coder-ai/chock/commit/5a4b6287a46e07f9f856d9bbe10622bd1ff2e021) and catalog [1e60d211c1bb](https://github.com/open-coder-ai/chock-catalog/commit/1e60d211c1bb767152c6ab0167932da06ab3a10f).
