Source: https://seerepo.com/r/CopilotKit/OpenBot/built
Markdown source: https://seerepo.com/r/CopilotKit/OpenBot/built.md
Description: OpenBot is a TypeScript repo built with FastAPI, uvicorn, Hono, Vite, React, and 8 more. It reaches its data with Drizzle and @better-auth/drizzle-adapter.

# What is OpenBot built with?

OpenBot is a TypeScript repo built with FastAPI, uvicorn, Hono, Vite, React, and 8 more. It reaches its data with Drizzle and @better-auth/drizzle-adapter, signs people in with web-bot-auth, Better Auth, http-message-sig, and jose, uses AI through langchain-google-genai, llama-index-core, Pydantic, strands-agents, ag-ui-claude-sdk, and 29 more, connects to Google, makes its content with streamdown, zip, and mdast-util-from-markdown, validates its data with Zod, is tested with pytest-asyncio, Pytest, yaml, playwright, @happy-dom/global-registrator, and 5 more, deploys with log, tauri-plugin-log, OpenTelemetry, and dockerode, and uses Postgres, expo-secure-store, and MCP. It has 986,045 written lines, with 1,467 test files.

Read on November 12, 2026, at commit 4a14b3a.

Repository: https://github.com/CopilotKit/OpenBot

## Backend (/)

### The base

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

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [server/src/work/queue.ts, line 19](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/src/work/queue.ts#L19)

### AI

- **[langchain-google-genai](https://seerepo.com/uses/langchain-google-genai)**
- **llama-index-core**
- **[Pydantic](https://seerepo.com/uses/pydantic)**
- **strands-agents**
- **ag-ui-claude-sdk**: 3 files
- **[langchain-openai](https://seerepo.com/uses/langchain-openai)**: 3 files
- **[LangGraph](https://seerepo.com/uses/langgraph)**: 3 files
- **[litellm](https://seerepo.com/uses/litellm)**: 3 files
- **ag-ui-antigravity**: 2 files
- **ag-ui-langgraph**: 2 files
- **agno**: 2 files
- **langroid**: 2 files
- **ag-ui-adk**: 1 file
- **ag-ui-crewai**: 1 file
- **ag-ui-strands**: 1 file
- **ag2**: 1 file
- **agent-framework-ag-ui**: 1 file
- **agent-framework-openai**: 1 file
- **[google-adk](https://seerepo.com/uses/google-adk)**: 1 file
- **[LangChain](https://seerepo.com/uses/langchain)**: 1 file
- **[langchain-anthropic](https://seerepo.com/uses/langchain-anthropic)**: 1 file
- **llama-index-protocols-ag-ui**: 1 file

### Services

- **[Anthropic](https://seerepo.com/uses/anthropic)**: 2 files · [agent-claude-sdk/src/adapter.py, line 36](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-claude-sdk/src/adapter.py#L36)
- **[Google](https://seerepo.com/uses/google)**: 2 files · [agent-langgraph-agui/src/tool_runtime.py, line 106](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-langgraph-agui/src/tool_runtime.py#L106)

## Support (/)

### The base

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

### Testing

- **pytest-asyncio**
- **Pytest**: 41 files
- **[yaml](https://seerepo.com/uses/yaml)**: 9 files

### Tools

- **TypeScript**: 4 files

### Other

- **python-multipart**
- **httpx**: 2 files

## Backend (agent-bot)

### AI

- **@ag-ui/core**: 2 files

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 1 file · [agent-bot/src/index.ts, line 4](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-bot/src/index.ts#L4)

## Support (agent-bot)

### Other

- **@ag-ui/encoder**: 1 file

## Frontend (agent-computer)

### Interface

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

## Backend (agent-computer)

### The base

- **[Hono](https://seerepo.com/uses/hono)**: 1 file · [in server/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/package.json)

### Sign-in

- **web-bot-auth**: 1 file

## Support (agent-computer)

### Content

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

### Testing

- **playwright**: 32 files

### Other

- **p-queue**: 1 file

## Backend (agent-langgraph)

### AI

- **@ag-ui/core**: 3 files
- **[LangChain](https://seerepo.com/uses/langchain)**: 3 files

## Support (agent-langgraph)

### Other

- **@ag-ui/encoder**: 1 file

## Backend (agent-mastra)

### AI

- **@mastra/core**: 1 file

### Services

- **[Anthropic](https://seerepo.com/uses/anthropic)**: 1 file · [agent-claude-sdk/src/adapter.py, line 36](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-claude-sdk/src/adapter.py#L36)
- **[OpenAI](https://seerepo.com/uses/openai)**: 1 file · [agent-bot/src/index.ts, line 4](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-bot/src/index.ts#L4)

## Frontend (app)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[React](https://seerepo.com/uses/react)**: 291 files · [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[@tanstack/react-router](https://seerepo.com/uses/tanstack-react-router)**: 202 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**: 9 files
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 8 files
- **[@fontsource-variable/inter](https://seerepo.com/uses/fontsource-variable-inter)**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[motion](https://seerepo.com/uses/motion)**: 25 files
- **[Base UI](https://seerepo.com/uses/base-ui)**: 22 files
- **tanstack**: 5 files
- **@shadcn/react**: 2 files
- **boring-avatars**: 2 files
- **[xterm](https://seerepo.com/uses/xterm)**: 2 files
- **[@streamdown/code](https://seerepo.com/uses/streamdown-code)**: 1 file
- **[embla-carousel-react](https://seerepo.com/uses/embla-carousel-react)**: 1 file

### Icons

- **[@tabler/icons-react](https://seerepo.com/uses/tabler-icons-react)**: 196 files

## Backend (app)

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 1 file

### AI

- **@copilotkit/react-core**: 37 files
- **@ag-ui/core**: 18 files

## Support (app)

### Content

- **[streamdown](https://seerepo.com/uses/streamdown)**: 8 files

### Validation

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

### Testing

- **@happy-dom/global-registrator**: 319 files
- **Testing Library**: 313 files
- **playwright-core**: 10 files
- **[yaml](https://seerepo.com/uses/yaml)**: 2 files

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 296 files
- **clsx**: 1 file
- **diff**: 1 file
- **rxjs**: 1 file
- **shell-quote**: 1 file

## Frontend (desktop)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[React](https://seerepo.com/uses/react)**: 19 files · [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[@tauri-apps/api](https://seerepo.com/uses/tauri-apps-api)**: 15 files
- **[Tauri](https://seerepo.com/uses/tauri)**: 14 files

### Styles

- **[@fontsource-variable/inter](https://seerepo.com/uses/fontsource-variable-inter)**: 1 file

### Interface

- **[tauri-plugin-dialog](https://seerepo.com/uses/tauri-plugin-dialog)**: 2 files
- **[tauri-plugin-notification](https://seerepo.com/uses/tauri-plugin-notification)**: 1 file
- **[tauri-plugin-window-state](https://seerepo.com/uses/tauri-plugin-window-state)**: 1 file

### Icons

- **[@tabler/icons-react](https://seerepo.com/uses/tabler-icons-react)**: 1 file

## Support (desktop)

### The base

- **[objc2-app-kit](https://seerepo.com/uses/objc2-app-kit)**: 2 files
- **[objc2-foundation](https://seerepo.com/uses/objc2-foundation)**: 2 files

### Content

- **[zip](https://seerepo.com/uses/zip)**

### Testing

- **@happy-dom/global-registrator**: 15 files
- **Testing Library**: 12 files
- **playwright-core**: 1 file

### Deploy

- **[log](https://seerepo.com/uses/log)**: 28 files
- **[tauri-plugin-log](https://seerepo.com/uses/tauri-plugin-log)**: 1 file

### Other

- **serde_json**: 47 files
- **serde**: 38 files
- **reqwest**: 19 files
- **sha2**: 14 files
- **libc**: 9 files
- **rand**: 9 files
- **semver**: 7 files
- **windows**: 7 files
- **regex**: 6 files
- **tar**: 5 files
- **base64**: 4 files
- **flate2**: 4 files
- **objc2**: 3 files
- **dirs**: 2 files
- **tauri-plugin-updater**: 2 files
- **time**: 2 files
- **block2**: 1 file
- **objc2-av-foundation**: 1 file
- **objc2-avf-audio**: 1 file
- **objc2-speech**: 1 file
- **oci-client**: 1 file
- **portable-pty**: 1 file
- **rustls**: 1 file
- **socket2**: 1 file
- **tauri-plugin-deep-link**: 1 file
- **tauri-plugin-opener**: 1 file
- **tauri-plugin-shell**: 1 file
- **tauri-plugin-single-instance**: 1 file
- **windows-registry**: 1 file

## Frontend (extension)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[React](https://seerepo.com/uses/react)**: 11 files · [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)

### Styles

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

### Icons

- **[@tabler/icons-react](https://seerepo.com/uses/tabler-icons-react)**: 8 files

## Backend (extension)

### AI

- **ag-ui**: 4 files

## Support (extension)

### The base

- **phoenix**: 1 file

### Validation

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

### Testing

- **@happy-dom/global-registrator**: 18 files
- **fake-indexeddb**: 12 files
- **Testing Library**: 5 files

### Other

- **rxjs**: 2 files
- **@ag-ui/proto**: 1 file
- **eventsource-parser**: 1 file
- **tldts**: 1 file

## Frontend (mobile)

### The base

- **[react-native](https://seerepo.com/uses/react-native)**: 15 files
- **[React](https://seerepo.com/uses/react)**: 14 files · [in app/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/app/package.json)
- **[Expo](https://seerepo.com/uses/expo)**: 13 files · [in mobile/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/mobile/package.json)

## Backend (mobile)

### Data

- **[expo-secure-store](https://seerepo.com/uses/expo-secure-store)**: 2 files

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 1 file

## Support (mobile)

### Other

- **expo-constants**: 2 files
- **expo-crypto**: 2 files
- **expo-device**: 1 file

## Backend (server)

### The base

- **[Hono](https://seerepo.com/uses/hono)**: 67 files · [in server/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/package.json)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 5 files · [server/src/work/queue.ts, line 19](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/src/work/queue.ts#L19)

### Data access

- **[Drizzle](https://seerepo.com/uses/drizzle)**: 123 files
- **@better-auth/drizzle-adapter**: 1 file

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 3 files
- **http-message-sig**: 1 file
- **[jose](https://seerepo.com/uses/jose)**: 1 file
- **web-bot-auth**: 1 file

### AI

- **ag-ui**: 22 files
- **copilotkit**: 18 files
- **@arcadeai/arcadejs**: 1 file
- **@composio/core**: 1 file
- **@mastra/client-js**: 1 file

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [server/src/plugins/mcp.ts, line 1](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/src/plugins/mcp.ts#L1)

## Support (server)

### Content

- **[mdast-util-from-markdown](https://seerepo.com/uses/mdast-util-from-markdown)**: 1 file
- **[yaml](https://seerepo.com/uses/yaml)**: 1 file

### Validation

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

### Testing

- **@copilotkit/aimock**: 37 files
- **@earendil-works/pi-ai**: 1 file

### Deploy

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

### Tools

- **TypeScript**: 1 file

### Other

- **rxjs**: 10 files
- **cron-parser**: 1 file
- **eventsource**: 1 file
- **p-queue**: 1 file
- **twilio**: 1 file

## Support (shared)

### Validation

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

### Testing

- **@happy-dom/global-registrator**: 1 file

## Backend (supervisor)

### The base

- **[Hono](https://seerepo.com/uses/hono)**: 1 file · [in server/package.json](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/server/package.json)

## Support (supervisor)

### Deploy

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

## Backend (toolkit)

### AI

- **@ag-ui/client**: 7 files
- **@copilotkit/runtime**: 5 files

## Support (toolkit)

### Validation

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

### Other

- **rxjs**: 3 files

## Other repos with a similar stack

- [unslothai/unsloth](https://seerepo.com/r/unslothai/unsloth/built): FastAPI, uvicorn, OpenAI, Vite, React, @tauri-apps/api, Tauri, objc2-app-kit, objc2-foundation, Pydantic, Tailwind CSS, class-variance-authority, tailwind-merge, motion, Base UI, @streamdown/code, streamdown, tauri-plugin-dialog, tauri-plugin-notification, tauri-plugin-window-state, log, mdast-util-from-markdown · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/unslothai/unsloth)
- [vectorize-io/hindsight](https://seerepo.com/r/vectorize-io/hindsight/built): FastAPI, Postgres, Anthropic, Google, uvicorn, OpenAI, React, MCP, llama-index-core, Pydantic, strands-agents, litellm, agno, ag2, google-adk, LangChain, Tailwind CSS, class-variance-authority, tailwind-merge, Zod, OpenTelemetry · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/vectorize-io/hindsight)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, Postgres, Anthropic, Google, uvicorn, OpenAI, React, Pydantic, Tailwind CSS, class-variance-authority, tailwind-merge, motion, boring-avatars, embla-carousel-react, Better Auth, streamdown, Zod, jose, mdast-util-from-markdown · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/Significant-Gravitas/AutoGPT)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Postgres, Anthropic, Google, OpenAI, Vite, React, MCP, xterm, yaml, Tailwind CSS, class-variance-authority, tailwind-merge, motion, Base UI, Better Auth, Zod, Drizzle, mdast-util-from-markdown · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/paperclipai/paperclip)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): FastAPI, Google, uvicorn, OpenAI, Vite, React, MCP, langchain-google-genai, Pydantic, langchain-openai, litellm, LangChain, langchain-anthropic, Tailwind CSS, class-variance-authority, tailwind-merge, @ag-ui/client · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/langflow-ai/langflow)
- [farion1231/cc-switch](https://seerepo.com/r/farion1231/cc-switch/built): Vite, React, @tauri-apps/api, Tauri, objc2-app-kit, objc2-foundation, yaml, Tailwind CSS, class-variance-authority, tailwind-merge, Zod, tauri-plugin-dialog, tauri-plugin-window-state, zip, log, tauri-plugin-log · [Compare](https://seerepo.com/compare/CopilotKit/OpenBot/vs/farion1231/cc-switch)

## Frequently asked questions

### What language is OpenBot written in?

OpenBot is written in TypeScript, with 986,045 written lines.

### What framework does OpenBot use?

OpenBot is built with FastAPI, uvicorn, Hono, Vite, React, @tanstack/react-router, @tauri-apps/api, Tauri, objc2-app-kit, objc2-foundation, phoenix, react-native, and Expo.

### What does OpenBot sign people in with?

OpenBot signs people in with web-bot-auth, Better Auth, http-message-sig, and jose.

### Does OpenBot use AI?

Yes. OpenBot uses AI through langchain-google-genai, llama-index-core, Pydantic, strands-agents, ag-ui-claude-sdk, langchain-openai, LangGraph, litellm, ag-ui-antigravity, ag-ui-langgraph, agno, langroid, ag-ui-adk, ag-ui-crewai, ag-ui-strands, ag2, agent-framework-ag-ui, agent-framework-openai, google-adk, LangChain, langchain-anthropic, llama-index-protocols-ag-ui, Anthropic, @ag-ui/core, OpenAI, @mastra/core, @copilotkit/react-core, ag-ui, copilotkit, @arcadeai/arcadejs, @composio/core, @mastra/client-js, @ag-ui/client, and @copilotkit/runtime.

### What services does OpenBot use?

OpenBot connects to Google and uses Postgres, expo-secure-store, and MCP.

The proof: [agent-langgraph-agui/src/tool_runtime.py, line 106](https://github.com/CopilotKit/OpenBot/blob/4a14b3ac605b966ad74e200194714d15e4613243/agent-langgraph-agui/src/tool_runtime.py#L106)

### Does OpenBot have tests?

Yes. OpenBot has 1,467 test files and is tested with pytest-asyncio, Pytest, yaml, playwright, @happy-dom/global-registrator, Testing Library, playwright-core, fake-indexeddb, @copilotkit/aimock, and @earendil-works/pi-ai.

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

The ones that share most of its stack: unslothai/unsloth, vectorize-io/hindsight, 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.
