summaryrefslogtreecommitdiff
path: root/packages/cli/src
AgeCommit message (Collapse)Author
2025-06-17Auto-update notifications (#1110)Eddie Santos
2025-06-16Update /help page (#1119)Miguel Solorio
2025-06-16Fix bug where single line inserts were deleting all text after the in… (#1114)Jacob Richman
2025-06-16Mock out 'open' in tests. Fix test issues. (#1100)Tommaso Sciortino
2025-06-16Preflight and integration npx (#1096)matt korwel
2025-06-16feat: clear should also clear chat history (#1008)Abhi
2025-06-16feat: text-buffer: input sanitization and delete character handling. (#1031)Jacob Richman
2025-06-16feat(cli): Standardize keyboard shortcut hints (#1092)N. Taylor Mullen
2025-06-16fix version release for Dockerfile build (#1080)Zach Sais
2025-06-15Update /tools desc to show the name of each tool as known to the model (#1091)Billy Biggs
2025-06-15feat(test): Increase test coverage across CLI and Core packages (#1089)N. Taylor Mullen
2025-06-16Add Vertex env vars to sandbox (#1005)Mark McDonald
Co-authored-by: Scott Densmore <[email protected]>
2025-06-15feat: Adds shell command context to gemini history (#1076)Abhi
2025-06-15refactor(cli): Use excludeTools for non-interactive mode (#1072)N. Taylor Mullen
2025-06-15Stabilize /bug command tests with consistent version mocking (#1070)Jerop Kipruto
The `/bug` command tests in `slashCommandProcessor.test.ts` were flaky due to inconsistent CLI versioning. This commit: - Implements a flexible, top-level mock for `getCliVersion` that can be overridden per test. - Sets a default mock value for `/bug` command tests via `beforeEach`. - Overrides the mock in one test case requiring a specific version ('test-version'). - Ensures the test's helper `getExpectedUrl` receives the correct explicit version. - Aligns the expected CLI version in the custom bug URL test with the default mock. These changes ensure consistent CLI versioning in tests, resolving flakiness. #1071
2025-06-15Support completion of checkpoint names in /resume (#1063)Billy Biggs
2025-06-15Add support for /mcp schema to show full parameter schema as JSON (#1050)Billy Biggs
Outputs a raw JSON version of the parameter names and descriptions as provided to the model, plus minor formatting adjustments to /mcp desc.
2025-06-15feat: Show model thoughts while loading (#992)Asad Memon
2025-06-15feat: Add token stats in footer (#909)Asad Memon
2025-06-15Add support for showing descriptions of CLI tools (#1052)Billy Biggs
Adds support for /tools desc to show the full description of tools as provided to the model.
2025-06-15Add telemetry command and refactor telemetry settings (#1060)Jerop Kipruto
#750 ### Telemetry Settings Refactors telemetry configuration to use a nested `telemetry` object in `settings.json`, for example: ```json { "telemetry": { "enabled": true, "target": "gcp" "log-prompts": "true" }, "sandbox": false } ``` The above includes - Centralized telemetry settings under a `telemetry` object in `settings.json`. - CLI flags for the `gemini` command to override all telemetry sub-settings: - `--telemetry` / `--no-telemetry` - `--telemetry-target <local|gcp>` - `--telemetry-otlp-endpoint <URL>` - `--telemetry-log-prompts` / `--no-telemetry-log-prompts` - Updates `packages/cli/src/config/config.ts` and `packages/core/src/config/config.ts` to read from the new settings structure and respect the new CLI flags. - Modifies `scripts/handle-telemetry.js`, `scripts/local_telemetry.js`, and `scripts/telemetry_utils.js` to align with the new settings structure. - Updates `docs/core/telemetry.md` to reflect the new settings structure, CLI flags, and order of precedence. - Renames `logUserPromptsEnabled` to `logPrompts` for brevity. ### `npm run telemetry` Add a new `npm run telemetry` command that uses `scripts/telemetry.js`, automates the entire process of setting up a local and GCP telemetry pipelines, including configuring the necessary settings in the `.gemini/settings.json` workspace file and installing required binaries (e.g. `otelcol-contrib`). --- ```shell $ npm run telemetry -- --target=gcp > [email protected] telemetry > node scripts/telemetry.js --target=gcp βš™οΈ Using command-line target: gcp πŸš€ Running telemetry script for target: gcp. ✨ Starting Local Telemetry Exporter for Google Cloud ✨ βš™οΈ Enabled telemetry in workspace settings. πŸ”§ Set telemetry OTLP endpoint to http://localhost:4317. 🎯 Set telemetry target to gcp. βœ… Workspace settings updated. βœ… Using Google Cloud Project ID: foo-bar πŸ”‘ Please ensure you are authenticated with Google Cloud: - Run `gcloud auth application-default login` OR ensure `GOOGLE_APPLICATION_CREDENTIALS` environment variable points to a valid service account key. - The account needs "Cloud Trace Agent", "Monitoring Metric Writer", and "Logs Writer" roles. βœ… otelcol-contrib already exists at /Users/jerop/github/gemini-cli/.gemini/otel/bin/otelcol-contrib 🧹 Cleaning up old processes and logs... βœ… Deleted old GCP collector log. πŸ“„ Wrote OTEL collector config to /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.yaml πŸš€ Starting OTEL collector for GCP... Logs: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log ⏳ Waiting for OTEL collector to start (PID: 17013)... βœ… OTEL collector started successfully on port 4317. ✨ Local OTEL collector for GCP is running. πŸš€ To send telemetry, run the Gemini CLI in a separate terminal window. πŸ“„ Collector logs are being written to: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log πŸ“Š View your telemetry data in Google Cloud Console: - Logs: https://console.cloud.google.com/logs/query;query=logName%3D%22projects%2Ffoo-bar%2Flogs%2Fgemini_cli%22?project=foo-bar - Metrics: https://console.cloud.google.com/monitoring/metrics-explorer?project=foo-bar - Traces: https://console.cloud.google.com/traces/list?project=foo-bar Press Ctrl+C to exit. ^C πŸ‘‹ Shutting down... βš™οΈ Disabled telemetry in workspace settings. πŸ”§ Cleared telemetry OTLP endpoint. 🎯 Cleared telemetry target. βœ… Workspace settings updated. πŸ›‘ Stopping otelcol-contrib (PID: 17013)... βœ… otelcol-contrib stopped. ```
2025-06-14bug: Fix code colorizer (#1046)Leo
2025-06-14centralize file filtering in `FileDiscoveryService` (#1039)Anas H. Sulaiman
2025-06-14Fix 404 URL for Vertex Auth (#1040)Steren
2025-06-14feat: Add custom URL support for the /bug command (#1017)Allen Hutchison
2025-06-14Add `/compress` command to force a compression of the context (#986)Jacob MacDonald
Related to https://b.corp.google.com/issues/423605555 - I figured this might be a simpler solution to start with, while still also being useful on its own even if we do implement that.
2025-06-13Add a local telemetry launcher (#1015)Keir Mierle
2025-06-13Improvements to web-fetch tool (#1030)Allen Hutchison
2025-06-13initialize `FileDiscoveryService` once (#1029)Anas H. Sulaiman
2025-06-13fix: add micromatch to package deps (#1020)Brandon Keiji
2025-06-13Stop extension MCPs from hopping into settings. (#1026)Tommaso Sciortino
2025-06-13reuse `GitIgnoreParser` for loading `.geminiignore` (#1025)Anas H. Sulaiman
2025-06-13Fix default extension context filename and update docs (#1024)Tommaso Sciortino
2025-06-13Don't exclude config.test.ts. (#1021)Tommaso Sciortino
2025-06-13feat(cli): support ctrl+d to exit (#878)Daniel Lee
Similar to ctrl+c, ctrl+d can now be used to exit the program. To avoid accidental exit, ctrl+d must be pressed twice in relatively quick succession (same as ctrl+c). Following common UX pattern, ctrl+d will be ignored when the input prompt is non-empty. This behavior is similar to how most shell (bash/zsh) behaves. To support this, I had to refactor so that text buffer is initialized outside of the InputPrompt component and instead do it on the main App component to allow input controller to have access to check the content of the text buffer.
2025-06-13Update contextFileName to support an optional list of strings (#1001)Billy Biggs
2025-06-13cleanup unused `allowBuildArtifacts` (#1010)Anas H. Sulaiman
2025-06-13cleanup unused `customIgnorePatterns` (#1009)Anas H. Sulaiman
2025-06-13Edit wording in /edit description (#1006)Leo
2025-06-13Support GOOGLE_API_KEY hoisting in sandbox too (#998)Mark McDonald
2025-06-13refactor: Use default centralized Flash & Pro models everywhere (#994)N. Taylor Mullen
2025-06-13Replace logo with custom ASCII (#958)Miguel Solorio
2025-06-13Handle telemetry in non-interactive mode (#1002)Jerop Kipruto
Changes: - Ensure proper shutdown in non-interactive mode - Ensures the initial user prompt is logged in non-interactive mode - Improve telemetry for streaming - handle chunks and input token count is now alongside other token counts in response To test: - Follow instructions in https://github.com/google-gemini/gemini-cli/blob/main/docs/core/telemetry.md#google-cloud - Run CLI in non-interactive mode and observe logs/metrics in GCP Logs Explorer and Metrics Explorer #750
2025-06-12Code Assist cleanup and docs (#993)Tommaso Sciortino
2025-06-12Reduce coupling between core and cli packages (#961)Marat Boshernitsan
Co-authored-by: Marat Boshernitsan <[email protected]>
2025-06-12Have @ pass through images and other Part objects (#990)Seth Troisi
2025-06-12Fixed @ file content not being added or sent to server (#962)Seth Troisi
2025-06-12telemetry: include user decisions in tool call logs (#966)Jerop Kipruto
Add the user's decision (accept, reject, modify) to tool call telemetry to better understand user intent. The decision provides crucial context to the `success` metric, as a user can reject a call that would have succeeded or accept one that fails. Also prettify the arguments json. Example: ![image](https://github.com/user-attachments/assets/251cb9fc-ceaa-4cdd-929c-8de47031aca8) #750
2025-06-12bug: only show tool tokens if > 0 (#985)Abhi
2025-06-12Fix build_sandbox command (#974)Jordan Demeulenaere