Docs

Everything you need to ship

Browse the documentation for Simmetric Chat - from your first prompt to production deployments.

Custom skills — reusable prompt templates invoked via `/slug`

A custom skill is a reusable prompt template an operator or user authors once and invokes repeatedly from the chat as a slash command (/translate Ciao mondo). Skills are prompt-template mode only: invoking one compiles the stored template with the provid…

Document DLP pipeline — operator guide

When DLP document scanning is enabled for a workspace, every uploaded document passes through an async pg-boss scan after the ingest completes:

Connectors — external channels connected to the knowledge base

Connectors link the messaging channels where your customers and colleagues already are — WhatsApp, Telegram, Discord, Slack — to the same knowledge base that powers the internal chat. Conversations stay on your servers: the app calls the channel's APIs w…

Wiki knowledge engine — schema-governed archives, wikilinks, synthesis

The wiki engine gives each archive a three-layer instruction model: hard rules enforced by code, a per-archive schema prompt (advisory editorial guidelines), and structured fields (persona, purpose, scope). Mental model: schemaPrompt is to the wiki what …

Quotas & costs — usage and spending ceilings

The quota engine covers three kinds: the token quota and the storage quota (Phase 207) plus the cost quota (Phase 216, hold-and-settle over real-money math). Quotas are the operator's tool for usage ceilings in multi-user installs; they bind every user *…

The synthesis pipeline — combining documents, surfacing contradictions

The multi-document synthesis pipeline takes a set of an archive's pages/documents and produces combined wiki pages: each synthesized page unites the sources and surfaces where the sources disagree (contradiction detection), respects the per-run budgets o…

Getting Started

Simmetric Chat is a local-first, air-gap capable AI chat platform: it works without a connection to external cloud services, with a local LLM (Ollama), local embeddings (Xenova) and a local vector DB (LanceDB). It can however use cloud providers (OpenAI,…

Architecture

Simmetric Chat is a TypeScript monorepo with 5 packages plus a Tauri desktop app, organized by strict boundary separation: every package owns distinct responsibilities and talks to the others only through well-defined interfaces (HTTP or the shared types…

Configuration

Simmetric Chat has two configuration levels: environment variables validated with Zod at process startup, and a runtime config layer stored in the database that admins can edit from the UI without restarting any service.

API Reference

REST API of the Express server (port 3000, prefix /api), with an interactive Swagger UI and an OpenAPI spec served by the server itself, documented here by domain with its authentication mechanisms, rate limits, and response conventions.

Feature Guide

A guide to the platform features with internals, data flows, and code references. For each feature it documents how it works, how to use it, and how to extend it.

Widget Integration

The embeddable widget is a separate service (packages/widget, port 3211) that exposes an AI chat on your website. Architecture: Express + Preact IIFE in a sandboxed iframe, a transparent SSE proxy toward the server, anonymous sessions, lead capture, per-…

MCP Marketplace

The MCP Marketplace lets you install, enable and scope external MCP servers from a curated catalog. MCP servers expose tools that the ReAct agent can invoke during chats, extending capabilities without code.

Administration

Operational guide for administrators: users, roles and RBAC, workspaces, audit, licenses, and administrative backups. Every operation requires authMiddleware plus specific permissions - see the API Reference for the full endpoint inventory.

Deployment

Simmetric Chat is air-gap capable and local-first. Five deployment targets: multi-container Docker Compose (recommended for production), a single all-in-one container (air-gapped environments), a Coolify-managed stack, dev overrides (hot-reload on Docker…

Development

Guide to contributing to the codebase: setup, monorepo structure, scripts, conventions, i18n.

Testing

Simmetric Chat uses Jest 30 with the @swc/jest transform (unit + integration) and Playwright (E2E), orchestrated by Turborepo. The root jest.config.cjs aggregates the 5 projects (shared, server, frontend, collector, widget).

Troubleshooting

Common symptoms, cause, resolution. File-line references and cross-links to the docs.

Interactive API docs

Swagger / OpenAPI 3.0 are served at /api-docs when the server is running.