Source: https://seerepo.com/r/google-gemini/gemini-cli/built
Markdown source: https://seerepo.com/r/google-gemini/gemini-cli/built.md
Description: gemini-cli is a TypeScript repo built with Express and React. It uses AI through @agentclientprotocol/sdk. It has 735,894 written lines, with 1,056 test files.

# What is gemini-cli built with?

gemini-cli is a TypeScript repo built with Express and React. It uses AI through @agentclientprotocol/sdk, makes its content with js-yaml, html-to-text, and marked, validates its data with Zod, Ajv, zod-to-json-schema, and ajv-formats, is tested with Vitest, supertest, and msw, deploys with winston and OpenTelemetry, and uses MCP. It has 735,894 written lines, with 1,056 test files.

Read on November 4, 2026, at commit 89e9d25.

Repository: https://github.com/google-gemini/gemini-cli

## Backend (/)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in packages/a2a-server/package.json](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/a2a-server/package.json)

### AI

- **@agentclientprotocol/sdk**: 2 files

## Support (/)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 1 file

### Testing

- **Vitest**: 51 files

### Tools

- **glob**: 1 file
- **yargs**: 1 file

### Other

- **strip-ansi**: 2 files
- **@lydell/node-pty**: 1 file

## Backend (packages/a2a-server)

### The base

- **[Express](https://seerepo.com/uses/express)**: 2 files · [in packages/a2a-server/package.json](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/a2a-server/package.json)

## Support (packages/a2a-server)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 1 file

### Testing

- **Vitest**: 17 files
- **supertest**: 2 files

### Deploy

- **winston**: 1 file

### Other

- **uuid**: 6 files
- **.ENV**: 1 file
- **fs-extra**: 1 file
- **tar**: 1 file

## Frontend (packages/cli)

### The base

- **[React](https://seerepo.com/uses/react)**: 254 files

### Interface

- **ink**: 175 files
- **@xterm/headless**: 3 files
- **cli-spinners**: 3 files
- **prompts**: 2 files
- **lowlight**: 1 file

## Backend (packages/cli)

### AI

- **@agentclientprotocol/sdk**: 6 files

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [packages/cli/src/commands/mcp/list.ts, line 22](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/cli/src/commands/mcp/list.ts#L22)

## Support (packages/cli)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 9 files

### Testing

- **Vitest**: 481 files
- **msw**: 1 file

### Tools

- **yargs**: 35 files
- **glob**: 1 file
- **simple-git**: 1 file

### Other

- **chalk**: 21 files
- **strip-ansi**: 8 files
- **open**: 3 files
- **SemVer**: 3 files
- **.ENV**: 2 files
- **extract-zip**: 2 files
- **shell-quote**: 2 files
- **undici**: 2 files
- **ws**: 2 files
- **@iarna/toml**: 1 file
- **diff**: 1 file
- **execa**: 1 file
- **proper-lockfile**: 1 file
- **string-width**: 1 file
- **tar**: 1 file

## Frontend (packages/core)

### Interface

- **@xterm/headless**: 2 files

## Backend (packages/core)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 4 files · [packages/cli/src/commands/mcp/list.ts, line 22](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/cli/src/commands/mcp/list.ts#L22)

## Support (packages/core)

### Content

- **js-yaml**: 2 files
- **html-to-text**: 1 file
- **marked**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 30 files
- **[Ajv](https://seerepo.com/uses/ajv)**: 11 files
- **zod-to-json-schema**: 4 files
- **ajv-formats**: 1 file

### Testing

- **Vitest**: 434 files
- **msw**: 2 files

### Deploy

- **OpenTelemetry**: 8 files

### Tools

- **glob**: 6 files
- **ignore**: 3 files
- **chokidar**: 1 file
- **dotenv-expand**: 1 file
- **esbuild**: 1 file
- **read-package-up**: 1 file
- **simple-git**: 1 file
- **tree-sitter-bash**: 1 file

### Other

- **diff**: 10 files
- **shell-quote**: 8 files
- **[opentelemetry](https://seerepo.com/uses/opentelemetry)**: 7 files
- **undici**: 4 files
- **@iarna/toml**: 3 files
- **strip-ansi**: 3 files
- **@grpc/grpc-js**: 2 files
- **https-proxy-agent**: 2 files
- **picomatch**: 2 files
- **proper-lockfile**: 2 files
- **@lydell/node-pty**: 1 file
- **execa**: 1 file
- **http-proxy-agent**: 1 file
- **ipaddr.js**: 1 file
- **mime**: 1 file
- **open**: 1 file
- **systeminformation**: 1 file
- **uuid**: 1 file
- **web-tree-sitter**: 1 file
- **ws**: 1 file

## Support (packages/sdk)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 1 file
- **zod-to-json-schema**: 1 file

### Testing

- **Vitest**: 5 files

## Other repos with a similar stack

- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): Express, MCP, Zod, winston, html-to-text, Ajv · [Compare](https://seerepo.com/compare/google-gemini/gemini-cli/vs/n8n-io/n8n)
- [vercel/next.js](https://seerepo.com/r/vercel/next.js/built): Express, React, prompts, js-yaml, Ajv, OpenTelemetry · [Compare](https://seerepo.com/compare/google-gemini/gemini-cli/vs/vercel/next.js)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Express, React, MCP, Zod, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/google-gemini/gemini-cli/vs/paperclipai/paperclip)
- [freeCodeCamp/freeCodeCamp](https://seerepo.com/r/freeCodeCamp/freeCodeCamp/built): React, js-yaml, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/freeCodeCamp/freeCodeCamp/vs/google-gemini/gemini-cli)
- [morluto/rea](https://seerepo.com/r/morluto/rea/built): MCP, Zod, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/google-gemini/gemini-cli/vs/morluto/rea)
- [react/react](https://seerepo.com/r/react/react/built): React, MCP, Zod, html-to-text · [Compare](https://seerepo.com/compare/google-gemini/gemini-cli/vs/react/react)

## Frequently asked questions

### What language is gemini-cli written in?

gemini-cli is written in TypeScript, with 735,894 written lines.

### What framework does gemini-cli use?

gemini-cli is built with Express and React.

The proof: [in packages/a2a-server/package.json](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/a2a-server/package.json)

### Does gemini-cli use AI?

Yes. gemini-cli uses AI through @agentclientprotocol/sdk.

### What services does gemini-cli use?

gemini-cli uses MCP.

The proof: [packages/cli/src/commands/mcp/list.ts, line 22](https://github.com/google-gemini/gemini-cli/blob/89e9d25d67e7dc7cb0deb84ad2c3474b7a392d31/packages/cli/src/commands/mcp/list.ts#L22)

### Does gemini-cli have tests?

Yes. gemini-cli has 1,056 test files and is tested with Vitest, supertest, and msw.

### Which repos have a stack like gemini-cli's?

The ones that share most of its stack: n8n-io/n8n, vercel/next.js, and paperclipai/paperclip.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
