Source: https://seerepo.com/r/HKUDS/Vibe-Trading/built
Markdown source: https://seerepo.com/r/HKUDS/Vibe-Trading/built.md
Description: Vibe-Trading is a Python repo built with FastAPI, fastmcp-slim, AIOHTTP, starlette, fastmcp, and 6 more. It stores its data in DuckDB.

# What is Vibe-Trading built with?

Vibe-Trading is a Python repo built with FastAPI, fastmcp-slim, AIOHTTP, starlette, fastmcp, and 6 more. It stores its data in DuckDB, reaches it with peewee, signs people in with authlib, joserfc, pyjwt, cryptography, and keyring, uses AI through github-copilot-sdk, langchain-protocol, LangGraph, langgraph-sdk, langsmith, and 7 more, makes its content with beautifulsoup4, bs4, et-xmlfile, html5lib, lxml, and 27 more, validates its data with annotated-types, beartype, email-validator, jsonschema, jsonschema-path, and 5 more, is tested with fake-useragent, Testing Library, and Vitest, deploys with OpenTelemetry, and uses py-key-value-aio. It has 602,935 written lines, with 1,166 test files.

Read on November 6, 2026, at commit b62c878.

Repository: https://github.com/HKUDS/Vibe-Trading

## Frontend (/)

### Styles

- **cycler**
- **[fonttools](https://seerepo.com/uses/fonttools)**
- **[soupsieve](https://seerepo.com/uses/soupsieve)**
- **tinycss2**

### Interface

- **contourpy**
- **[Rich](https://seerepo.com/uses/rich)**: 28 files
- **[prompt-toolkit](https://seerepo.com/uses/prompt-toolkit)**: 4 files
- **[matplotlib](https://seerepo.com/uses/matplotlib)**: 3 files

## Backend (/)

### The base

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

### Data

- **py-key-value-aio**
- **[DuckDB](https://seerepo.com/uses/duckdb)**: 2 files

### Data access

- **peewee**

### Sign-in

- **[authlib](https://seerepo.com/uses/authlib)**
- **joserfc**
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 2 files
- **[cryptography](https://seerepo.com/uses/cryptography)**: 1 file
- **[keyring](https://seerepo.com/uses/keyring)**: 1 file

### AI

- **github-copilot-sdk**
- **langchain-protocol**
- **[LangGraph](https://seerepo.com/uses/langgraph)**
- **langgraph-sdk**
- **langsmith**
- **[tiktoken](https://seerepo.com/uses/tiktoken)**
- **[LangChain](https://seerepo.com/uses/langchain)**: 2 files
- **[mcp](https://seerepo.com/uses/mcp)**: 2 files
- **[scikit-learn](https://seerepo.com/uses/scikit-learn)**: 2 files
- **[langchain-openai](https://seerepo.com/uses/langchain-openai)**: 1 file

### Services

- **OpenAI**: 2 files · [agent/src/providers/llm.py, line 39](https://github.com/HKUDS/Vibe-Trading/blob/b62c8782f57cad20c1c195367fa7a1cdeb29d6a8/agent/src/providers/llm.py#L39)

## Support (/)

### The base

- **fastmcp-slim**
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 4 files
- **[starlette](https://seerepo.com/uses/starlette)**: 3 files
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 2 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 2 files
- **[anyio](https://seerepo.com/uses/anyio)**: 1 file

### Content

- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**
- **bs4**
- **et-xmlfile**
- **html5lib**
- **[lxml](https://seerepo.com/uses/lxml)**
- **[markdown-it-py](https://seerepo.com/uses/markdown-it-py)**
- **[markupsafe](https://seerepo.com/uses/markupsafe)**
- **[mdurl](https://seerepo.com/uses/mdurl)**
- **rich-rst**
- **webencodings**
- **[xlrd](https://seerepo.com/uses/xlrd)**
- **xlsxwriter**
- **[jinja2](https://seerepo.com/uses/jinja2)**: 3 files
- **[defusedxml](https://seerepo.com/uses/defusedxml)**: 2 files
- **mistune**: 2 files
- **nh3**: 2 files
- **[pillow](https://seerepo.com/uses/pillow)**: 2 files
- **[python-pptx](https://seerepo.com/uses/python-pptx)**: 2 files
- **[qrcode](https://seerepo.com/uses/qrcode)**: 2 files
- **reportlab**: 2 files
- **weasyprint**: 2 files
- **[openpyxl](https://seerepo.com/uses/openpyxl)**: 1 file
- **[pypdf](https://seerepo.com/uses/pypdf)**: 1 file
- **pypdfium2**: 1 file
- **[python-docx](https://seerepo.com/uses/python-docx)**: 1 file

### Validation

- **[annotated-types](https://seerepo.com/uses/annotated-types)**
- **beartype**
- **[email-validator](https://seerepo.com/uses/email-validator)**
- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **jsonschema-path**
- **[jsonschema-specifications](https://seerepo.com/uses/jsonschema-specifications)**
- **openapi-pydantic**
- **[referencing](https://seerepo.com/uses/referencing)**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 46 files
- **[pydantic-core](https://seerepo.com/uses/pydantic-core)**: 1 file

### Deploy

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

### Tools

- **annotated-doc**
- **click**
- **cyclopts**
- **docstring-parser**
- **griffelib**
- **pycparser**
- **pygments**
- **typing-extensions**
- **watchfiles**
- **packaging**: 1 file

### Other

- **",**
- **aiofile**
- **aiohappyeyeballs**
- **aiosignal**
- **attrs**
- **backports-tarfile**
- **brotli**
- **brotlicffi**
- **cachetools**
- **caio**
- **cffi**
- **charset-normalizer**
- **cloudpickle**
- **colorama**
- **decorator**
- **distro**
- **dnspython**
- **exceptiongroup**
- **frozenlist**
- **h11**
- **h2**
- **hpack**
- **httpcore2**
- **httptools**
- **httpx-sse**
- **httpx2**
- **httpx2-jsfetch**
- **hyperframe**
- **idna**
- **importlib-metadata**
- **jaraco-functools**
- **jeepney**
- **jiter**
- **joblib**
- **jsonpatch**
- **jsonpointer**
- **jsonref**
- **kiwisolver**
- **mini-racer**
- **more-itertools**
- **multidict**
- **multitasking**
- **narwhals**
- **orjson**
- **ormsgpack**
- **pathable**
- **platformdirs**
- **primp**
- **propcache**
- **protobuf**
- **pydantic-settings**
- **pyparsing**
- **pyperclip**
- **python-bidi**
- **python-dateutil**
- **python-multipart**
- **python-telegram-bot**
- **pytz**
- **pywin32**
- **pywin32-ctypes**
- **regex**
- **requests-toolbelt**
- **rpds-py**
- **s**
- **secretstorage**
- **simplejson**
- **six**
- **sniffio**
- **tabulate**
- **tenacity**
- **threadpoolctl**
- **tqdm**
- **truststore**
- **typing-inspection**
- **tzdata**
- **uncalled-for**
- **urllib3**
- **uuid-utils**
- **uvloop**
- **wcwidth**
- **websocket-client**
- **winloop**
- **xxhash**
- **yarl**
- **zipp**
- **zstandard**
- **pandas**: 611 files
- **NumPy**: 392 files
- **requests**: 28 files
- **httpx**: 19 files
- **SciPy**: 18 files
- **tushare**: 7 files
- **ccxt**: 6 files
- **pyyaml**: 5 files
- **python-dotenv**: 4 files
- **websockets**: 3 files
- **yfinance**: 3 files
- **akshare**: 1 file
- **arabic-reshaper**: 1 file
- **bottleneck**: 1 file
- **certifi**: 1 file
- **curl-cffi**: 1 file
- **ddgs**: 1 file
- **httpcore**: 1 file
- **lark-oapi**: 1 file
- **pycryptodome**: 1 file
- **sse-starlette**: 1 file

## Frontend (desktop/electron)

### Styles

- **cycler**
- **[fonttools](https://seerepo.com/uses/fonttools)**
- **[soupsieve](https://seerepo.com/uses/soupsieve)**
- **tinycss2**

### Interface

- **contourpy**
- **[matplotlib](https://seerepo.com/uses/matplotlib)**
- **[prompt-toolkit](https://seerepo.com/uses/prompt-toolkit)**
- **[Rich](https://seerepo.com/uses/rich)**

## Backend (desktop/electron)

### Data

- **[DuckDB](https://seerepo.com/uses/duckdb)**
- **py-key-value-aio**

### Data access

- **peewee**

### Sign-in

- **[authlib](https://seerepo.com/uses/authlib)**
- **[cryptography](https://seerepo.com/uses/cryptography)**
- **joserfc**
- **[keyring](https://seerepo.com/uses/keyring)**
- **[pyjwt](https://seerepo.com/uses/pyjwt)**

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**
- **[langchain-openai](https://seerepo.com/uses/langchain-openai)**
- **langchain-protocol**
- **[LangGraph](https://seerepo.com/uses/langgraph)**
- **langgraph-sdk**
- **langsmith**
- **[mcp](https://seerepo.com/uses/mcp)**
- **[openai](https://seerepo.com/uses/openai)**
- **[scikit-learn](https://seerepo.com/uses/scikit-learn)**
- **[tiktoken](https://seerepo.com/uses/tiktoken)**

## Support (desktop/electron)

### The base

- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**
- **[anyio](https://seerepo.com/uses/anyio)**
- **[FastAPI](https://seerepo.com/uses/fastapi)**
- **[fastmcp](https://seerepo.com/uses/fastmcp)**
- **fastmcp-slim**
- **[starlette](https://seerepo.com/uses/starlette)**
- **[uvicorn](https://seerepo.com/uses/uvicorn)**
- **[Electron](https://seerepo.com/uses/electron)**: 3 files

### Content

- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**
- **bs4**
- **[defusedxml](https://seerepo.com/uses/defusedxml)**
- **et-xmlfile**
- **html5lib**
- **[jinja2](https://seerepo.com/uses/jinja2)**
- **[lxml](https://seerepo.com/uses/lxml)**
- **[markdown-it-py](https://seerepo.com/uses/markdown-it-py)**
- **[markupsafe](https://seerepo.com/uses/markupsafe)**
- **[mdurl](https://seerepo.com/uses/mdurl)**
- **mistune**
- **nh3**
- **[openpyxl](https://seerepo.com/uses/openpyxl)**
- **[pillow](https://seerepo.com/uses/pillow)**
- **[pypdf](https://seerepo.com/uses/pypdf)**
- **pypdfium2**
- **[python-docx](https://seerepo.com/uses/python-docx)**
- **[python-pptx](https://seerepo.com/uses/python-pptx)**
- **reportlab**
- **rich-rst**
- **weasyprint**
- **webencodings**
- **[xlrd](https://seerepo.com/uses/xlrd)**
- **xlsxwriter**

### Validation

- **[annotated-types](https://seerepo.com/uses/annotated-types)**
- **beartype**
- **[email-validator](https://seerepo.com/uses/email-validator)**
- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **jsonschema-path**
- **[jsonschema-specifications](https://seerepo.com/uses/jsonschema-specifications)**
- **openapi-pydantic**
- **[Pydantic](https://seerepo.com/uses/pydantic)**
- **[referencing](https://seerepo.com/uses/referencing)**

### Testing

- **fake-useragent**

### Deploy

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

### Tools

- **annotated-doc**
- **click**
- **cyclopts**
- **docstring-parser**
- **griffelib**
- **packaging**
- **pycparser**
- **pygments**
- **typing-extensions**
- **watchfiles**

### Other

- **aiofile**
- **aiohappyeyeballs**
- **aiosignal**
- **akshare**
- **arabic-reshaper**
- **attrs**
- **bottleneck**
- **brotli**
- **cachetools**
- **caio**
- **ccxt**
- **certifi**
- **cffi**
- **charset-normalizer**
- **colorama**
- **curl-cffi**
- **ddgs**
- **decorator**
- **distro**
- **dnspython**
- **exceptiongroup**
- **frozenlist**
- **h11**
- **h2**
- **hpack**
- **httpcore**
- **httptools**
- **httpx**
- **httpx-sse**
- **hyperframe**
- **idna**
- **jaraco-functools**
- **jiter**
- **joblib**
- **jsonpatch**
- **jsonpointer**
- **jsonref**
- **kiwisolver**
- **mini-racer**
- **more-itertools**
- **multidict**
- **multitasking**
- **narwhals**
- **NumPy**
- **orjson**
- **ormsgpack**
- **pandas**
- **pathable**
- **platformdirs**
- **primp**
- **propcache**
- **protobuf**
- **pydantic-settings**
- **pyparsing**
- **pyperclip**
- **python-bidi**
- **python-dateutil**
- **python-dotenv**
- **python-multipart**
- **pytz**
- **pywin32**
- **pywin32-ctypes**
- **pyyaml**
- **regex**
- **requests**
- **requests-toolbelt**
- **rpds-py**
- **SciPy**
- **simplejson**
- **six**
- **sniffio**
- **socksio**
- **sse-starlette**
- **tabulate**
- **tenacity**
- **threadpoolctl**
- **tqdm**
- **tushare**
- **typing-inspection**
- **tzdata**
- **uncalled-for**
- **urllib3**
- **uuid-utils**
- **wcwidth**
- **websocket-client**
- **websockets**
- **winloop**
- **xxhash**
- **yarl**
- **yfinance**
- **zstandard**

## Frontend (frontend)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in frontend/package.json](https://github.com/HKUDS/Vibe-Trading/blob/b62c8782f57cad20c1c195367fa7a1cdeb29d6a8/frontend/package.json)
- **[React](https://seerepo.com/uses/react)**: 77 files · [in frontend/package.json](https://github.com/HKUDS/Vibe-Trading/blob/b62c8782f57cad20c1c195367fa7a1cdeb29d6a8/frontend/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 11 files

### Styles

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

### Interface

- **[sonner](https://seerepo.com/uses/sonner)**: 17 files
- **[echarts](https://seerepo.com/uses/echarts)**: 2 files

### Icons

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

## Support (frontend)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 3 files
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 2 files
- **[highlight.js](https://seerepo.com/uses/highlightjs)**: 1 file
- **[katex](https://seerepo.com/uses/katex)**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[remark-math](https://seerepo.com/uses/remark-math)**: 1 file

### Testing

- **Testing Library**: 69 files
- **Vitest**: 21 files

### Other

- **react-i18next**: 48 files
- **i18next**: 3 files
- **clsx**: 1 file
- **i18next-browser-languagedetector**: 1 file
- **zustand**: 1 file

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): AIOHTTP, starlette, fastmcp, uvicorn, anyio, React, cycler, fonttools, soupsieve, tinycss2, contourpy, Rich, prompt-toolkit, matplotlib, authlib, joserfc, pyjwt, cryptography, tiktoken, MCP, beautifulsoup4, markdown-it-py, markupsafe, mdurl, xlrd, xlsxwriter, jinja2, defusedxml, nh3, pillow, openpyxl, annotated-types, beartype, email-validator, jsonschema, jsonschema-specifications, referencing, Pydantic, pydantic-core, OpenTelemetry, echarts, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/apache/superset/vs/HKUDS/Vibe-Trading)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, OpenAI, AIOHTTP, starlette, fastmcp, uvicorn, anyio, Vite, React, cycler, fonttools, contourpy, Rich, matplotlib, LangGraph, tiktoken, MCP, scikit-learn, langchain-openai, beautifulsoup4, lxml, xlrd, jinja2, pillow, reportlab, openpyxl, pypdf, python-docx, annotated-types, email-validator, jsonschema, Pydantic, pydantic-core, OpenTelemetry, Tailwind CSS, echarts, react-markdown, highlight.js, katex · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/HKUDS/Vibe-Trading)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): DuckDB, OpenAI, AIOHTTP, starlette, anyio, soupsieve, tinycss2, Rich, prompt-toolkit, matplotlib, pyjwt, cryptography, tiktoken, LangChain, MCP, scikit-learn, beautifulsoup4, bs4, lxml, markupsafe, xlrd, jinja2, defusedxml, mistune, pillow, pypdf, annotated-types, jsonschema, jsonschema-specifications, referencing, Pydantic, pydantic-core, OpenTelemetry · [Compare](https://seerepo.com/compare/HKUDS/Vibe-Trading/vs/run-llama/llama_index)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, OpenAI, AIOHTTP, fastmcp, uvicorn, anyio, Vite, React, Rich, matplotlib, authlib, tiktoken, MCP, scikit-learn, langchain-openai, beautifulsoup4, lxml, xlrd, xlsxwriter, pillow, python-pptx, reportlab, openpyxl, pypdf, python-docx, Pydantic, Tailwind CSS, tailwind-merge, Lucide, react-markdown, katex, remark-gfm · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/HKUDS/Vibe-Trading)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, OpenAI, AIOHTTP, uvicorn, React, Rich, prompt-toolkit, pyjwt, cryptography, tiktoken, beautifulsoup4, markdown-it-py, jinja2, pillow, openpyxl, pypdf, pypdfium2, python-docx, jsonschema, Pydantic, Tailwind CSS, tailwind-merge, sonner, react-markdown, rehype-highlight, highlight.js, katex, rehype-katex, remark-gfm, remark-math · [Compare](https://seerepo.com/compare/HKUDS/Vibe-Trading/vs/Significant-Gravitas/AutoGPT)
- [HKUDS/DeepTutor](https://seerepo.com/r/HKUDS/DeepTutor/built): FastAPI, OpenAI, AIOHTTP, Electron, React, Rich, prompt-toolkit, pyjwt, tiktoken, MCP, markdown-it-py, jinja2, defusedxml, nh3, python-pptx, openpyxl, pypdf, python-docx, jsonschema, Pydantic, Tailwind CSS, tailwind-merge, Lucide, react-markdown, katex, rehype-katex, remark-gfm, remark-math · [Compare](https://seerepo.com/compare/HKUDS/DeepTutor/vs/HKUDS/Vibe-Trading)

## Frequently asked questions

### What language is Vibe-Trading written in?

Vibe-Trading is written in Python, with 602,935 written lines.

### What framework does Vibe-Trading use?

Vibe-Trading is built with FastAPI, fastmcp-slim, AIOHTTP, starlette, fastmcp, uvicorn, anyio, Electron, Vite, React, and React Router.

### What database does Vibe-Trading use?

Vibe-Trading stores its data in DuckDB and reaches it with peewee.

### What does Vibe-Trading sign people in with?

Vibe-Trading signs people in with authlib, joserfc, pyjwt, cryptography, and keyring.

### Does Vibe-Trading use AI?

Yes. Vibe-Trading uses AI through github-copilot-sdk, langchain-protocol, LangGraph, langgraph-sdk, langsmith, tiktoken, LangChain, mcp, scikit-learn, langchain-openai, OpenAI, and openai.

### What services does Vibe-Trading use?

Vibe-Trading uses py-key-value-aio.

### Does Vibe-Trading have tests?

Yes. Vibe-Trading has 1,166 test files and is tested with fake-useragent, Testing Library, and Vitest.

### Which repos have a stack like Vibe-Trading's?

The ones that share most of its stack: apache/superset, datawhalechina/hello-agents, and run-llama/llama_index.

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