Source: https://seerepo.com/r/eggjs/egg/built
Markdown source: https://seerepo.com/r/eggjs/egg/built.md
Description: egg is a TypeScript repo built with koa-bodyparser, koa-compose, Express, and koa-range. It uses AI through LangChain.

# What is egg built with?

egg is a TypeScript repo built with koa-bodyparser, koa-compose, Express, and koa-range. It uses AI through LangChain, makes its content with js-yaml, escape-html, mustache, Nunjucks, and Cheerio, validates its data with Zod, Ajv, ajv-formats, ajv-keywords, and typebox, is tested with Vitest and Mocha, and uses Redis, MCP, and sqlstring. It has 199,875 written lines, with 2,957 test files.

Read on November 6, 2026, at commit 2d168f8.

Repository: https://github.com/eggjs/egg

## Support (packages/cluster)

### Testing

- **Vitest**: 18 files

### Tools

- **coffee**: 1 file

### Other

- **detect-port**: 1 file
- **terminal-link**: 1 file

## Support (packages/cookies)

### Testing

- **Vitest**: 3 files

## Support (packages/core)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Testing

- **Vitest**: 41 files

### Tools

- **coffee**: 1 file
- **globby**: 1 file
- **tsconfig-paths**: 1 file

## Support (packages/egg)

### The base

- **koa-bodyparser**: 1 file

### Testing

- **Vitest**: 59 files

### Tools

- **type-fest**: 2 files
- **coffee**: 1 file

## Support (packages/errors)

### Testing

- **Vitest**: 45 files

## Support (packages/extend2)

### Testing

- **Vitest**: 1 file

## Support (packages/koa-static-cache)

### Testing

- **Vitest**: 1 file

### Other

- **mime-types**: 1 file

## Support (packages/koa)

### The base

- **koa-compose**: 1 file

### Content

- **[escape-html](https://seerepo.com/uses/escape-html)**: 1 file

### Testing

- **Vitest**: 70 files

### Other

- **statuses**: 3 files
- **accepts**: 2 files
- **http-errors**: 2 files
- **on-finished**: 2 files
- **type-is**: 2 files
- **content-disposition**: 1 file
- **content-type**: 1 file
- **encodeurl**: 1 file
- **fresh**: 1 file
- **parseurl**: 1 file
- **vary**: 1 file

## Support (packages/loader-fs)

### Testing

- **Vitest**: 2 files

### Tools

- **globby**: 1 file

## Support (packages/logger)

### Testing

- **Vitest**: 12 files

### Tools

- **coffee**: 6 files

### Other

- **chalk**: 1 file
- **iconv-lite**: 1 file

## Support (packages/path-matching)

### Testing

- **Vitest**: 1 file

### Other

- **path-to-regexp**: 1 file

## Support (packages/router)

### The base

- **koa-compose**: 1 file

### Testing

- **Vitest**: 4 files

### Other

- **methods**: 2 files
- **http-errors**: 1 file
- **inflection**: 1 file
- **path-to-regexp**: 1 file
- **urijs**: 1 file

## Backend (packages/supertest)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file

## Support (packages/supertest)

### Testing

- **Vitest**: 1 file

### Other

- **superagent**: 3 files
- **body-parser**: 1 file
- **cookie-parser**: 1 file

## Support (packages/utils)

### Testing

- **Vitest**: 8 files

### Tools

- **coffee**: 4 files

## Support (plugins/cors)

### Testing

- **Vitest**: 5 files

### Other

- **@koa/cors**: 1 file

## Support (plugins/development)

### Testing

- **Vitest**: 9 files

### Other

- **debounce**: 1 file

## Support (plugins/i18n)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Testing

- **Vitest**: 2 files

### Other

- **ini**: 1 file

## Support (plugins/jsonp)

### Testing

- **Vitest**: 1 file

## Support (plugins/logrotator)

### Testing

- **Vitest**: 5 files

### Tools

- **glob**: 2 files

### Other

- **moment**: 3 files

## Support (plugins/mock)

### Testing

- **Vitest**: 36 files
- **Mocha**: 1 file

### Tools

- **coffee**: 1 file

### Other

- **detect-port**: 3 files
- **merge-descriptors**: 1 file

## Support (plugins/multipart)

### Testing

- **Vitest**: 10 files

### Other

- **dayjs**: 2 files
- **bytes**: 1 file

## Support (plugins/onerror)

### Content

- **mustache**: 1 file

### Testing

- **Vitest**: 2 files

### Other

- **cookie**: 1 file
- **stack-trace**: 1 file

## Backend (plugins/redis)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [plugins/redis/src/lib/redis.ts, line 5](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/plugins/redis/src/lib/redis.ts#L5)

## Support (plugins/redis)

### Testing

- **Vitest**: 1 file

### Other

- **detect-port**: 1 file

## Support (plugins/schedule)

### Testing

- **Vitest**: 25 files

### Other

- **cron-parser**: 2 files

## Support (plugins/security)

### The base

- **koa-compose**: 1 file

### Content

- **[escape-html](https://seerepo.com/uses/escape-html)**: 1 file

### Validation

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

### Testing

- **Vitest**: 26 files

### Tools

- **benchmark**: 1 file

### Other

- **matcher**: 1 file
- **nanoid**: 1 file
- **type-is**: 1 file

## Support (plugins/session)

### Validation

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

### Testing

- **Vitest**: 1 file

## Support (plugins/static)

### The base

- **koa-compose**: 1 file
- **koa-range**: 1 file

### Testing

- **Vitest**: 1 file

## Support (plugins/status)

### Testing

- **Vitest**: 1 file

## Support (plugins/tracer)

### Testing

- **Vitest**: 4 files

## Support (plugins/typebox-validate)

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 5 files
- **[ajv-formats](https://seerepo.com/uses/ajv-formats)**: 1 file
- **ajv-keywords**: 1 file
- **[typebox](https://seerepo.com/uses/typebox)**: 1 file

### Testing

- **Vitest**: 1 file

## Support (plugins/view-nunjucks)

### Content

- **Nunjucks**: 2 files
- **[Cheerio](https://seerepo.com/uses/cheerio)**: 1 file

### Testing

- **Vitest**: 6 files

### Other

- **common-tags**: 2 files

## Support (plugins/view)

### Testing

- **Vitest**: 1 file

## Support (plugins/watcher)

### Testing

- **Vitest**: 5 files

### Other

- **camelcase**: 1 file

## Support (tegg/core/agent-runtime)

### Testing

- **Vitest**: 8 files

## Support (tegg/core/ajv-decorator)

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 2 files
- **[typebox](https://seerepo.com/uses/typebox)**: 1 file

### Testing

- **Vitest**: 2 files

## Support (tegg/core/aop-decorator)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/aop-runtime)

### The base

- **koa-compose**: 1 file

### Testing

- **Vitest**: 2 files

## Support (tegg/core/background-task)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/common-util)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Testing

- **Vitest**: 8 files

### Tools

- **globby**: 1 file

### Other

- **reflect-metadata**: 1 file

## Backend (tegg/core/controller-decorator)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 4 files · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/core/controller-decorator)

### Testing

- **Vitest**: 12 files

### Other

- **path-to-regexp**: 2 files

## Backend (tegg/core/controller-runtime)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/core/controller-runtime)

### Testing

- **Vitest**: 3 files

### Other

- **path-to-regexp**: 1 file

## Support (tegg/core/core-decorator)

### Testing

- **Vitest**: 4 files

## Support (tegg/core/dal-decorator)

### Testing

- **Vitest**: 1 file

### Other

- **Lodash**: 2 files
- **pluralize**: 1 file

## Backend (tegg/core/dal-runtime)

### Data

- **sqlstring**: 1 file

## Support (tegg/core/dal-runtime)

### Content

- **Nunjucks**: 3 files

### Testing

- **Vitest**: 6 files

### Tools

- **js-beautify**: 1 file

### Other

- **Lodash**: 2 files

## Support (tegg/core/dynamic-inject-runtime)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/dynamic-inject)

### Testing

- **Vitest**: 2 files

### Tools

- **coffee**: 1 file

## Support (tegg/core/eventbus-decorator)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/eventbus-runtime)

### Testing

- **Vitest**: 2 files

## Backend (tegg/core/langchain-decorator)

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**: 6 files

## Support (tegg/core/lifecycle)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/loader)

### Testing

- **Vitest**: 7 files

## Backend (tegg/core/mcp-client)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/core/mcp-client)

### Validation

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

### Testing

- **Vitest**: 1 file

## Support (tegg/core/metadata)

### Testing

- **Vitest**: 6 files

### Tools

- **globby**: 1 file

## Support (tegg/core/orm-decorator)

### Testing

- **Vitest**: 5 files

### Other

- **Lodash**: 1 file
- **pluralize**: 1 file

## Support (tegg/core/runtime)

### Testing

- **Vitest**: 7 files

## Support (tegg/core/schedule-decorator)

### Testing

- **Vitest**: 1 file

## Support (tegg/core/standalone-decorator)

### Testing

- **Vitest**: 1 file

## Support (tegg/core/tegg)

### Testing

- **Vitest**: 10 files

## Support (tegg/core/transaction-decorator)

### Testing

- **Vitest**: 2 files

## Backend (tegg/core/types)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 3 files · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/core/types)

### Testing

- **Vitest**: 2 files

## Support (tegg/core/vitest)

### Testing

- **Vitest**: 6 files

## Support (tegg/plugin/ajv)

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 1 file

### Testing

- **Vitest**: 1 file

## Support (tegg/plugin/aop)

### Testing

- **Vitest**: 1 file

## Support (tegg/plugin/common)

### Testing

- **Vitest**: 1 file

## Support (tegg/plugin/config)

### Testing

- **Vitest**: 5 files

## Backend (tegg/plugin/controller)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/plugin/controller)

### The base

- **koa-compose**: 1 file

### Testing

- **Vitest**: 16 files

### Tools

- **globby**: 1 file

### Other

- **content-type**: 1 file
- **path-to-regexp**: 1 file
- **raw-body**: 1 file

## Support (tegg/plugin/dal)

### Testing

- **Vitest**: 4 files

## Support (tegg/plugin/dns-cache)

### Testing

- **Vitest**: 3 files

## Support (tegg/plugin/eventbus)

### Testing

- **Vitest**: 1 file

## Backend (tegg/plugin/langchain)

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**: 5 files

## Support (tegg/plugin/langchain)

### Validation

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

### Testing

- **Vitest**: 1 file

## Support (tegg/plugin/mcp-client)

### Validation

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

### Testing

- **Vitest**: 1 file

## Backend (tegg/plugin/mcp-proxy)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/plugin/mcp-proxy)

### The base

- **koa-compose**: 1 file

### Testing

- **Vitest**: 3 files

### Other

- **content-type**: 1 file
- **eventsource-parser**: 1 file
- **raw-body**: 1 file

## Support (tegg/plugin/orm)

### Testing

- **Vitest**: 2 files

## Support (tegg/plugin/schedule)

### Testing

- **Vitest**: 1 file

## Support (tegg/plugin/tegg)

### Testing

- **Vitest**: 26 files

## Backend (tegg/standalone/service-worker-controller)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [tegg/core/controller-decorator/src/model/MCPResourceMeta.ts, line 2](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/tegg/core/controller-decorator/src/model/MCPResourceMeta.ts#L2)

## Support (tegg/standalone/service-worker)

### Testing

- **Vitest**: 3 files

## Support (tegg/standalone/standalone)

### Testing

- **Vitest**: 2 files

## Other repos with a similar stack

- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): Express, Redis, MCP, Zod, Ajv, Cheerio, LangChain · [Compare](https://seerepo.com/compare/eggjs/egg/vs/n8n-io/n8n)
- [firecrawl/firecrawl](https://seerepo.com/r/firecrawl/firecrawl/built): Express, Redis, escape-html, Zod, Ajv, ajv-formats, Cheerio · [Compare](https://seerepo.com/compare/eggjs/egg/vs/firecrawl/firecrawl)
- [google-gemini/gemini-cli](https://seerepo.com/r/google-gemini/gemini-cli/built): Express, MCP, js-yaml, Zod, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/eggjs/egg/vs/google-gemini/gemini-cli)
- [cheaper-inference/OmniRoute](https://seerepo.com/r/cheaper-inference/OmniRoute/built): Express, Redis, MCP, js-yaml, Zod, Ajv · [Compare](https://seerepo.com/compare/cheaper-inference/OmniRoute/vs/eggjs/egg)
- [nocodb/nocodb](https://seerepo.com/r/nocodb/nocodb/built): Express, Redis, MCP, Zod, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/eggjs/egg/vs/nocodb/nocodb)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): Express, js-yaml, Zod, Ajv, ajv-formats, Cheerio · [Compare](https://seerepo.com/compare/eggjs/egg/vs/TryGhost/Ghost)

## Frequently asked questions

### What language is egg written in?

egg is written in TypeScript, with 199,875 written lines.

### What framework does egg use?

egg is built with koa-bodyparser, koa-compose, Express, and koa-range.

### Does egg use AI?

Yes. egg uses AI through LangChain.

### What services does egg use?

egg uses Redis, MCP, and sqlstring.

The proof: [plugins/redis/src/lib/redis.ts, line 5](https://github.com/eggjs/egg/blob/2d168f8cc5f759fc57e267065c43fe0e4ebce004/plugins/redis/src/lib/redis.ts#L5)

### Does egg have tests?

Yes. egg has 2,957 test files and is tested with Vitest and Mocha.

### Which repos have a stack like egg's?

The ones that share most of its stack: n8n-io/n8n, firecrawl/firecrawl, and google-gemini/gemini-cli.

## 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.
