Airgapped industrial RAG.
On‑device. No cloud.
Your SOPs, sensor streams, and mission documents cannot touch a cloud LLM. CMMC. ITAR. 21 CFR Part 11. NIS2. revvec runs every model, every embedding, and every byte of your data on a single Mac. Nothing leaves the box.
Cloud RAG is illegal in the rooms that matter.
Defense, aerospace, pharma, semiconductor, EU critical infrastructure, every one of them has a regulation that bans CUI, technical data, or operational records from leaving an approved boundary. revvec is built around that line.
Controlled Unclassified Information must stay inside an approved environment. Sending data to a cloud LLM is loss of control + compliance violation.
Technical data on the US Munitions List cannot leave US soil or be accessible to foreign entities. Cloud APIs route globally, that's an illegal export.
Audit trails, data integrity, tamper-proof logs. Cloud LLMs lack verifiable audit and traceability guarantees.
Operational data security and supply-chain risk management. External AI services introduce a third-party risk surface critical infrastructure can't absorb.
Five stages. One Mac. Zero hops.
Inputs, embeddings, storage, retrieval, response, every box runs on the same machine.
PDFs, images, sensor windows, and live voice. Real industrial shapes.
- ·PDF SOPs
- ·NASA images
- ·CMAPSS sensors
- ·voice mic
Five small models, lazy-loaded with TTL unload. All MLX-native.
- ·Qwen3 text 1024d
- ·DINOv2 image 1024d
- ·Chronos sensor 512d
- ·Whisper ASR
One collection, three named vectors per point, schema locked at create-time.
- ·Actian VectorAI
- ·3 vectors / point
- ·schema-validated
- ·pattern promotion
Actian RRF prefetch, then Okapi BM25 rerank with an industrial-code-aware tokenizer.
- ·3-tier hybrid
- ·RRF + BM25
- ·Qwen3-4B MLX
- ·answer cache 9 ms
Streaming tokens with [source:N] pills, voice synthesis, audited.
- ·Tauri desktop
- ·4 personas
- ·streaming SSE
- ·Kokoro TTS
A PDF page is one record holding both a text vector AND an image vector with a shared payload. No four-database federation.
Reciprocal Rank Fusion across all named vectors via points.query(prefetch). About 15 ms for stage 1 on a 1,940 point corpus.
Okapi BM25 over the candidate pool with a tokenizer that keeps codes like SOP-ME-112 and sol 1214 intact. 0.7 cosine + 0.3 BM25.
Every query, cache hit, and forget-request lands in a SHA-256 chained JSONL log. 6 of 6 tamper tests pass.
Best-in-class small models, all local.
Picked April 2026 as the strongest per-GB choice for Apple Silicon. Apache-2.0 or ungated. No HuggingFace API at runtime, weights live in the local cache.
Every answer shows its work.
An Actian inspector sits below every response. One click reveals the exact path, vectors, latency, and primitive used. The database is never a black box.

Four engineer personas, each with grounded suggestions tuned to the role. Streaming tokens, inline citation pills, and the Actian inspector at the bottom of every answer.

One click reveals the path (vector search, RRF, cache, or general), vectors used, hits returned with top score, the latency split between Actian and the BM25 rerank, the actual operation pseudocode, and a chip cloud of every Actian primitive in play.

Each [source:N] pill is an entity_id. Click it and the source PDF slides in on the right at the cited page with the cited phrase highlighted.
Live fusion mode toggle, RRF or DBSF.
Switch Actian's fusion mode mid-session. Every query is routed through points.query(prefetch=[...], query={fusion: ...}). The Inspector reflects the mode you picked.

The default. Server-side ranks across every named vector are combined by 1/(k+rank). Robust when individual scores vary in scale.

Normalises score distributions across vectors before fusing. Sharper differentiation when one vector dominates the candidate pool.
Small details, all the way down.
Built for someone who uses this for hours, not a tester clicking through a demo.
New hire, maintenance, quality, plant manager. Each persona has its own grounded suggestion chips and prompt overlay tuned to the questions that role actually asks.
Tell revvec your role, experience, focus, and preferences. Every answer is shaped to you. The profile sits in localStorage and never leaves the machine.
Whisper turbo runs in the background and streams partial transcripts into the input field every 0.6 s. When you stop, the final transcript auto submits.
Below every answer: path badge, vectors used, hits with top score, latency split, the actual operation pseudocode, and a chip cloud of every Actian feature in play.
[source:N] pills resolve to real entity_ids. Click one and a panel slides in from the right with the cited PDF, scrolled to the cited page, with the cited phrase highlighted.
A skip-cache toggle on every input bar plus a one-click cache clear in the sidebar. Force fresh generation whenever you need it. The cache itself is a filtered Actian search.
Sidebar full of past chats, each with its own persona and history. Follow ups thread through a 6-turn budgeted context window. Stored locally per Mac.
Every query, cache hit, and forget gets recorded with a SHA-256 chain. Edit one byte of the log and the next /api/admin/audit call returns chain_ok: false.
Qwen3-4B, Whisper, DINOv2, Chronos-Bolt, Kokoro all run on the Apple GPU via MLX. No Ollama abstraction, no slow CPU fallback, no cloud.
Watch the airgap hold under pressure.
Tokens stream from Qwen3-4B on the Apple Silicon GPU. Below every answer, the Actian inspector shows the path, vectors, hits, and BM25 latency split.
Whisper turbo transcribes as you speak with partials in the input field. Kokoro TTS speaks the answer back. Both on Apple GPU.
Ethernet unplugged on camera. Wi-Fi off. Query still answers, still cites, Inspector still shows the path. The airgap holds.
Defensible by construction.
We don't gesture at compliance. docs/compliance.md maps every feature to a clause with a `file:line` citation. Honest about what's still v0.1 (no auth on admin endpoints; vde.save_snapshot UNIMPLEMENTED).
- CMMC SP.3.1.7Limits use of non-approved external information systems
- 21 CFR 11.10(e)Use of secure, computer-generated, time-stamped audit trails
- NIS2 Art. 21Data security and supply-chain risk management measures
- ITAR 22 CFR 120Technical data does not leave the controlled environment
- GDPR Art. 17Right to erasure, implemented via /api/admin/forget
# tamper test$ curl localhost:8000/api/admin/audit{"chain_ok": true}$ echo tampered >> data/audit/2026-04-25.jsonl$ curl localhost:8000/api/admin/audit{"chain_ok": false}
Pull the cable. Still works.
One Mac app. One Actian collection. Three named vectors. Zero cloud calls in the source tree.