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-05-29 18:25:52 +00:00
"name" : "gemini-cli" ,
2025-04-21 23:11:51 -07:00
"version" : "0.1.0" ,
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/*"
] ,
"scripts" : {
2025-06-09 12:19:42 -07:00
"generate" : "node scripts/generate-git-commit-info.js" ,
"build" : "node scripts/build.js" ,
"build:sandbox" : "node scripts/build_sandbox.js" ,
2025-05-07 14:46:47 +00:00
"build:all" : "npm run build && npm run build:sandbox" ,
2025-06-09 12:19:42 -07:00
"clean" : "node scripts/clean.js" ,
2025-05-23 12:27:48 -07:00
"prepare" : "npm run bundle" ,
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
"test" : "npm run test --workspaces" ,
2025-05-27 12:45:28 -07:00
"test:ci" : "npm run test:ci --workspaces --if-present" ,
2025-06-16 08:27:29 -07:00
"test:e2e" : "npm run test:integration:sandbox:none -- --verbose --keep-output" ,
"test:integration:all" : "npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman" ,
"test:integration:sandbox:none" : "GEMINI_SANDBOX=false node integration-tests/run-tests.js" ,
"test:integration:sandbox:docker" : "GEMINI_SANDBOX=docker node integration-tests/run-tests.js" ,
"test:integration:sandbox:podman" : "GEMINI_SANDBOX=podman node integration-tests/run-tests.js" ,
2025-06-09 12:19:42 -07:00
"start" : "node scripts/start.js" ,
2025-06-22 16:57:53 +01:00
"debug" : "cross-env DEBUG=1 node --inspect-brk scripts/start.js" ,
2025-06-16 08:27:29 -07:00
"lint:fix" : "eslint . --fix && eslint integration-tests --fix" ,
"lint" : "eslint . --ext .ts,.tsx && eslint integration-tests" ,
2025-05-15 23:51:53 -07:00
"typecheck" : "npm run typecheck --workspaces --if-present" ,
2025-04-18 14:37:02 -07:00
"format" : "prettier --write ." ,
2025-06-19 16:52:22 -07:00
"preflight" : "npm run clean && npm ci && npm run format && npm run lint:fix && npm run build && npm run typecheck && npm run test:ci" ,
2025-04-26 00:30:50 +00: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-05-08 16:09:26 -07:00
"prerelease:dev" : "npm run prerelease:version --workspaces && npm run prerelease:deps --workspaces" ,
2025-06-09 12:19:42 -07:00
"bundle" : "npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js" ,
2025-05-29 21:01:44 +00:00
"build:cli" : "npm run build --workspace packages/cli" ,
2025-05-30 20:16:35 -07:00
"build:core" : "npm run build --workspace packages/core" ,
"build:packages" : "npm run build:core && npm run build:cli" ,
2025-06-09 12:19:42 -07:00
"build:docker" : "node scripts/build_sandbox.js -s" ,
2025-05-29 21:01:44 +00:00
"prepare:cli-packagejson" : "node scripts/prepare-cli-packagejson.js" ,
2025-06-09 12:19:42 -07:00
"publish:sandbox" : "node scripts/publish-sandbox.js" ,
2025-05-29 23:55:34 +00:00
"publish:npm" : "npm publish --workspaces ${NPM_PUBLISH_TAG:+--tag=$NPM_PUBLISH_TAG} ${NPM_DRY_RUN:+--dry-run}" ,
2025-06-19 12:19:39 -07:00
"publish:release" : "npm run build:packages && npm run prepare:cli-packagejson && npm run build:docker && npm run publish:sandbox && npm run publish:npm" ,
2025-06-15 21:28:29 -04:00
"telemetry" : "node scripts/telemetry.js" ,
2025-06-23 18:01:22 -04:00
"start:gcp" : "concurrently --raw --kill-others \"npm run telemetry -- --target=gcp\" \"npm start\""
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-06-08 19:07:25 -07:00
"LICENSE"
2025-05-23 12:27:48 -07:00
] ,
2025-04-17 17:57:39 -04:00
"devDependencies" : {
2025-06-05 10:15:27 -07:00
"@types/micromatch" : "^4.0.9" ,
2025-05-23 05:28:31 +00:00
"@types/mime-types" : "^2.1.4" ,
2025-06-05 06:48:03 -07:00
"@types/minimatch" : "^5.1.2" ,
2025-05-21 17:03:22 -07:00
"@vitest/coverage-v8" : "^3.1.1" ,
2025-06-23 18:01:22 -04:00
"concurrently" : "^9.2.0" ,
2025-06-09 12:19:42 -07:00
"cross-env" : "^7.0.3" ,
2025-06-12 06:21:50 +00:00
"esbuild" : "^0.25.0" ,
2025-04-17 17:57:39 -04:00
"eslint" : "^9.24.0" ,
"eslint-config-prettier" : "^10.1.2" ,
"eslint-plugin-import" : "^2.31.0" ,
2025-04-20 17:16:25 -07:00
"eslint-plugin-license-header" : "^0.8.0" ,
2025-04-17 17:57:39 -04:00
"eslint-plugin-react" : "^7.37.5" ,
"eslint-plugin-react-hooks" : "^5.2.0" ,
2025-06-16 08:27:29 -07:00
"glob" : "^10.4.5" ,
2025-04-17 17:57:39 -04:00
"globals" : "^16.0.0" ,
2025-06-05 06:48:03 -07:00
"json" : "^11.0.0" ,
2025-04-21 23:11:51 -07:00
"lodash" : "^4.17.21" ,
2025-05-28 23:30:05 +00:00
"memfs" : "^4.17.2" ,
2025-04-17 17:57:39 -04:00
"prettier" : "^3.5.3" ,
2025-04-24 01:16:15 +00:00
"react-devtools-core" : "^4.28.5" ,
2025-04-24 20:02:49 +00:00
"typescript-eslint" : "^8.30.1" ,
2025-06-05 06:48:03 -07:00
"yargs" : "^17.7.2"
}
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
}