- Introduces a suite of tests for the hook, covering various scenarios including: - Successful tool execution - Tool not found errors - Errors during - Errors during tool execution - Tool confirmation (approved and cancelled) - (currently skipped) - Live output updates - (currently skipped) - Cancellation of tool calls (before execution and during approval) - (currently skipped) - Execution of multiple tool calls - Preventing scheduling while other calls are running - (currently skipped) - Includes tests for the utility function to ensure correct mapping of tool call states to display objects. - Mocks dependencies like , , and individual instances. - Uses fake timers to control asynchronous operations. Note: Some tests involving complex asynchronous interactions (confirmations, live output, cancellations) are currently skipped due to challenges in reliably testing these scenarios with the current setup. These will be addressed in future work. |
||
---|---|---|
.. | ||
src | ||
README.md | ||
index.ts | ||
package.json | ||
tsconfig.json | ||
vitest.config.ts |
README.md
Gemini CLI
This package contains the core command-line interface for Gemini CLI.
Setup
- Get a Gemini API Key: Obtain your API key from Google AI Studio: https://aistudio.google.com/app/apikey
- Set Environment Variable: Set the
GEMINI_API_KEY
environment variable to your obtained key. You can do this temporarily in your current shell session:
Or add it to your shell's configuration file (likeexport GEMINI_API_KEY="YOUR_API_KEY"
~/.bashrc
,~/.zshrc
, or~/.profile
) for persistence:
Replaceecho 'export GEMINI_API_KEY="YOUR_API_KEY"' >> ~/.bashrc # Or your preferred shell config file source ~/.bashrc # Reload the config
"YOUR_API_KEY"
with your actual key.
Building
To build only the CLI package, navigate to this directory (packages/cli
) and run:
npm run build
This command executes the TypeScript compiler (tsc
) as defined in this package's package.json
. Ensure dependencies have been installed from the root directory (npm install
) first.
Running
To start the Gemini CLI directly from this directory:
npm start
This command executes node dist/gemini.js
as defined in this package's package.json
.
Debugging
To debug the CLI application using VS Code:
- Start the CLI in debug mode from this directory (
packages/cli
):
This command runsnpm run debug
node --inspect-brk dist/gemini.js
, pausing execution until a debugger attaches. - In VS Code (opened at the root of the monorepo), use the "Attach" launch configuration (found in
.vscode/launch.json
). This configuration is set up to attach to the Node.js process listening on port 9229, which is the default port used by--inspect-brk
.