Source: https://seerepo.com/r/MemTensor/MemOS/built
Markdown source: https://seerepo.com/r/MemTensor/MemOS/built.md
Description: MemOS is a TypeScript repo built with FastAPI, uvicorn, anyio, starlette, fastmcp, and 8 more. It stores its data in Postgres and SQLite.

# What is MemOS built with?

MemOS is a TypeScript repo built with FastAPI, uvicorn, anyio, starlette, fastmcp, and 8 more. It stores its data in Postgres and SQLite, reaches it with SQLAlchemy, signs people in with authlib, cryptography, itsdangerous, keyring, pyjwt, and 1 more, uses AI through langsmith, mcp, nltk, NVIDIA, nvidia-cudnn-cu12, and 17 more, makes its content with beautifulsoup4, defusedxml, docutils, et-xmlfile, jinja2, and 17 more, validates its data with annotated-types, beartype, email-validator, jsonschema, jsonschema-path, and 8 more, is tested with Pytest, Vitest, Testing Library, @playwright/test, and playwright, deploys with coloredlogs, concurrent-log-handler, fastapi-cloud-cli, volcengine-python-sdk, prometheus-client, and 1 more, and uses diskcache, psycopg2-binary, py-key-value-aio, pymysql, Redis, and 8 more. It has 447,484 written lines, with 480 test files.

Read on November 11, 2026, at commit 3a16e5f.

Repository: https://github.com/MemTensor/MemOS

## Frontend (/)

### Styles

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

### Interface

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

## Backend (/)

### The base

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

### Data

- **[diskcache](https://seerepo.com/uses/diskcache)**
- **[psycopg2-binary](https://seerepo.com/uses/psycopg2-binary)**
- **py-key-value-aio**
- **[pymysql](https://seerepo.com/uses/pymysql)**
- **[Redis](https://seerepo.com/uses/redis)**: 10 files · [src/memos/mem_scheduler/webservice_modules/redis_service.py, line 66](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/mem_scheduler/webservice_modules/redis_service.py#L66)
- **[Postgres](https://seerepo.com/uses/postgres)**: 6 files · [src/memos/graph_dbs/postgres.py, line 1](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/graph_dbs/postgres.py#L1)
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [apps/memos-local-openclaw/src/storage/sqlite.ts, line 1](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/memos-local-openclaw/src/storage/sqlite.ts#L1)
- **[Neo4j](https://seerepo.com/uses/neo4j)**: 1 file
- **pika**: 1 file
- **[pymilvus](https://seerepo.com/uses/pymilvus)**: 1 file

### Data access

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

### Sign-in

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

### AI

- **[langsmith](https://seerepo.com/uses/langsmith)**
- **[mcp](https://seerepo.com/uses/mcp)**
- **[nltk](https://seerepo.com/uses/nltk)**
- **NVIDIA**
- **nvidia-cudnn-cu12**
- **[onnxruntime](https://seerepo.com/uses/onnxruntime)**
- **[safetensors](https://seerepo.com/uses/safetensors)**
- **tavily-python**
- **[tokenizers](https://seerepo.com/uses/tokenizers)**
- **[triton](https://seerepo.com/uses/triton)**
- **[scikit-learn](https://seerepo.com/uses/scikit-learn)**: 3 files
- **[torch](https://seerepo.com/uses/torch)**: 3 files
- **[transformers](https://seerepo.com/uses/transformers)**: 3 files
- **[LangChain](https://seerepo.com/uses/langchain)**: 2 files
- **[Ollama](https://seerepo.com/uses/ollama)**: 2 files
- **chonkie**: 1 file
- **[Hugging Face](https://seerepo.com/uses/hugging-face)**: 1 file
- **[rank-bm25](https://seerepo.com/uses/rank-bm25)**: 1 file
- **[sentence-transformers](https://seerepo.com/uses/sentence-transformers)**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 6 files · [src/memos/llms/openai.py, line 7](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/llms/openai.py#L7)
- **[Alibaba Cloud](https://seerepo.com/uses/alibaba-cloud)**: 1 file · [src/memos/mem_reader/read_skill_memory/process_skill_memory.py, line 260](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/mem_reader/read_skill_memory/process_skill_memory.py#L260)
- **[Qdrant](https://seerepo.com/uses/qdrant)**: 1 file · [src/memos/vec_dbs/qdrant.py, line 23](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/vec_dbs/qdrant.py#L23)

## Support (/)

### The base

- **[anyio](https://seerepo.com/uses/anyio)**
- **[starlette](https://seerepo.com/uses/starlette)**: 5 files
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 1 file

### Content

- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**
- **[defusedxml](https://seerepo.com/uses/defusedxml)**
- **[docutils](https://seerepo.com/uses/docutils)**
- **et-xmlfile**
- **[jinja2](https://seerepo.com/uses/jinja2)**
- **[lxml](https://seerepo.com/uses/lxml)**
- **magika**
- **[mammoth](https://seerepo.com/uses/mammoth)**
- **[markdown-it-py](https://seerepo.com/uses/markdown-it-py)**
- **[markdownify](https://seerepo.com/uses/markdownify)**
- **[markupsafe](https://seerepo.com/uses/markupsafe)**
- **[mdurl](https://seerepo.com/uses/mdurl)**
- **[openpyxl](https://seerepo.com/uses/openpyxl)**
- **pdfminer-six**
- **[python-pptx](https://seerepo.com/uses/python-pptx)**
- **rich-rst**
- **[xlrd](https://seerepo.com/uses/xlrd)**
- **[xlsxwriter](https://seerepo.com/uses/xlsxwriter)**
- **[markitdown](https://seerepo.com/uses/markitdown)**: 1 file
- **[pillow](https://seerepo.com/uses/pillow)**: 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**
- **pathvalidate**
- **[referencing](https://seerepo.com/uses/referencing)**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 37 files

### Testing

- **Pytest**: 52 files

### Deploy

- **[coloredlogs](https://seerepo.com/uses/coloredlogs)**
- **concurrent-log-handler**
- **fastapi-cloud-cli**
- **volcengine-python-sdk**
- **[prometheus-client](https://seerepo.com/uses/prometheus-client)**: 1 file

### Tools

- **click**
- **cyclopts**
- **docstring-parser**
- **fastapi-cli**
- **iniconfig**
- **packaging**
- **pluggy**
- **pycparser**
- **pygments**
- **Setuptools**
- **shellingham**
- **Typer**
- **watchfiles**
- **typing-extensions**: 13 files

### Other

- **async-timeout**
- **attrs**
- **certifi**
- **cffi**
- **charset-normalizer**
- **cobble**
- **colorama**
- **distro**
- **dnspython**
- **exceptiongroup**
- **filelock**
- **flatbuffers**
- **fsspec**
- **greenlet**
- **grpcio**
- **h11**
- **h2**
- **hf-xet**
- **hpack**
- **httpcore**
- **httptools**
- **httpx-sse**
- **humanfriendly**
- **hyperframe**
- **idna**
- **jaraco.context**
- **jaraco.functools**
- **jiter**
- **joblib**
- **jsonpatch**
- **jsonpointer**
- **more-itertools**
- **mpmath**
- **networkx**
- **nvidia-nccl-cu12**
- **orjson**
- **pandas**
- **pathable**
- **platformdirs**
- **portalocker**
- **protobuf**
- **pydantic-settings**
- **pyperclip**
- **python-multipart**
- **pytz**
- **regex**
- **requests-toolbelt**
- **rignore**
- **rpds-py**
- **SciPy**
- **six**
- **sniffio**
- **sse-starlette**
- **SymPy**
- **threadpoolctl**
- **typing-inspection**
- **tzdata**
- **ujson**
- **urllib3**
- **uvloop**
- **websockets**
- **zstandard**
- **requests**: 13 files
- **python-dotenv**: 9 files
- **NumPy**: 7 files
- **uuid**: 7 files
- **jieba**: 4 files
- **httpx**: 3 files
- **pyyaml**: 3 files
- **cachetools**: 2 files
- **tenacity**: 2 files
- **tqdm**: 2 files
- **python-dateutil**: 1 file
- **schedule**: 1 file
- **SemVer**: 1 file

## Backend (apps/memos-local-openclaw)

### Data

- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [apps/memos-local-openclaw/src/storage/sqlite.ts, line 1](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/memos-local-openclaw/src/storage/sqlite.ts#L1)

### AI

- **[Hugging Face](https://seerepo.com/uses/hugging-face)**: 1 file

## Support (apps/memos-local-openclaw)

### Validation

- **[@sinclair/typebox](https://seerepo.com/uses/sinclair-typebox)**: 1 file

### Testing

- **Vitest**: 57 files

### Other

- **uuid**: 8 files
- **SemVer**: 1 file

## Frontend (apps/memos-local-plugin)

### The base

- **[Preact](https://seerepo.com/uses/preact)**: 25 files

## Backend (apps/memos-local-plugin)

### Data

- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [apps/memos-local-openclaw/src/storage/sqlite.ts, line 1](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/memos-local-openclaw/src/storage/sqlite.ts#L1)
- **@deepseek-ai/dsh-session**: 1 file

### AI

- **deepseek-ai**: 3 files
- **[Hugging Face](https://seerepo.com/uses/hugging-face)**: 1 file

## Support (apps/memos-local-plugin)

### The base

- **@deepseek-ai/cordis**: 2 files

### Content

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

### Validation

- **[@sinclair/typebox](https://seerepo.com/uses/sinclair-typebox)**: 4 files
- **@deepseek-ai/schemastery**: 1 file

### Testing

- **Vitest**: 190 files

### Other

- **@preact/signals**: 7 files
- **@deepseek-ai/dsh-timeout**: 1 file
- **pyyaml**: 1 file
- **uuid**: 1 file

## Frontend (apps/openwork-memos-integration/apps/desktop)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/openwork-memos-integration/apps/desktop/package.json](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/package.json)
- **[React](https://seerepo.com/uses/react)**: 30 files · [in apps/openwork-memos-integration/apps/desktop/package.json](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 9 files

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 8 files
- **[Framer](https://seerepo.com/uses/framer)**: 6 files

### Icons

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

## Backend (apps/openwork-memos-integration/apps/desktop)

### Data

- **[electron-store](https://seerepo.com/uses/electron-store)**: 4 files

### Sign-in

- **[@aws-sdk/credential-providers](https://seerepo.com/uses/aws-sdk-credential-providers)**: 1 file

### AI

- **@aws-sdk/client-bedrock**: 1 file

## Support (apps/openwork-memos-integration/apps/desktop)

### The base

- **[Electron](https://seerepo.com/uses/electron)**: 10 files

### Content

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

### Validation

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

### Testing

- **Vitest**: 28 files
- **Testing Library**: 11 files
- **@playwright/test**: 5 files

### Other

- **.ENV**: 1 file
- **node-pty**: 1 file
- **zustand**: 1 file

## Backend (apps/openwork-memos-integration/apps/desktop/skills/ask-user-question)

### Services

- **MCP**: 1 file · [apps/openwork-memos-integration/apps/desktop/skills/ask-user-question/src/index.ts, line 9](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/skills/ask-user-question/src/index.ts#L9)

## Backend (apps/openwork-memos-integration/apps/desktop/skills/dev-browser)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in apps/openwork-memos-integration/apps/desktop/skills/dev-browser/package.json](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/skills/dev-browser/package.json)
- **[Hono](https://seerepo.com/uses/hono)**: 1 file · [in apps/openwork-memos-integration/apps/desktop/skills/dev-browser/package.json](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/skills/dev-browser/package.json)

## Support (apps/openwork-memos-integration/apps/desktop/skills/dev-browser)

### Testing

- **playwright**: 3 files
- **Vitest**: 1 file

### Deploy

- **[@hono/node-server](https://seerepo.com/uses/hono-node-server)**: 1 file

### Other

- **@hono/node-ws**: 1 file

## Backend (apps/openwork-memos-integration/apps/desktop/skills/file-permission)

### Services

- **MCP**: 1 file · [apps/openwork-memos-integration/apps/desktop/skills/ask-user-question/src/index.ts, line 9](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/apps/openwork-memos-integration/apps/desktop/skills/ask-user-question/src/index.ts#L9)

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): uvicorn, psycopg2-binary, py-key-value-aio, pymysql, Redis, Postgres, anyio, starlette, fastmcp, React, MCP, Express, soupsieve, Rich, SQLAlchemy, authlib, cryptography, itsdangerous, keyring, pyjwt, beautifulsoup4, defusedxml, docutils, et-xmlfile, jinja2, markdown-it-py, markupsafe, mdurl, openpyxl, rich-rst, xlrd, xlsxwriter, pillow, annotated-types, beartype, email-validator, jsonschema, jsonschema-path, jsonschema-specifications, openapi-pydantic, referencing, Pydantic, prometheus-client, react-markdown, Zod · [Compare](https://seerepo.com/compare/apache/superset/vs/MemTensor/MemOS)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, uvicorn, psycopg2-binary, Redis, Postgres, SQLite, pymilvus, OpenAI, Qdrant, anyio, starlette, fastmcp, Vite, React, react-router-dom, MCP, soupsieve, Rich, SQLAlchemy, onnxruntime, safetensors, tavily-python, tokenizers, scikit-learn, torch, transformers, Hugging Face, rank-bm25, sentence-transformers, beautifulsoup4, jinja2, lxml, openpyxl, xlrd, pillow, annotated-types, email-validator, jsonschema, Pydantic, Tailwind CSS, react-markdown · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/MemTensor/MemOS)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): psycopg2-binary, pymysql, Redis, SQLite, Neo4j, pymilvus, OpenAI, Alibaba Cloud, anyio, starlette, MCP, soupsieve, Rich, SQLAlchemy, cryptography, pyjwt, nltk, tavily-python, tokenizers, scikit-learn, torch, transformers, LangChain, Ollama, chonkie, sentence-transformers, beautifulsoup4, defusedxml, jinja2, lxml, markdownify, markupsafe, xlrd, markitdown, pillow, annotated-types, jsonschema, jsonschema-specifications, referencing, Pydantic, prometheus-client · [Compare](https://seerepo.com/compare/MemTensor/MemOS/vs/run-llama/llama_index)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, uvicorn, psycopg2-binary, Postgres, OpenAI, anyio, fastmcp, Vite, React, MCP, Express, Rich, authlib, nltk, triton, scikit-learn, torch, transformers, Ollama, Hugging Face, rank-bm25, sentence-transformers, beautifulsoup4, lxml, openpyxl, python-pptx, xlrd, xlsxwriter, pillow, Pydantic, Tailwind CSS, class-variance-authority, Radix UI, Lucide, react-markdown · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/MemTensor/MemOS)
- [open-webui/open-webui](https://seerepo.com/r/open-webui/open-webui/built): FastAPI, uvicorn, psycopg2-binary, pymysql, Redis, Postgres, SQLite, pymilvus, OpenAI, Qdrant, MCP, SQLAlchemy, authlib, cryptography, itsdangerous, pyjwt, onnxruntime, transformers, LangChain, Hugging Face, rank-bm25, sentence-transformers, beautifulsoup4, lxml, mammoth, openpyxl, python-pptx, xlrd, pillow, Pydantic, yaml, Tailwind CSS · [Compare](https://seerepo.com/compare/MemTensor/MemOS/vs/open-webui/open-webui)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, uvicorn, psycopg2-binary, pymysql, Redis, Postgres, pika, OpenAI, React, Rich, SQLAlchemy, cryptography, pyjwt, tavily-python, Ollama, rank-bm25, beautifulsoup4, jinja2, markdown-it-py, openpyxl, pillow, jsonschema, Pydantic, prometheus-client, Tailwind CSS, class-variance-authority, Radix UI, Framer, react-markdown, Zod · [Compare](https://seerepo.com/compare/MemTensor/MemOS/vs/Significant-Gravitas/AutoGPT)

## Frequently asked questions

### What language is MemOS written in?

MemOS is written in TypeScript, with 447,484 written lines.

### What framework does MemOS use?

MemOS is built with FastAPI, uvicorn, anyio, starlette, fastmcp, Preact, @deepseek-ai/cordis, Vite, React, react-router-dom, Electron, Express, and Hono.

### What database does MemOS use?

MemOS stores its data in Postgres and SQLite and reaches it with SQLAlchemy.

The proof: [src/memos/graph_dbs/postgres.py, line 1](https://github.com/MemTensor/MemOS/blob/3a16e5fe3048a209f722806f4123fa2e533588fd/src/memos/graph_dbs/postgres.py#L1)

### What does MemOS sign people in with?

MemOS signs people in with authlib, cryptography, itsdangerous, keyring, pyjwt, and @aws-sdk/credential-providers.

### Does MemOS use AI?

Yes. MemOS uses AI through langsmith, mcp, nltk, NVIDIA, nvidia-cudnn-cu12, onnxruntime, safetensors, tavily-python, tokenizers, triton, scikit-learn, torch, transformers, LangChain, Ollama, chonkie, Hugging Face, rank-bm25, sentence-transformers, OpenAI, deepseek-ai, and @aws-sdk/client-bedrock.

### What services does MemOS use?

MemOS uses diskcache, psycopg2-binary, py-key-value-aio, pymysql, Redis, Neo4j, pika, pymilvus, Alibaba Cloud, Qdrant, @deepseek-ai/dsh-session, electron-store, and MCP.

### Does MemOS have tests?

Yes. MemOS has 480 test files and is tested with Pytest, Vitest, Testing Library, @playwright/test, and playwright.

### Which repos have a stack like MemOS'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.
