@mmmbuto/gemini-cli-termux 0.42.0-termux → 0.46.0-termux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +22 -2
  2. package/bundle/builtin/antigravity-support/SKILL.md +58 -0
  3. package/bundle/{chunk-BF6DCDLJ.js → chunk-4TSWR3AN.js} +145 -55
  4. package/bundle/{chunk-PL5MCDGY.js → chunk-6HI7VNOG.js} +55 -70
  5. package/bundle/{chunk-6PXDEURC.js → chunk-7QZTHDKK.js} +2 -4
  6. package/bundle/{chunk-ORXUJRZC.js → chunk-B7I47N5E.js} +3 -3
  7. package/bundle/{chunk-EHTAR2YP.js → chunk-G2G6HEZZ.js} +1 -1
  8. package/bundle/{chunk-LX6GOGBA.js → chunk-IB4Q6NBY.js} +123186 -73766
  9. package/bundle/{chunk-MP2YMAMR.js → chunk-IT3YFQ3I.js} +1 -1
  10. package/bundle/{chunk-RJTRUG2J.js → chunk-TUDYL3X4.js} +29 -5
  11. package/bundle/{chunk-A6KCGXPK.js → chunk-WUVOS6TV.js} +13 -6
  12. package/bundle/{chunk-SLMD2AMF.js → chunk-YGU42N5I.js} +847 -655
  13. package/bundle/{cleanup-RTDYF5DD.js → cleanup-GEP2OOHM.js} +4 -5
  14. package/bundle/{devtools-ZLHMA45S.js → devtools-V7NE4CQA.js} +1 -1
  15. package/bundle/{devtoolsService-SKRXJOXW.js → devtoolsService-EVM2JJLB.js} +5 -6
  16. package/bundle/{dist-B3HBIK36.js → dist-R3LOFA4X.js} +331 -285
  17. package/bundle/docs/changelogs/index.md +59 -0
  18. package/bundle/docs/changelogs/latest.md +201 -167
  19. package/bundle/docs/changelogs/preview.md +45 -102
  20. package/bundle/docs/cli/auto-memory.md +61 -40
  21. package/bundle/docs/cli/gemini-md.md +0 -2
  22. package/bundle/docs/cli/plan-mode.md +0 -1
  23. package/bundle/docs/cli/settings.md +19 -19
  24. package/bundle/docs/cli/tutorials/memory-management.md +3 -3
  25. package/bundle/docs/extensions/reference.md +16 -0
  26. package/bundle/docs/extensions/releasing.md +58 -24
  27. package/bundle/docs/extensions/writing-extensions.md +7 -0
  28. package/bundle/docs/get-started/installation.mdx +2 -2
  29. package/bundle/docs/issue-and-pr-automation.md +29 -1
  30. package/bundle/docs/reference/commands.md +0 -3
  31. package/bundle/docs/reference/configuration.md +173 -78
  32. package/bundle/docs/reference/keyboard-shortcuts.md +23 -0
  33. package/bundle/docs/reference/tools.md +0 -2
  34. package/bundle/docs/tools/mcp-server.md +24 -3
  35. package/bundle/docs/tools/memory.md +10 -13
  36. package/bundle/examples/custom-commands/commands/fs/grep-code.toml +6 -0
  37. package/bundle/examples/custom-commands/gemini-extension.json +4 -0
  38. package/bundle/examples/exclude-tools/gemini-extension.json +5 -0
  39. package/bundle/examples/hooks/gemini-extension.json +4 -0
  40. package/bundle/examples/hooks/hooks/hooks.json +14 -0
  41. package/bundle/examples/hooks/scripts/on-start.js +8 -0
  42. package/bundle/examples/mcp-server/README.md +35 -0
  43. package/bundle/examples/mcp-server/example.js +60 -0
  44. package/bundle/examples/mcp-server/gemini-extension.json +11 -0
  45. package/bundle/examples/mcp-server/package.json +11 -0
  46. package/bundle/examples/policies/README.md +41 -0
  47. package/bundle/examples/policies/gemini-extension.json +5 -0
  48. package/bundle/examples/policies/policies/policies.toml +28 -0
  49. package/bundle/examples/skills/gemini-extension.json +4 -0
  50. package/bundle/examples/skills/skills/greeter/SKILL.md +7 -0
  51. package/bundle/examples/themes-example/README.md +31 -0
  52. package/bundle/examples/themes-example/gemini-extension.json +29 -0
  53. package/bundle/{gemini-NJWIVDFH.js → gemini-SGAFQX2R.js} +450 -297
  54. package/bundle/gemini.js +18 -13
  55. package/bundle/{dist-T73EYRDX.js → https-proxy-agent-AVGR4LHR.js} +8 -3
  56. package/bundle/{interactiveCli-QHKQZZJU.js → interactiveCli-MEEXSI2X.js} +1922 -1675
  57. package/bundle/{liteRtServerManager-USDJEPCM.js → liteRtServerManager-3EZO3JZ5.js} +6 -7
  58. package/bundle/{oauth2-provider-ARATJNEE.js → oauth2-provider-AJMTKEL6.js} +8 -10
  59. package/bundle/package.json +1 -1
  60. package/bundle/policies/plan.toml +1 -1
  61. package/bundle/policies/write.toml +0 -7
  62. package/bundle/src-LG4OHBW7.js +343 -0
  63. package/bundle/{start-IWR7MCIR.js → start-YW7YIVR7.js} +8 -9
  64. package/bundle/worker/worker-entry.js +7863 -0
  65. package/package.json +3 -3
  66. package/bundle/chunk-2X6HJV2G.js +0 -52710
  67. package/bundle/memoryDiscovery-EEGUKQ5C.js +0 -29
  68. package/bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js +0 -96
  69. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.d.ts +0 -7
  70. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js +0 -9
  71. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js.map +0 -1
  72. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.d.ts +0 -48
  73. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js +0 -333
  74. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js.map +0 -1
  75. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.d.ts +0 -36
  76. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js +0 -7
  77. package/bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js.map +0 -1
  78. package/bundle/node_modules/@google/gemini-cli-devtools/package.json +0 -33
  79. package/bundle/policies/memory-manager.toml +0 -20
@@ -1,6 +1,6 @@
1
- # Preview release: v0.41.0-preview.0
1
+ # Preview release: v0.45.0-preview.0
2
2
 
3
- Released: April 28, 2026
3
+ Released: May 27, 2026
4
4
 
5
5
  Our preview release includes the latest, new, and experimental features. This
6
6
  release may not be as stable as our [latest weekly release](latest.md).
@@ -13,109 +13,52 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **Real-Time Voice Mode:** Implemented a new real-time voice mode supporting
17
- both cloud and local backends for a more interactive experience.
18
- - **Enhanced Security & Trust:** Enforced workspace trust in headless mode and
19
- secured `.env` file loading to improve system integrity.
20
- - **Expanded Model Support:** Added experimental support for Gemma 4 models in
21
- both core and CLI packages.
22
- - **Improved Core Infrastructure:** Wired up new `ContextManager` and
23
- `AgentChatHistory` for better state management, and optimized boot performance
24
- by fetching experiments and quota asynchronously.
25
- - **New Developer Tools & UX:** Added support for output redirection for CLI
26
- commands, manual session UUIDs via command-line arguments, and persistent
27
- auto-memory scratchpad for skill extraction.
16
+ - **Context Simplification:** Completed major architectural work to simplify and
17
+ optimize how the agent manages and processes session context.
18
+ - **A2A Usage Metadata:** The Agent-to-Agent (A2A) interface now exposes
19
+ detailed usage metadata, providing better visibility into resource
20
+ consumption.
21
+ - **Improved Routing:** Updated default auto-routing logic and added bypasses
22
+ for certain routing classifiers to prevent orphaned function response errors.
23
+ - **Terminal Stability:** Fixed several issues affecting terminal environments,
24
+ including Termux relaunch loops and PTY resize errors.
25
+ - **Security & Fixes:** Strengthened MCP list security and addressed issues with
26
+ session resumption and PTY environment signals.
28
27
 
29
28
  ## What's Changed
30
29
 
31
- - chore(release): bump version to 0.41.0-nightly.20260423.gaa05b4583 by
30
+ - chore(release): bump version to 0.45.0-nightly.20260521.g854f811be by
32
31
  @gemini-cli-robot in
33
- [#25847](https://github.com/google-gemini/gemini-cli/pull/25847)
34
- - fix(core): only show `list` suggestion if the partial input is empty by
35
- @cynthialong0-0 in
36
- [#25821](https://github.com/google-gemini/gemini-cli/pull/25821)
37
- - feat(cli): secure .env loading and enforce workspace trust in headless mode by
38
- @ehedlund in [#25814](https://github.com/google-gemini/gemini-cli/pull/25814)
39
- - fix: fatal hard-crash on loop detection via unhandled AbortError by @hsm207 in
40
- [#20108](https://github.com/google-gemini/gemini-cli/pull/20108)
41
- - update package-lock.json by @ehedlund in
42
- [#25876](https://github.com/google-gemini/gemini-cli/pull/25876)
43
- - feat(core): enhance shell command validation and add core tools allowlist by
44
- @galz10 in [#25720](https://github.com/google-gemini/gemini-cli/pull/25720)
45
- - fix(ui): corrected background color check in user message components by
46
- @devr0306 in [#25880](https://github.com/google-gemini/gemini-cli/pull/25880)
47
- - perf(core): fix slow boot by fetching experiments and quota asynchronously by
48
- @spencer426 in
49
- [#25758](https://github.com/google-gemini/gemini-cli/pull/25758)
50
- - feat(core,cli): add support for Gemma 4 models (experimental) by @Abhijit-2592
51
- in [#25604](https://github.com/google-gemini/gemini-cli/pull/25604)
52
- - update FatalUntrustedWorkspaceError message to include doc link by @ehedlund
53
- in [#25874](https://github.com/google-gemini/gemini-cli/pull/25874)
54
- - docs: add Gemini CLI course link to README by @JayadityaGit in
55
- [#25925](https://github.com/google-gemini/gemini-cli/pull/25925)
56
- - feat(repo): add gemini-cli-bot metrics and workflows by @gundermanc in
57
- [#25888](https://github.com/google-gemini/gemini-cli/pull/25888)
58
- - fix(cli): allow output redirection for cli commands by @spencer426 in
59
- [#25894](https://github.com/google-gemini/gemini-cli/pull/25894)
60
- - fix(core): fail closed in YOLO mode when shell parsing fails for restricted
61
- rules by @ehedlund in
62
- [#25935](https://github.com/google-gemini/gemini-cli/pull/25935)
63
- - fix(cli-ui): revert backspace handling to fix Windows regression by @scidomino
64
- in [#25941](https://github.com/google-gemini/gemini-cli/pull/25941)
65
- - feat(voice): implement real-time voice mode with cloud and local backends by
66
- @Abhijit-2592 in
67
- [#24174](https://github.com/google-gemini/gemini-cli/pull/24174)
68
- - Changelog for v0.39.0 by @gemini-cli-robot in
69
- [#25848](https://github.com/google-gemini/gemini-cli/pull/25848)
70
- - feat(memory): persist auto-memory scratchpad for skill extraction by
71
- @SandyTao520 in
72
- [#25873](https://github.com/google-gemini/gemini-cli/pull/25873)
73
- - fix(cli): add missing response key to custom theme text schema by @gaurav0107
74
- in [#25822](https://github.com/google-gemini/gemini-cli/pull/25822)
75
- - fix(cli): provide manual update command when automatic update fails by
76
- @cocosheng-g in
77
- [#26052](https://github.com/google-gemini/gemini-cli/pull/26052)
78
- - test(cli): add unit tests for restore ACP command (#23402) by @cocosheng-g in
79
- [#26053](https://github.com/google-gemini/gemini-cli/pull/26053)
80
- - fix(ui): better error messages for ECONNRESET and ETIMEDOUT by @devr0306 in
81
- [#26059](https://github.com/google-gemini/gemini-cli/pull/26059)
82
- - feat(core): wire up the new ContextManager and AgentChatHistory by @joshualitt
83
- in [#25409](https://github.com/google-gemini/gemini-cli/pull/25409)
84
- - fix(cli): ensure sandbox proxy cleanup and remove handler leaks by @ehedlund
85
- in [#26065](https://github.com/google-gemini/gemini-cli/pull/26065)
86
- - fix(cli): correct alternate buffer warning logic for JetBrains by @Adib234 in
87
- [#26067](https://github.com/google-gemini/gemini-cli/pull/26067)
88
- - fix(cli): make MCP ping optional in list command and use configured timeout by
89
- @cocosheng-g in
90
- [#26068](https://github.com/google-gemini/gemini-cli/pull/26068)
91
- - fix(core): better error message for failed cloudshell-gca auth by @devr0306 in
92
- [#26079](https://github.com/google-gemini/gemini-cli/pull/26079)
93
- - feat(cli): provide manual session UUID via command line arg by @cocosheng-g in
94
- [#26060](https://github.com/google-gemini/gemini-cli/pull/26060)
95
- - Changelog for v0.40.0-preview.2 by @gemini-cli-robot in
96
- [#25846](https://github.com/google-gemini/gemini-cli/pull/25846)
97
- - (docs) update sandboxing documentation by @g-samroberts in
98
- [#25930](https://github.com/google-gemini/gemini-cli/pull/25930)
99
- - fix(core): enforce parallel task tracker updates by @anj-s in
100
- [#24477](https://github.com/google-gemini/gemini-cli/pull/24477)
101
- - Update policy so transient errors are not marked terminal by @DavidAPierce in
102
- [#26066](https://github.com/google-gemini/gemini-cli/pull/26066)
103
- - Implement bot that performs time-series metric analysis and suggests repo
104
- management improvements by @gundermanc in
105
- [#25945](https://github.com/google-gemini/gemini-cli/pull/25945)
106
- - fix(core): handle non-string model flags in resolution by @Adib234 in
107
- [#26069](https://github.com/google-gemini/gemini-cli/pull/26069)
108
- - fix(ux): added error message for ENOTDIR by @devr0306 in
109
- [#26128](https://github.com/google-gemini/gemini-cli/pull/26128)
110
- - Changelog for v0.40.0-preview.3 by @gemini-cli-robot in
111
- [#25904](https://github.com/google-gemini/gemini-cli/pull/25904)
112
- - fix(cli): prevent ACP stdout pollution from SessionEnd hooks by @cocosheng-g
113
- in [#26125](https://github.com/google-gemini/gemini-cli/pull/26125)
114
- - feat(cli): support boolean and number casting for env vars in settings.json by
115
- @cocosheng-g in
116
- [#26118](https://github.com/google-gemini/gemini-cli/pull/26118)
117
- - fix(cli): preserve Request headers in DevTools activity logger by @Adib234 in
118
- [#26078](https://github.com/google-gemini/gemini-cli/pull/26078)
32
+ [#27362](https://github.com/google-gemini/gemini-cli/pull/27362)
33
+ - fix(cli): prevent Termux relaunch and resize remount loops by @saymanq in
34
+ [#27110](https://github.com/google-gemini/gemini-cli/pull/27110)
35
+ - Feat/a2a expose usage metadata by @jvargassanchez-dot in
36
+ [#27288](https://github.com/google-gemini/gemini-cli/pull/27288)
37
+ - feat(context): Complete simplification work. by @joshualitt in
38
+ [#27345](https://github.com/google-gemini/gemini-cli/pull/27345)
39
+ - fix(core): force update_topic tool to execute sequentially by
40
+ @jvargassanchez-dot in
41
+ [#27357](https://github.com/google-gemini/gemini-cli/pull/27357)
42
+ - Changelog for v0.44.0-preview.0 by @gemini-cli-robot in
43
+ [#27360](https://github.com/google-gemini/gemini-cli/pull/27360)
44
+ - Changelog for v0.43.0 by @gemini-cli-robot in
45
+ [#27361](https://github.com/google-gemini/gemini-cli/pull/27361)
46
+ - Revert "fix(core): prevent SIGHUP kills in PTY environments" by @bbiggs in
47
+ [#27401](https://github.com/google-gemini/gemini-cli/pull/27401)
48
+ - fix(cli): filter internal session context from history during resumption by
49
+ @rmedranollamas in
50
+ [#27391](https://github.com/google-gemini/gemini-cli/pull/27391)
51
+ - Update default auto routing by @DavidAPierce in
52
+ [#27071](https://github.com/google-gemini/gemini-cli/pull/27071)
53
+ - fix(core): bypass routing classifiers to prevent orphaned function response
54
+ errors by @danielweis in
55
+ [#27389](https://github.com/google-gemini/gemini-cli/pull/27389)
56
+ - fix(core): suppress PTY resize EBADF errors by @scidomino in
57
+ [#27461](https://github.com/google-gemini/gemini-cli/pull/27461)
58
+ - fix(core): prevent blacklist bypass in mcp list by @ompatel-aiml in
59
+ [#27377](https://github.com/google-gemini/gemini-cli/pull/27377)
60
+ - fix(cli): ignore unmapped vim normal keys by @MukundaKatta in
61
+ [#27102](https://github.com/google-gemini/gemini-cli/pull/27102)
119
62
 
120
63
  **Full Changelog**:
121
- https://github.com/google-gemini/gemini-cli/compare/v0.40.0-preview.5...v0.41.0-preview.0
64
+ https://github.com/google-gemini/gemini-cli/compare/v0.44.0-preview.0...v0.45.0-preview.0
@@ -1,9 +1,10 @@
1
1
  # Auto Memory
2
2
 
3
3
  Auto Memory is an experimental feature that mines your past Gemini CLI sessions
4
- in the background and turns recurring workflows into reusable
5
- [Agent Skills](./skills.md). You review, accept, or discard each extracted skill
6
- before it becomes available to future sessions.
4
+ in the background and proposes durable memory updates and reusable
5
+ [Agent Skills](./skills.md). You review each candidate before it becomes
6
+ available to future sessions: apply memory updates, promote skills, or discard
7
+ anything you do not want.
7
8
 
8
9
  <!-- prettier-ignore -->
9
10
  > [!NOTE]
@@ -12,28 +13,32 @@ before it becomes available to future sessions.
12
13
  ## Overview
13
14
 
14
15
  Every session you run with Gemini CLI is recorded locally as a transcript. Auto
15
- Memory scans those transcripts for procedural patterns that recur across
16
- sessions, then drafts each pattern as a `SKILL.md` file in a project-local
17
- inbox. You inspect the draft, decide whether it captures real expertise, and
18
- promote it to your global or workspace skills directory if you want it.
16
+ Memory scans those transcripts for durable facts, preferences, workflow
17
+ constraints, and procedural patterns that recur across sessions. It can draft
18
+ memory updates as unified diff `.patch` files and draft reusable procedures as
19
+ `SKILL.md` files. All candidates are held in a project-local inbox until you
20
+ approve or discard them.
19
21
 
20
22
  You'll use Auto Memory when you want to:
21
23
 
22
24
  - **Capture team workflows** that you find yourself walking the agent through
23
25
  more than once.
26
+ - **Preserve durable project context** such as repeated verification commands,
27
+ local constraints, or personal project notes.
24
28
  - **Codify hard-won fixes** for project-specific landmines so future sessions
25
29
  avoid them.
26
30
  - **Bootstrap a skills library** without writing every `SKILL.md` by hand.
27
31
 
28
- Auto Memory complements—but does not replace—the
29
- [`save_memory` tool](../tools/memory.md), which captures single facts into
30
- `GEMINI.md`. Auto Memory captures multi-step procedures into skills.
32
+ Auto Memory complements direct memory-file editing. The agent can still persist
33
+ explicit user instructions by editing the appropriate Markdown memory file; Auto
34
+ Memory infers candidates from past sessions, writes reviewable patches or skill
35
+ drafts, and never applies them without your approval.
31
36
 
32
37
  ## Prerequisites
33
38
 
34
39
  - Gemini CLI installed and authenticated.
35
- - At least 10 user messages across recent, idle sessions in the project. Auto
36
- Memory ignores active or trivial sessions.
40
+ - At least one idle project session with 10 or more user messages. Auto Memory
41
+ ignores active, trivial, and sub-agent sessions.
37
42
 
38
43
  ## How to enable Auto Memory
39
44
 
@@ -66,36 +71,45 @@ UI, consume your interactive turns, or surface tool prompts.
66
71
  been idle for at least three hours and contain at least 10 user messages.
67
72
  2. **Lock acquisition.** A lock file in the project's memory directory
68
73
  coordinates across multiple CLI instances so extraction runs at most once at
69
- a time.
70
- 3. **Sub-agent extraction.** A specialized sub-agent (named `confucius`)
71
- reviews the session index, reads any sessions that look like they contain
72
- repeated procedural workflows, and drafts new `SKILL.md` files. Its
73
- instructions tell it to default to creating zero skills unless the evidence
74
- is strong, so most runs produce no inbox items.
75
- 4. **Patch validation.** If the sub-agent proposes edits to skills outside the
76
- inbox (for example, an existing global skill), it writes a unified diff
77
- `.patch` file. Auto Memory dry-runs each patch and discards any that do not
78
- apply cleanly.
79
- 5. **Notification.** When a run produces new skills or patches, Gemini CLI
80
- surfaces an inline message telling you how many items are waiting.
81
-
82
- ## How to review extracted skills
74
+ a time. A state file records processed session versions, and extraction is
75
+ throttled so short back-to-back CLI launches do not repeatedly scan history.
76
+ 3. **Candidate extraction.** A background extraction agent reviews the session
77
+ index, reads any sessions that look like they contain durable memory or
78
+ repeated procedural workflows, and drafts candidates. It defaults to
79
+ creating no artifacts unless the evidence is strong, so many runs produce no
80
+ inbox items.
81
+ 4. **Safety boundaries.** Auto Memory writes candidates to a review inbox. It
82
+ cannot directly edit active memory files, settings, credentials, or project
83
+ `GEMINI.md` files.
84
+ 5. **Patch validation.** Skill update patches are parsed and dry-run before
85
+ they are surfaced. Memory patches are parsed, target-allowlisted, and
86
+ applied atomically only when you approve them from the inbox.
87
+ 6. **Notification.** When a run produces new candidates, Gemini CLI surfaces an
88
+ inline message telling you how many items are waiting.
89
+
90
+ ## How to review extracted items
83
91
 
84
92
  Use the `/memory inbox` slash command to open the inbox dialog at any time:
85
93
 
86
94
  **Command:** `/memory inbox`
87
95
 
88
- The dialog lists each draft skill with its name, description, and source
89
- sessions. From there you can:
96
+ The dialog groups pending items into new skills, skill updates, and memory
97
+ updates. From there you can:
90
98
 
91
99
  - **Read** the full `SKILL.md` body before deciding.
92
100
  - **Promote** a skill to your user (`~/.gemini/skills/`) or workspace
93
101
  (`.gemini/skills/`) directory.
94
102
  - **Discard** a skill you do not want.
95
103
  - **Apply** or reject a `.patch` proposal against an existing skill.
104
+ - **Review** memory diffs before they touch active files.
105
+ - **Apply** or dismiss private and global memory patches. Private patches target
106
+ the project memory directory; global patches target only your personal
107
+ `~/.gemini/GEMINI.md` file.
96
108
 
97
109
  Promoted skills become discoverable in the next session and follow the standard
98
- [skill discovery precedence](./skills.md#skill-discovery-tiers).
110
+ [skill discovery precedence](./skills.md#skill-discovery-tiers). Applied memory
111
+ patches update the underlying memory files and reload memory for the current
112
+ session.
99
113
 
100
114
  ## How to disable Auto Memory
101
115
 
@@ -117,19 +131,26 @@ start. Existing inbox items remain on disk; you can either drain them with
117
131
  ## Data and privacy
118
132
 
119
133
  - Auto Memory only reads session files that already exist locally on your
120
- machine. Nothing is uploaded to Gemini outside the normal API calls the
121
- extraction sub-agent makes during its run.
122
- - The sub-agent is instructed to redact secrets, tokens, and credentials it
123
- encounters and to never copy large tool outputs verbatim.
124
- - Drafted skills live in your project's memory directory until you promote or
125
- discard them. They are not automatically loaded into any session.
134
+ machine.
135
+ - Auto Memory uses model calls to analyze selected local transcript content
136
+ during extraction. No candidates are applied automatically, but transcript
137
+ excerpts may be sent to the configured model as part of those calls.
138
+ - The extraction agent is instructed to redact secrets, tokens, and credentials
139
+ it encounters and to never copy large tool outputs verbatim.
140
+ - Drafted skills and memory patches live in your project's memory directory
141
+ until you promote, apply, dismiss, or discard them. They are not automatically
142
+ loaded into any session.
126
143
 
127
144
  ## Limitations
128
145
 
129
- - The sub-agent runs on a preview Gemini Flash model. Extraction quality depends
130
- on the model's ability to recognize durable patterns versus one-off incidents.
131
- - Auto Memory does not extract skills from the current session. It only
132
- considers sessions that have been idle for three hours or more.
146
+ - The extraction agent runs on a preview Gemini Flash model. Extraction quality
147
+ depends on the model's ability to recognize durable patterns versus one-off
148
+ incidents.
149
+ - Auto Memory does not extract memory or skills from the current session. It
150
+ only considers sessions that have been idle for three hours or more.
151
+ - Project or workspace shared instructions in project `GEMINI.md` files are not
152
+ auto-extractable. Auto Memory can propose private project memory, global
153
+ personal memory, and skills.
133
154
  - Inbox items are stored per project. Skills extracted in one workspace are not
134
155
  visible from another until you promote them to the user-scope skills
135
156
  directory.
@@ -138,6 +159,6 @@ start. Existing inbox items remain on disk; you can either drain them with
138
159
 
139
160
  - Learn how skills are discovered and activated in [Agent Skills](./skills.md).
140
161
  - Explore the [memory management tutorial](./tutorials/memory-management.md) for
141
- the complementary `save_memory` and `GEMINI.md` workflows.
162
+ the complementary explicit-memory and `GEMINI.md` workflows.
142
163
  - Review the experimental settings catalog in
143
164
  [Settings](./settings.md#experimental).
@@ -65,8 +65,6 @@ You can interact with the loaded context files by using the `/memory` command.
65
65
  being provided to the model.
66
66
  - **`/memory reload`**: Forces a re-scan and reload of all `GEMINI.md` files
67
67
  from all configured locations.
68
- - **`/memory add <text>`**: Appends your text to your global
69
- `~/.gemini/GEMINI.md` file. This lets you add persistent memories on the fly.
70
68
 
71
69
  ## Modularize context with imports
72
70
 
@@ -138,7 +138,6 @@ These are the only allowed tools:
138
138
  [`replace`](../tools/file-system.md#6-replace-edit) only allowed for `.md`
139
139
  files in the `~/.gemini/tmp/<project>/<session-id>/plans/` directory or your
140
140
  [custom plans directory](#custom-plan-directory-and-policies).
141
- - **Memory:** [`save_memory`](../tools/memory.md)
142
141
  - **Skills:** [`activate_skill`](../cli/skills.md) (allows loading specialized
143
142
  instructions and resources in a read-only manner)
144
143
 
@@ -40,6 +40,7 @@ they appear in the UI.
40
40
  | Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `true` |
41
41
  | Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `"30d"` |
42
42
  | Topic & Update Narration | `general.topicUpdateNarration` | Enable the Topic & Update communication model for reduced chattiness and structured progress reporting. | `true` |
43
+ | Log RAG Snippets | `general.logRagSnippets` | Log full Code Customization (RAG) retrieved snippets to a local file for debugging. | `false` |
43
44
 
44
45
  ### Output
45
46
 
@@ -162,25 +163,24 @@ they appear in the UI.
162
163
 
163
164
  ### Experimental
164
165
 
165
- | UI Label | Setting | Description | Default |
166
- | ---------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
167
- | Gemma Models | `experimental.gemma` | Enable access to Gemma 4 models via Gemini API. | `true` |
168
- | Voice Mode | `experimental.voiceMode` | Enable experimental voice dictation and commands (/voice, /voice model). | `false` |
169
- | Voice Activation Mode | `experimental.voice.activationMode` | How to trigger voice recording with the Space key. | `"push-to-talk"` |
170
- | Voice Transcription Backend | `experimental.voice.backend` | The backend to use for voice transcription. Note: When using the Gemini Live backend, voice recordings are sent to Google Cloud for transcription. | `"gemini-live"` |
171
- | Whisper Model | `experimental.voice.whisperModel` | The Whisper model to use for local transcription. | `"ggml-base.en.bin"` |
172
- | Voice Stop Grace Period (ms) | `experimental.voice.stopGracePeriodMs` | How long to wait for final transcription after stopping recording. | `1000` |
173
- | Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
174
- | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
175
- | Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
176
- | Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
177
- | Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
178
- | Enable Gemma Model Router | `experimental.gemmaModelRouter.enabled` | Enable the Gemma Model Router (experimental). Requires a local endpoint serving Gemma via the Gemini API using LiteRT-LM shim. | `false` |
179
- | Auto-start LiteRT Server | `experimental.gemmaModelRouter.autoStartServer` | Automatically start the LiteRT-LM server when Gemini CLI starts and the Gemma router is enabled. | `false` |
180
- | Memory v2 | `experimental.memoryV2` | Disable the built-in save_memory tool and let the main agent persist project context by editing markdown files directly with edit/write_file. Route facts across four tiers: team-shared conventions go to project GEMINI.md files, project-specific personal notes go to the per-project private memory folder (MEMORY.md as index + sibling .md files for detail), and cross-project personal preferences go to the global ~/.gemini/GEMINI.md (the only file under ~/.gemini/ that the agent can edit — settings, credentials, etc. remain off-limits). Set to false to fall back to the legacy save_memory tool. | `true` |
181
- | Auto Memory | `experimental.autoMemory` | Automatically extract memory patches and skills from past sessions in the background. Every change is written as a unified diff `.patch` file under `<projectMemoryDir>/.inbox/<kind>/` and held for review in /memory inbox; nothing is applied until you approve it. | `false` |
182
- | Use the generalist profile to manage agent contexts. | `experimental.generalistProfile` | Suitable for general coding and software development tasks. | `false` |
183
- | Enable Context Management | `experimental.contextManagement` | Enable logic for context management. | `false` |
166
+ | UI Label | Setting | Description | Default |
167
+ | ---------------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
168
+ | Gemma Models | `experimental.gemma` | Enable access to Gemma 4 models via Gemini API. | `true` |
169
+ | Voice Mode | `experimental.voiceMode` | Enable experimental voice dictation and commands (/voice, /voice model). | `false` |
170
+ | Voice Activation Mode | `experimental.voice.activationMode` | How to trigger voice recording with the Space key. | `"push-to-talk"` |
171
+ | Voice Transcription Backend | `experimental.voice.backend` | The backend to use for voice transcription. Note: When using the Gemini Live backend, voice recordings are sent to Google Cloud for transcription. | `"gemini-live"` |
172
+ | Whisper Model | `experimental.voice.whisperModel` | The Whisper model to use for local transcription. | `"ggml-base.en.bin"` |
173
+ | Voice Stop Grace Period (ms) | `experimental.voice.stopGracePeriodMs` | How long to wait for final transcription after stopping recording. | `4000` |
174
+ | Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
175
+ | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
176
+ | Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
177
+ | Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
178
+ | Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
179
+ | Enable Gemma Model Router | `experimental.gemmaModelRouter.enabled` | Enable the Gemma Model Router (experimental). Requires a local endpoint serving Gemma via the Gemini API using LiteRT-LM shim. | `false` |
180
+ | Auto-start LiteRT Server | `experimental.gemmaModelRouter.autoStartServer` | Automatically start the LiteRT-LM server when Gemini CLI starts and the Gemma router is enabled. | `false` |
181
+ | Auto Memory | `experimental.autoMemory` | Automatically extract memory patches and skills from past sessions in the background. Every change is written as a unified diff `.patch` file under `<projectMemoryDir>/.inbox/<kind>/` and held for review in /memory inbox; nothing is applied until you approve it. | `false` |
182
+ | Use the generalist profile to manage agent contexts. | `experimental.generalistProfile` | Suitable for general coding and software development tasks. | `false` |
183
+ | Enable Context Management | `experimental.contextManagement` | Enable logic for context management. | `false` |
184
184
 
185
185
  ### Skills
186
186
 
@@ -71,8 +71,8 @@ Just tell the agent to remember something.
71
71
 
72
72
  **Prompt:** `Remember that I prefer using 'const' over 'let' wherever possible.`
73
73
 
74
- The agent will use the `save_memory` tool to store this fact in your global
75
- memory file.
74
+ The agent will edit the appropriate memory Markdown file, so the fact is loaded
75
+ in future sessions.
76
76
 
77
77
  **Prompt:** `Save the fact that the staging server IP is 10.0.0.5.`
78
78
 
@@ -125,4 +125,4 @@ immediately. Force a reload with:
125
125
  `/memory` options.
126
126
  - Read the technical spec for [Project context](../../cli/gemini-md.md).
127
127
  - Try the experimental [Auto Memory](../auto-memory.md) feature to extract
128
- reusable skills from your past sessions automatically.
128
+ memory updates and reusable skills from your past sessions automatically.
@@ -210,6 +210,22 @@ To update an extension's settings:
210
210
  gemini extensions config <name> [setting] [--scope <scope>]
211
211
  ```
212
212
 
213
+ #### Environment variable sanitization
214
+
215
+ For security reasons, sensitive environment variables are filtered out and not
216
+ passed to extensions or MCP servers by default.
217
+
218
+ Extensions **will not** inherit the user's full shell environment variables.
219
+ They will only have access to:
220
+
221
+ 1. Standard safe variables (e.g., `HOME`, `PATH`, `TMPDIR`).
222
+ 2. Variables explicitly declared and requested in the `gemini-extension.json`
223
+ manifest via the `settings` array (using the `envVar` property).
224
+
225
+ If your extension requires specific environment variables (like an API key,
226
+ custom host, or config path), you **must** declare them in the `settings` array
227
+ so the CLI can allowlist them for use within the extension.
228
+
213
229
  ### Custom commands
214
230
 
215
231
  Provide [custom commands](../cli/custom-commands.md) by placing TOML files in a
@@ -1,7 +1,8 @@
1
1
  # Release extensions
2
2
 
3
3
  Release Gemini CLI extensions to your users through a Git repository or GitHub
4
- Releases.
4
+ Releases. This guide explains how to share your work, list it in the gallery,
5
+ and manage updates.
5
6
 
6
7
  Git repository releases are the simplest approach and offer the most flexibility
7
8
  for managing development branches. GitHub Releases are more efficient for
@@ -153,29 +154,62 @@ jobs:
153
154
  release/win32.arm64.my-tool.zip
154
155
  ```
155
156
 
156
- ## Migrating an Extension Repository
157
+ ## Migrate an extension repository
157
158
 
158
- If you need to move your extension to a new repository (for example, from a
159
- personal account to an organization) or rename it, you can use the `migratedTo`
160
- property in your `gemini-extension.json` file to seamlessly transition your
159
+ If you move your extension to a new repository or rename it, use the
160
+ `migratedTo` property in `gemini-extension.json` to seamlessly transition your
161
161
  users.
162
162
 
163
- 1. **Create the new repository**: Setup your extension in its new location.
164
- 2. **Update the old repository**: In your original repository, update the
165
- `gemini-extension.json` file to include the `migratedTo` property, pointing
166
- to the new repository URL, and bump the version number. You can optionally
167
- change the `name` of your extension at this time in the new repository.
168
- ```json
169
- {
170
- "name": "my-extension",
171
- "version": "1.1.0",
172
- "migratedTo": "https://github.com/new-owner/new-extension-repo"
173
- }
174
- ```
175
- 3. **Release the update**: Publish this new version in your old repository.
176
-
177
- When users check for updates, Gemini CLI will detect the `migratedTo` field,
178
- verify that the new repository contains a valid extension update, and
179
- automatically update their local installation to track the new source and name
180
- moving forward. All extension settings will automatically migrate to the new
181
- installation.
163
+ 1. **Create the new repository:** Set up your extension in its new location.
164
+ 2. **Update the old repository:** In your original repository, update the
165
+ `gemini-extension.json` file to include the `migratedTo` property pointing
166
+ to the new repository URL, and increment the version number.
167
+ ```json
168
+ {
169
+ "name": "my-extension",
170
+ "version": "1.1.0",
171
+ "migratedTo": "https://github.com/new-owner/new-extension-repo"
172
+ }
173
+ ```
174
+ 3. **Release the update:** Publish this new version in your old repository.
175
+
176
+ When users check for updates, Gemini CLI detects the `migratedTo` field,
177
+ verifies the new repository, and automatically updates their local installation
178
+ to track the new source. All settings migrate automatically.
179
+
180
+ ## How updates work
181
+
182
+ Gemini CLI automatically checks for extension updates based on the installation
183
+ method. Understanding these mechanisms helps you ensure your users always have
184
+ the latest version.
185
+
186
+ ### Sync manifest and tags
187
+
188
+ For GitHub releases, always ensure the `version` in `gemini-extension.json`
189
+ matches your GitHub release tag. While the CLI uses tags for update detection,
190
+ it displays the manifest version in the UI. Keeping them in sync prevents
191
+ confusion.
192
+
193
+ ### Update mechanisms
194
+
195
+ <details>
196
+ <summary>Technical update details</summary>
197
+
198
+ The CLI uses different strategies depending on the installation type:
199
+
200
+ - **GitHub releases:** The CLI queries the GitHub API for the latest release
201
+ tag. It ignores the `version` field in the manifest for detection.
202
+ - **Git clones:** The CLI runs `git ls-remote` to compare the latest remote
203
+ commit hash with your local `HEAD`.
204
+ - **Local extensions:** The CLI compares the `version` field in the source
205
+ directory's manifest with the installed version.
206
+
207
+ To verify an extension's installation type, inspect the `type` field in the
208
+ metadata file at `~/.gemini/extensions/<name>/.gemini-extension-install.json`.
209
+
210
+ </details>
211
+
212
+ <!-- prettier-ignore -->
213
+ > [!IMPORTANT]
214
+ > The `migratedTo` flow requires at least one release on the new repository for
215
+ > the CLI to recognize it as a valid update source.
@@ -159,6 +159,13 @@ When a user installs this extension, Gemini CLI will prompt them to enter the
159
159
  `sensitive` is true) and injected into the MCP server's process as the
160
160
  `MY_SERVICE_API_KEY` environment variable.
161
161
 
162
+ > **Important (Environment Variable Sanitization):** For security reasons,
163
+ > sensitive environment variables are filtered out and not passed to extensions
164
+ > or MCP servers by default. Extensions will _only_ have access to environment
165
+ > variables that are explicitly declared in the `settings` array using the
166
+ > `envVar` property, plus a few standard safe variables. Do not expect host
167
+ > environment variables to be available otherwise.
168
+
162
169
  ## Step 4: Link your extension
163
170
 
164
171
  Link your extension to your Gemini CLI installation for local development.
@@ -111,8 +111,8 @@ You can also run Gemini CLI using one of the following advanced methods:
111
111
  directly. This is useful for environments where you only have Docker and want
112
112
  to run the CLI.
113
113
  ```bash
114
- # Run the published sandbox image
115
- docker run --rm -it us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.1.1
114
+ # Run the published sandbox image for a specified CLI version
115
+ docker run --rm -it us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.42.0-nightly.20260428.g59b2dea0e
116
116
  ```
117
117
  - **Using the `--sandbox` flag:** If you have Gemini CLI installed locally
118
118
  (using the standard installation described above), you can instruct it to run