Commit graph

237 commits

Author SHA1 Message Date
Niladri Das
9a6422f331
fix: CLAUDE.md compatibility for GEMINI.md '@' file import behavior (#2978)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Allen Hutchison <adh@google.com>
2025-07-31 16:36:50 +00:00
Shreya Keshive
0c6f788406
Exclude companion extension from release versioning (#5226)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
2025-07-30 22:49:26 +00:00
N. Taylor Mullen
fd434626c5
chore(release): v0.1.15 (#5163) 2025-07-29 22:03:54 -07:00
Sijie Wang
fbdc8d5ab3
Vim mode (#3936) 2025-07-25 22:36:42 +00:00
Abhi
13b0971291
fix(ci): Fix failing release workflow by creating a self-contained bundle (#4888)
Co-authored-by: Jerop Kipruto <jerop@google.com>
2025-07-25 20:18:59 +00:00
Shreya Keshive
107ce8afa3
Polish companion extension README and package.json file ahead of publishing (#4729) 2025-07-24 00:08:25 +00:00
Abhi
9daead63dd
(feat): Initial Version of Custom Commands (#4572) 2025-07-22 04:34:55 +00:00
BOYI
12765eb775
fix: character encoding issues in shell command processor (#1949)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
Co-authored-by: Sandy Tao <sandytao520@icloud.com>
2025-07-21 22:26:40 +00:00
christine betts
9bdcdf97d8
[ide-mode] Keep track of recently-opened files and send them to the CLI (#4463) 2025-07-21 17:54:37 +00:00
ljxfstorm
5f8fff4db3
build(deps): Add missing resolved and integrity for all dependencies (#3501) 2025-07-20 22:52:53 +00:00
N. Taylor Mullen
fe00686c58
chore(release): v0.1.13 (#4515) 2025-07-19 13:40:55 -07:00
Tommaso Sciortino
4dbd9f30b6
Revert background agent commits (#4479) 2025-07-19 00:28:40 +00:00
Tommaso Sciortino
04bbc60b97
Demo background agent (#4409)
Co-authored-by: Bryan Morgan <bryanmorgan@google.com>
2025-07-18 22:21:46 +00:00
Pascal Birchler
4b8838bea4
fix: remove direct gaxios dependency (#4289) 2025-07-17 22:54:19 +00:00
Abdelkader Boudih
695afac33e
Update ESLint and related packages to latest versions (#4296) 2025-07-17 22:52:01 +00:00
warjiang
606a7702de
feat(cli): add explicit proxy option in cli (#2526)
Co-authored-by: Dcatfly <dcatfly@gmail.com>
2025-07-17 18:57:37 +00:00
Wanlin Du
f6ee0d182b
fix: update google/genai to v1.9.0 and switch to parametersJsonSchema for MCP related tools (#4176)
Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
2025-07-16 21:32:34 +00:00
christine betts
b61016f2a5
Set port dynamically in VSCode extension and read from it in gemini-cli and send initial notification (#4255) 2025-07-15 22:13:03 +00:00
N. Taylor Mullen
8d9dc44b71
Revert "Update to yargs v18 (#3759)" (#4252) 2025-07-15 12:36:54 -07:00
Pascal Birchler
2862ae7344
Update to yargs v18 (#3759) 2025-07-15 06:09:12 +00:00
christine betts
e9d680e8a4
Introduce VSCode companion extension (#3917) 2025-07-14 15:34:44 +00:00
N. Taylor Mullen
8cf7f530e1
chore(release): v0.1.12 (#4023) 2025-07-12 23:09:54 -07:00
N. Taylor Mullen
6ebe97c704
chore(release): v0.1.11 (#3939) 2025-07-12 00:33:17 +00:00
trapezoid
daed8b0f90
chore(deps): Pin @google/genai to 1.8.0 (#3834)
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-07-11 06:58:32 +00:00
Masato Sugiyama
8d054898af
chore: remove unused ink-text-input dependency (#2388) 2025-07-11 05:32:02 +00:00
matt korwel
75a128e7ee
chore(release): v0.1.10 (#3749)
Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
Co-authored-by: Aryan Sawant <156219699+aryanjsawant@users.noreply.github.com>
Co-authored-by: neo.alienson <neo@01man.com>
2025-07-10 16:55:22 +00:00
N. Taylor Mullen
725b23e37a
Revert "chore(deps): bump google-auth-library from 9.15.1 to 10.1.0 (… (#3676) 2025-07-09 18:19:28 +00:00
N. Taylor Mullen
d094026b3b
fix(deps): revert yargs bump and fix npx regression (#3610) 2025-07-08 23:44:56 -07:00
dependabot[bot]
95782b7b47
chore(deps): bump google-auth-library from 9.15.1 to 10.1.0 (#3583)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 06:01:18 +00:00
dependabot[bot]
c5abd7a302
chore(deps): bump dotenv from 16.6.1 to 17.1.0 (#3589)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 06:01:06 +00:00
dependabot[bot]
52db1b83a0
chore(deps): bump ws from 8.18.2 to 8.18.3 (#3581)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:47:51 +00:00
dependabot[bot]
b12149be7c
chore(deps): bump mime-types and @types/mime-types (#3582)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:44:40 +00:00
dependabot[bot]
9089107a8d
chore(deps-dev): bump esbuild from 0.25.5 to 0.25.6 (#3586)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:42:49 +00:00
dependabot[bot]
bedecc03f4
chore(deps-dev): bump globals from 16.2.0 to 16.3.0 (#3587)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:42:23 +00:00
dependabot[bot]
f6cd65190f
chore(deps): bump yargs from 17.7.2 to 18.0.0 (#3590)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:40:56 +00:00
dependabot[bot]
698ec8172c
chore(deps): bump gaxios from 6.7.1 to 7.1.1 (#3592)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:39:42 +00:00
Tommaso Sciortino
9273e8ddae
Fix version of shell-quote (#3557) 2025-07-09 00:40:49 +00:00
Tommaso Sciortino
4dab31f1c8
Improve Function Call argument validation and typing (#2881)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-07-08 06:48:44 +00:00
N. Taylor Mullen
da9b1baa6e
Update @google/genai -> 1.8.0 (#3339) 2025-07-06 01:10:57 +00:00
BigUncle
b564d4a088
fix(core): Sanitize tool parameters to fix 400 API errors (#3300) 2025-07-05 21:58:51 +00:00
matt korwel
a7256f630c
Relase: Clean up and condensing (#3321) 2025-07-05 20:58:59 +00:00
matt korwel
47dc16d243
feat: Update minimum Node.js version to 20 (#3277) 2025-07-05 14:55:15 +00:00
matt korwel
d43ea268b0
Releasing: Utilizing Github Actions and Tagging for release. (#2852)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-07-04 03:57:01 +00:00
Brandon Keiji
34935d6558
chore: bump version to 0.1.9 (#2906) 2025-07-01 23:30:04 +00:00
Eddie Santos
e5b1208bd8
update check + tests (#2772) 2025-07-01 03:03:16 +00:00
Mot
ad7839ea4c
quiet dotenv log message (#2239)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-28 02:03:20 +00:00
Brandon Keiji
e8d5dec380
chore: bump to 0.1.8 (#2308) 2025-06-28 00:08:16 +00:00
Sandy Tao
150df382f8
Upgrade to Ink 6 and React 19 (#2096)
Co-authored-by: jacob314 <jacob314@gmail.com>
2025-06-27 23:39:54 +00:00
Brandon Keiji
19d2a0fb35
fix: add missing gaxios dependency (#2302) 2025-06-27 23:24:03 +00:00
Xi Chen
d35e7d3eb1
Fix a circular dependency (#2246)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-27 20:59:47 +00:00
Brandon Keiji
8d1d40cc7a
chore: bump to 0.1.6 (#2285) 2025-06-27 20:57:07 +00:00
Brandon Keiji
d9892ada7f
fix: add repository field to package.jsons (#2032) 2025-06-26 22:36:34 +00:00
Brandon Keiji
01ff27709d
chore: bump to 0.1.5 (#1731) 2025-06-26 02:48:16 +00:00
Brandon Keiji
a8763abfb7
feat: add release trigger configuration (#1697) 2025-06-26 01:54:58 +00:00
anj-s
4b5ca6bc77
Add tos and privacy links docs for clarity (#1571) 2025-06-25 19:32:25 +00:00
matt korwel
6991ba1387
Version 0 1 1 (#1426) 2025-06-25 13:47:27 +00:00
Brandon Keiji
f6c36f75e3
fix: prepublish changes to package names (#1420) 2025-06-25 12:41:11 +00:00
matt korwel
2505af8522
Prerelease: Cleanup (#1404) 2025-06-24 23:41:36 +00:00
Jerop Kipruto
58572a6eaa
Use concurrently to run start script with GCP telemetry (#1329)
## TLDR

Introduces the `concurrently` package to simplify the dev startup process with GCP telemetry enabled.

## Dive Deeper

Previously, developers had to run the telemetry script and the main application start script in separate terminals. This change updates the `start:gcp` script to use `concurrently`, allowing both processes to be launched and managed with a single command. This improves the developer experience and reduces the chance of forgetting to start one of the required processes. 

## Reviewer Test Plan
Set the required environment variable:

```shell
export OTLP_GOOGLE_CLOUD_PROJECT=<your-project-id>
```

Run the following command:

```shell
npm run start:gcp
```

#750 

cc @teeler
2025-06-23 22:01:22 +00:00
Eddie Santos
c3971754bf
Auto-update notifications (#1110) 2025-06-17 15:24:07 +00:00
matt korwel
df938d6ee8
Preflight and integration npx (#1096) 2025-06-16 15:27:29 +00:00
N. Taylor Mullen
12c33c1fe6
feat(cli): add glob as a direct dependency (#1065) 2025-06-15 00:50:26 -07:00
Allen Hutchison
31b28ade01
Improvements to web-fetch tool (#1030) 2025-06-13 17:44:14 -07:00
Brandon Keiji
209381f06f
fix: add micromatch to package deps (#1020) 2025-06-13 22:18:05 +00:00
Shreya Keshive
1fcbdef994
Add web socket protocol support for IDE MCP server (#987)
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-06-13 09:30:44 -04:00
Tommaso Sciortino
28e656f882
Improve some tools to support abortSignal (#997) 2025-06-12 19:46:00 -07:00
matt korwel
9a11567f73
Revert "Make glob tool support abortSignal" (#996) 2025-06-13 00:53:10 +00:00
Marat Boshernitsan
181abde2ff
Reduce coupling between core and cli packages (#961)
Co-authored-by: Marat Boshernitsan <maratb@google.com>
2025-06-12 17:17:29 -07:00
Tommaso Sciortino
f8863f4d00
Make glob tool support abortSignal (#988) 2025-06-12 13:27:40 -07:00
dependabot[bot]
9072a4e5ee
chore(deps-dev): bump esbuild from 0.23.1 to 0.25.0 (#872)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 06:21:50 +00:00
Louis Jimenez
e0f4f428fc
Restore Checkpoint Feature (#934) 2025-06-11 15:33:09 -04:00
Tommaso Sciortino
95fdc66e7d
Register dependency added in PR:910 (#925) 2025-06-10 20:39:29 -07:00
Tommaso Sciortino
d79dafc577
Basic code assist support (#910) 2025-06-10 16:00:13 -07:00
Olcan
e38d2078cc
restricted networking for all sandboxing methods, new seatbelt profiles, updated docs, fixes to sandbox build, debugging through sandbox (#891) 2025-06-10 08:58:37 -07:00
matt korwel
3b943c1582
Windows: Refactor Shell Scripts to Node.js for Cross-Platform Compatibility (#784) 2025-06-09 12:19:42 -07:00
Abhi
2182a1cd2c
Bump @google/genai dependency (#870) 2025-06-09 14:17:39 -04:00
matt korwel
37edbd8c18
Rollforward AST changes to unblock Sandboxing (#863) 2025-06-08 19:07:25 -07:00
N. Taylor Mullen
72fa01f62d
feat(git): Refactor gitignore handling to use ignore library instead of minimatch (#864) 2025-06-08 18:32:19 -07:00
matt korwel
584286cfd9
fix(deps): externalize tree-sitter (#840)
Submitting without approval to fix broken deployment on main. But also, we should lock this down.
2025-06-08 02:05:55 -07:00
cperry-goog
18d6a11c04
refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
matt korwel
f1a4e5d4d3
Creating Node AST Tool. (#756) 2025-06-07 12:07:58 -07:00
Jerop Kipruto
2ebf2fbc82
OpenTelemetry Integration & Telemetry Control Flag (#762) 2025-06-05 13:04:25 -07:00
Eddie Santos
422c763a55
Add support for .geminiignore file (#757) 2025-06-05 10:15:27 -07:00
anj-s
78b2a28fb6
Checks for diff changes before displaying the code snippet (#751) 2025-06-05 06:48:03 -07:00
Keith Ballinger
c313762ba0
Ignore folders files (#651)
# Add .gitignore-Aware File Filtering to gemini-cli

This pull request introduces .gitignore-based file filtering to the gemini-cli, ensuring that git-ignored files are automatically excluded from file-related operations and suggestions throughout the CLI. The update enhances usability, reduces noise from build artifacts and dependencies, and provides new configuration options for fine-tuning file discovery.

Key Improvements
.gitignore File Filtering

All @ (at) commands, file completions, and core discovery tools now honor .gitignore patterns by default.
Git-ignored files (such as node_modules/, dist/, .env, and .git) are excluded from results unless explicitly overridden.
The behavior can be customized via a new fileFiltering section in settings.json, including options for:
Turning .gitignore respect on/off.
Adding custom ignore patterns.
Allowing or excluding build artifacts.
Configuration & Documentation Updates

settings.json schema extended with fileFiltering options.
Documentation updated to explain new filtering controls and usage patterns.
Testing

New and updated integration/unit tests for file filtering logic, configuration merging, and edge cases.
Test coverage ensures .gitignore filtering works as intended across different workflows.
Internal Refactoring

Core file discovery logic refactored for maintainability and extensibility.
Underlying tools (ls, glob, read-many-files) now support git-aware filtering out of the box.


Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-04 04:40:46 +00:00
N. Taylor Mullen
54eb1419a8
Update package-lock.json (#738) 2025-06-04 04:05:39 +00:00
Olcan
00a9f654a3
fixed strip-ansi dep by installing it in core package (also ran npm install in cli package that resulted in the minor changes here) (#727) 2025-06-03 13:37:59 -07:00
N. Taylor Mullen
42bedbc3d3
feat: Refactor CLI header for customizable logo text (#658) 2025-06-02 11:45:09 -07:00
Allen Hutchison
53bf778497
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
Tommaso Sciortino
21fba832d1
Rename server->core (#638) 2025-05-30 18:25:47 -07:00
Olcan
094b9dc474
use npx json instead of jq (#617) 2025-05-30 01:12:36 -07:00
Brandon Keiji
2582c20e2a
fix: publish @gemini-code/server (#605) 2025-05-29 23:55:34 +00:00
Brandon Keiji
fd6f6b02ea
feat: add git branch name to footer (#589) 2025-05-28 16:30:05 -07:00
Taylor Mullen
b3f52e215a feat: Replace SQLite with JSON logging for macOS sandbox compatibility
- Removes the sqlite3 dependency and refactors the logging mechanism to use a JSON file (logs.json) instead of a database.
- This change is a temporary workaround to address issues with macOS sandboxing that were caused by the SQLite native module.
- Storing all logs in a single JSON file may introduce scalability concerns in the future.

Fixes https://github.com/google-gemini/gemini-cli/issues/522
2025-05-26 16:13:37 -07:00
Taylor Mullen
02503a3248 Chore(deps): Upgrade @google/genai to v1.0.1
- Upgraded the @google/genai SDK from ^0.13.0 to ^1.0.1.
- Addressed a related type error in `packages/server/src/tools/edit.test.ts` by updating a type assertion.

Part of https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26 14:09:43 -07:00
Taylor Mullen
1ff083af27 fix: Update dependencies to resolve deprecation warnings 2025-05-23 14:50:00 -07:00
Taylor Mullen
8590efd229 feat: Enable npx execution directly from GitHub URL
This commit modifies the packaging setup to allow the CLI to be
executed directly from its GitHub URL using `npx`, for example:
`npx https://github.com/google-gemini/gemini-cli` (once merged to main).
This is achieved without requiring the bundle to be checked into
the repository.

Key changes and motivations:

- Modify `scripts.prepare` to run `npm run bundle`:
  Ensures the CLI bundle is generated automatically when `npx`
  installs the package from a git URL. This replaces previous
  approaches (e.g., using `prepack`) which were not consistently
  triggered in the `npx` environment.

- Update `scripts.bundle` to use a direct path for `esbuild`
  and externalize `sqlite3`:
  Using `node_modules/.bin/esbuild` provides a more reliable way
  to invoke the bundler. Externalizing `sqlite3` is crucial for
  correctly handling its native addon, preventing runtime errors.

- Add `bin`, `files`, and root `sqlite3` dependency:
  - The `bin` field defines the `gemini` command.
  - The `files` array ensures the generated `bundle/` directory is
    recognized by npm.
  - `sqlite3` is added as a root dependency to ensure it's
    installed by `npx` when `gemini-code` is fetched, allowing the
    externalized module to be resolved.

These changes collectively ensure that the necessary build artifacts
are created on-the-fly during `npx` installation, providing a
seamless execution experience directly from the GitHub repository URL.
2025-05-23 13:55:06 -07:00
Brandon Keiji
01971741e0
feat: add emphasis to tool confirmations (#502) 2025-05-23 05:28:31 +00:00
Allen Hutchison
efee7c6cce
Feat: Add test coverage scripts and ignore reports (#477) 2025-05-21 17:03:22 -07:00
Seth Troisi
cd13c5881b
Add Logger for command history (#435) 2025-05-21 00:36:22 -07:00
Jacob Richman
716f7875a2
Support Images and PDFs (#447) 2025-05-20 13:02:41 -07:00
Allen Hutchison
28acb8d495
feat(cli): Implement /bug command and add open dependency (#428) 2025-05-19 16:56:32 -07:00
olcan
6cc0087105 allow comments in settings.json 2025-05-18 10:58:20 -07:00
Jacob Richman
8b959c2060
strip escape characters when pasting. (#386) 2025-05-16 13:17:48 -07:00
Jacob Richman
c692a0c583
Support auto wrapping of in the multiline editor. (#383) 2025-05-16 11:58:37 -07:00
Taylor Mullen
968e09f0b5 fix: Ensure filename is available for diff rendering in write-file
This commit resolves a bug where the `write-file` operation could fail to render content due to a missing filename.

The fix involves:
- Ensuring `fileName` is consistently passed to `DiffRenderer.tsx` through `ToolConfirmationMessage.tsx`, `ToolMessage.tsx`, and `useGeminiStream.ts`.
- Modifying `edit.ts` and `write-file.ts` to include `fileName` in the `FileDiff` object.
- Expanding the `FileDiff` interface in `tools.ts` to include `fileName`.

Additionally, this commit enhances the diff rendering by:
- Adding syntax highlighting based on file extension in `DiffRenderer.tsx`.
- Adding more language mappings to `getLanguageFromExtension` in `DiffRenderer.tsx`.
- Added lots of tests for all the above.

Fixes https://b.corp.google.com/issues/418125982
2025-05-16 10:13:13 -07:00
Brandon Keiji
0e61a15438
fix: remove gemini-code bin configuration (#330) 2025-05-13 13:09:58 -07:00
Taylor Mullen
41b82ce796 Add bundling support.
- This can now be invoked with `npm run bundle`, it creates a `bundle/` folder that has:
  - gemini.js
  - sandbox-macos-minimal.sb
  - sandbox-macos-strict.sb
  - shell.json
  - shell.md

- This doesn't include any sort of automation for auto bundling pieces. It's just the root capability which we can weave into other locations.

Fixes https://b.corp.google.com/issues/411432723
2025-05-08 23:36:42 -07:00
Taylor Mullen
43c707b4e8 Continue to work through 429/500s.
- The root of this issue was actually a genai SDK bug that was fixed here: https://critique.corp.google.com/cl/753255997
- Upgrade to latest genai SDK for latest bug fixes (including the above)
- Removed specific 429 handling for uncaught rejections.

Fixes https://b.corp.google.com/issues/413760164
2025-05-07 16:38:06 -07:00
olcan
9742f6e4a2 support for mcp tools 2025-05-05 17:10:45 -07:00
Allen Hutchison
976333f654
Fix an issue where types/react was a different version from our main … (#231)
Co-authored-by: Brandon Keiji <brandonkeiji@google.com>
2025-04-30 16:33:43 -07:00
Brandon Keiji
df44ffbcff
fix: point start.sh to relative path (#209) 2025-04-29 02:44:59 +00:00
Olcan
0d849bf58e
enable servers in sandbox to listen on localhost (127.0.0.1) instead of 0.0.0.0, ensuring servers can be container/host-agnostic (#207)
* enable servers in sandbox to listen on localhost (127.0.0.1) instead of 0.0.0.0, ensuring servers can be container/host-agnostic

* Merge remote-tracking branch 'origin/main' into sandbox_localhost_works
2025-04-28 18:40:24 -07:00
Brandon Keiji
7ad6556623
feat: publish docker image alongside npm package (#197) 2025-04-28 13:25:19 -07:00
Taylor Mullen
74dd7fca98 Upgrade @google/genai to latest.
- Motivation of this upgrade is to enable us to get convenient access to the thinking budget config changes for 2.5 thinking models. This will be key to getting our model to take a bit more time for various requests.
2025-04-27 13:48:34 -07:00
Taylor Mullen
c09292efd1 Cleanup outdated packages in server/cli.
- Found that pre-backend front end split we had a number of packages that we hadn't revisisted. Went through and cleaned them up (i.e. cli needing genai).
2025-04-27 13:41:21 -07:00
Brandon Keiji
d051c0fd0f
feat: prototype publish sandbox script with npm package (#182) 2025-04-25 17:30:50 -07:00
Brandon Keiji
d394a9f39f
feat: add flag to customize package version during pre-release staging (#155) 2025-04-24 13:02:49 -07:00
Brandon Keiji
c24dc0ec77
feat: add react dev tools (#143) 2025-04-23 18:16:15 -07:00
Seth Troisi
d771dcbdb9 Support GEMINI_CODE_SANDBOX=0/false as no SANDBOXing 2025-04-23 16:33:19 -07:00
Brandon Keiji
4c951ea435
feat: set dogfood artifact registry as the default publishing endpoint (#135) 2025-04-23 15:11:10 -07:00
Brandon Keiji
7f3798e180
feat: add CLI version number to footer (#134) 2025-04-23 15:00:40 -07:00
Taylor Mullen
e163e02499 Colorize code blocks.
- This changeset uses lowlight.js to parse the code in codeblocks to derive an AST, it then translates that into CSS themes that are widely known via highlight.js (things that GitHub use), finally I translate those css.color attributes into Ink colors and effectivel do <Text color={the color}>the text</Text>.
 - To do this I needed to build color mappings from css -> Ink
 - I introduced a new `Theme` type that will be used to represent many different color themes. It also enabled the color mappings to be seamless.
 - Added a theme manager that only has one theme for now (VS2015). The theme works very well with our colorization.
- Some other bits was removal of borders around our codeblocks since they now have richer rendering.
- Most complex bits of code in this PR is in the `CodeColorizer.tsx`

Fixes https://b.corp.google.com/issues/412433479
2025-04-22 18:57:27 -07:00
Brandon Keiji
ef7dcdb49e
feat: add alias to the cli bin directive (#126) 2025-04-23 01:04:34 +00:00
Brandon Keiji
79710375e3
fix: point npmrc to dogfood artifact registry (#108) 2025-04-21 23:11:51 -07:00
Brandon Keiji
dec9726083
fix: use relative imports within the same package (#93) 2025-04-21 14:09:14 -07:00
Tyler
d55168f51f
add linter for checking license headers (and eslint --fix target to match, and fix missing license headers while we're here) (#62) 2025-04-20 17:16:25 -07:00
Brandon Keiji
f480ef4bbc
refactor: clean up build output (#53)
* refactor: clean up build output

* refactor: add index.ts to package roots
2025-04-20 12:33:39 -07:00
Taylor Mullen
f7edf71190 Give Gemini Code a face lift.
- This utilizes `ink-gradient` to render GEMINI CODE in amazing colors.
- Added a shared color configuration for UX (should this be in config?). It's very possible that we shouldn't be talking about the specific colors and instead be mentioning "foreground"/"background"/inlineCode etc. type colors.
- Updated existing color usages to utilize `Colors.*`

Fixes https://b.corp.google.com/issues/411385593
2025-04-19 17:10:06 -04:00
Evan Senter
0c9e1ef61b
Adding some simple tests. (#54) 2025-04-19 18:07:24 +01:00
Brandon Keiji
23b43ff651
fix: add clean command to individual packages (#36) 2025-04-18 14:57:20 -07:00
Brandon Keiji
52683dafc3
infra: add multipackage support (#34) 2025-04-18 14:37:02 -07:00
Evan Senter
482aeaff10
Warn if npm run start is out of date. (#20)
* Adding some wiring to allow the Ink app to warn if there are local development changes that haven't been captured in the recent build of the Gemini CLI.

* Adding a new useAppEffects.ts file that wores some useEffect handlers in.

* Updating package-lock.json to resolve `npm ci` issues.

* Updating package-lock.json and package.json to resolve `npm ci` issues.
2025-04-18 21:55:02 +01:00
Evan Senter
dbf4c3a37c Revert "Including a test harness for it, and making sure the cursor is always at the end."
This reverts commit 97db77997f.
2025-04-18 18:36:33 +01:00
Evan Senter
97db77997f Including a test harness for it, and making sure the cursor is always at the end. 2025-04-18 18:16:52 +01:00
Taylor Mullen
7928c1727f Configure linter + prettier.
- This is based on existing expectations for TS code in Google-esc repos.
- First part of the change (we have not run any linter or formatting commands). After this changeset goes in I'll do a mass changeset push.

Fixes https://b.corp.google.com/issues/411384603
2025-04-17 15:29:34 -07:00
Taylor Mullen
add233c504 Initial commit of Gemini Code CLI
This commit introduces the initial codebase for the Gemini Code CLI, a command-line interface designed to facilitate interaction with the Gemini API for software engineering tasks.

The code was migrated from a previous git repository as a single squashed commit.

Core Features & Components:

*   **Gemini Integration:** Leverages the `@google/genai` SDK to interact with the Gemini models, supporting chat history, streaming responses, and function calling (tools).
*   **Terminal UI:** Built with Ink (React for CLIs) providing an interactive chat interface within the terminal, including input prompts, message display, loading indicators, and tool interaction elements.
*   **Tooling Framework:** Implements a robust tool system allowing Gemini to interact with the local environment. Includes tools for:
    *   File system listing (`ls`)
    *   File reading (`read-file`)
    *   Content searching (`grep`)
    *   File globbing (`glob`)
    *   File editing (`edit`)
    *   File writing (`write-file`)
    *   Executing bash commands (`terminal`)
*   **State Management:** Handles the streaming state of Gemini responses and manages the conversation history.
*   **Configuration:** Parses command-line arguments (`yargs`) and loads environment variables (`dotenv`) for setup.
*   **Project Structure:** Organized into `core`, `ui`, `tools`, `config`, and `utils` directories using TypeScript. Includes basic build (`tsc`) and start scripts.

This initial version establishes the foundation for a powerful CLI tool enabling developers to use Gemini for coding assistance directly in their terminal environment.

---
Created by yours truly: __Gemini Code__
2025-04-17 13:19:55 -04:00