Commit Graph

359 Commits

Author SHA1 Message Date
Jacob Richman
c1fb68dc7a fix(cli): restore first-launch theme prompt (#703) 2025-06-02 19:09:11 -07:00
Scott Densmore
00229cf6da feat(cli): Allow custom title in CLI header (#706) 2025-06-02 17:09:55 -07:00
N. Taylor Mullen
77ed1e283e Feat: Enable YOLO mode for non-interactive execution (#702) 2025-06-02 22:35:03 +00:00
Olcan
5f3c5c9672 strip ansi from shell output (#699) 2025-06-02 14:50:12 -07:00
Jacob Richman
84fe495485 Fix bug pasting multiline strings (#632) 2025-06-02 14:31:35 -07:00
Allen Hutchison
dc25ca81a3 feat(cli): add pro model availability check and fallback to flash (#608) 2025-06-02 13:55:54 -07:00
N. Taylor Mullen
042c387ad9 refactor: Update MCP tool discovery to use @google/genai - Also fixes JSON schema issues. (#682) 2025-06-02 20:39:25 +00:00
Tolik Malibroda
71553d12e7 feat: Add --yolo mode that automatically accepts all tools executions (#695)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-02 22:05:45 +02:00
N. Taylor Mullen
c4e6677821 feat: Refactor CLI header for customizable logo text (#658) 2025-06-02 11:45:09 -07:00
Miguel Solorio
be59580326 Color enhancements (#680) 2025-06-02 11:20:58 -07:00
Olcan
55d4bbb8e7 enable async tool discovery by making the registry accessor async; remove call to discoverTools that caused duplicate discovery (#691) 2025-06-02 09:56:32 -07:00
N. Taylor Mullen
4d3f0dcc35 fix: Ensure all tool calls are complete before submitting responses (#689) 2025-06-02 08:50:28 +00:00
Olcan
4ddeeb3eec more strict italics: delimiters cannot be preceded/followed by \w or [./\\]\S (#677) 2025-06-01 16:52:31 -07:00
N. Taylor Mullen
25b12d8297 feat: Implement non-interactive mode for CLI (#675) 2025-06-01 23:11:37 +00:00
N. Taylor Mullen
3d71ee597a fix: Display MCP server count in context summary (#674) 2025-06-01 22:48:48 +00:00
N. Taylor Mullen
cca2129f87 refactor: Centralize tool scheduling logic and simplify React hook (#670) 2025-06-01 14:16:24 -07:00
Scott Densmore
c2511c8e70 Fix: Make file path case-insensitive in @-command (#659) 2025-05-31 16:19:14 -07:00
Allen Hutchison
b78c320cbd feat: allow custom filename for context files (#654)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-31 12:49:28 -07:00
Miguel Solorio
f15dff0acd Update default & ANSI theme names (#637) 2025-05-31 11:10:52 -07:00
Taylor Mullen
d8ce0908a4 Test: Add comprehensive tests for useToolScheduler hook
- Introduces a suite of tests for the  hook, covering various scenarios including:
  - Successful tool execution
  - Tool not found errors
  - Errors during
  - Errors during tool execution
  - Tool confirmation (approved and cancelled) - (currently skipped)
  - Live output updates - (currently skipped)
  - Cancellation of tool calls (before execution and during approval) - (currently skipped)
  - Execution of multiple tool calls
  - Preventing scheduling while other calls are running - (currently skipped)
- Includes tests for the  utility function to ensure correct mapping of tool call states to display objects.
- Mocks dependencies like , , and individual  instances.
- Uses fake timers to control asynchronous operations.

Note: Some tests involving complex asynchronous interactions (confirmations, live output, cancellations) are currently skipped due to challenges in reliably testing these scenarios with the current setup. These will be addressed in future work.
2025-05-31 02:55:36 -07:00
Scott Densmore
dfd8759bd1 Fix: Update git branch watcher to use .git/logs/HEAD (#643) 2025-05-30 21:08:56 -07:00
Daniel Young Lee
0f5c712871 feat: Implement delayed Ctrl+C exit prompt
This change introduces a small delay after the first Ctrl+C press, prompting the user to press Ctrl+C again to exit. This helps prevent accidental termination of the application.

- Added `exitOnCtrlC={false}` to the Ink render options in `gemini.tsx` to enable custom Ctrl+C handling.
- Implemented logic in `App.tsx` to:
    - Display "Press Ctrl+C again to exit." for 2 seconds after the first Ctrl+C.
    - Exit the application if Ctrl+C is pressed again during this period.
    - Revert to normal operation if the second Ctrl+C is not pressed within the timeout.
- Defined a constant `CTRL_C_PROMPT_DURATION_MS` for the timeout duration.
2025-05-30 20:51:07 -07:00
Scott Densmore
6b78f3002f Fix/cli version unknown (#642) 2025-05-30 20:45:15 -07:00
Tommaso Sciortino
64bd136f42 Rename server->core (#638) 2025-05-30 18:25:47 -07:00
Olcan
7ad4ca5a7d confirm mcp tool executions from untrusted servers (per "trust" setting) (#631) 2025-05-30 15:32:21 -07:00
Jacob Richman
d695b90196 feat: add --show_memory_usage flag to display memory usage in status bar (#606) 2025-05-30 15:18:01 -07:00
Allen Hutchison
a7bf6e4e81 fix(cli): Clear input buffer before onSubmit in InputPrompt (#633) 2025-05-30 15:16:06 -07:00
Olcan
46f8757c63 add flags for markdown rendering and live updating to Tool to avoid special-casing shell tool by name, and open door for other tools to specify their rendering/updating (#629) 2025-05-30 13:59:05 -07:00
Brandon Keiji
454204cd0f fix(sandbox): pull sandbox image if it doesnt exist locally (#628) 2025-05-30 20:49:47 +00:00
Brandon Keiji
312ff7d8e9 fix(sandbox): prepare package.json before building sandbox image (#626) 2025-05-30 19:57:46 +00:00
Olcan
168cfe8aae disable markdown rendering of shell tool output (#625) 2025-05-30 12:43:59 -07:00
Brandon Keiji
840a2c730f feat(sandbox): use package config to dictate sandbox image name (#624) 2025-05-30 19:28:46 +00:00
Brandon Keiji
ce57868a4e fix(sandbox): set default env var to 'gemini-cli-sandbox' (#620) 2025-05-30 18:02:27 +00:00
Olcan
1eafa34029 truncate (hide) tool output at the top, add some spacing, also fix shell output interval change accidentally undone in a previous commit (#619) 2025-05-30 01:58:09 -07:00
Olcan
3b7bf9c9bd tweaks to shell abort logic based on feedback (#618) 2025-05-30 01:35:03 -07:00
Olcan
cf4e9b05ba allow aborting of shell mode (!) commands, similar to shell tool commands. fix bug that prevented aborts after first abort. more robust killing logic (#616) 2025-05-30 00:46:43 -07:00
Olcan
2f0917e853 update shell output at an interval to reduce flicker (#614) 2025-05-30 00:02:30 -07:00
Jacob Richman
2d5f781de6 Refactor read-file and support images. (#480) 2025-05-29 15:30:18 -07:00
Olcan
cdcb7e72cd allow writing to user cache directory on macos (fixes use of lyria mcp server [to generate songs] under seatbelt) (#600) 2025-05-29 15:06:09 -07:00
Brandon Keiji
927581c993 feat: publish root Dockerfile to our image registry (#599) 2025-05-29 14:01:44 -07:00
Jacob Richman
91ea43109a Change Config to use named parameters. (#593) 2025-05-29 13:51:17 -07:00
Allen Hutchison
08194f24a5 fix(cli): Support multiple @file references in atCommandProcessor (#590) 2025-05-28 17:08:05 -07:00
Brandon Keiji
71f2dcd0f1 feat: add git branch name to footer (#589) 2025-05-28 16:30:05 -07:00
Olcan
a9abfa7d60 much improved support for background processes, avoiding termination (via SIGPIPE) or eventual blocking (e.g. due to filled OS buffers) (#586) 2025-05-28 14:45:46 -07:00
Jacob Richman
de10bbe597 Cleanup: Remove low value StreamingContextType interface. (#585) 2025-05-28 12:46:08 -07:00
Jacob Richman
14712f2311 Refactor: Add GeminiRespondingSpinner to make use of streamingState idiomatic (#583) 2025-05-28 11:17:19 -07:00
DeWitt Clinton
58585e437d Add a keybinding for ctrl+w to delete the previous word. (#582)
Adds the following new keybindings to the cli text input buffer:

- `Ctrl+W` : Delete previous word
2025-05-28 09:59:25 -07:00
DeWitt Clinton
fb2dc11dea Display git commit info in the /about section. (#567)
This change detects the most recent git commit short hash and writes it to the `GIT_COMMIT_INFO` constant in `packages/cli/src/generated/git-commit.sh`, optionally appending the string "(local modifications)" if additional local changes after that commit are detected.

If set, this string is displayed in the `/about` dialog as well as passed into the `/bug` template.

Example:

```
> /about

╭───────────────────────────────────────────────────────────────────────────╮
│                                                                           │
│ About Gemini CLI                                                          │
│                                                                           │
│ CLI Version               development                                     │
│ Git Commit                43370ab (local modifications)                   │
│ Model                     gemini-2.5-pro-preview-05-06                    │
│ Sandbox                   sandbox-exec (minimal)                          │
│ OS                        darwin v23.11.0                                 │
│                                                                           │
╰───────────────────────────────────────────────────────────────────────────╯
```

Additionally, this change updates `.gitignore` to ignore the generated files, `scripts/clean.sh` to remove them, and adds a `npm run generate` stage for this and any other generators we need to write.
2025-05-28 00:04:26 -07:00
Taylor Mullen
a4f9a4ca9d feat: Allow cancellation of in-progress Gemini requests and pre-execution checks
- Implements cancellation for Gemini requests while they are actively being processed by the model.
- Extends cancellation support to the  logic within tools. This allows users to cancel operations during the phase where the system is determining if a tool execution requires user confirmation, which can include potentially long-running pre-flight checks or LLM-based corrections.
- Underlying LLM calls for edit corrections (within  and ) and next speaker checks can now also be cancelled.
- Previously, cancellation of the main request was not possible until text started streaming, and pre-execution checks were not cancellable.
- This change leverages the updated SDK's ability to accept an abort token and threads s throughout the request, tool execution, and pre-execution check lifecycle.

Fixes https://github.com/google-gemini/gemini-cli/issues/531
2025-05-27 23:46:37 -07:00
Olcan
78c0cd3d97 live output from shell tool (#573) 2025-05-27 15:40:18 -07:00