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
|
|
|
{
|
|
|
|
|
"extends": "../../tsconfig.json",
|
|
|
|
|
"compilerOptions": {
|
2025-04-18 14:37:02 -07:00
|
|
|
"outDir": "dist",
|
2025-05-06 15:48:26 +00:00
|
|
|
"jsx": "react-jsx",
|
2025-08-25 16:06:47 -04:00
|
|
|
"lib": ["DOM", "DOM.Iterable", "ES2023"],
|
2025-04-19 18:07:24 +01:00
|
|
|
"types": ["node", "vitest/globals"]
|
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-17 08:24:07 -07:00
|
|
|
"include": [
|
|
|
|
|
"index.ts",
|
|
|
|
|
"src/**/*.ts",
|
|
|
|
|
"src/**/*.tsx",
|
|
|
|
|
"src/**/*.json",
|
|
|
|
|
"./package.json"
|
|
|
|
|
],
|
2025-07-07 23:41:39 -07:00
|
|
|
"exclude": [
|
|
|
|
|
"node_modules",
|
|
|
|
|
"dist",
|
2025-08-14 10:35:34 -07:00
|
|
|
// TODO(5691): Fix type errors and remove excludes.
|
|
|
|
|
"src/commands/mcp.test.ts",
|
|
|
|
|
"src/commands/mcp/add.test.ts",
|
|
|
|
|
"src/commands/mcp/list.test.ts",
|
|
|
|
|
"src/commands/mcp/remove.test.ts",
|
|
|
|
|
"src/config/config.integration.test.ts",
|
|
|
|
|
"src/config/config.test.ts",
|
|
|
|
|
"src/config/extension.test.ts",
|
|
|
|
|
"src/config/settings.test.ts",
|
|
|
|
|
"src/nonInteractiveCli.test.ts",
|
|
|
|
|
"src/services/FileCommandLoader.test.ts",
|
|
|
|
|
"src/services/prompt-processors/argumentProcessor.test.ts",
|
|
|
|
|
"src/utils/cleanup.test.ts",
|
|
|
|
|
"src/utils/handleAutoUpdate.test.ts",
|
|
|
|
|
"src/utils/startupWarnings.test.ts",
|
|
|
|
|
"src/ui/App.test.tsx",
|
|
|
|
|
"src/ui/commands/aboutCommand.test.ts",
|
|
|
|
|
"src/ui/commands/authCommand.test.ts",
|
|
|
|
|
"src/ui/commands/bugCommand.test.ts",
|
|
|
|
|
"src/ui/commands/clearCommand.test.ts",
|
|
|
|
|
"src/ui/commands/compressCommand.test.ts",
|
|
|
|
|
"src/ui/commands/copyCommand.test.ts",
|
|
|
|
|
"src/ui/commands/corgiCommand.test.ts",
|
|
|
|
|
"src/ui/commands/docsCommand.test.ts",
|
|
|
|
|
"src/ui/commands/editorCommand.test.ts",
|
|
|
|
|
"src/ui/commands/extensionsCommand.test.ts",
|
|
|
|
|
"src/ui/commands/helpCommand.test.ts",
|
|
|
|
|
"src/ui/commands/restoreCommand.test.ts",
|
|
|
|
|
"src/ui/commands/settingsCommand.test.ts",
|
|
|
|
|
"src/ui/commands/themeCommand.test.ts",
|
|
|
|
|
"src/ui/commands/chatCommand.test.ts",
|
|
|
|
|
"src/ui/commands/directoryCommand.test.tsx",
|
|
|
|
|
"src/ui/commands/ideCommand.test.ts",
|
|
|
|
|
"src/ui/commands/initCommand.test.ts",
|
|
|
|
|
"src/ui/commands/privacyCommand.test.ts",
|
|
|
|
|
"src/ui/commands/quitCommand.test.ts",
|
|
|
|
|
"src/ui/commands/mcpCommand.test.ts",
|
|
|
|
|
"src/ui/commands/memoryCommand.test.ts",
|
|
|
|
|
"src/ui/commands/statsCommand.test.ts",
|
|
|
|
|
"src/ui/commands/terminalSetupCommand.test.ts",
|
|
|
|
|
"src/ui/commands/toolsCommand.test.ts",
|
|
|
|
|
"src/ui/components/ContextSummaryDisplay.test.tsx",
|
|
|
|
|
"src/ui/components/Footer.test.tsx",
|
|
|
|
|
"src/ui/components/InputPrompt.test.tsx",
|
|
|
|
|
"src/ui/components/ModelStatsDisplay.test.tsx",
|
|
|
|
|
"src/ui/components/SessionSummaryDisplay.test.tsx",
|
|
|
|
|
"src/ui/components/shared/text-buffer.test.ts",
|
|
|
|
|
"src/ui/components/shared/vim-buffer-actions.test.ts",
|
|
|
|
|
"src/ui/components/StatsDisplay.test.tsx",
|
|
|
|
|
"src/ui/components/ToolStatsDisplay.test.tsx",
|
|
|
|
|
"src/ui/contexts/SessionContext.test.tsx",
|
|
|
|
|
"src/ui/hooks/slashCommandProcessor.test.ts",
|
|
|
|
|
"src/ui/hooks/useAtCompletion.test.ts",
|
|
|
|
|
"src/ui/hooks/useConsoleMessages.test.ts",
|
|
|
|
|
"src/ui/hooks/useCommandCompletion.test.ts",
|
|
|
|
|
"src/ui/hooks/useFocus.test.ts",
|
|
|
|
|
"src/ui/hooks/useFolderTrust.test.ts",
|
|
|
|
|
"src/ui/hooks/useGeminiStream.test.tsx",
|
|
|
|
|
"src/ui/hooks/useKeypress.test.ts",
|
|
|
|
|
"src/ui/hooks/usePhraseCycler.test.ts",
|
|
|
|
|
"src/ui/hooks/vim.test.ts",
|
|
|
|
|
"src/ui/utils/computeStats.test.ts",
|
|
|
|
|
"src/ui/themes/theme.test.ts",
|
|
|
|
|
"src/validateNonInterActiveAuth.test.ts",
|
|
|
|
|
"src/services/prompt-processors/shellProcessor.test.ts"
|
2025-07-07 23:41:39 -07:00
|
|
|
],
|
2025-05-30 18:25:47 -07:00
|
|
|
"references": [{ "path": "../core" }]
|
2025-04-17 18:06:21 -04:00
|
|
|
}
|