Open Source · AGPL-3.0

Enterprise-grade AI chat workspace — local-first, air-gap ready

Self-hosted AI knowledge base with hybrid RAG and cited answers, 31-permission RBAC, a ReAct agent, and an embeddable chat widget — deploy fully air-gapped with Ollama, LanceDB and pg-boss. AGPL-3.0 Community, commercial Enterprise.

Simmetric Chat dashboard preview

Why Simmetric Chat

Three pillars that make the platform ready for regulated environments.

🛡️

Privacy-First & Air-Gap Ready

Runs fully offline: Ollama for LLM inference, LanceDB as the local vector store, on-device embeddings. Zero cloud dependencies — and a DLP filter redacts six PII classes (email, credit card, SSN, sk- API keys, AWS AKIA keys, PEM private keys) before data ever leaves your network.

🔎

Hybrid RAG with citations

Vector similarity fused with PostgreSQL full-text search via Reciprocal Rank Fusion (k=60). Every answer carries source citations, relevance scores, and a deterministic tiebreaker — guarded against embedding-model drift, with automatic FTS-only fallback on mismatch.

🧩

Embeddable widget & MCP

Ship a Preact chat widget in a sandboxed iframe with isolated anonymous sessions, per-widget CORS, and lead capture (Enterprise tier). Extend the ReAct agent with tools from the MCP Marketplace — workspace-scoped connections, per-chat pins, or expose your RAG to IDEs.

Features

Everything you need for a private, reliable AI knowledge base.

Core

Hybrid RAG (RRF)

Vector search (LanceDB default, or Qdrant/pgvector/Chroma) fused with PostgreSQL FTS via Reciprocal Rank Fusion, k=60. Deterministic tiebreaker, per-chunk citations, semantic+keyword tags.

ReAct Agent Orchestrator

Single-call ReAct loop with plan mode, watchdog (wallclock, token, context, loop detection), unknown-tool circuit breaker, and progressive DLP flush via buffered replay.

Multi-LLM with 20 presets

Ollama, OpenAI, Anthropic, OpenRouter, Gemini, plus 20 provider presets (DeepSeek, Mistral, Qwen, xAI and more). Per-chat model resolution, 3-tier graceful fallback, Cmd+K quick-switch palette.

Document ingestion

PDF, DOCX, XLSX, PPTX, MD, CSV, TXT and YouTube transcripts. Recursive chunking (1000 chars, 200 overlap). Xenova local embeddings by default, OpenAI optional.

OCR via Ollama vision

Server-side OCR pipeline: pdfjs-dist renders pages, an Ollama vision model (glm-ocr by default) extracts text. Approve/reject workflow with quality and credibility scoring.

Archives & Wiki

Multi-page markdown knowledge bases with wikilinks. Dedicated agent skills wiki_query (FTS + BFS traversal, depth 3) and wiki_write (preview, dry-run, SSE edit events).

Synthesis pipeline

5-pass entity extraction → summary → BM25 candidate search → LLM decision (CREATE/UPDATE/SKIP/FLAG_CONTRADICTION) → overview. PHI gate blocks non-local egress when required.

Multi-instance scaling

Horizontally scalable behind a load balancer: Redis-backed rate limits, JWT revocation, SSE fan-out relay and distributed locks. pg-boss queue with 8 cron schedulers — no extra infrastructure.

Security & Access

RBAC — 31 permissions

Fine-grained role-based access across 13 menu sections, workspace and project access grants, IDOR-safe middleware, and constant-time secret comparison.

DLP filter

Six PII classes redacted inline: email, credit card, SSN, sk- API keys, AWS AKIA keys, PEM private keys. Applied to both input and output streams behind DLP_ENABLED.

Encrypted backups

Enterprise-gated: scheduled or on-demand AES-256-GCM backups with rotation-safe keys. Unlimited destinations (Local, S3, Dropbox, Drive, FTP, SFTP, Email), retention and point-in-time restore.

Air-gap by design

Ollama LLM + on-device embeddings + LanceDB vectors run fully offline. Package boundaries enforce HTTP-only server↔collector communication for split deployments.

HMAC API keys

sk--prefixed API keys verified with a dedicated HMAC-SHA256 secret (API_KEY_HMAC_SECRET), decoupled from JWT and encryption key rotation.

Integrations

Embeddable widget

Preact IIFE in a sandboxed iframe (no allow-same-origin). Isolated anonymous sessions, per-widget CORS allowlist, rate-limited sessions and lead capture. Widget creation is an Enterprise-tier feature.

MCP Marketplace

Curated catalog with verification tiers and health checks. Install workspace-scoped connections, pin per chat via ChatMCPPin, or expose your RAG as an MCP server to IDEs.

SSE chat streaming

Real-time token, status, citations, plan, wiki_edit, and done events over @microsoft/fetch-event-source. Slash /model, Cmd+K palette, Cmd+Shift+M side-by-side comparison.

Bidirectional MCP

Connect external MCP servers as agent skills, or start the server-side MCP endpoint to expose rag_search and workspace_memory to Cursor, Claude Desktop, and other clients.

Webhooks + Web Push

Outbound events signed with HMAC-SHA256 and VAPID Web Push for real-time browser notifications on chat completions and system events. Always-on in Community.

Enterprise

Analytics & audit

Token usage dashboards: per day, per model, per user. Event log with webhook dispatch. Immutable INSERT-only audit trail (Enterprise) for compliance evidence.

Enterprise license

Community (AGPL-3.0) vs Enterprise: 11 license flags with commodity features always-on. SSO, SCIM, white-label, unlimited widgets and workspaces — graceful degradation without a key.

i18n — 8 languages

English, Italian, Russian, German, French, Spanish, Chinese and Portuguese. Automated parity checks enforce translation completeness in CI.

Architecture

pnpm + Turborepo monorepo with clean separation between shared, server, collector, widget and frontend.

Frontend
React 19 · Vite
API
Server · Express 5
Agent
ReAct orchestrator
LLM · RAG · MCP
Skills + tools
RAG Search
Vector DB (LanceDB · Qdrant / pgvector / Chroma) + PostgreSQL FTS fused with RRF
Collector
Parse · chunk · embed for PDF, DOCX, XLSX, PPTX, MD, CSV, YouTube
Delivery
Webhooks (HMAC-SHA256), Web Push (VAPID), embeddable widget

Packages: shared ← server, collector, frontend, widget. Server and collector never import from each other and communicate via HTTP only.

Tech stack

Backend
Node.js ≥ 24Express 5Prisma ORMZod
Frontend
React 19ViteTailwind CSS 4TanStack Query
Widget
Preact IIFESandboxed iframeExpress 5
Database
PostgreSQL 16tsvector FTS
Vector DB
LanceDB (default)Qdrant / pgvector / Chroma
Embeddings
Xenova all-MiniLM-L6-v2OpenAI text-embedding-3-small
LLM
Ollama (local)OpenAIAnthropicOpenRouterGemini+ 20 presets
OCR
pdfjs-distOllama vision (glm-ocr)
Auth
JWT + bcryptHMAC sk- API keysRBAC middleware
Streaming
SSE@microsoft/fetch-event-source
Jobs
pg-boss (8 cron)AES-256-GCM backups
Monorepo
pnpm workspacesTurborepo
Desktop
Tauri (optional)

Ready to deploy your AI knowledge base?

Start in 60 seconds. Fully air-gapped, zero cloud dependencies.