Skip to main content

Local-first persistent memory with semantic search. sqlite-vec powered. No cloud.

Project description

Sovereign Brain

CI

License: MIT Python 3.10+ Tests: 30 passing

Local-first persistent memory with semantic search. sqlite-vec powered. No cloud dependency. Built for AI agents that need to remember.

Features

Feature Description
Key-value store Read, write, delete brain entries with categories and priorities
Semantic search Vector similarity via sqlite-vec + Ollama embeddings
Knowledge graph Entries linked with typed, weighted edges
Hybrid retrieval 3-signal search: keyword + semantic + graph, re-ranked
Temporal awareness Auto-detects event dates, tracks lifecycle (upcoming/today/past)
Anti-repetition Penalizes recently-shown results per session (up to 90%)
Freshness decay Exponential decay scoring with configurable half-life
Time-window queries Filter by date range
Auto-archive Completed events archived after N days
Chat history Per-session conversation tracking
Zero cloud Everything runs locally. Your data stays yours.

Install

pip install sovereign-brain

# For semantic search (recommended):
pip install sovereign-brain[vec]
ollama pull mxbai-embed-large

Quick Start

from sovereign_brain import BrainAPI

brain = BrainAPI()

# Write
brain.write("project.api", {"status": "active", "date": "2026-06-05"},
            category="projects", description="API redesign", priority=8)

# Read
data = brain.read("project.api")  # {"status": "active", ...}

# Search (keyword)
results = brain.search("api redesign", limit=5)

# Hybrid search (keyword + semantic + graph + freshness)
results = brain.hybrid_search("what's the api status", k=5, chat_id="session1")

# Knowledge graph
brain.add_edge("project.api", "project.frontend", "blocks", weight=0.9)
neighbors = brain.graph_neighbors("project.api", depth=2)

# Temporal awareness
temporal = brain.temporal_extract(data)  # {"event_date": "2026-06-05", "status": "active"}
status = brain.temporal_status(temporal)  # "today"

# Chat history
brain.save_chat("session1", "user", "what's the api status?")
brain.save_chat("session1", "assistant", "The API redesign is active.")
history = brain.chat_history("session1")

# Stats
brain.stats()  # {"entries": 42, "graph_edges": 15, "vectors": 200, "chats": 3}

brain.close()

Anti-Repetition

When you pass chat_id to hybrid_search, the brain tracks what was shown and penalizes repeated results:

# First call: normal results
r1 = brain.hybrid_search("deployment", k=3, chat_id="s1")

# Second call: previously-shown entries get 30% penalty per occurrence
r2 = brain.hybrid_search("deployment", k=3, chat_id="s1")
# Different results surface to avoid repetition

Freshness Decay

Results are scored with exponential freshness decay (48h half-life by default):

brain.freshness_score(datetime.now().isoformat())     # 1.0 (just updated)
brain.freshness_score("2026-06-01T00:00:00")           # ~0.25 (4 days old)
brain.freshness_score("2026-05-01T00:00:00")           # ~0.0 (very old)

Architecture

sovereign_brain/
  brain.py    # BrainAPI class — all features in one module
  __init__.py # Exports BrainAPI, get_brain

Storage: SQLite (brain_context + brain_graph + brain_chat_history + brain_retrieval_log)
Vectors: sqlite-vec extension (optional, graceful fallback to keyword search)
Embeddings: Ollama local API (mxbai-embed-large, 1024 dimensions)

Configuration

brain = BrainAPI(
    db_path="./my_brain.db",                    # Custom DB location
    ollama_url="http://localhost:11434/api/embed",  # Ollama endpoint
    embed_model="mxbai-embed-large",            # Embedding model
    vec_extension_path="/path/to/vec0",         # sqlite-vec extension
)

License

MIT. Built by Like One Foundation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sovereign_brain-1.0.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sovereign_brain-1.0.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file sovereign_brain-1.0.0.tar.gz.

File metadata

  • Download URL: sovereign_brain-1.0.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sovereign_brain-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9da77219c2e0f35eb77236a90b59a79951971b84392c8eb642f286851fbd5d9a
MD5 5179d3a328bb23d3097a44cde52e4d58
BLAKE2b-256 0b70375e787289449eb63a2dc3cc58542dbef502952fb3304dfc2347e54d821a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sovereign_brain-1.0.0.tar.gz:

Publisher: publish.yml on sophiacave/sovereign-brain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sovereign_brain-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sovereign_brain-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44f212f67990def4a43352345060ded86cc6be82d6b502bd54d811630601c7f2
MD5 f3d5522820eb21dd90ef5c687bf95720
BLAKE2b-256 94edf4c0927f50704fe085d58b7c2002c5481f5fd2eeacb2a5f1c195d9084a55

See more details on using hashes here.

Provenance

The following attestation bundles were made for sovereign_brain-1.0.0-py3-none-any.whl:

Publisher: publish.yml on sophiacave/sovereign-brain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page