Source: https://seerepo.com/r/google/adk-recipes/built
Markdown source: https://seerepo.com/r/google/adk-recipes/built.md
Description: adk-recipes is a Python repo built with FastAPI, org.apache.tomcat.embed:tomcat-embed-websocket, tomcat-embed-core, tomcat-embed-el, uvicorn, and 9 more.

# What is adk-recipes built with?

adk-recipes is a Python repo built with FastAPI, org.apache.tomcat.embed:tomcat-embed-websocket, tomcat-embed-core, tomcat-embed-el, uvicorn, and 9 more. It stores its data in Postgres, reaches it with SQLAlchemy, signs people in with google-auth-httplib2, google-auth-oauthlib, joserfc, pyjwt, google-auth, and 1 more, uses AI through a2a-sdk, a2ui-agent-sdk, google-adk, com.google.adk:google-adk, kfp, and 4 more, connects to Google, makes its content with defusedxml, lxml, pdfplumber, pypdf, pillow, and 10 more, validates its data with email-validator, jsonschema, and Pydantic, is tested with playwright, Vitest, Testing Library, msw, and @playwright/test, deploys with docker, opentelemetry-exporter-gcp-trace, and OpenTelemetry, and uses aiosqlite, asyncpg, gcsfs, DuckDB, SQLite, and 1 more. It has 616,639 written lines, with 1,198 test files.

Read on November 13, 2026, at commit b4fa327.

Repository: https://github.com/google/adk-recipes

## Backend (/)

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**: 78 files

### Data

- **[aiosqlite](https://seerepo.com/uses/aiosqlite)**
- **[asyncpg](https://seerepo.com/uses/asyncpg)**
- **gcsfs**
- **[Postgres](https://seerepo.com/uses/postgres)**: 3 files · [core/python/long-horizon-harness/horizon/scheduler/routine_postgres_store.py, line 38](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/long-horizon-harness/horizon/scheduler/routine_postgres_store.py#L38)
- **[DuckDB](https://seerepo.com/uses/duckdb)**: 1 file
- **[SQLite](https://seerepo.com/uses/sqlite)**: 1 file · [core/python/adk-voice-agent/pyproject.toml, line 21](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/pyproject.toml#L21)

### Data access

- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 6 files

### Sign-in

- **[google-auth-httplib2](https://seerepo.com/uses/google-auth-httplib2)**
- **[google-auth-oauthlib](https://seerepo.com/uses/google-auth-oauthlib)**
- **[joserfc](https://seerepo.com/uses/joserfc)**
- **[pyjwt](https://seerepo.com/uses/pyjwt)**
- **[google-auth](https://seerepo.com/uses/google-auth)**: 77 files

### AI

- **a2a-sdk**
- **a2ui-agent-sdk**
- **[google-adk](https://seerepo.com/uses/google-adk)**: 211 files
- **com.google.adk:google-adk**: 21 files
- **kfp**: 9 files
- **[LangChain](https://seerepo.com/uses/langchain)**: 2 files
- **[scikit-learn](https://seerepo.com/uses/scikit-learn)**: 1 file

### Services

- **[Google](https://seerepo.com/uses/google)**: 131 files · [core/python/genmedia-for-commerce/genmedia4commerce/core/gen.py, line 35](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/genmedia-for-commerce/genmedia4commerce/core/gen.py#L35)
- **[Google Cloud Storage](https://seerepo.com/uses/google-cloud-storage)**: 14 files · [core/python/ambient-quality-agent/src/ambient_quality_agent/clients.py, line 45](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/ambient-quality-agent/src/ambient_quality_agent/clients.py#L45)
- **[Anthropic](https://seerepo.com/uses/anthropic)**: 1 file · [core/python/ambient-quality-agent/src/ambient_quality_agent/tools/review/agentic_reviewer/agent.py, line 36](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/ambient-quality-agent/src/ambient_quality_agent/tools/review/agentic_reviewer/agent.py#L36)

## Support (/)

### The base

- **org.apache.tomcat.embed:tomcat-embed-websocket**
- **[tomcat-embed-core](https://seerepo.com/uses/tomcat-embed-core)**
- **tomcat-embed-el**
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 19 files
- **[starlette](https://seerepo.com/uses/starlette)**: 11 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 1 file
- **[Spring](https://seerepo.com/uses/spring)**: 1 file

### Content

- **[defusedxml](https://seerepo.com/uses/defusedxml)**
- **[lxml](https://seerepo.com/uses/lxml)**
- **[pdfplumber](https://seerepo.com/uses/pdfplumber)**
- **[pypdf](https://seerepo.com/uses/pypdf)**
- **[pillow](https://seerepo.com/uses/pillow)**: 17 files
- **[python-pptx](https://seerepo.com/uses/python-pptx)**: 4 files
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 1 file
- **[markdownify](https://seerepo.com/uses/markdownify)**: 1 file
- **[openpyxl](https://seerepo.com/uses/openpyxl)**: 1 file
- **[pymupdf](https://seerepo.com/uses/pymupdf)**: 1 file
- **[python-docx](https://seerepo.com/uses/python-docx)**: 1 file
- **[reportlab](https://seerepo.com/uses/reportlab)**: 1 file
- **[xlrd](https://seerepo.com/uses/xlrd)**: 1 file

### Validation

- **[email-validator](https://seerepo.com/uses/email-validator)**
- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 48 files

### Testing

- **playwright**: 1 file

### Deploy

- **[docker](https://seerepo.com/uses/docker)**
- **opentelemetry-exporter-gcp-trace**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file

### Tools

- **bandit**
- **tree-sitter**
- **tree-sitter-go**
- **tree-sitter-typescript**
- **typing-extensions**: 2 files
- **jq**: 1 file
- **packaging**: 1 file

### Other

- **absl-py**
- **[Apache](https://seerepo.com/uses/apache)**
- **bcpkix-jdk18on**
- **bcprov-jdk18on**
- **dateparser**
- **greenlet**
- **httpcore5**
- **jackson-bom**
- **netty-bom**
- **pandas**
- **protobuf**
- **pydantic-settings**
- **pyopenssl**
- **python-dotenv**
- **python-multipart**
- **tenacity**
- **google-api-core**: 27 files
- **httpx**: 20 files
- **pyyaml**: 6 files
- **requests**: 6 files
- **backoff**: 2 files
- **croniter**: 2 files
- **github.com/joho/godotenv**: 1 file

## Backend (contrib/typescript/financial-advisor)

### AI

- **[Google](https://seerepo.com/uses/google)**: 5 files

## Support (contrib/typescript/financial-advisor)

### Testing

- **Vitest**: 2 files

## Frontend (core/python/adk-voice-agent/web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 24 files · [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 18 files

## Support (core/python/adk-voice-agent/web)

### Testing

- **Vitest**: 10 files

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 2 files

## Frontend (core/python/ambient-quality-agent/ui/web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 66 files · [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[TanStack](https://seerepo.com/uses/tanstack)**: 33 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 7 files
- **[prism-react-renderer](https://seerepo.com/uses/prism-react-renderer)**: 3 files
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 3 files
- **[sonner](https://seerepo.com/uses/sonner)**: 3 files

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 56 files

## Backend (core/python/ambient-quality-agent/ui/web)

### AI

- **@a2a-js/sdk**: 9 files

## Support (core/python/ambient-quality-agent/ui/web)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Testing

- **Vitest**: 171 files
- **Testing Library**: 114 files
- **playwright**: 9 files

### Tools

- **@tanstack/react-query-devtools**: 1 file
- **TypeScript**: 1 file

### Other

- **@tanstack/react-query**: 28 files
- **buffer**: 1 file
- **clsx**: 1 file
- **diff**: 1 file
- **uuid**: 1 file

## Frontend (core/python/deep-search/frontend)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 13 files · [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 1 file

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 2 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 5 files

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 4 files

## Support (core/python/deep-search/frontend)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 2 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Other

- **clsx**: 1 file
- **uuid**: 1 file

## Frontend (core/python/genmedia-for-commerce/frontend)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 16 files · [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 2 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (core/python/genmedia-for-commerce/frontend)

### Testing

- **Vitest**: 15 files
- **Testing Library**: 12 files
- **msw**: 8 files

## Frontend (core/python/long-horizon-harness/web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 55 files · [in core/python/adk-voice-agent/web/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/adk-voice-agent/web/package.json)
- **[@tanstack/react-router](https://seerepo.com/uses/tanstack-react-router)**: 9 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 7 files
- **[prism-react-renderer](https://seerepo.com/uses/prism-react-renderer)**: 3 files
- **[sonner](https://seerepo.com/uses/sonner)**: 3 files
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 2 files

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 42 files

## Backend (core/python/long-horizon-harness/web)

### AI

- **@a2a-js/sdk**: 9 files

## Support (core/python/long-horizon-harness/web)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Testing

- **Vitest**: 92 files
- **Testing Library**: 54 files
- **@playwright/test**: 11 files

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 13 files
- **buffer**: 1 file
- **clsx**: 1 file
- **diff**: 1 file
- **uuid**: 1 file

## Backend (core/python/long-horizon-harness/web/server)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in core/python/long-horizon-harness/web/server/package.json](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/long-horizon-harness/web/server/package.json)

### Sign-in

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

## Support (core/python/long-horizon-harness/web/server)

### Other

- **http-proxy-middleware**: 1 file

## Other repos with a similar stack

- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, Postgres, Google, Anthropic, uvicorn, AIOHTTP, Vite, React, Express, google-auth-httplib2, google-auth-oauthlib, google-auth, scikit-learn, lxml, pdfplumber, pypdf, pillow, python-pptx, beautifulsoup4, openpyxl, pymupdf, python-docx, reportlab, xlrd, Pydantic, Lucide, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/google/adk-recipes)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, aiosqlite, asyncpg, Postgres, SQLite, uvicorn, starlette, AIOHTTP, Vite, React, react-router-dom, SQLAlchemy, scikit-learn, lxml, pdfplumber, pypdf, pillow, beautifulsoup4, openpyxl, pymupdf, python-docx, reportlab, xlrd, email-validator, jsonschema, Pydantic, OpenTelemetry, Tailwind CSS, react-markdown · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/google/adk-recipes)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, Postgres, Google, Anthropic, uvicorn, AIOHTTP, React, SQLAlchemy, google-auth-oauthlib, pyjwt, pypdf, pillow, beautifulsoup4, openpyxl, python-docx, jsonschema, Pydantic, docker, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, sonner, react-markdown, remark-gfm, jose · [Compare](https://seerepo.com/compare/google/adk-recipes/vs/Significant-Gravitas/AutoGPT)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): aiosqlite, asyncpg, gcsfs, DuckDB, SQLite, Google, starlette, AIOHTTP, SQLAlchemy, google-auth-httplib2, google-auth-oauthlib, pyjwt, LangChain, scikit-learn, defusedxml, lxml, pdfplumber, pypdf, pillow, beautifulsoup4, markdownify, pymupdf, xlrd, jsonschema, Pydantic, OpenTelemetry · [Compare](https://seerepo.com/compare/google/adk-recipes/vs/run-llama/llama_index)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): FastAPI, Google, uvicorn, starlette, AIOHTTP, Vite, React, react-router-dom, SQLAlchemy, google-auth-oauthlib, pyjwt, google-auth, LangChain, defusedxml, pypdf, pillow, jsonschema, Pydantic, Lucide, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/google/adk-recipes/vs/langflow-ai/langflow)
- [apache/superset](https://seerepo.com/r/apache/superset/built): Postgres, Google, uvicorn, starlette, AIOHTTP, React, Express, SQLAlchemy, google-auth-oauthlib, joserfc, pyjwt, defusedxml, pillow, beautifulsoup4, openpyxl, xlrd, email-validator, jsonschema, Pydantic, docker, OpenTelemetry, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/apache/superset/vs/google/adk-recipes)

## Frequently asked questions

### What language is adk-recipes written in?

adk-recipes is written in Python, with 616,639 written lines.

### What framework does adk-recipes use?

adk-recipes is built with FastAPI, org.apache.tomcat.embed:tomcat-embed-websocket, tomcat-embed-core, tomcat-embed-el, uvicorn, starlette, AIOHTTP, Spring, Vite, React, TanStack, react-router-dom, @tanstack/react-router, and Express.

### What database does adk-recipes use?

adk-recipes stores its data in Postgres and reaches it with SQLAlchemy.

The proof: [core/python/long-horizon-harness/horizon/scheduler/routine_postgres_store.py, line 38](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/long-horizon-harness/horizon/scheduler/routine_postgres_store.py#L38)

### What does adk-recipes sign people in with?

adk-recipes signs people in with google-auth-httplib2, google-auth-oauthlib, joserfc, pyjwt, google-auth, and jose.

### Does adk-recipes use AI?

Yes. adk-recipes uses AI through a2a-sdk, a2ui-agent-sdk, google-adk, com.google.adk:google-adk, kfp, LangChain, scikit-learn, Anthropic, and @a2a-js/sdk.

### What services does adk-recipes use?

adk-recipes connects to Google and uses aiosqlite, asyncpg, gcsfs, DuckDB, SQLite, and Google Cloud Storage.

The proof: [core/python/genmedia-for-commerce/genmedia4commerce/core/gen.py, line 35](https://github.com/google/adk-recipes/blob/b4fa327b91a1a2c3d710f7476ea723f42d1c717c/core/python/genmedia-for-commerce/genmedia4commerce/core/gen.py#L35)

### Does adk-recipes have tests?

Yes. adk-recipes has 1,198 test files and is tested with playwright, Vitest, Testing Library, msw, and @playwright/test.

### Which repos have a stack like adk-recipes's?

The ones that share most of its stack: bojieli/ai-agent-book, datawhalechina/hello-agents, and Significant-Gravitas/AutoGPT.

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