Profiles / Google
Gemini CLI
The consumer service is gone and the repo is not. Stable runs about two weeks behind its own security merges.
Operator Read
The obituaries were wrong and the release channel is the real story. Google ended
consumer Google-account access for the unpaid and Google One tiers on 2026-06-18,
and the public conversation concluded from that the tool was dead. The repository
says otherwise: archived: false, 35 merged pull requests, three stable tags, and
near-daily nightlies inside the 2026-07-02 to 2026-07-27 window, including the
largest security release the project has shipped.
The thing an operator should actually plan around is that stable is
structurally about two weeks behind Gemini CLI's own security merges. That is
not a one-off. On 2026-07-08 the stable tag v0.50.0 contained none of the
pending security batch, while v0.51.0-preview.0, published 46 minutes earlier,
contained all of it. The five boundary fixes that landed in
v0.51.0
took between 9 and 20 days each from merge to stable. At window close a zero-click
remote-code-execution fix for the a2a-server backend was in preview and not
stable, and a fix preventing Application Default Credentials from crossing plain
HTTP was in neither -- nightly only.
The good news for anyone carrying our prior warnings: both open carry-forwards
closed. The memory-import symbolic-link escape and the @file path hardening
are in stable as of v0.51.0. That release is the upgrade floor for anyone
running Gemini CLI against repositories they do not control.
And one thing to stop trusting entirely: the shipped documentation. At the
v0.52.0 tag, authentication.mdx still lists consumer free-tier accounts as
eligible, with no mention anywhere in the file of the discontinuation, the
successor, or the date. The only notice is a banner injected by the website, still
in the future tense more than a month after the event. A public post named the
cutoff 13 days before the product acknowledged it at runtime, which means X has
been more accurate than the versioned docs for over 25 days.
Operator Stance / as of 2026-07-27
- Use it for
- Teams that want agent state as reviewable material -- memory patches approved before they stick, sessions exported and moved between machines, a structured end-of-run signal for CI -- running v0.51.0 or later. Workspace trust enforces in headless mode, which is what makes unattended and CI use defensible here at all.
- Avoid it for
- Any deployment where the stable channel has to be the patched channel. Stable ran roughly two weeks behind its own security merges all window: on 2026-07-08 the stable tag carried none of the security batch that a preview published 46 minutes earlier did, a zero-click a2a-server remote-code-execution fix reached preview only, and an ADC cleartext-credential fix reached nightly only. Specifically, do not run the a2a-server backend against workspaces you do not control on v0.52.0 or earlier, and do not use the shipped docs to decide whether your account tier still has access.
- Watch next
- When PR 28470 (a2a-server RCE) and PR 28517 (ADC HTTPS enforcement) reach stable, and whether the roughly two-week preview-to-stable interval is policy or drift; whether the maxSessionTurns default lands at 15 and starts truncating long agent runs; whether the eight-account contributor set and the auto-closing LLM triage bot narrow the project further; and whether the versioned docs ever record that consumer authentication ended.
Channel posture: stable trails its own security work
Channel is resolved by git ancestry against the dereferenced tag commit, not by
version number or date. Registry state at window close, from the
npm dist-tags: latest =
0.52.0, preview = 0.53.0-preview.0, nightly =
0.54.0-nightly.20260727.g3818efbbf.
What reached stable
v0.51.0
(2026-07-16) is the security release of the window and carries five boundary fixes
at once, each ahead against v0.51.0 and diverged against v0.50.0:
| fix | PR | merged | merge to stable |
|---|---|---|---|
| case-insensitive sensitive-path blocklist, plus VS Code approval prompt | 27966 | 2026-06-26 | 20 days |
defensive path resolution for @file at-references |
28053 | 2026-06-30 | 16 days |
| symbolic-link directory escape in the memory import processor | 28233 | 2026-07-01 | 15 days |
~/.gitconfig made read-only in the macOS sandbox |
28221 | 2026-07-06 | 10 days |
| strip thoughts from scrubbed history turns | 27971 | 2026-07-07 | 9 days |
Two of those are the carry-forwards this profile has tracked since 2026-07-01.
The memory-import escape is
confirmed present in v0.51.0 by ancestry
and absent from v0.50.0. Both are closed. Stable operators can stop avoiding
untrusted GEMINI.md memory imports once they are on v0.51.0; anyone pinned to
v0.49.0 or v0.50.0 is still exposed.
v0.52.0
(2026-07-22) is a reliability and tier-messaging release rather than a security
one. Fifteen merges; the operator-relevant ones are plan-mode write policy
simplified to support relative paths
(28398), a runtime
notice when the account has no consumer Code Assist tier
(28304), enriched
shared-project quota errors, a2a-server task cancellation that now aborts the
execution loop, write_file and replace no longer routing JSON and IPYNB
through LLM correction
(28223), and
google-auth-library at 10.9.0. If your automation drives plan mode with relative
paths, 28398 changes the write policy it was written against.
The day stable was less patched than preview
v0.50.0 and v0.51.0-preview.0 were published 46 minutes apart on 2026-07-08.
The preview carried the whole pending security batch. The
stable carried
none of it -- its notes list four changes, three of them CI and release plumbing
plus one tool-registry discovery feature -- because the release branch was cut
before those commits landed on main.
Taking the newest stable tag on the day it appears is not the same as taking the newest fixes. That sentence is the whole channel posture for this provider.
What is stranded right now
A zero-click a2a-server RCE fix, preview only.
PR 28470 merged
2026-07-21 and states it "reworks the a2a-server backend to prevent zero-click
Remote Code Execution (RCE) and environment poisoning in untrusted workspaces."
The escalation it closes is precise and worth understanding: an attacker plants
GEMINI_CLI_TRUST_WORKSPACE=true inside a malicious .gemini/.env, so an
untrusted workspace self-validates its own trust before the trust check runs. The
fix defers loadEnvironment() until after workspace trust is evaluated, ignores
workspace-level .env and .gemini/.env entirely when the workspace is
untrusted, and adds per-task environment isolation via AsyncLocalStorage and a
process.env proxy. Ancestry: diverged against v0.52.0, ahead against
v0.53.0-preview.0.
If you run the a2a-server backend against workspaces you do not control, the
stable channel did not carry this at window close.
An ADC cleartext-credential fix, nightly only.
PR 28517 merged
2026-07-24 and adds a protocol check during GoogleCredentialsAuthProvider
initialization so Application Default Credentials access and identity tokens,
including broad-scope cloud-platform tokens, cannot be transmitted over plain
HTTP. It is diverged against both v0.52.0 and v0.53.0-preview.0, and
ahead only against the 2026-07-27 nightly. Neither the latest nor the
preview dist-tag carries it. Enforce HTTPS at the network layer rather than
waiting for the binary.
A breaking default queued in preview.
PR 28429 moves the
maxSessionTurns default from -1 (unlimited) to 15 turns per user request,
and adds alternating-pattern detection that halts an A-B-A-B tool-call cycle at
the fifth alternation. The stated threat is an infinite ReAct loop and quota-drain
denial of service driven by indirect prompt injection in workspace files. It is a
reasonable mitigation and it will silently truncate long legitimate agent runs
when it lands. Set maxSessionTurns explicitly now rather than inherit the
changed default.
A sandbox profile whose meaning changes without its name changing.
PR 28424 rewrites the
macOS Seatbelt permissive-open and permissive-proxied profiles to begin with
(deny default) plus an explicit allow-list. The default profile selector is
unchanged, so the configuration you wrote still selects permissive-open and
permissive-open no longer permits what it did. Preview only. Test before
upgrading.
No advisory, for any of it
The repository's security-advisories endpoint returned an empty list on 2026-07-27, and no CVE was assigned to any in-window change. Every severity word above comes from a pull request title or body. An operator who wants to know whether their installed version is exposed has exactly one method available: resolve ancestry themselves.
The repo is maintained, and it is narrowing
The standing question from the 2026-06-24 to 2026-07-01 digest -- whether Google keeps the open-source repo alive now that the consumer service is gone -- is answered yes, with a qualification.
Alive: archived: false,
Apache-2.0, pushed_at 2026-07-27, 35 merged pull requests and 35 commits on
main in the window, three stable tags, three previews, near-daily nightlies, and
the largest security release in the project's recent history.
Narrowing, in two specific ways. All 35 in-window merges came from eight
accounts, seven human plus the release bot; no merge in the window came from
outside that set. And eight of the 35 build tools/caretaker-agent/, a Cloud
Run service for automated GitHub issue triage. In-window caretaker work includes
the LLM triage orchestrator,
posting a comment before auto-closing an issue,
and
sanitizing and wrapping issue titles in untrusted_context
-- a prompt-injection defense for the triage bot's own input, which is a nice
detail and also a reminder of what the bot is. File bugs expecting machine triage
first, and expect an LLM to be able to close them.
One number deserves a correction to the optimistic reading. Merged-PR counts run 80, then 21, then 35 across the last three windows, which looks like a rebound. Those windows are 26, 14, and 25 days long, so the per-day rate is roughly 3.1, then 1.5, then 1.4. Normalized, velocity did not recover after the consumer shutdown. It held at about half the pre-shutdown rate.
Minor but real: the @google/gemini-cli registry document carries a stray
dist-tag literally named false, pointing at a May 2026 nightly. Pin explicit
versions in lockfiles.
Documentation is the least accurate surface here
docs/get-started/authentication.mdx, pinned at the
v0.52.0 tag commit,
describes eligible accounts as including "free tier accounts ... such as Gemini
Code Assist for individuals" and instructs Google AI Pro and Ultra subscribers to
sign in with their subscription account. A search of that file at the tag for
antigravity, june 18, discontinu, replaced, unpaid, google one, and
deprecat returns no match. The versioned docs shipped with the current stable
contain no notice that consumer service ended.
The rendered site does carry a banner, and it is still in the future tense: Gemini CLI "will be replaced by Antigravity CLI on June 18th," more than a month after June 18th. That text is not in the repository at the tag, so it is injected by the site rather than versioned with the code.
What the product does instead is tell you at runtime.
PR 28304, in v0.52.0,
adds a notice when the account has no consumer Code Assist tier, steering the user
to set GOOGLE_CLOUD_PROJECT for the Vertex AI path. That is the first in-product
receipt for a change that took effect on 2026-06-18, and a public post had named
the date and the successor 13 days earlier.
The operator rule is blunt: do not use the shipped Gemini CLI docs to determine whether your tier still has access. Try the login.
Managed succession, now completed
The earlier reading of an in-product funnel steering free-tier users toward Antigravity CLI has resolved into a finished event rather than a trajectory. The migration funnel and the uncapped transition banner reached stable in v0.47.0; the service they were steering away from ended on 2026-06-18; and the runtime now handles the consequence directly. Two notes survive as posture rather than as news. The steered install was a pipe-to-shell of a remote script presented inside a trusted CLI, which normalizes unverified remote installs from inside an agent. And the scope was always the unpaid and Google One tiers, not paid Google Cloud or Vertex paths, which is why the tool is still a reasonable enterprise choice.
Findings: 2026-06-23-gemini-antigravity-migration-to-stable,
2026-06-23-gemini-antigravity-banner-uncapped-in-stable,
2026-07-01-gemini-cli-consumer-service-retired.
Authority and state surfaces
The durable capability read, unchanged in substance this window.
State you can inspect. The
Auto Memory
inbox proposes durable memory updates as patches you review before they stick,
with private patches behind a
tightened allowlist
separating personal from project scope. A session
exports to a file and imports via flag,
so session state is a serializable artifact rather than ambient context, and
resume works on legacy formats
with failures surfacing as errors instead of silently starting fresh. For
non-interactive callers, AgentExecutionStopped emits as
structured JSON.
Authority that follows headless and delegated runs.
Workspace trust enforces in headless mode,
so --non-interactive no longer skips the trust prompt silently, and
trust state is visible
in the MCP listing. Shell execution carries
safety evals
plus a
core-tools allowlist
in the policy engine. Subagents are
approval-mode aware,
so delegated work inherits the active posture rather than escaping it.
Worth holding against this window's a2a-server finding: workspace trust is the control most of the above rests on, and PR 28470 closed a path where an untrusted workspace could vouch for itself. The primitive is sound; its edges are still being found.
Delegation protocols. As of
v0.44.0,
LocalSessionInvocation and RemoteSessionInvocation ship as the
session-invocation protocols, and agent registration is first-wins
prioritize-project. Where a remote invocation actually runs is still undocumented,
so treat delegated workflows as testable but do not put the remote path into
production until Google names a destination.
Autonomy defaults. v0.44.0 collapsed the fan of Auto variants into a single
Auto mode and added shell-redirect auto-approval in AUTO_EDIT; PolicyEngine
integrates into ACP sessions, framed as a deadlock fix, with the structural effect
that enforcement reaches the protocol-session layer. Operators who came from an
earlier Auto variant still have to re-audit what the merged mode treats as safe,
because the release notes never enumerated which prior constraint survived.
Posture basis: 2026-05-07-gemini-reviewable-memory-and-trust,
2026-05-11-gemini-subagent-protocol-and-session-portability,
2026-05-12-gemini-session-resume-reliability,
2026-05-27-gemini-session-invocation-protocols-stable,
2026-05-27-gemini-auto-modes-merged-and-policy-engine-in-acp,
2026-06-03-gemini-cli-v0-45-0-release.
Open questions
What this window answered:
- Do the memory-import symlink escape and the
@filehardening reach stable? Yes, both, inv0.51.0on 2026-07-16, 15 and 16 days after merge. Both carry-forwards are closed. - Is Google still maintaining the open-source repo? Yes. 35 merges, three stable tags, and the window's largest security release, against a contributor set of eight accounts and a per-day merge rate holding at roughly half the pre-shutdown level.
- Was the preview-to-stable lag a one-time artifact? No. It is the provider's normal operating shape, measured at 9 to 20 days on the fixes that did land and open-ended on the ones that did not.
Still open:
- When do PR 28470 and PR 28517 reach stable, and is the interval policy or drift? A stated support policy would resolve it. Absent one, an operator has to resolve ancestry themselves, per fix, per release.
- Did the skill-path-traversal fix (
bca5667fc/ PR #27767) ever reach a stable tag? This window's harvest did not re-check it, and five stable tags have shipped since the last reading. The claim note is stale rather than current; do not cite it as an open exposure without re-resolving ancestry againstv0.52.0. - Where do remote session invocations actually run?
RemoteSessionInvocationhas been stable as a protocol since v0.44.0 with no documented runtime target. - What is the PolicyEngine-in-ACP default posture -- per-session enforcement by default, or only when an operator has configured a policy?
- Is
AUTO_EDITshell-redirect auto-approval gated by workspace trust, by the shell-tools allowlist, or by a separate decision? - Does Gemini CLI offer a first-class long-horizon primitive (goal, mission,
outcome) beyond in-session todos and memory? Memory captures facts, not intent.
No accepted finding establishes one, and this window produced nothing that
changes the answer. Tracked as
long-horizon-goal-primitive. - What state crosses the wire on session export? Whether accepted memory patches, approval-mode state, or active MCP connections are included is still undocumented.
- Does the caretaker agent's auto-close path have a human appeal route? An LLM that can close issues is a triage policy with no published escalation contract.
For research-lens open questions (preview and nightly harvest treatment, security
advisory handling), see sources/gemini-cli.yml#discovery.
What to watch next
- The preview-to-stable interval on the two stranded fixes. These are the
concrete tests: does the a2a-server RCE fix land in
v0.53.0, and does the ADC HTTPS enforcement skip preview or wait a full cycle? Two data points would turn an observed lag into a documented one. maxSessionTurnsat 15. When it reaches stable, long agent runs start ending at fifteen turns without an obvious cause. Watch for the release that carries it and for whether the notes say so plainly.- The Seatbelt profile rename problem.
permissive-openmeaning something materially different while keeping its name is the kind of change that produces support tickets rather than upgrade notes. - Whether the versioned docs ever record the consumer shutdown. More than a month of a future-tense site banner over a docs file that still describes the retired path is the surface most likely to mislead a new user.
- Whether the contributor set widens or narrows further, and how much of the merge volume the caretaker agent accounts for. Eight accounts and a triage bot is a maintainable project; it is not a community one.
- Whether any GitHub security advisory is ever published. Months of boundary fixes with an empty advisory list is a disclosure posture, not an accident.
- Documentation or schema for the session-export file format, and further
structured non-interactive output beyond
AgentExecutionStopped.
Verification
open source commits / evidence floor: commit diff reviewed / updated 2026-07-27
Verified claims
- 2026-07-01-gemini-cli-consumer-service-retired / verified 2026-07-01
- Gemini CLI: Memory Is Being Treated As A Reviewable Change / verified 2026-05-07
- Gemini CLI: Subagents Become Pluggable; Sessions Become Portable / verified 2026-05-11
- Gemini CLI: Local and Remote Session Invocation Protocols Land Stable / verified 2026-05-27
- Gemini CLI: Auto Modes Collapse and PolicyEngine Reaches Into ACP / verified 2026-05-27
- Gemini CLI: Session Resume Reliability Fix / verified 2026-05-12
- v0.45.0 Stable Release / verified 2026-06-03
- 2026-06-23-gemini-antigravity-migration-to-stable / verified 2026-06-23
- 2026-06-23-gemini-antigravity-banner-uncapped-in-stable / verified 2026-06-23
- 2026-06-23-gemini-skill-path-traversal-stranded-in-preview / verified 2026-06-23
Open Questions
- Long Horizon Goal Primitive
Used by other projects
Reporting on other watched projects that explicitly integrate with Gemini CLI.
- OpenHands becomes the GUI shell for other harnesses, with org-level LLM profiles 2026-05-27 / from OpenHands
Featured in
- Newer, Numbered Lower / 2026-08-03
- Rules Became Judgment / 2026-07-27
- Foreground Attention Is No Longer the Control / 2026-07-02
- Patched for Whom / 2026-07-01
- Governance, Sold Separately / 2026-06-24
- Protected on Paper / 2026-06-23
- Who's Allowed to Say Yes / 2026-06-16
- The Policy You Wrote Wasn't the Policy You Had / 2026-06-03
- Auto Stops Asking / 2026-05-27
- Governance Becomes Enforcement / 2026-05-12
- The Harness Leaves The Chat Box / 2026-05-07
- What Shaped the Run / 2026-05-06
Source policy: what Frontier watches and accepts as evidence
Edited and maintained by Bitter Frontier.