Conclave Docs

Architecture

System topology — the three-repo boundary and the service map.

The product is a three-repo system plus satellite clients. The clean boundary: Capture = who spoke when + what they said · VFTE = who that person is · Conclave = orchestration + persistence + intelligence. See The three products for the product view; this page is the engineering topology.

Components

ComponentRepo / dirGitHubRoleState
Conclaveconclave-shape-rotatorconclavehq/ConclaveControl plane + dispatcher; the only persistence (audio + transcripts + KB); enrichment; VFTE orchestrationStateful (in TEE)
Capturecaptureconclavehq/CaptureStateless capture + acoustic diarization (diart + DiariZen) + ASR call. Emits {start,end,local_speaker}Stateless
VFTE / FPMFPMconclavehq/VFTEEIdentity-only voiceprint layer + consent plane + sealed storeStateful (sealed)
diartinside captureLive real-time diarization, CPU-pinnedephemeral
DiariZen workerinside captureAuthoritative GPU batch post-pass, stateless/swappableStateless
Veritas recorderveritas-recorderconclavehq/VeritasStandalone attested iOS/Mac recorder (satellite, not in the meeting pipeline)on-device
Shape-OS clientos-ws-passthroughElectron desktop app Conclave contributes intoclient

Naming: "VFTE" and "FPM" are the same service (dirs/env still prefixed fpm/FPM_; GitHub repo is VFTEE). "capture" was extracted from the dissolved Recato product.

Tech stack

  • Conclave — Python FastAPI (uvicorn), one SQLite file (relational + FTS5 + sqlite-vec), SQLAlchemy 2 + Alembic, Redis (durable job queue + live-segment stream), LangChain at ingest, dstack-sdk for TDX, Supabase auth. Frontend: Next.js 16 in frontend/. LLM: RedPill TEE / NEAR AI; ASR: NEAR Whisper.
  • Capture — mixed: diarization service = Python FastAPI; recato-bot = Node/TypeScript (CDP-driven headless browser); runtime-api orchestrator. Engines: diart (torch 2.2.2, CPU) + DiariZen (torch 2.1.1 cu121, GPU).
  • VFTE / FPM — Python FastAPI, ONNX Runtime CPU embedder (CAM++), SQLite sealed store, dstack-sdk, Supabase JWT verification. Frontend: Next.js consent dashboard. No torch in prod.

How they connect (prod)

browser / OS recorder ──wss──▶ capture-diart (TLS-passthrough ingress)
                                   │ publishes segments

                               Redis stream  ──▶ Conclave (persist audio + transcript)
                                                   │ dispatch post-pass job

                                        DiariZen GPU worker (claims over :443)
                                                   │ authoritative spans

                                        VFTE /v1/identify-spans (names, scoped + consented)

                                        Conclave enrich → KB → view

Online meetings follow the same Redis wire format via a recato-bot dispatched through the runtime-api. Full flows on Data flow.

Source: CONCLAVE-CAPTURE-ARCHITECTURE.md, per-repo READMEs.

On this page