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.

Perché Simmetric Chat
Tre pilastri che rendono la piattaforma pronta per ambienti regolati.
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.
Tutto ciò che serve per un knowledge base AI privato e affidabile.
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.
Sicurezza e accessi
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.
Integrazioni
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.
Architettura
Monorepo pnpm + Turborepo con separazione netta tra shared, server, collector, widget e frontend.
Packages: shared ← server, collector, frontend, widget. Server and collector never import from each other and communicate via HTTP only.
Stack tecnologico
Pronto a distribuire la tua knowledge base AI?
In 60 secondi. Air-gapped, senza dipendenze dal cloud.