Source: https://seerepo.com/r/emcie-co/parlant/built
Markdown source: https://seerepo.com/r/emcie-co/parlant/built.md
Description: parlant is a Python repo built with FastAPI, starlette, uvicorn, fastmcp, Vite, and 1 more. It stores its data in SQLite.

# What is parlant built with?

parlant is a Python repo built with FastAPI, starlette, uvicorn, fastmcp, Vite, and 1 more. It stores its data in SQLite, signs people in with authlib and keyring, uses AI through tokenizers, tiktoken, mcp, and OpenAI, makes its content with jinja2, rehype-highlight, rehype-raw, remark-gfm, and streamdown, validates its data with jsonschema and openapi3-parser, is tested with Vitest and Testing Library, deploys with coloredlogs, OpenTelemetry, opentelemetry-instrumentation, structlog, and boto3, and uses aiosqlite and nano-vectordb. It has 214,893 written lines, with 257 test files.

Read on November 6, 2026, at commit a071a81.

Repository: https://github.com/emcie-co/parlant

## Frontend (/)

### Interface

- **[Rich](https://seerepo.com/uses/rich)**: 5 files

## Backend (/)

### The base

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

### Data

- **[aiosqlite](https://seerepo.com/uses/aiosqlite)**
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [src/parlant/adapters/db/sqlite.py, line 21](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/src/parlant/adapters/db/sqlite.py#L21)
- **nano-vectordb**: 1 file

### Sign-in

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

### AI

- **[tokenizers](https://seerepo.com/uses/tokenizers)**
- **[tiktoken](https://seerepo.com/uses/tiktoken)**: 4 files
- **[mcp](https://seerepo.com/uses/mcp)**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 2 files · [src/parlant/adapters/nlp/openai_service.py, line 20](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/src/parlant/adapters/nlp/openai_service.py#L20)

## Support (/)

### The base

- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 2 files
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 1 file

### Content

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

### Validation

- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **openapi3-parser**

### Deploy

- **coloredlogs**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**
- **opentelemetry-instrumentation**
- **[structlog](https://seerepo.com/uses/structlog)**: 3 files
- **[boto3](https://seerepo.com/uses/boto3)**: 1 file

### Tools

- **types-aiofiles**
- **types-cachetools**
- **click**: 24 files
- **watchfiles**: 1 file

### Other

- **colorama**
- **grpcio-status**
- **more-itertools**
- **python-multipart**
- **requests**
- **tabulate**
- **websocket-client**
- **wsproto**
- **httpx**: 16 files
- **aiofiles**: 3 files
- **croniter**: 3 files
- **NumPy**: 3 files
- **httpx2**: 2 files
- **platformdirs**: 2 files
- **python-dateutil**: 2 files
- **xxhash**: 2 files
- **aiorwlock**: 1 file
- **cachetools**: 1 file
- **httpx-sse**: 1 file
- **limits**: 1 file
- **nanoid**: 1 file
- **networkx**: 1 file
- **python-dotenv**: 1 file
- **semver**: 1 file
- **toml**: 1 file
- **websockets**: 1 file

## Frontend (src/parlant/api/chat)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in widget/package.json](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/widget/package.json)
- **[React](https://seerepo.com/uses/react)**: 52 files · [in widget/package.json](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/widget/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 10 files
- **[sonner](https://seerepo.com/uses/sonner)**: 8 files
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 2 files
- **[CodeMirror](https://seerepo.com/uses/codemirror)**: 1 file
- **[TanStack](https://seerepo.com/uses/tanstack)**: 1 file
- **[vaul](https://seerepo.com/uses/vaul)**: 1 file

### Icons

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

## Support (src/parlant/api/chat)

### Content

- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[streamdown](https://seerepo.com/uses/streamdown)**: 1 file

### Testing

- **Vitest**: 5 files
- **Testing Library**: 2 files

### Other

- **jotai**: 14 files
- **clsx**: 5 files
- **react-helmet**: 1 file

## Frontend (widget)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in widget/package.json](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/widget/package.json)
- **[React](https://seerepo.com/uses/react)**: 18 files · [in widget/package.json](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/widget/package.json)

### Styles

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

## Support (widget)

### Testing

- **Vitest**: 17 files
- **Testing Library**: 11 files

## Other repos with a similar stack

- [unslothai/unsloth](https://seerepo.com/r/unslothai/unsloth/built): FastAPI, OpenAI, uvicorn, fastmcp, Vite, React, Rich, tokenizers, tiktoken, jinja2, structlog, Tailwind CSS, tailwind-merge, class-variance-authority, Radix UI, sonner, react-resizable-panels, TanStack, Lucide, streamdown · [Compare](https://seerepo.com/compare/emcie-co/parlant/vs/unslothai/unsloth)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, OpenAI, uvicorn, React, Rich, tiktoken, jinja2, jsonschema, boto3, Tailwind CSS, tailwind-merge, class-variance-authority, next-themes, Radix UI, sonner, vaul, rehype-highlight, remark-gfm, streamdown · [Compare](https://seerepo.com/compare/emcie-co/parlant/vs/Significant-Gravitas/AutoGPT)
- [bytedance/deer-flow](https://seerepo.com/r/bytedance/deer-flow/built): FastAPI, starlette, aiosqlite, SQLite, uvicorn, React, jsonschema, Tailwind CSS, tailwind-merge, class-variance-authority, next-themes, Radix UI, sonner, react-resizable-panels, CodeMirror, Lucide, rehype-raw, remark-gfm, streamdown · [Compare](https://seerepo.com/compare/bytedance/deer-flow/vs/emcie-co/parlant)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, starlette, aiosqlite, SQLite, OpenAI, uvicorn, fastmcp, Vite, React, Rich, tokenizers, tiktoken, MCP, jinja2, jsonschema, OpenTelemetry, Tailwind CSS · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/emcie-co/parlant)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, OpenAI, uvicorn, fastmcp, Vite, React, Rich, authlib, tiktoken, MCP, structlog, Tailwind CSS, tailwind-merge, class-variance-authority, Radix UI, Lucide, remark-gfm · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/emcie-co/parlant)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): FastAPI, OpenAI, uvicorn, Vite, React, Rich, MCP, jsonschema, boto3, Tailwind CSS, tailwind-merge, class-variance-authority, Radix UI, Lucide, rehype-raw, remark-gfm · [Compare](https://seerepo.com/compare/emcie-co/parlant/vs/langflow-ai/langflow)

## Frequently asked questions

### What language is parlant written in?

parlant is written in Python, with 214,893 written lines.

### What framework does parlant use?

parlant is built with FastAPI, starlette, uvicorn, fastmcp, Vite, and React.

### What database does parlant use?

parlant stores its data in SQLite.

The proof: [src/parlant/adapters/db/sqlite.py, line 21](https://github.com/emcie-co/parlant/blob/a071a81406e47b4a0ae3bfd448e4deb170ac2f4b/src/parlant/adapters/db/sqlite.py#L21)

### What does parlant sign people in with?

parlant signs people in with authlib and keyring.

### Does parlant use AI?

Yes. parlant uses AI through tokenizers, tiktoken, mcp, and OpenAI.

### What services does parlant use?

parlant uses aiosqlite and nano-vectordb.

### Does parlant have tests?

Yes. parlant has 257 test files and is tested with Vitest and Testing Library.

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

The ones that share most of its stack: unslothai/unsloth, Significant-Gravitas/AutoGPT, and bytedance/deer-flow.

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