WritersLogic Holographic Memory

Local, encrypted, provenance-aware memory for AI agents.

Search and memory that run inside your app, on your machine. No service calls, no telemetry.

  • Rustcargo add holographic-memory --git https://github.com/writerslogic/holographic-memory
  • Pythonpip install holographic-sdk

Intel Core Ultra 9 185H (22 threads, 27 GB), Linux x86_64, measured 2026-10-21. Method and losses.

Why it exists

Local first

A library you link into your agent, not a service you call. Search, memory and storage run in your process on your disk, with no network calls and no telemetry.

Encryption in the open engine

AES-256-GCM at rest, keyed by Argon2id, covering the log, index caches and stored text. It is part of the Apache-2.0 engine, not an enterprise add-on.

Provenance you can verify

A signed audit log and COSE, SCITT and C2PA statements over Ed25519 with W3C DID identity record what an agent stored, and when, in formats others can check.

Purge that erases

Delete removes a record from every query at once. Purge rewrites the journal without it and overwrites the old generation with zeros before it returns; a test scans every store file for the deleted text.

Benchmarks

Same machine, same queries, every competitor at its tuned operating point. Bars are single-thread queries per second; every number links to a committed results file. Full comparison and method.

Vector search: SIFT-1M against hnswlib

SIFT-1M, recall@10 0.901,000,000 vectors, 10,000 queries. Bars: queries per second.2.46x hnswlib
SIFT-1M, recall@10 0.90, queries per secondHolographic Memory 23,294, hnswlib 9,480Holographic Memory23,294hnswlib9,480
Data table
SIFT-1M, recall@10 0.90, queries per second
SystemQPS
Holographic Memory23,294
hnswlib9,480
Raw results file
SIFT-1M, recall@10 0.951,000,000 vectors, 10,000 queries. Bars: queries per second.2.29x hnswlib
SIFT-1M, recall@10 0.95, queries per secondHolographic Memory 17,481, hnswlib 7,630Holographic Memory17,481hnswlib7,630
Data table
SIFT-1M, recall@10 0.95, queries per second
SystemQPS
Holographic Memory17,481
hnswlib7,630
Raw results file
SIFT-1M, recall@10 0.991,000,000 vectors, 10,000 queries. Bars: queries per second.2.75x hnswlib
SIFT-1M, recall@10 0.99, queries per secondHolographic Memory 8,794, hnswlib 3,193Holographic Memory8,794hnswlib3,193
Data table
SIFT-1M, recall@10 0.99, queries per second
SystemQPS
Holographic Memory8,794
hnswlib3,193
Raw results file

Text search: BEIR against tantivy, Lucene and SQLite FTS5

BEIR SciFact5,183 documents, 809 queries. Bars: queries per second, one thread.2.76x tantivy
BEIR SciFact, queries per second, one threadHolographic Memory 17,782, tantivy 6,450, Apache Lucene 2,630, SQLite FTS5 241Holographic Memory17,782tantivy6,450Apache Lucene2,630SQLite FTS5241
Data table
BEIR SciFact, queries per second, one thread
SystemQPS
Holographic Memory17,782
tantivy6,450
Apache Lucene2,630
SQLite FTS5241
Raw results file
BEIR NFCorpus3,633 documents, 324 queries. Bars: queries per second, one thread.2.65x tantivy
BEIR NFCorpus, queries per second, one threadHolographic Memory 38,963, tantivy 14,705, Apache Lucene 4,115, SQLite FTS5 1,416Holographic Memory38,963tantivy14,705Apache Lucene4,115SQLite FTS51,416
Data table
BEIR NFCorpus, queries per second, one thread
SystemQPS
Holographic Memory38,963
tantivy14,705
Apache Lucene4,115
SQLite FTS51,416
Raw results file
BEIR FiQA57,600 documents, 500 queries. Bars: queries per second, one thread.2.21x tantivy
BEIR FiQA, queries per second, one threadHolographic Memory 3,576, tantivy 1,617, Apache Lucene 1,260, SQLite FTS5 26Holographic Memory3,576tantivy1,617Apache Lucene1,260SQLite FTS526
Data table
BEIR FiQA, queries per second, one thread
SystemQPS
Holographic Memory3,576
tantivy1,617
Apache Lucene1,260
SQLite FTS526
Raw results file
Same answers: nDCG@10 on each dataset
DatasetHolographic MemorytantivyApache LuceneSQLite FTS5
BEIR SciFact0.70270.70130.70220.7009
BEIR NFCorpus0.29160.29010.28970.2914
BEIR FiQA0.26540.26430.26570.2678

Where we’re not ahead yet

  • Vector index build. SIFT-1M build takes 312.60 vs hnswlib 182.49 seconds, with peak build memory 2,968 vs hnswlib 1,525 MiB.
  • Vector serving memory. Resident memory while serving SIFT-1M is 2,204 vs hnswlib 1,019 MiB.
  • Text cold start. The store is read into memory at open: first answer on FiQA after 0.84 vs tantivy 0.02 seconds.
  • Text ingest and disk. Indexing FiQA takes 2.16 vs SQLite FTS5 1.18 seconds; the index is larger on disk than Lucene's (20.6 vs Apache Lucene 12.2 MiB).

How these were measured

Intel Core Ultra 9 185H (22 threads, 27 GB), Linux x86_64, measured 2026-10-21, under WSL2. Three serve rounds per system with bootstrap intervals; tested range is SIFT-1M (1,000,000 vectors) and three BEIR sets of 3,633 to 57,600 documents, not larger. HMS is timed through its native Rust API; hnswlib through its Python binding, one call per query. Text runs use HMS in BM25 lexical mode.

Durability: Killed mid-write at 200 points, mid-compaction at 200 points and at 50 simulated power losses: 0 committed documents lost; recovery median 13.8 ms after a killed write. 50 torn writes and 50 bit flips: every one detected or harmless, none served silently. Source.

Known limits
  • The older sparse vector path (memorize_vector) is experimental and far behind HNSW libraries: on glove-100, Apple M4: recall@10 0.252 at 33.7 QPS against hnswlib 0.831 at 3,368 QPS (public_glove-100-angular.json). Use the vertex graph index for vector search.
  • Hypervector sketches and term counts are not encryption; anyone holding a plaintext store can test candidate text against it. Use the encrypted store for confidentiality.
  • Deleted bytes can survive in places no file API reaches: SSD wear levelling, snapshots, backups and swap. Pair purge with encryption or full-disk encryption.
  • No MCP server ships yet, the npm package is deprecated (build the Node module from source) and Python is an HTTP client, not in-process search.

How it works

One engine, linked into your process.

  1. Store

    Documents, facts and the embeddings you choose go into one append-only, checksummed log on your disk, encrypted if you turn it on.

  2. Index

    BM25 postings, a vertex-graph vector index and superposed fact vectors are built in the same process. No server, no network call.

  3. Recall

    Hybrid search fuses lexical and vector scores and returns byte offsets into the source; signed provenance records who stored what, and when.

The holographic part is the fact memory: bound facts are superposed into fixed-size vectors and recalled by similarity. Document search is conventional BM25 and cosine.

Use cases

Agent memory

Give an agent durable recall of facts, conversations and decisions that lives in its own process, survives crashes and can be purged on request.

RAG over private documents

Index contracts, notes or code on the machine that already holds them. BM25 and the embeddings you choose, fused, with byte offsets back to the source; nothing is uploaded.

On-device apps

Ship search and memory inside a desktop or edge app through the Rust crate or the C ABI, with encryption at rest and no server to run.

Integrations

Framework adapters live in the repository and install from source until they are published.

Quickstart

Store a document and find it again. The five-minute quickstart adds encryption and filters.

shell: install
# Cargo.toml: Apache-2.0 source from main
cargo add holographic-memory --git https://github.com/writerslogic/holographic-memory
cargo add serde_json anyhow
src/main.rs
use holographic_memory::{DocumentInput, HmsCore, SearchOptions};

fn main() -> anyhow::Result<()> {
    // 4,096-dimension store in ./memory; nothing leaves this machine.
    let hms = HmsCore::new(4096, Some("./memory".into()), None)?;
    hms.memorize_document(DocumentInput {
        id: "backups".into(),
        text: "Restore deleted documents from verified backups.".into(),
        source_uri: Some("operations.md".into()),
        version: Some("1".into()),
        metadata: Some(serde_json::json!({ "project": "alpha" })),
        chunk_words: None, overlap_words: None, store_text: None,
        embeddings: None, title_weight: None,
    })?;
    let hits = hms.search_documents("restore backups", &SearchOptions::default())?;
    println!("{} {:?}", hits[0].document_id, hits[0].source_uri);
    Ok(())
}

Node.js: build the native module from the repository (the npm package is deprecated). Go, Java and .NET: the C ABI bindings in bindings/.

Compare

How Mem0, Zep, Chroma and Qdrant document the same properties, checked 2026-10-21.

Comparison with Mem0, Zep, Chroma and Qdrant
PropertyHolographic MemoryMem0ZepChromaQdrant
Runs inside your app, no serviceYes: Yes: Rust library, Node module, C ABIPartly: Open-source library; Mem0 Platform is hostedNo: Hosted; Community Edition no longer maintained (April 2025)Partly: In-process from Python; JS and Rust use a serverPartly: Server or Cloud; the Python client has a local mode (exact scan)
Encryption at rest in the open-source productYes: Built in (opt-in)Not documented: Not documentedPartly: Customer keys are an Enterprise add-onNot documented: Not documented for open sourcePartly: Self-hosted: customer configuration
Signed provenance of stored recordsYes: COSE, SCITT, C2PA over Ed25519Not documented: Not documentedNot documented: Not documentedNot documented: Not documentedNot documented: Not documented
Deleted text erased from diskYes: Purge rewrites the journal and zeroes old generations before returningNot documented: Not documentedPartly: Removed in the background; overwrite not documentedNot documented: Not documentedPartly: Marked deleted, cleaned up later by an optimizer

✓ Yes · ◐ Partly · ✕ No · – Not documented. Hover or use a screen reader for each vendor’s wording. Sources: Mem0 open source, Mem0 Platform, Zep open-source strategy, Zep bring your own key, Chroma clients, Qdrant security, Qdrant optimizer.

Open source and plans

Your memory stays on your machines. Cloud keeps your machines in step: encrypted sync across your laptops, desktops and team, a backup you can restore anywhere, and independent verification of the provenance and deletion records your stores sign. We never hold your keys, never see your documents and never run your searches. WritersLogic Holographic Memory Cloud runs its sync, backup and verification on Cloudflare.

  • Community

    Available now

    Free

    The open-source engine and server on your own machines.

    • Rust library, Python SDK, C ABI with Go, Java and .NET
    • Hybrid search, fact memory, crash-safe log
    • Optional encryption at rest and signed provenance
    • Support through GitHub
    Get started on GitHub
  • Cloud

    In development

    Usage-based

    Sync, backup and verification for the memory you keep locally. Pay for encrypted storage, sync operations and verifications, each with a free monthly allowance.

    • End-to-end encrypted sync (AES-256-GCM, keys only on your devices); concurrent edits converge and conflicts are reported
    • Encrypted backup of each store's full history; restore any device with your sync key
    • Tamper-evident history: reordered, altered or spliced changes are detected on your device
    • Provenance and deletion-record verification with receipts you can check offline
    • Signed audit export; business-hours email support
    Join the waitlist
  • Team

    In development

    Monthly plan

    Encrypted sync and verification shared across a team, with usage included each month.

    • Everything in Cloud, with included monthly usage and a larger storage quota
    • Scoped API keys with rotation and instant revocation
    • SSO through your identity provider (OIDC) and a signed, exportable audit log
    • Shared support channel and uptime commitment
    Join the waitlist
  • Enterprise

    Talk to us

    Talk to us

    Your keys, your infrastructure, compliance reporting.

    • Annual agreement with custom quotas
    • Bring your own key (KMS / HSM)
    • Transparency log and verification you can run yourself
    • Compliance reports and audit retention
    • Named support contact
    Join the waitlist
What WritersLogic Holographic Memory Cloud adds to the open-source engine
FeatureOpen sourceCloud (in development)
Engine, search and fact memoryOn your machineStill on your machine
Where plaintext livesOnly on your devicesOnly on your devices; the server stores ciphertext
Encryption at rest and signed provenanceIncluded (opt-in features)Included
End-to-end encrypted sync and backup across devicesNot includedIncluded
Tamper-evident, hash-chained change historyLocal journalChecked on every device
Provenance and deletion-record verification, transparency logVerify locallyHosted verification, your own append-only log, offline-verifiable receipts
Scoped API keys, signed audit export, SSO (OIDC)Not includedAudit export in Cloud; all three in Team and Enterprise
SupportGitHub issues and discussionsEmail, shared channel or named contact by tier

The source on main is Apache-2.0. Packages published so far (crate 0.6.1, holographic-sdk 0.1.2 on PyPI) were released under AGPL-3.0-or-later and stay available under those terms.

Questions

Does it send my data anywhere?

No. The engine makes no network calls and sends no telemetry. Embeddings are either supplied by you or computed by local models from weights you provide; it never downloads a model.

How is this different from Mem0, Zep, Chroma or Qdrant?

Holographic Memory is a library you embed, not a service you call, and it puts encryption at rest, signed provenance and a text-erasing purge in the open-source engine itself. Vector search runs on a vertex graph index; on SIFT-1M it served 2.29x the queries per second of hnswlib at recall 0.95 on the same machine (benchmarks section).

Why is it called holographic?

The fact memory uses holographic reduced representations: many bound facts are superposed into one fixed-size vector, so every part carries a little of the whole and damage degrades recall gradually. Document search is conventional BM25 and cosine and does not claim that property.

Is it really deleted when I delete it?

Delete removes a record from every query at once; its journal frame stays until compaction or purge. Purge rewrites the journal and overwrites the old generation with zeros before it returns. Copies outside the store's files, such as backups, snapshots and SSD wear levelling, are out of any library's reach; encrypt the store when those matter. Signed deletion certificates are research, not yet in the shipped API.

Which license applies?

The source on main is Apache-2.0. Packages published so far (crate 0.6.1, holographic-sdk 0.1.2 on PyPI) were released under AGPL-3.0-or-later and stay available under those terms.

Which languages can I use?

Rust natively; Node.js bindings built from source; a Python HTTP client (holographic-sdk) for hms-server; and a C ABI with Go, Java and .NET bindings.

What does the Cloud do if the engine runs locally?

WritersLogic Holographic Memory Cloud is sync, backup and verification, not a hosted engine. Your documents, embeddings, memory index, queries and sync key never leave your devices. Every change is sealed on your device before upload, so the service holds only sealed bytes and the metadata needed to order them (change counts, sizes, times, device and key identifiers) plus your account and billing details. For verification it keeps hashes, the signer's public identity and the claim time, never the statement's contents. It is in development: join the waitlist and we will write when the beta opens. Prices are published at launch.

Part of the WritersLogic provenance platform

Holographic Memory is part of the WritersLogic provenance platform: the same signed-statement substrate (COSE and SCITT over Ed25519, W3C DID identity) runs through every product.

  • WritersProof: Records how a document is written and seals that process into signed evidence anyone can verify
  • Draftbridge: Coming soon

WritersLogic Holographic Memory is made by WritersLogic, Inc.