MemOS

(★ 10,877)

Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support.

File Explorer

  • .gitignore
  • .pre-commit-config.yaml
  • AGENTS.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • Dockerfile
  • LICENSE
  • Makefile
  • poetry.lock
  • pyproject.toml
  • README.md
  • README_ZH.md
  • uv.lock

# Installation Guide

docker / python
Prerequisites

Setup Steps

git clone https://github.com/MemTensor/MemOS.git

Clone the project repository locally.

cp docker/.env.example .env

Copy the environment configuration file and set API keys.

docker compose up

Run MemOS API and database services using Docker Compose.

uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8000 --workers 1

Directly run the API server via uvicorn if not using Docker.

Key Commands

docker compose up

Start all docker services including MemOS API, Neo4j, and Qdrant.

uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8000 --workers 1

Directly start the MemOS REST API server in a local environment.

Make sure to copy docker/.env.example to .env and configure your required LLM provider and embedding API keys.

# Use via CDN

jsDelivr

jsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.

Release Timeline

Actively Maintained

Command Glossary

Commands referenced in this DOCs, explained below.

🔍

docker compose up

View Details ▼

Start and run Docker services defined in a Compose file.

docker compose up

Start all services defined in the docker-compose file:

docker compose up {{[-d|--detach]}}

Start services in the background (detached mode):

docker compose up --build

Start services and rebuild images before starting:

🔍

git clone

View Details ▼

Clone an existing repository.

git clone {{remote_repository_location}} {{path/to/directory}}

Clone an existing repository into a new directory (the default directory is the repository name):

git clone --recursive {{remote_repository_location}}

Clone an existing repository and its submodules:

git clone {{[-n|--no-checkout]}} {{remote_repository_location}}

Clone only the `.git` directory of an existing repository:

🔍

npx

View Details ▼

This command is an alias of `npm exec`.

tldr npm exec

View documentation for the original command:

🔍

openclaw gateway

View Details ▼

Start the OpenClaw gateway server (control plane).

openclaw gateway --allow-unconfigured

Start the gateway on the default port (18789):

openclaw gateway --allow-unconfigured --port {{18789}}

Start the gateway on a specific port:

openclaw gateway --allow-unconfigured --verbose

Start the gateway with verbose logging:

🔍

openclaw

View Details ▼

A personal AI assistant that you run on your own devices.
Some subcommands such as `onboard`, `agent`, `doctor`, etc. have their own usage documentation.
See also: `zeroclaw`.

openclaw onboard --install-daemon

Run the onboarding wizard to set up the gateway and channels:

openclaw gateway --allow-unconfigured --port {{18789}} --verbose

Start the gateway server:

openclaw message send {{[-t|--target]}} {{+1234567890}} {{[-m|--message]}} "{{Hello}}"

Send a message to a contact:

🔍

uvicorn

View Details ▼

Python ASGI HTTP Server, for asynchronous projects.

uvicorn {{import.path:app_object}}

Run Python web app:

uvicorn --host {{localhost}} --port {{8080}} {{import.path:app_object}}

Listen on port 8080 on localhost:

uvicorn --reload {{import.path:app_object}}

Turn on live reload:

// repository documentation