Skip to content

Latest commit

 

History

History
569 lines (363 loc) · 20.5 KB

File metadata and controls

569 lines (363 loc) · 20.5 KB

Table of Contents

What is EverOS

EverOS is an open-source Python framework that turns conversations, agent trajectories, and files into structured, retrievable, evolving long-term memory for AI agents and user chats. Designed for lightweight local deployments (small teams, individual developers), with three core principles:

  1. Markdown as Source of Truth — All memory persists as plain .md files. Open, edit, grep, version with Git, view in Obsidian. No black-box database lock-in.
  2. Lightweight three-piece storageMarkdown files (truth) + SQLite (state/queue) + LanceDB (vector + BM25 + scalar). No MongoDB / Elasticsearch / Milvus / Redis / Kafka required.
  3. EverAlgo as pure algorithm library — Memory extraction algorithms are decoupled into a separate library; this project orchestrates and persists.

Architecture at a glance

┌───────────────────────────────────────────────┐
│  entrypoints/  (CLI + HTTP API)                │  presentation
├───────────────────────────────────────────────┤
│  service/      (use cases: memorize/retrieve)  │  application
├───────────────────────────────────────────────┤
│  memory/       (extract + search + cascade)    │  domain
├───────────────────────────────────────────────┤
│  infra/        (markdown / sqlite / lancedb)   │  infrastructure
└───────────────────────────────────────────────┘
        ↑                    ↑
   component/            core/
   (LLM/Embedding)       (observability/lifespan)

DDD 5 layers, single-direction dependency. See docs/architecture.md.


Quick start

Install as a package

uv pip install everos               # or: pip install everos

# Generate a starter .env (OpenRouter + DeepInfra defaults; bundled inside the wheel)
everos init                          # writes ./.env (use --xdg for ~/.config/everos/.env)
# Edit .env and fill the API key fields (see comments inside).

everos --help
everos server start

everos server start searches for .env in this order: --env-file <path>./.env (cwd) → ${XDG_CONFIG_HOME:-~/.config}/everos/.env~/.everos/.env. The endpoint stack is OpenAI-protocol compatible (OpenAI / OpenRouter / vLLM / Ollama / DeepInfra …) — override *__BASE_URL in the generated .env to point at any of them.

Multi-modal (optional)

To ingest non-text content (image / pdf / audio / office documents) through /api/v1/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) and wires up the multimodal LLM client (EVEROS_MULTIMODAL__* fields in .env, defaults to google/gemini-3-flash-preview 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 a step-by-step walkthrough (add a conversation → flush → search → read the markdown), see QUICKSTART.md.

Develop locally

git clone <repo>
cd everos
uv sync                              # creates ./.venv and installs deps
source .venv/bin/activate            # — or skip activation and prefix every command with `uv run`
everos init                         # fill in EVEROS_LLM__API_KEY in the generated .env

everos --help
make test

Storage layout

~/.everos/
├── default_app/                  # app_id  ("default" → "default_app" on disk)
│   └── default_project/          # project_id ("default" → "default_project")
│       ├── users/<user_id>/
│       │   ├── user.md           # profile
│       │   ├── episodes/         # daily-log episodes (visible)
│       │   ├── .atomic_facts/    # nested facts (dotfile-hidden)
│       │   └── .foresights/      # predictive memory (dotfile-hidden)
│       └── agents/<agent_id>/
│           ├── agent.md
│           ├── .cases/           # one task case per entry
│           └── skills/           # named procedural memories
├── .index/                       # derived indexes (rebuildable from md)
│   ├── sqlite/system.db          # state + queue + audit
│   └── lancedb/*.lance/          # vector + BM25 + scalar
└── .tmp/                         # transient working files

Open any <app>/<project>/users/<user_id>/ folder in Obsidian — your agent's brain is just files. The dotfile directories (.atomic_facts/, .foresights/, .cases/) stay hidden by default so the visible folder is the user-facing memory surface, while extracted derivatives sit quietly alongside.


Features

  • Hybrid retrieval: BM25 + vector (HNSW/IVF-PQ) + scalar filter, single-query in LanceDB
  • Cascade index sync: edit a .md → file watcher → entry-level diff → LanceDB sync, sub-second
  • Multi-source extraction: conversations / agent trajectories / file knowledge
  • Dual-track memory: user-track (Episodes / Profiles) + agent-track (Cases / Skills)
  • Async-first: full asyncio, single event loop
  • Multi-modal: text + small image / audio inline; large media via S3/OSS reference

Project structure

everos/                        # repo root
├── src/everos/                # main package (src layout)
│   ├── entrypoints/           # cli + api
│   ├── service/               # use case orchestration
│   ├── memory/                # domain: extract + search + cascade + prompt_slots
│   ├── infra/                 # storage: markdown + lancedb + sqlite
│   ├── component/             # cross-cutting: llm / embedding / config / utils
│   ├── core/                  # runtime: observability / lifespan / context
│   └── config/                # configuration data + Settings schema
├── tests/                     # unit / integration / golden / fixtures
├── docs/                      # design docs
└── .claude/                   # team-shared rules + skills (auto-loaded by Claude Code)

Documentation


Use Cases

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.

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 Techician

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

banner-gif

Creative Assistant with Memory

Creative assistant with long-term memory, never forget your crativites anymore.

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

banner-gif

EverMem Sync with EverOS

One command to connect any AI coding CLI to EverMemOS 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

banner-gif

AI Wearable with Memory

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

Code

banner-gif

OpenClaw Agent Memory

A 24/7 agent workflow with continuous learning memory across sessions.

Plugin

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


Stay Tuned

Star the repo or join the community links above to follow new architecture methods, benchmark releases, and memory-enabled use cases.

star us gif


Contributing

Contributions are welcome across the whole repository: architecture methods, benchmark coverage, use-case examples, documentation, and bug fixes. Browse Issues to find a good entry point, then open a PR when you are ready.


Tip

Welcome all kinds of contributions 🎉

Help make EverOS better. Code, documentation, benchmark reports, use-case write-ups, and integration examples are all valuable. Share your projects on social media to inspire others.

Connect with one of the EverOS maintainers @elliotchen200 on 𝕏 or @cyfyifanchen on GitHub for project updates, discussions, and collaboration opportunities.

divider divider

Code Contributors

EverOS Contributors

divider divider

License

Apache License 2.0 — see NOTICE for third-party attributions.

Citation

If you use EverOS in research, see CITATION.md.