MemoryOS is a local-first AI memory layer. All data stays on your machine.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Your Machine β
β β
β ββββββββββββββββ ββββββββββββββββββββββββββββββββββββ β
β β Browser β β MemoryOS Backend :8765 β β
β β Extension βββββΆβ FastAPI + SQLAlchemy (async) β β
β β (MV3, TS) β β βββ SQLite + FTS5 β β
β ββββββββββββββββ β βββ ChromaDB (cosine vectors) β β
β β βββ sentence-transformers β β
β ββββββββββββββββ β βββ Ollama / Groq / OpenAI β β
β β Dashboard βββββΆβ β β
β β Next.js 14 β ββββββββββββββββββββββββββββββββββββ β
β β :3000 β β
β ββββββββββββββββ ββββββββββββββββββββββ β
β β ~/.memoryos/ β β
β ββββββββββββββββ β memories.db β β
β β CLI βββββΆβ chroma/ β β
β β memoryos β β models/ β β
β ββββββββββββββββ ββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Extension detects new AI message
β
βΌ
Content hash deduplication
β
βΌ
Background SW batches (2s window)
β
βΌ
POST /api/v1/memories/bulk
β
βΌ
MemoryService.add()
βββ Generate UUID
βββ EmbeddingService.embed(content) β all-MiniLM-L6-v2
βββ ChromaDB.add(id, embedding, metadata)
βββ Summarizer.score_importance(content)
βββ Summarizer.extract_entities(content)
βββ SQLite INSERT (memories table)
βββ SQLite INSERT (memories_fts FTS5)
βββ asyncio.create_task(background_summarize) [if len > 500]
Query: "what auth approach did I use?"
β
βΌ
βββββββββββββββββββββββββββββββββββββ
β Hybrid Search β
β β
β Semantic branch: β
β query β embed β ChromaDB.query() β
β β top 20 by cosine similarity β
β β
β Keyword branch: β
β query β FTS5 MATCH β top 20 β
β β
β Merge + re-rank: β
β score = 0.7Γsemantic β
β + 0.3Γkeyword β
β Γ importance_score β
β Γ recency_factor β
β Γ pin_boost (1.5Γ pinned) β
βββββββββββββββββββββββββββββββββββββ
β
βΌ
Top 10 results returned
β
βΌ
get_context() β formatted string β paste into AI
Column
Type
Description
id
TEXT (UUID)
Primary key
content
TEXT
Full conversation text
summary
TEXT
AI-generated 1-2 sentence summary
embedding_id
TEXT
ChromaDB vector ID
source
ENUM
chatgpt / claude / gemini / cursor / manual / api / cli
session_id
TEXT (FK)
Parent session
entities
JSON
Extracted entities
importance_score
FLOAT
0.0 β 1.0
is_pinned
BOOL
Never auto-forgotten if true
is_forgotten
BOOL
Soft delete
created_at
DATETIME
Creation timestamp
accessed_at
DATETIME
Last access timestamp
access_count
INT
Number of retrievals
memories_fts (virtual FTS5)
Column
Description
content
Indexed full text
summary
Indexed summary
id
Unindexed reference
Column
Type
Description
id
TEXT (UUID)
Primary key
source
TEXT
AI tool name
title
TEXT
Auto or manual title
summary
TEXT
Session summary
memory_count
INT
Number of memories
started_at
DATETIME
Session start
ended_at
DATETIME
Session end
url
TEXT
Source page URL
Engine : ChromaDB PersistentClient
Collection : memories (cosine similarity space)
Dimensions : 384 (all-MiniLM-L6-v2)
Metadata filters : source, is_forgotten
Storage : ~/.memoryos/chroma/
Property
Value
Model
all-MiniLM-L6-v2
Dimensions
384
Max sequence
256 tokens
Size on disk
~90 MB
Speed
~50ms/query (CPU)
Requires internet
First download only
Zero external calls by default
Extension only communicates with localhost:8765
CORS restricted to chrome-extension:// and localhost
No telemetry, no analytics
See PRIVACY.md