Your AI pilot worked.
Then it met real company knowledge.
immutlex is a Rust storage engine for AI knowledge. It writes immutable document revisions to S3-compatible object storage or Azure Data Lake Storage Gen2, tracks ingest in a write-ahead log, and builds BM25, HNSW, and graph indexes for agents to query over MCP.
One native Immutlex binary bundles local inference models. Run an all-in-one node with object storage in your environment, or deploy across Kubernetes and air-gapped networks.
The model passed the demo. Can its knowledge survive production?
Documents live in folders, prompts, and separate services.
Did that source change last week?
Can I run this inside our network?
# answers depend on glue, copies, and model calls
- Source, derived facts, and current answers can drift apart.
- Every additional service adds an operating boundary.
Query the source-backed knowledge store.
# retrieve exact terms with BM25
# retrieve related meaning with HNSW
# return source-linked evidence to the agent
- Original documents remain the record; indexes are derived and rebuildable.
- Your approved model reasons over retrieved source material at query time.
Watch a source become searchable knowledge
Follow the data path: ingest source material, build searchable indexes, retrieve evidence, then inspect the graph and revision history. The demo uses a multimodal corpus of text, code, diagrams, and a whiteboard photo. The desktop shows the same vault while the agent searches it over MCP.
Ingest source documents and files. Immutlex preserves the source and creates versioned Markdown knowledge documents, then chunks and indexes them for retrieval. Agents query the results through MCP, CLI, or the client SDK.
immutlex: Search (fused BM25 + HNSW):
1. transformer-architecture - "based entirely on self-attention"
2. attention-is-all-you-need - "replacing recurrence with attention"
Graph: transformer-architecture <-> self-attention (1 hop)
PageRank: 0.50 / 0.50 - Community: 2 clusters (Louvain)
Keep the source trail as retrieval changes with the corpus.
RAG describes a retrieval pattern; it does not make retrieval results fixed. As documents arrive or change, the indexed corpus changes, and so can BM25 rankings, HNSW neighbors, graph context, and a query's top results. Immutlex preserves source material as immutable revisions and records ingest in a write-ahead log. The audit trail starts with the source and revision behind retrieved evidence; current retrieval relationships remain derived from the current corpus.
Original source
Raw documents and versioned Markdown records stay in the configured object store. Edits create a new revision.
Write-ahead log
Ingest stages are recorded so interrupted work can be audited and replayed from its source.
BM25 + HNSW
Tantivy finds exact terms. HNSW finds semantically related chunks. Reciprocal Rank Fusion combines their rankings.
Graph + MCP
MCP lets compatible agents call search, document, and graph tools. Authored wiki links stay distinct from derived retrieval neighbors.
The release binary is about 432 MB with model assets compiled in. Embedding and OCR do not require a hosted model API. Generation remains with the model the customer has approved.
The object store is part of the architecture. If you place it outside the host or VPC, show that boundary on the diagram.
Bring the files your team already has.
Immutlex ingests Markdown, PDFs, spreadsheets, CSVs, images, and UTF-8 source files. Bundled local models create text, code, and image embeddings; local OCR extracts text from images. The resulting records and indexes are written through the same storage engine and its configured object-store boundary.
The application binary includes the supported extractors and local model assets. OCR, image embeddings, and text or code embeddings do not require hosted model APIs. Immutlex writes to the configured object store: that can be RustFS on the same host, a service inside your VPC, an S3-compatible endpoint, or Azure Data Lake Storage Gen2.
# local model inference inside the binary
Storage: immutable source + revisions
# local object store or configured endpoint
# retrieval indexes remain derived state
Documents and data
Images - OCR'd and embedded for visual search
Code and config - any UTF-8 text
Any text-shaped file lands, even with no extension - so a new language or config format needs zero changes. Plus any web page, cleaned to markdown by the open-source defuddle-rs add-on below.
Keep authored knowledge distinct from search signals.
Wiki links preserve the relationships a person or agent actually authored. Retrieval adds useful candidate relationships without rewriting those source links. Each edge type answers a different question, and each has a different durability and analytics role.
--- id: attention-is-all-you-need title: Attention Is All You Need tags: [transformers, attention, nlp] links: [transformer-architecture, self-attention] --- The Transformer replaces recurrence with pure [[self-attention]], the core idea behind the [[transformer-architecture]] that followed.
Explicit links and backlinks preserve the authored graph. They are stored with document revisions and form the topology used by graph analytics such as PageRank and community detection.
Lexical, semantic, and implicit edges are derived from current retrieval results. Their rankings can change as the corpus changes; they are not written back as authored facts. Promote a useful candidate to an explicit [[wikilink]] and Immutlex records that choice as a new document revision.
out: self-attention, transformer-architecture
in: attention-survey, encoder-decoder
Agent via MCP: query mode="path" from="encoder-decoder" to="self-attention"
encoder-decoder -> attention-is-all-you-need -> self-attention
Your whole corpus, as a graph you can fly through.
Every document is a node; every [[wikilink]] is an edge. As your knowledge base grows, the graph fills in - this is a real vault with tens of thousands of docs rendered live in the browser. Pilot users get a hosted viewer to explore their own.
Use your corpus. Measure your baseline.
Pilot usage has shown per-answer model costs fall from about $0.40 to $0.04—roughly 90%—on the measured workflow. Try your own corpus and model to see what changes.
Retrieval changes. Keep the source and revision trail.
RAG is a retrieval pattern. Its context depends on the indexed corpus: add or revise documents and BM25 rankings, HNSW neighbors, and the resulting top-K may change. Immutlex keeps source documents as immutable revisions, records ingest in a WAL, and rebuilds retrieval indexes from the durable record. That gives the team a source and revision trail for the evidence an agent receives, while keeping changing retrieval relationships identified as derived data.
The graph keeps authored links and retrieval signals distinct
Explicit wiki links are relationships a person or agent chose to record. Lexical edges come from BM25 co-retrieval; semantic edges come from HNSW neighbors; implicit edges mark agreement between the two retrieval signals. The first kind is preserved with the document revision and used for graph analytics. The retrieval edges can change as the corpus changes, so they remain visible as derived signals rather than being silently promoted into authored truth.
Choose where each part runs
The single-host setup runs one native Immutlex application binary with object storage in the customer's environment; RustFS can run on that host. The same engine can use external S3-compatible storage or Azure Data Lake Storage Gen2. Kubernetes deployments can separate writer, worker, and read roles and use a PostgreSQL-backed control plane. Local embedding and OCR models run without hosted model APIs.
# retrieval and local inference stay in the environment
Kubernetes: writer / worker / read roles
# shared object store; control-plane services as configured
Source revisions are durable; indexes are derived
Markdown is an open view of document content. Immutlex adds storage and recovery semantics around it:
- Original source material and versioned Markdown records live in S3-compatible object storage or Azure Data Lake Storage Gen2.
- Edits create new immutable revisions, preserving document history for inspection and time travel.
- BM25, HNSW, and graph retrieval state are derived from the record and rebuildable; the WAL tracks ingest and recovery.
The current top-K is a view of the current corpus. The source and revision trail lets the team inspect what changed as that view evolves.
Context lands even when the agent forgets to ask
Tools only help when the agent calls them. On a long session it stops - it drifts along on whatever is left in the window, and your knowledge base may as well not exist. immutlex closes that gap without asking the agent to behave: start it under the shell wrapper and a bounded context anchor is spliced into the agent's own input every Nth turn. The agent reads it as if you typed it, so there is no tool call to skip and no MCP support required on its side. Any agent CLI works, and the block is capped in characters and tokens so it cannot eat your context budget.
$ immutlex-shell -- codex
$ immutlex-shell -- copilot
# context arrives on its own, every Nth turn.
MCP tools across 13 categories
Everything your agent can ask of its own knowledge base. Open a category to see what it covers.
Ingest & Validate
Ingest markdown, PDFs, CSVs, images, and any web page. Validate frontmatter and wikilinks before they land.
Query & Retrieve
Fused BM25 + semantic search, heading and backlink search, document rehydration with provenance.
Graph Analytics
Neighbors, shortest path, PageRank, community detection, orphan detection over the wiki-link graph.
Context & Budget
Auto-inject ranked chunks under a token budget. Extractive, diversity-aware summarization.
Relevance & Temporal
Decay, mark-noise, and revalidate - so stale knowledge fades instead of being deleted.
Documents & Revisions
Read any document or chunk, list and audit the corpus, and reconcile contradictions across revisions.
Sessions & Decisions
Wrap up a session, record decisions, promote episodic notes, and synthesize a topic across sources.
Vaults
Create, switch, rename, archive, and report on isolated vaults - each with its own indexes and graph.
Custom Tools
Install and run your own tools in a sandbox: read-only vault access, no host environment, no network.
WAL & Compaction
A write-ahead log with durable stages and compaction - immutable and auditable by design.
Infrastructure
Choose bundled local RustFS, an S3-compatible object store, or Azure Data Lake Storage Gen2. Local or cloud, your choice.
System
Health, status, and license info - role, storage reachability, pending jobs, generations.
Admin
Operator surface: vault overview, ingest jobs, worker nodes, leases, index generations.
Call immutlex in-process from Python
No MCP transport, no separate server to dial. The wheel is the daemon's Rust core (UniFFI), in your process.
client = ImmutlexClient.open("immutlex.toml", "default")
ctx = client.inject_substrate(prompt, max_chars=4096,
mode=InjectMode.RECALL)
# prepend ctx to your model call - every tool
# the daemon exposes is a typed method here
- Per-platform wheels for Linux, macOS, and Windows (x86_64 + arm64), built from the same Rust source as the server.
- The wheel rides along inside your gated download - install.sh (Linux/macOS) and install.ps1 (Windows) pip-install it automatically.
- Loads your license at runtime from the same place the daemon does. No separate setup, nothing on public PyPI.
- Durable fire-and-forget ingest with an on-disk queue, typed health for monitoring loops, per-writer attribution.
Own your data. Pay for the intelligence, not per seat.
No per-seat pricing, ever. You pay for what immutlex processes and stores for you - documents ingested and storage used. Two numbers you already know, scaling linearly.
One VPS you manage. No cloud account required.
The full system on a single box you control, with bundled storage. Everything runs local; nothing phones out. The fastest way to put a durable memory in front of your agents.
Introductory rate while we onboard early teams - the Pro price may rise as immutlex matures. Prefer a pilot first?
Same single-box simplicity, room to grow.
For teams pushing past Pro's limits. More documents and storage included, and a lower overage rate when you spill over - so growing costs less, not more.
Introductory rate while we onboard early teams - the Pro Plus price may rise as immutlex matures.
Base by capacity, plus usage - no per-seat pricing. Deploy Managed (your corpus on immutlex-operated storage, no cloud account to stand up) or Hybrid (compute we operate, documents stay in your own S3-compatible store or ADLS Gen2 and never leave your cloud - the compliance path for banking, healthcare, and manufacturing).
Prices above are Managed (your corpus on immutlex-operated storage) and subscribe directly. Hybrid (documents stay in your S3-compatible store or ADLS Gen2 account) is a guided setup - talk to us. Enterprise overage $4 / GB/mo and $8 / 1K docs. Need more than 500 GB or 500K docs a month? Contact us for custom pricing.
Run it fully air-gapped. Nothing leaves your walls.
Deploy immutlex end to end inside your own environment: your infrastructure, your network, your data. No shared infra, no hybrid dependency, no inbound or outbound connection required - the models run in-binary, so a fully air-gapped install works with zero network at inference time. Built and priced for your org, your compliance posture, and your scale.
Standalone tools. One thing in common: clean markdown.
These are independent tools - each useful entirely on its own, each one an MCP server your agent can call (codino and fsgdb ship a CLI too). What ties them to immutlex is not a dependency, it's a format: every one of them emits plain .md - and codino and fsgdb emit it already linked, with frontmatter and back-and-forward [[wikilinks]], so it lands in the graph fully formed. Use them with immutlex, use them without it. The markdown goes wherever you want.
Ingest any website
The doc your agent needs is a web page buried in nav, ads, share widgets, and chrome. Point defuddle-rs at the URL and it keeps the article, drops the rest, and hands back clean markdown - ready to drop into immutlex or anything else that reads .md. One page or a whole capture flow.
Clean-room Rust defuddle - the same parser ships as a crate, MCP server, Python package, browser extension, and WASM. MIT, free. View on GitHub
Teach your agent how the codebase actually works
Your agent can write code but doesn't know what calls what, what breaks if it changes a function, or which tests cover it. fsgdb maps the real structure of your repo - call graphs, blast radius, dead code, coverage, git history - and dumps it as plain markdown, ready to drop into immutlex or read anywhere your agent already looks. Scan once, re-scan whenever the code moves.
Local tree-sitter parsing into a full Cypher graph database over the Bolt protocol. 34 MCP tools; exports the graph as immutlex-compatible linked markdown - frontmatter plus a workspace index that cross-links every module. Explore fsgdb ->
$69 / mo - flat Get fsgdb ->
Give last week's conversation back to your agent
Every hard problem your agent already solved is sitting in a Claude Code, Codex, or Copilot session log - and forgotten the moment the window closed. codino reads those logs where the tools already keep them, finds the threads worth keeping, and turns them into markdown your agent can ask again. The work you already paid for stops evaporating.
Hybrid retrieval over any SQLite or JSONL: SQLite FTS5 lexical + DuckDB HNSW semantic, fused with RRF. Exports interlinked wiki markdown - YAML frontmatter, bidirectional [[wikilinks]], no dangling. Source stays read-only. Explore codino ->
$19 / mo - flat Buy codino ->
Local-first and zero-telemetry, same as immutlex - but they stand alone. defuddle-rs is open source; codino ($19/mo) and fsgdb ($69/mo) are flat-priced and pair naturally with any plan, no coupling required. Ask us which ones fit your stack.
fsgdb is not just an add-on.
Code intelligence for AI agents, a graph database for everything else. fsgdb parses your repo into a full Cypher graph - call paths, blast radius, dead code, test coverage, git history, even data lineage - then serves it to your agent over MCP and to you in VS Code, the browser, a desktop app, and the CLI.
Bring one AI workflow that failed outside the demo.
Bring the documents, approved model, and deployment boundary. We will trace how Immutlex stores revisions, retrieves evidence, and connects the agent through MCP.
- Point immutlex at your real documents - markdown, PDFs, CSVs, images.
- Connect the agent over MCP or evaluate the CLI and SDK paths.
- Run a single-host, Kubernetes, or air-gapped deployment that matches your boundary.
- Vaults are unlimited, and each one is isolated - its own indexes, graph, and access rules.
- Preserve source documents as immutable revisions; build search and graph state from that record.
- Use bundled local models for embedding and OCR; generation stays with the model you approve.
- Choose local object storage, an S3-compatible store, or Azure Data Lake Storage Gen2. Show the resulting network boundary.