Sandbox
@EverMind-AI/EverOS

Markdown memory runtime for agents and tools

EverOS gives builders one portable memory layer across coding assistants, apps, devices, and workflows. It keeps the source of truth in editable Markdown files and uses local SQLite and LanceDB indexes for retrieval.

12,861 stars918 forksPythonUpdated 8d ago
Who it's for

Builders who want their agents to remember past work without depending on a hosted memory service.

What it delivers

You can save, search, and reuse durable context across sessions instead of re-explaining it every time.

What it does

Markdown source of truth

Stores memories as readable, editable, Git-versioned `.md` files.

Local index sync

Keeps SQLite and LanceDB indexes in sync with the Markdown files for faster recall.

Add, flush, and search memory

Provides API endpoints and CLI flows to ingest messages, flush a session, and search memory back.

Separate user and agent memory

Tracks user episodes and agent cases or skills as distinct surfaces.

Reflection and consolidation

Runs offline memory evolution that merges clusters and refines profiles and skills between sessions.

Knowledge wiki

Exposes editable, source-backed Markdown knowledge pages with taxonomy, CRUD APIs, and topic search.

Multimodal ingestion

Can ingest images, PDFs, audio, and office files when the optional parser extra is installed.

How to get it

  1. 1Run
    uv pip install everos
    # or: pip install everos
  2. 2No API key or server setup required—run one command to quickly experience how EverOS…
    # If you installed EverOS as a package:
    everos demo
    
    # If you cloned or forked this repository and have not activated .venv:
    uv run everos demo
  3. 3Run
    everos init
  4. 4Run
    everos server start
  5. 5Keep the server running, then open a second terminal and check it
    curl http://127.0.0.1:8000/health
  6. 6Flush the memory at the end of the session
    curl -X POST http://127.0.0.1:8000/api/v2/memory/flush \
      -H 'Content-Type: application/json' \
      -d '{"session_id":"demo-001","app_id":"default","project_id":"default"}'

README


Table of Contents

Why EverOS

EverOS is a Python library and local-first memory runtime for agents and makers. It gives one portable memory layer across coding assistants, apps, devices, and workflows from day one. It stores conversations, files, and agent trajectories as readable Markdown, then syncs local SQLite and LanceDB indexes for fast retrieval and self-evolving reuse.

TitleEverOSOther Agent Memory Libraries
Markdown source of truth✅ Canonical .md files that are readable, editable, diffable, and Git-versioned❌ Usually API, vector, graph, dashboard, or database state
Direct file editing✅ Edit .md files; cascade watcher syncs❌ Usually SDK, API, dashboard, or backend update paths
Local three-part stack✅ Markdown + SQLite + LanceDB; no MongoDB, Elasticsearch, or Redis required❌ Often depends on managed services, vector DBs, graph DBs, or server stacks
User + agent tracks✅ User episodes/profile and agent cases/skills are separate first-class surfaces❌ Usually centered on chat history, profiles, entities, facts, or retrieval records
Orthogonal retrieval✅ Search by user_id, agent_id, app_id, project_id, and session_id❌ Usually app, namespace, tenant, thread, or graph scoped
Knowledge Wiki✅ Editable, source-backed Markdown knowledge pages with taxonomy, CRUD APIs, and topic search❌ Usually separate from memory, trapped in a dashboard, or not tied back to source files
Reflection✅ Offline memory evolution that merges episode clusters and refines profiles and skills between sessions❌ Usually retrieval-only memory with little background consolidation or long-horizon improvement

Ecosystem Integrations

EverOS adds durable memory to the agent and workflow platforms below—and comes built into Raven. Choose an integration to open its setup guide.

DeepSeek Harness
DeepSeek Harness
Hermes
Hermes
OpenClaw
OpenClaw
Raven
Raven
Dify
Dify

Quick Start

One OpenRouter API key is enough to start EverOS, write durable memories, and retrieve them with keyword search.

Prerequisites

1. Install

uv pip install everos
# or: pip install everos

2. Try the standalone demo — no key required

No API key or server setup required—run one command to quickly experience how EverOS stores and recalls memory:

# If you installed EverOS as a package:
everos demo

# If you cloned or forked this repository and have not activated .venv:
uv run everos demo

Enter something EverOS should remember, then ask a related question to watch the memory move through ingest -> extract -> index -> recall.

https://github.com/user-attachments/assets/98cb8e1e-2ca8-4504-b0a6-0b9a040a0a5c

3. Initialize and add your OpenRouter key

everos init

This creates ~/.everos/everos.toml and ~/.everos/ome.toml. Open ~/.everos/everos.toml; the generated model and OpenRouter URL are already correct, so replace only the empty api_key:

[llm]
model = "openai/gpt-4.1-mini"
api_key = "<OPENROUTER_API_KEY>"
base_url = "https://openrouter.ai/api/v1"

This is the smallest Tier 1 setup: memory add, flush, Markdown persistence, cascade indexing, and keyword search.

Use everos init --root <path> if you want a different memory root. Pass the same --root <path> to subsequent commands.

4. Start EverOS

everos server start

Keep the server running, then open a second terminal and check it:

curl http://127.0.0.1:8000/health

Look for "status":"ok". With this one-key setup, capabilities.llm is true; embedding and rerank remain false until you configure them.

5. Add and retrieve your first memory

[!NOTE] Business endpoints live under /api/v2. The older /api/v1 prefix still resolves to the same handlers so existing integrations keep working, but it is a legacy alias that may be removed in a future major release — write new code against /api/v2.

Add a tiny conversation:

TS=$(($(date +%s)*1000))

curl -X POST http://127.0.0.1:8000/api/v2/memory/add \
  -H 'Content-Type: application/json' \
  -d "{
    \"session_id\": \"demo-001\",
    \"app_id\": \"default\",
    \"project_id\": \"default\",
    \"messages\": [
      {\"sender_id\": \"alice\", \"role\": \"user\", \"timestamp\": $TS, \"content\": \"I love climbing in Yosemite every spring.\"},
      {\"sender_id\": \"alice\", \"role\": \"user\", \"timestamp\": $((TS+10000)), \"content\": \"My favorite coffee shop is Blue Bottle in SOMA.\"}
    ]
  }"

Flush the memory at the end of the session:

curl -X POST http://127.0.0.1:8000/api/v2/memory/flush \
  -H 'Content-Type: application/json' \
  -d '{"session_id":"demo-001","app_id":"default","project_id":"default"}'

Search it back:

curl -X POST http://127.0.0.1:8000/api/v2/memory/search \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": "alice",
    "app_id": "default",
    "project_id": "default",
    "query": "Where do I like to climb?",
    "method": "keyword",
    "top_k": 5
  }'

You should see the Yosemite memory in the response. Keep "method": "keyword" in this one-key setup because the API defaults to hybrid search, which requires an embedding provider.

[!TIP] First memory unlocked. You just gave EverOS a fact, flushed it into durable Markdown-backed memory, and searched it back through the local index. That is the core loop. Want to see the source of truth? Open ~/.everos and inspect the generated Markdown files.

For annotated responses and the Markdown files EverOS creates, see QUICKSTART.md.

What works with one key?

The OpenRouter one-key setup is EverOS Tier 1. It supports server startup, memory add and flush, durable Markdown storage, cascade indexing, and keyword search. Add optional providers only when you need the features below:

ConfigurationAdds
[llm] onlyCore memory flow and keyword search
Add [embedding]Vector/user hybrid search, reflection, and skill extraction
Add [rerank] tooAgentic search, default agent hybrid search, and Knowledge Wiki
Add [multimodal] and parser extraImage, PDF, audio, and office-file ingestion

Missing optional capabilities are reported by /health and return a clear HTTP 422 if you request a feature that needs them.

[!NOTE] everos demo --live is different from the standalone demo in step 2: it connects to a running server and uses the real add/flush/search flow. It uses hybrid search, so add an embedding provider before you run it.

Optional: Ingest Multimodal Files

To ingest non-text content (image / pdf / audio / office documents) through /api/v2/memory/add content items, install the optional extra:

uv pip install 'everos[multimodal]'   # or: pip install 'everos[multimodal]'

This pulls in everalgo-parser (with the [svg] bundle for SVG support via cairosvg). Configure the [multimodal] section in everos.toml; its default model is google/gemini-3.8-flash via OpenRouter.

Office document support requires LibreOffice as a system dependency. The parser shells out to soffice (LibreOffice's headless renderer) to convert .doc / .docx / .ppt / .pptx / .xls / .xlsx to PDF before feeding the result into the multimodal LLM. Without LibreOffice, office uploads return HTTP 415 with a clear error message; PDF / image / audio / HTML / email parsing is unaffected.

Install on the host before serving office documents:

brew install --cask libreoffice              # macOS
sudo apt-get install -y libreoffice          # Debian / Ubuntu

For Contributors

git clone https://github.com/EverMind-AI/EverOS.git
cd EverOS
uv sync                              # creates ./.venv and installs deps
uv run everos demo --plain           # try the local educational demo; no API keys needed
uv run everos init                   # add one OpenRouter key to ~/.everos/everos.toml

uv run everos --help
make test

Use Cases

Now that you have had your first successful EverOS moment, explore what people are building with persistent memory across agents, apps, and community integrations.

Use cases show what persistent memory makes possible in real products and workflows. Some examples are packaged in this repository; others point to external demos or integrations you can study and adapt.

AIUI Sports Agents for Smart Glasses

AIUI Sports Agents

Sports agents for smart glasses, covering running, cycling, and indoor rowing. AISmartRun includes an optional memory-backend contract for post-run summaries; connecting it to EverOS requires a separately configured backend.

Code

banner-gif

Reunite - Find With EverOS

Parents describe what they remember. Children describe what they recall. Reunite uses semantic memory to surface the connections.

Learn more

banner-gif

Hive Orchestrator

Browser-native hive-mind for CLI coding agents - Claude Code, Codex, Gemini, and OpenCode collaborate as real PTY processes via a team protocol.

Code

banner-gif

AI Coding Assistants With EverOS

Universal long-term memory layer for AI coding assistants, powered by EverOS.

Code

banner-gif

AI Data Technician

An agentic AI system that learns from scientist interaction to inspect, analyze, and classify high-dimensional time series data - with persistent memory that improves across sessions.

Code

banner-gif

Rokid AI Assistant With EverOS

Connect to EverOS within Rokid Glasses enabling long-term memory for all of your smart activities.

Coming soon

Back to top

banner-gif

Creative Assistant With Memory

Creative assistant with long-term memory, so your creative context stays available across sessions.

Coming soon

banner-gif

Earth Online Memory Game

Earth Online is a memory-aware productivity game that turns everyday planning into a living quest log.

Code

banner-gif

Multi-Agent Orchestration Platform

Golutra presents a multi-agent workforce for engineering teams, extending the IDE model from a single assistant to coordinated agents.

Code

banner-gif

Your Personal Tasting Universe

Record, visualize, and explore your tasting journey through an immersive 3D star map.

Code

banner-gif

EverOS Open Her

Build AI that feels. Open-source persona engine - personality emerges from neural drives, not prompts. Inspired by Her.

Code

banner-gif

Browser Agent For Personal Memory

Ruminer brings persistent memory to a browser agent so it can carry personal context across web tasks.

Plugin

Back to top

banner-gif

EverMem Sync With EverOS

One command to connect any AI coding CLI to EverOS (formerly called EverMemOS) for long-term memory.

Code

banner-gif

MCO - Orchestrate AI Coding Agents

MCO equips your primary agent with an agent team that can work together to solve complex tasks.

Code

banner-gif

Study Buddy With Self-Evolving Memory

Study proactively with an agent that has self-evolving memory.

Code

banner-gif

Alzheimer's Memory Assistant

Empowering individuals with advanced memory support and daily assistance.

Code

banner-gif

Memory-Driven Multi-Agent NPC Experience

An iOS sci-fi mystery game where players explore and uncover the truth.

Code

banner-gif

Mobi Companion

An iOS app where users create, nurture, and live with a personalized AI companion called Mobi.

Code

Back to top

banner-gif

AI Wearable With Memory

A context-native AI wearable that listens to everyday life and converts conversations into memory.

Code

banner-gif

Legacy OpenClaw Agent Memory

Archived pre-1.0.0 plugin reference. New integrations should use the current EverOS API.

Learn more

banner-gif

Live2D Character With Memory

Add long-term memory to a real-time Live2D character, powered by TEN Framework.

Code

banner-gif

Computer-Use With Memory

Run screenshot-based analysis with computer-use and store the results in memory.

Live Demo

banner-gif

Game Of Thrones Memories

A demonstration of AI memory infrastructure through an interactive Q&A experience with A Game of Thrones.

Code

banner-gif

Claude Code Plugin

Persistent memory for Claude Code. Automatically saves and recalls context from past coding sessions.

Code

banner-gif

Memory Graph Visualization

Explore stored entities and relationships in a graph interface. Frontend demo; backend integration is in progress.

Live Demo


Documentation


EverMind Ecosystem

EverMind connects memory research, production-ready products, and practical integrations into one open-source ecosystem.

Products
EverOSA local-first, Markdown-native long-term memory runtime for agents and users.
RavenA memory-first, self-improving agent harness with proactivity, context control, and skill evolution.
EverMe (CLI)A CLI and agent plugin suite for cross-device, cross-agent personal memory.
Research & Evaluation
SkillCorpusCurated, retrieval-ready agent skill corpora with retrieval and evaluation tooling.

Files in the repo

Repository payload31 top-level entries
  • .claude
  • .github
  • benchmarks
  • data
  • deploy
  • docs
  • examples
  • scripts
  • src
  • tests
  • use-cases
  • .env.example
  • .gitignore
  • .gitlint
  • .pre-commit-config.yaml
  • ACKNOWLEDGMENTS.md
  • CHANGELOG.md
  • CITATION.md
  • CLAUDE.md
  • CODE_OF_CONDUCT.md
  • config.example.toml
  • CONTRIBUTING.md
  • LICENSE
  • Makefile
  • NOTICE
  • pyproject.toml
  • QUICKSTART.md
  • README.md
  • README.zh-CN.md
  • SECURITY.md
  • uv.lock

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More frameworks & sdks

HKUDS/nanobotFrameworks & SDKs

Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps

48k
microsoft/
SkillOpt
microsoft/SkillOptFrameworks & SDKs

SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

17k
omnigent-ai/omnigentFrameworks & SDKs

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.

9.8k
kyegomez/
OpenMythos
kyegomez/OpenMythosFrameworks & SDKs

A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.

15k
D4Vinci/ScraplingFrameworks & SDKs

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

80k