Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Governance-driven multi-LLM deliberation by Dome.
Translation pending
BusinessTypeScript · PythonGitHub @Dome-LayerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Multi-model AI deliberation: Claude, Gemini, and GPT-4o cross-examine each other, then produce a structured verdict with a confidence score, dissent, and an append-only governance audit log. Built for regulated EU enterprises. Part of the Dome AI governance portfolio.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Three AI advisors deliberate on your question, cross-examine each other, and produce a governed verdict with a confidence score and full audit trail.
DOME phase: Model — structured multi-model deliberation that turns a question into a governed, auditable verdict before any action is taken.
Part of the Dome portfolio. For full tool specification see TOOL_CONTEXT.md.Read the full README ↗Three AI advisors deliberate on your question, cross-examine each other, and produce a governed verdict with a confidence score and full audit trail.
DOME phase: Model — structured multi-model deliberation that turns a question into a governed, auditable verdict before any action is taken.
Part of the Dome portfolio. For full tool specification see TOOL_CONTEXT.md.
Single-model AI answers are opaque: one model, one perspective, confidence scores you cannot audit, no dissent captured. For decisions in financial services, healthcare, or public sector (GDPR, MiFID II, AI Act), that is not enough.
LLM Council runs three independent models — Claude, Gemini, GPT-4o — in a structured two-round deliberation. The verdict includes a dissenting view, a confidence score, a reasoning chain, and a GovernanceEvent written to an append-only audit log. Every deliberation is reproducible and traceable.
# Clone
git clone https://github.com/Dome-Layer/dome-llm-council.git
cd dome-llm-council
# Backend
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Frontend
cd ../frontend
npm install
# Environment
cp backend/.env.example backend/.env
# Edit backend/.env with your real values — see Environment variables below
# Terminal 1 — Backend (from backend/)
uvicorn main:app --reload --port 8000
# Terminal 2 — Frontend (from frontend/)
npm run dev
Visit http://localhost:3000. Health check: http://localhost:8000/health.
backend/.envCopy backend/.env.example and fill in real values. Never commit the .env file (it is gitignored).
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY | ✅ | Anthropic API key — used for Claude (Strategic Advisor) and the default synthesizer |
GOOGLE_AI_API_KEY | ✅ | Google AI Studio key — used for Gemini (Research Analyst) |
OPENAI_API_KEY | ✅ | OpenAI API key — used for GPT-4o (Critical Advisor) |
SYNTHESIZER_MODEL | optional | Model that writes the final verdict. Default: claude-opus-4-6. Prefix determines provider: claude → Anthropic, gemini → Google, anything else → OpenAI |
SUPABASE_URL | optional | Supabase project URL. If absent, governance persistence and auth are disabled and the tool runs stateless |
SUPABASE_SERVICE_ROLE_KEY | optional | Supabase service role key used for auth verification and DB writes. Required when SUPABASE_URL is set |
frontend/.env.localCreate frontend/.env.local (not included in the repo):
| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_API_URL | optional | Backend base URL. Defaults to http://localhost:8000 if absent |
Each deliberation runs in three phases, streamed to the browser via Server-Sent Events:
VERDICT, REASONING, DISSENT, RECOMMENDATION, and a Confidence score. A GovernanceEvent is emitted and optionally persisted to Supabase.Not implemented. The provider layer (backend/providers/) would need an Azure OpenAI provider. See TOOL_CONTEXT.md §Architecture for details.
Not implemented. No Ollama or local model support exists. See TOOL_CONTEXT.md §Architecture for details.
dome-llm-council/
├── TOOL_CONTEXT.md Full tool specification
├── README.md This file
├── .gitignore
├── backend/
│ ├── main.py FastAPI entry point — /deliberate SSE, /api/v1/... REST
│ ├── config.py Provider wiring and CouncilConfig
│ ├── auth.py Supabase Bearer token auth dependency
│ ├── db.py Cached Supabase client
│ ├── Dockerfile python:3.12-slim, port 8000
│ ├── requirements.txt
│ ├── .env.example Environment variable template (replace values before committing)
│ ├── council/
│ │ ├── orchestrator.py Two-round deliberation flow + verdict synthesis
│ │ ├── roles.py Role system prompts and Round 2 / verdict templates
│ │ └── scoring.py Confidence score extraction from LLM responses
│ ├── governance/
│ │ └── logger.py GovernanceEvent builder (rules, thresholds, input hashing)
│ ├── models/
│ │ ├── request.py DeliberationRequest schema
│ │ └── response.py CouncilMemberResponse, VerdictResponse, GovernanceEvent
│ └── providers/
│ ├── base.py LLMProvider abstract base class
│ ├── claude.py Anthropic provider (claude-sonnet-4-6 default)
│ ├── gemini.py Google GenAI provider (gemini-2.5-flash, retry + fallback)
│ └── openai.py OpenAI provider (gpt-4o default)
└── frontend/
├── package.json
├── next.config.js
├── tailwind.config.ts
└── src/
├── app/
│ ├── page.tsx Main deliberation UI ("Ask the Panel")
│ ├── layout.tsx Root layout with Header and Footer
│ ├── globals.css Dome design tokens and base styles
│ ├── AuthGuard.tsx Redirects unauthenticated users to login
│ ├── components/ Page-level components (CouncilCard, VerdictPanel, etc.)
│ ├── auth/ Magic link callback and sign-in page
│ └── saved/ Saved deliberations list and detail view
├── components/ Shared components (Header, Footer, ThemeToggle, etc.)
├── context/ React context for auth state
├── lib/ API client utilities
└── types/ SSE event types and shared TypeScript types
TOOL_CONTEXT.md — full spec for this tool (architecture, governance, prompts, limitations)Strategic context, partnership details, and cross-portfolio documentation live in a separate private repository (
dome-docs).