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-15 21:41:08 -07:00
{
2025-06-25 05:41:11 -07:00
"name" : "@google/gemini-cli" ,
2026-02-10 17:13:00 -05:00
"version" : "0.30.0-nightly.20260210.a2174751d" ,
2025-06-25 21:09:40 -07:00
"engines" : {
2025-07-15 12:36:54 -07:00
"node" : ">=20.0.0"
2025-06-25 21:09:40 -07:00
} ,
2025-04-17 17:57:39 -04:00
"type" : "module" ,
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-15 21:41:08 -07:00
"workspaces" : [
"packages/*"
] ,
2025-07-03 22:57:01 -05:00
"private" : "true" ,
"repository" : {
"type" : "git" ,
"url" : "git+https://github.com/google-gemini/gemini-cli.git"
} ,
2025-06-25 06:47:27 -07:00
"config" : {
2026-02-10 17:13:00 -05:00
"sandboxImageUri" : "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.30.0-nightly.20260210.a2174751d"
2025-06-25 06:47:27 -07:00
} ,
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-15 21:41:08 -07:00
"scripts" : {
2025-10-07 10:28:35 -07:00
"start" : "cross-env NODE_ENV=development node scripts/start.js" ,
2025-08-26 20:49:25 +00:00
"start:a2a-server" : "CODER_AGENT_PORT=41242 npm run start --workspace @google/gemini-cli-a2a-server" ,
2025-07-07 16:36:51 -07:00
"debug" : "cross-env DEBUG=1 node --inspect-brk scripts/start.js" ,
2025-10-08 13:39:22 -04:00
"deflake" : "node scripts/deflake.js" ,
2025-10-22 14:41:26 -04:00
"deflake:test:integration:sandbox:none" : "npm run deflake -- --command=\"npm run test:integration:sandbox:none -- --retry=0\"" ,
"deflake:test:integration:sandbox:docker" : "npm run deflake -- --command=\"npm run test:integration:sandbox:docker -- --retry=0\"" ,
2025-07-12 23:46:49 -07:00
"auth:npm" : "npx google-artifactregistry-auth" ,
"auth:docker" : "gcloud auth configure-docker us-west1-docker.pkg.dev" ,
"auth" : "npm run auth:npm && npm run auth:docker" ,
2025-06-09 12:19:42 -07:00
"generate" : "node scripts/generate-git-commit-info.js" ,
2025-11-02 20:42:49 -05:00
"predocs:settings" : "npm run build --workspace @google/gemini-cli-core" ,
2026-02-16 11:08:59 -05:00
"check:docs:settings" : "npm run predocs:settings && npm run docs:settings -- --check" ,
2025-11-02 20:42:49 -05:00
"schema:settings" : "tsx ./scripts/generate-settings-schema.ts" ,
"docs:settings" : "tsx ./scripts/generate-settings-doc.ts" ,
2025-11-12 16:07:14 -05:00
"docs:keybindings" : "tsx ./scripts/generate-keybindings-doc.ts" ,
2025-06-09 12:19:42 -07:00
"build" : "node scripts/build.js" ,
2026-02-06 14:39:14 -08:00
"build-and-start" : "npm run build && npm run start --" ,
2025-07-24 18:40:50 +00:00
"build:vscode" : "node scripts/build_vscode_companion.js" ,
"build:all" : "npm run build && npm run build:sandbox && npm run build:vscode" ,
2025-07-07 16:36:51 -07:00
"build:packages" : "npm run build --workspaces" ,
2025-09-25 11:26:07 -07:00
"build:sandbox" : "node scripts/build_sandbox.js" ,
2025-07-07 16:36:51 -07:00
"bundle" : "npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js" ,
2025-10-25 09:07:35 -07:00
"test" : "npm run test --workspaces --if-present" ,
"test:ci" : "npm run test:ci --workspaces --if-present && npm run test:scripts" ,
2025-07-07 16:36:51 -07:00
"test:scripts" : "vitest run --config ./scripts/tests/vitest.config.ts" ,
2026-01-14 04:49:17 +00:00
"test:always_passing_evals" : "vitest run --config evals/vitest.config.ts" ,
"test:all_evals" : "cross-env RUN_EVALS=1 vitest run --config evals/vitest.config.ts" ,
2025-08-12 15:57:27 -07:00
"test:e2e" : "cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none" ,
2025-06-16 08:27:29 -07:00
"test:integration:all" : "npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman" ,
2025-09-05 16:54:46 -07:00
"test:integration:sandbox:none" : "cross-env GEMINI_SANDBOX=false vitest run --root ./integration-tests" ,
"test:integration:sandbox:docker" : "cross-env GEMINI_SANDBOX=docker npm run build:sandbox && cross-env GEMINI_SANDBOX=docker vitest run --root ./integration-tests" ,
"test:integration:sandbox:podman" : "cross-env GEMINI_SANDBOX=podman vitest run --root ./integration-tests" ,
2026-01-07 13:50:22 -08:00
"lint" : "eslint . --cache" ,
2025-10-22 09:45:42 -07:00
"lint:fix" : "eslint . --fix --ext .ts,.tsx && eslint integration-tests --fix && eslint scripts --fix && npm run format" ,
"lint:ci" : "npm run lint:all" ,
2025-09-12 10:22:10 -07:00
"lint:all" : "node scripts/lint.js" ,
2025-08-11 15:09:12 -04:00
"format" : "prettier --experimental-cli --write ." ,
2025-07-07 16:36:51 -07:00
"typecheck" : "npm run typecheck --workspaces --if-present" ,
2026-02-16 11:08:59 -05:00
"preflight" : "npm run clean && npm ci && npm run format && npm run build && npm run check:docs:settings && npm run lint:ci && npm run typecheck && npm run test:ci" ,
2025-10-30 08:25:57 -07:00
"prepare" : "husky && npm run bundle" ,
2025-07-03 22:57:01 -05:00
"prepare:package" : "node scripts/prepare-package.js" ,
"release:version" : "node scripts/version.js" ,
2025-07-07 16:36:51 -07:00
"telemetry" : "node scripts/telemetry.js" ,
2025-08-30 00:43:56 +08:00
"check:lockfile" : "node scripts/check-lockfile.js" ,
2025-09-19 22:07:26 -04:00
"clean" : "node scripts/clean.js" ,
2026-01-29 16:13:00 -05:00
"pre-commit" : "node scripts/pre-commit.js"
2025-05-23 12:27:48 -07:00
} ,
2025-09-26 10:00:54 -07:00
"overrides" : {
2026-02-10 13:12:53 -08:00
"ink" : "npm:@jrichman/ink@6.4.10" ,
2025-09-26 10:00:54 -07:00
"wrap-ansi" : "9.0.2" ,
"cliui" : {
"wrap-ansi" : "7.0.0"
}
} ,
2025-05-23 12:27:48 -07:00
"bin" : {
"gemini" : "bundle/gemini.js"
} ,
"files" : [
"bundle/" ,
2025-05-23 15:22:13 -07:00
"README.md" ,
2025-09-19 11:22:01 -07:00
"LICENSE"
2025-05-23 12:27:48 -07:00
] ,
2025-04-17 17:57:39 -04:00
"devDependencies" : {
2026-01-15 06:02:44 +08:00
"@agentclientprotocol/sdk" : "^0.12.0" ,
2025-10-07 14:58:05 -04:00
"@octokit/rest" : "^22.0.0" ,
2025-07-31 22:06:50 +05:30
"@types/marked" : "^5.0.2" ,
2025-07-09 05:44:40 +00:00
"@types/mime-types" : "^3.0.1" ,
2025-06-05 06:48:03 -07:00
"@types/minimatch" : "^5.1.2" ,
2025-07-22 00:34:55 -04:00
"@types/mock-fs" : "^4.13.4" ,
2025-10-23 11:47:08 -04:00
"@types/prompts" : "^2.4.9" ,
2026-02-06 08:10:17 -08:00
"@types/proper-lockfile" : "^4.1.4" ,
2025-10-31 09:40:51 -07:00
"@types/react" : "^19.2.0" ,
"@types/react-dom" : "^19.2.0" ,
2025-07-06 05:58:51 +08:00
"@types/shell-quote" : "^1.7.5" ,
2026-02-09 09:16:56 -08:00
"@types/ws" : "^8.18.1" ,
2025-05-21 17:03:22 -07:00
"@vitest/coverage-v8" : "^3.1.1" ,
2025-08-25 16:21:47 +02:00
"@vitest/eslint-plugin" : "^1.3.4" ,
2025-06-09 12:19:42 -07:00
"cross-env" : "^7.0.3" ,
2025-12-18 15:24:19 -08:00
"depcheck" : "^1.4.7" ,
2025-06-12 06:21:50 +00:00
"esbuild" : "^0.25.0" ,
2025-10-16 17:25:30 -07:00
"esbuild-plugin-wasm" : "^1.1.0" ,
2025-04-17 17:57:39 -04:00
"eslint" : "^9.24.0" ,
"eslint-config-prettier" : "^10.1.2" ,
2026-01-01 11:01:03 -08:00
"eslint-plugin-headers" : "^1.3.3" ,
2025-04-17 17:57:39 -04:00
"eslint-plugin-import" : "^2.31.0" ,
"eslint-plugin-react" : "^7.37.5" ,
"eslint-plugin-react-hooks" : "^5.2.0" ,
2025-11-17 16:31:17 -08:00
"glob" : "^12.0.0" ,
2025-04-17 17:57:39 -04:00
"globals" : "^16.0.0" ,
2025-09-18 10:47:11 -04:00
"google-artifactregistry-auth" : "^3.4.0" ,
2025-09-19 22:07:26 -04:00
"husky" : "^9.1.7" ,
2025-10-31 09:40:51 -07:00
"ink-testing-library" : "^4.0.0" ,
2025-06-05 06:48:03 -07:00
"json" : "^11.0.0" ,
2025-09-19 22:07:26 -04:00
"lint-staged" : "^16.1.6" ,
2025-09-20 11:38:03 -07:00
"memfs" : "^4.42.0" ,
2025-08-12 14:31:59 -04:00
"mnemonist" : "^0.40.3" ,
2025-07-22 00:34:55 -04:00
"mock-fs" : "^5.5.0" ,
2025-08-12 14:31:59 -04:00
"msw" : "^2.10.4" ,
2025-09-18 16:29:40 -07:00
"npm-run-all" : "^4.1.5" ,
2025-04-17 17:57:39 -04:00
"prettier" : "^3.5.3" ,
2025-10-31 09:40:51 -07:00
"react-devtools-core" : "^6.1.2" ,
2025-09-24 21:02:00 -07:00
"semver" : "^7.7.2" ,
2025-09-30 19:31:51 +00:00
"strip-ansi" : "^7.1.2" ,
2025-12-18 15:24:19 -08:00
"ts-prune" : "^0.10.3" ,
2025-08-12 09:19:09 -07:00
"tsx" : "^4.20.3" ,
2025-04-24 20:02:49 +00:00
"typescript-eslint" : "^8.30.1" ,
2025-07-05 13:58:59 -07:00
"vitest" : "^3.2.4" ,
2025-08-12 14:31:59 -04:00
"yargs" : "^17.7.2"
} ,
"dependencies" : {
2026-02-10 13:12:53 -08:00
"ink" : "npm:@jrichman/ink@6.4.10" ,
2025-10-24 14:23:39 -07:00
"latest-version" : "^9.0.0" ,
2026-02-06 08:10:17 -08:00
"proper-lockfile" : "^4.1.2" ,
2026-01-29 16:13:00 -05:00
"simple-git" : "^3.28.0"
2025-08-19 16:03:51 -07:00
} ,
"optionalDependencies" : {
"@lydell/node-pty" : "1.1.0" ,
"@lydell/node-pty-darwin-arm64" : "1.1.0" ,
"@lydell/node-pty-darwin-x64" : "1.1.0" ,
"@lydell/node-pty-linux-x64" : "1.1.0" ,
"@lydell/node-pty-win32-arm64" : "1.1.0" ,
"@lydell/node-pty-win32-x64" : "1.1.0" ,
2026-02-09 14:03:10 -08:00
"gemini-cli-devtools" : "^0.2.1" ,
2026-01-07 10:47:29 -05:00
"keytar" : "^7.9.0" ,
2025-08-19 16:03:51 -07:00
"node-pty" : "^1.0.0"
2025-09-19 14:17:34 -07:00
} ,
2025-09-19 22:07:26 -04:00
"lint-staged" : {
"*.{js,jsx,ts,tsx}" : [
"prettier --write" ,
2025-10-30 13:15:49 -07:00
"eslint --fix --max-warnings 0 --no-warn-ignored"
] ,
"eslint.config.js" : [
"prettier --write"
2025-09-19 22:07:26 -04:00
] ,
"*.{json,md}" : [
"prettier --write"
]
2025-07-05 13:58:59 -07:00
}
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-15 21:41:08 -07:00
}