Gemini CLI
github.com- Category
- Developer Tools
- Rank
- No. 675Tools index
- Listed in
- #8 Code with an agent
- Pricing
- Freemium
- Type
- TOOL
- Interfaces
- CLI
- Builder
- google-gemini
- GitHub
- 108.6k stars
- Latest release
- v0.67.0-nightly.20261101.g6814e00d6
- Date
About
Google's open-source terminal agent. Open-source command-line agent for Gemini models. Generous free tier with a personal Google account, or pay-per-token via the API.
What it does
This is a text-based assistant that lives in your terminal rather than a browser or IDE panel. You point it at a project directory, describe what you want, and it reads and edits files, runs shell commands, and pulls in live web results to ground its answers. Under the hood it starts as a small launcher that hands off to a heavier worker process, which keeps startup snappy. It can run as an interactive back-and-forth session or as a single scripted command with structured output for piping into other programs. A plug-in protocol lets you wire in outside services as additional callable capabilities.
Why it's ranked here
Google backs this one directly, and it shows in the plumbing: a real monorepo with many separate test suites, install paths for every major package manager, and a permissive Apache license that puts no strings on redistribution or forking. The extensibility story is concrete too, not just a slogan: a documented plug-in protocol and a shipped GitHub Actions integration for code review and issue triage. What holds it back from a higher slot is that the terminal-agent category itself is crowded and undifferentiated at the interface level; this one wins on backing and breadth of tooling, not on a distinctive interaction model.
What's good
The scripting story is well thought out: a one-shot mode returns plain text, but you can also ask for structured JSON or a live stream of events, which matters if you're wiring this into a CI pipeline rather than typing at it interactively. Startup is deliberately kept light: the process that first launches avoids importing the heavy dependencies until it actually needs them, then hands off to a full worker. The test setup goes well beyond unit tests, with separate suites for memory behavior, performance regressions, and multiple sandbox backends, which suggests the maintainers care about the agent not degrading quietly over time.
Tradeoffs
Letting an agent run shell commands and edit files on your machine is inherently risky, and sandboxing here is opt-in rather than automatic, so a careless setup can let the model touch more than intended. The install footprint is heavier than a typical CLI too, with a stack of platform-specific native add-ons for terminal handling that can be a source of build friction on less common systems. There's also a nightly release channel that ships changes from the main line of development before they've been fully checked, which is fine for testing but not something to point at production workflows.
How to use it well
This fits developers who already work from a terminal and want an assistant that can read a whole codebase, make edits, and run commands rather than just chat. It also fits well in CI and scripting workflows, since the structured output modes let you parse its answers programmatically instead of scraping text. Stick to the stable release channel for anything you depend on, turn on sandboxing before letting it run shell commands, and use the plug-in protocol to connect it to your own internal tools rather than writing one-off wrappers. It is not the choice if you want a model-agnostic assistant: it only talks to Gemini models.
Technical notes+
package.json declares the package as @google/gemini-cli, sets type: module for pure ESM, defines a workspaces array over packages/*, and pins the engines field to Node >=20.0.0; the bin field maps the gemini command to a prebuilt bundle rather than to source. packages/cli/index.ts is the real entry point: it installs an uncaughtException handler that specifically swallows a known node-pty resize race condition, then decides whether to relaunch itself as a child process (a lightweight-parent pattern gated on the GEMINI_CLI_NO_RELAUNCH and SANDBOX environment variables) or, in the child, dynamically import the heavier interactive runtime and the @google/gemini-cli-core package to invoke its main entry point. packages/core/index.ts re-exports the core package's public surface, including model-selection constants (DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL) and a ClearcutLogger telemetry class, confirming a Google-internal telemetry pipeline ships inside the open-source core. docs/core/index.md documents a chat-history compression step that runs when a conversation nears a model's token limit, plus an automatic fallback from the pro model to flash under rate limiting. docs/CONTRIBUTING.md requires a signed Google CLA for contributions and documents an in-repo automated PR review tool, invoked as a helper script, that runs an LLM-based reviewer against incoming pull requests.
Observed
- License
- Apache 2.0 license, per the README's license badge and text.
- Distribution
- Distributed as an npm package (@google/gemini-cli), installable via npm, Homebrew, MacPorts, or Anaconda.
- Runtime requirement
- Requires Node.js 20 or newer, per the engines field in package.json.
- Packaging
- Packaged as pure ESM (type: module in package.json).
- Interface
- Primary interface is a CLI binary; also supports non-interactive invocation with structured JSON or streaming-JSON output for scripting.
- Extensibility
- Extensible through the Model Context Protocol (MCP) for connecting external tool servers.
- Platform support
- Optional native dependencies ship separate pseudo-terminal binaries for macOS (arm64 and x64), Linux (x64), and Windows (arm64 and x64), indicating cross-platform desktop support.
- Repository structure
- Organized as an npm-workspaces monorepo (packages/*).
- Test suite
- Repository includes dedicated integration, memory, and performance test suites beyond unit tests.
- Contribution process
- Contribution workflow requires a signed Google CLA and includes an in-repo automated PR-review helper script.
Read from README.md, package.json, packages/cli/index.ts, packages/core/index.ts, docs/core/index.md, docs/CONTRIBUTING.md.
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.