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.

68 ms
P95 retrieval
9 ms
cache hit P95
0
fabricated citations
3.1 MB
.dmg, fully offline
Why on-device

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.

CMMC 2.0
US DoD
Defense contractor data

Controlled Unclassified Information must stay inside an approved environment. Sending data to a cloud LLM is loss of control + compliance violation.

ITAR
22 CFR 120
US defense export

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.

21 CFR Part 11
FDA
Pharma electronic records

Audit trails, data integrity, tamper-proof logs. Cloud LLMs lack verifiable audit and traceability guarantees.

NIS2
EU
Critical infrastructure

Operational data security and supply-chain risk management. External AI services introduce a third-party risk surface critical infrastructure can't absorb.

Nov 2025
CMMC 2.0 enforcement live
Mar 2026
DoD bans Anthropic
2025
TSMC 2nm leak, $40M
How it works

Five stages. One Mac. Zero hops.

Inputs, embeddings, storage, retrieval, response, every box runs on the same machine.

STAGE 01
Inputs

PDFs, images, sensor windows, and live voice. Real industrial shapes.

  • ·PDF SOPs
  • ·NASA images
  • ·CMAPSS sensors
  • ·voice mic
STAGE 02
Embed

Five small models, lazy-loaded with TTL unload. All MLX-native.

  • ·Qwen3 text 1024d
  • ·DINOv2 image 1024d
  • ·Chronos sensor 512d
  • ·Whisper ASR
STAGE 03
Store

One collection, three named vectors per point, schema locked at create-time.

  • ·Actian VectorAI
  • ·3 vectors / point
  • ·schema-validated
  • ·pattern promotion
STAGE 04
Retrieve

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
STAGE 05
Respond

Streaming tokens with [source:N] pills, voice synthesis, audited.

  • ·Tauri desktop
  • ·4 personas
  • ·streaming SSE
  • ·Kokoro TTS
Actian
3 named vectors / point

A PDF page is one record holding both a text vector AND an image vector with a shared payload. No four-database federation.

Server-side fusion
RRF in one round-trip

Reciprocal Rank Fusion across all named vectors via points.query(prefetch). About 15 ms for stage 1 on a 1,940 point corpus.

Stage 2 rerank
Industrial-code BM25

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.

Hash chain
Tamper-evident audit

Every query, cache hit, and forget-request lands in a SHA-256 chained JSONL log. 6 of 6 tamper tests pass.

The stack

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.

LLM
3.5 GB
Qwen3-4B-Instruct-2507
4-bit MLX. ~3.5 GB active. Streams 60–90 tok/s on M-series.
Apache-2.0
Text embed
1.2 GB
Qwen3-Embedding-0.6B
1024d Matryoshka. SOTA small embedder as of 2026.
Apache-2.0
Image embed
1.2 GB
DINOv2 ViT-L
1024d, ungated, self-supervised. Page renders + photos.
Meta
Sensor embed
200 MB
Chronos-Bolt-small
512d pooled. Time-series foundation model from Amazon.
Apache-2.0
ASR
0.8 GB
Whisper-large-v3-turbo
Via mlx-whisper. ~5× real-time on Apple GPU.
MIT
TTS
0.3 GB
Kokoro-82M
MOS 4.2, TTS Arena #1, Jan 2026.
Apache-2.0
Inside the app

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.

Persona aware grounded answer
Persona aware grounded answer

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.

The Actian inspector, expanded
The Actian inspector, expanded

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.

Citations resolve to real source PDFs
Citations resolve to real source PDFs

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.

RRF (Reciprocal Rank Fusion)
RRF (Reciprocal Rank Fusion)

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

DBSF (Distribution-Based Score Fusion)
DBSF (Distribution-Based Score Fusion)

Normalises score distributions across vectors before fusing. Sharper differentiation when one vector dominates the candidate pool.

What's inside

Small details, all the way down.

Built for someone who uses this for hours, not a tester clicking through a demo.

Persona aware
Four engineer roles

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.

Personal context
Local user profile

Tell revvec your role, experience, focus, and preferences. Every answer is shaped to you. The profile sits in localStorage and never leaves the machine.

Live voice
Partials as you speak

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.

Inspector
Every primitive visible

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.

Citations
Source PDF panel

[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.

Cache control
Skip or clear, on demand

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.

Multi chat
Persistent conversations

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.

Tamper evidence
Hash chained audit

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.

Apple Silicon
MLX native, all of it

Qwen3-4B, Whisper, DINOv2, Chronos-Bolt, Kokoro all run on the Apple GPU via MLX. No Ollama abstraction, no slow CPU fallback, no cloud.

Live demo

Watch the airgap hold under pressure.

3 min · airgap proven on cameraopen on YouTube ↗
0:30
Stream + Inspector

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.

1:10
Voice. Local.

Whisper turbo transcribes as you speak with partials in the input field. Kokoro TTS speaks the answer back. Both on Apple GPU.

2:05
Pull the cable

Ethernet unplugged on camera. Wi-Fi off. Query still answers, still cites, Inspector still shows the path. The airgap holds.

Compliance posture

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.7
    Limits use of non-approved external information systems
  • 21 CFR 11.10(e)
    Use of secure, computer-generated, time-stamped audit trails
  • NIS2 Art. 21
    Data security and supply-chain risk management measures
  • ITAR 22 CFR 120
    Technical data does not leave the controlled environment
  • GDPR Art. 17
    Right 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.