A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/

E.D.D.I (Enhanced Dialog Driven Interface) is a production-grade, config-driven multi-agent orchestration middleware for conversational AI. It coordinates users, AI agents, and business systems through intelligent routing, persistent memory, and API orchestration — without writing code.
Built with Java 25 and Quarkus. Ships as a Red Hat-certified Docker image. Native support for MCP (Model Context Protocol), A2A (Agent-to-Agent), Slack, OpenAPI, and OAuth 2.0.
Latest version: 6.1.0 · Website · Documentation · License: Apache 2.0
The fastest way to get EDDI running is the one-command installer. It sets up EDDI + your choice of database via Docker Compose, deploys the Agent Father starter agent, and walks you through creating your first AI agent.
Linux / macOS / WSL2:
curl -fsSL https://raw.githubusercontent.com/labsai/EDDI/main/install.sh | bash
Windows (PowerShell):
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1" -OutFile "install.ps1"
Unblock-File .\install.ps1
.\install.ps1
Requires Docker. The wizard auto-generates a unique vault encryption key for secret management.
bash install.sh --defaults # All defaults, no prompts
bash install.sh --db=postgres --with-auth # PostgreSQL + Keycloak
bash install.sh --full # Everything enabled (DB + auth + monitoring)
bash install.sh --local # Build Docker image from local source
The --local flag is for contributors testing pre-release builds:
./mvnw package -DskipTests # Build the Java app
bash install.sh --local # Build Docker image + start containers
The installer creates an eddi CLI wrapper that makes updating easy:
eddi update
This pulls the latest Docker image from the registry and restarts the containers. It works even when the same tag (e.g. latest) was re-published — Docker always checks the remote digest for changes.
eddicommand not found? The CLI lives at~/.eddi/eddi(Linux/macOS) or~/.eddi/eddi.cmd(Windows). Either restart your terminal so the PATH takes effect, or use the full path:hljs language-bash# Linux / macOS ~/.eddi/eddi update # Windows (PowerShell) & "$HOME\.eddi\eddi.cmd" update
If the eddi CLI isn't available, run the equivalent docker commands from your install directory (~/.eddi by default):
cd ~/.eddi
docker compose --env-file .env -f docker-compose.yml pull
docker compose --env-file .env -f docker-compose.yml up -d
Adjust the -f flags to match your setup (e.g. add -f docker-compose.auth.yml if using Keycloak).
If you prefer manual control over Docker Compose:
# Default (EDDI + MongoDB)
docker compose up
# PostgreSQL instead of MongoDB
EDDI_DATASTORE_TYPE=postgres docker compose -f docker-compose.yml -f docker-compose.postgres.yml up
# With Keycloak authentication
docker compose -f docker-compose.yml -f docker-compose.auth.yml up
# With Prometheus + Grafana monitoring
docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up
# Full stack (all overlays)
docker compose -f docker-compose.yml -f docker-compose.auth.yml \
-f docker-compose.monitoring.yml -f docker-compose.nats.yml up
Available compose overlays: docker-compose.auth.yml (Keycloak), docker-compose.monitoring.yml (Prometheus+Grafana), docker-compose.nats.yml (NATS JetStream), docker-compose.postgres.yml / docker-compose.postgres-only.yml, docker-compose.local.yml (build from source).
docker pull labsai/eddi # Pull latest from Docker Hub
→ hub.docker.com/r/labsai/eddi
Most multi-agent frameworks (LangGraph, CrewAI, AutoGen) are Python/Node libraries — great for prototyping, hard to govern in production. EDDI approaches from the opposite direction: a deterministic engine built to safely govern non-deterministic AI.
| Dimension | Typical Python/Node Frameworks | EDDI |
|---|---|---|
| Concurrency | GIL or single-threaded event loop | Java 25 Virtual Threads — true OS-level parallelism |
| Agent Logic | Embedded in application code | Versioned JSON configurations — update behavior without redeployment |
| Security Model | Often relies on sandboxed code execution | No dynamic code execution at all; envelope-encrypted vault, SSRF protection |
| Compliance | Requires custom implementation | GDPR, HIPAA, EU AI Act infrastructure built-in |
| Audit Trail | Application-level logging | HMAC-SHA256 immutable ledger with cryptographic agent signing |
| Deployment | pip/npm + manual infrastructure | One-command Docker install, Kubernetes/OpenShift-ready |
"The engine is strict so the AI can be creative." — Project Philosophy
|
📊 Dashboard
Platform overview with active agents, workflows, quick actions, and recent conversations |
🤖 Agent Fleet
All deployed agents at a glance with status, descriptions, and one-click chat |
|
💬 Live Conversation
Real-time conversation with visible actions, step timing, and tool calls |
🗣️ Multi-Agent Debate
Peer Review with phased discussion: Opinion → Critique → Revision → Synthesis |
|
🛡️ Secrets Vault
Envelope-encrypted secrets with rotation tracking, checksums, and per-agent access control |
💰 Tenant Quotas
Rate limits, cost budgets, and live usage monitoring per tenant |
|
⚡ LLM Task Configuration
System prompt, model parameters, cascading, RAG, context window, and budget settings |
📋 Real-Time Logs
Live log stream with per-call cost tracking, token counts, warnings, and errors |
|
🧠 Persistent User Memory
Cross-session memory with categorized entries, visibility scoping, and conflict detection |
⏰ Scheduled Execution
Cron jobs and heartbeats with fire history, retry logic, and dead-letter tracking |
|
🔧 Agent Detail
Full agent config: environments, workflows, A2A, security, capabilities, and memory policy |
| Category | Providers |
|---|---|
| Cloud APIs | OpenAI · Anthropic Claude · Google Gemini · Mistral AI |
| Enterprise Cloud | Azure OpenAI · Amazon Bedrock · Oracle GenAI · Google Vertex AI |
| Self-Hosted | Ollama · Jlama · Hugging Face |
| Compatible | Any OpenAI-compatible endpoint (DeepSeek, Cohere, etc.) via baseUrl |
EDDI implements open standards — not proprietary APIs:
| Standard | Role | What It Enables |
|---|---|---|
| MCP (Model Context Protocol) | Server (42 tools) + Client | Control EDDI from Claude Desktop, Cursor, or any MCP client. Connect agents to external MCP tool servers |
| A2A (Agent-to-Agent Protocol) | Full implementation | Cross-platform agent communication, Agent Cards, and skill discovery |
| OpenAPI 3.1 | Native generation + consumption | Auto-generated spec. Paste any OpenAPI spec → get a fully deployed API-calling agent |
| OAuth 2.0 / OIDC | Keycloak integration | Authentication, authorization, and multi-tenant isolation |
| SSE (Server-Sent Events) | Streaming transport | Real-time chat responses, group discussion feeds, and live log streaming |
global, agent, group)longTerm / conversation / step scoping — EDDI's importance extraction mechanism| Tool | Description |
|---|---|
| 🔍 Web Search | DuckDuckGo or Google Custom Search |
| 🧮 Calculator | Sandboxed recursive-descent math parser (no eval(), no code injection) |
| 🌐 Web Scraper | SSRF-protected content extraction from web pages |
| 📄 PDF Reader | SSRF-protected document extraction |
| ☁️ Weather · 🕐 DateTime | Real-time data tools |
| 📊 Data Formatter · 📝 Text Summarizer | Data transformation tools |
| 🔌 HTTP Calls as Tools | Expose your own REST APIs as LLM-callable tools with full security sandboxing |
| 🧠 User Memory | Read/write/search persistent user memory |
| 🔙 Conversation Recall | Drill back into summarized conversation history |
| 📎 Multimodal Attachments | Image, PDF, audio, and video input with MIME-based routing |
persistent (reuse same conversation across fires) or new (fresh context each time)eval(), no script engines, no reflection-based execution| Regulation | EDDI Support |
|---|---|
| EU AI Act | Immutable HMAC-SHA256 audit ledger, decision traceability, risk classification guidance |
| GDPR | Cascading data erasure (Art. 17), data portability (Art. 15/20), restriction of processing (Art. 18), per-category retention, pseudonymization |
| CCPA | Right to delete, right to know, data portability |
| HIPAA | Deployment guide, BAA template, LLM provider BAA matrix, session timeout guidance |
| International | PIPEDA 🇨🇦 · LGPD 🇧🇷 · APPI 🇯🇵 · POPIA 🇿🇦 · PDPA 🇸🇬🇹🇭🇲🇾 · PIPL 🇨🇳 compatibility documented |
{{snippets.safety_rules}}/q/metrics (tools, vault, memory, scheduling, conversations). Pre-built Grafana dashboard includedtask.id, task.type, conversation.id, and agent.id/q/health/live and /q/health/ready📖 Monitoring Guide: See docs/monitoring/monitoring-guide.md for architecture overview, metrics reference, alerting rules, and a production checklist.
Building a Quarkus app that talks to EDDI? Use the quarkus-eddi extension:
<dependency>
<groupId>io.quarkiverse.eddi</groupId>
<artifactId>quarkus-eddi</artifactId>
<version>6.1.0</version>
</dependency>
@Inject EddiClient eddi;
String answer = eddi.chat("my-agent", "Hello!");
Features: Dev Services (auto-starts EDDI in dev mode), fluent API, SSE streaming, @EddiAgent endpoint wiring, @EddiTool MCP bridge. See the quarkus-eddi README for full docs.
| Guide | Description |
|---|---|
| Getting Started | Setup and first steps |
| Developer Quickstart | Build your first agent in 5 minutes |
| Architecture | Deep dive into EDDI's design and pipeline |
| LLM Configuration | Connecting to 12 LLM providers |
| Behavior Rules | Configuring agent routing logic |
| HTTP Calls | External API integration |
| RAG | Knowledge base retrieval setup |
| MCP Server | 42 tools for AI-assisted agent management |
| A2A Protocol | Agent-to-Agent peer communication |
| Slack Integration | Deploy agents to Slack and run group discussions |
| Group Conversations | Multi-agent debate orchestration |
| User Memory | Cross-conversation fact retention |
| Memory Policy | Commit flags and strict write discipline |
| Model Cascading | Cost-optimized multi-model routing |
| Scheduling & Heartbeats | Cron schedules, heartbeats, dream consolidation |
| Agent Sync | Live instance-to-instance sync and upgrade imports |
| Import / Export | ZIP-based agent portability and merge |
| Prompt Snippets | Reusable system prompt building blocks |
| Attachments | Multimodal attachment pipeline |
| Capability Matching | A2A skill discovery and routing |
| Security | SSRF protection, sandboxing, and hardening |
| Secrets Vault | Envelope encryption and auto-vaulting |
| Audit Ledger | EU AI Act-compliant audit trail |
| Kubernetes | Deploy with Kustomize or Helm |
| Monitoring & Tracing | Prometheus, Grafana, OpenTelemetry, alerting |
| Red Hat & OpenShift | RHEL support, certified container, automated release |
| Agent Father Deep Dive | How the meta-agent works |
| Full Documentation | Complete documentation site |
EDDI provides built-in infrastructure for regulatory compliance:
| Guide | Covers |
|---|---|
| GDPR / CCPA | Data erasure, export, Art. 18 restriction of processing, per-category retention, and consent guidance |
| HIPAA | Healthcare deployment guide — encryption, BAAs, LLM provider matrix, session management |
| EU AI Act | AI risk classification, decision traceability, immutable audit ledger |
| Privacy & Data Processing | Data flows, LLM provider matrix, international regulations (PIPEDA, LGPD, APPI, POPIA, PDPA, PIPL) |
| Compliance Data Flow | Single-page data flow diagram for auditors |
| Incident Response | Breach response runbook (GDPR 72h, CCPA 45 days, HIPAA 60 days) |
| Tool | Version | Notes |
|---|---|---|
| Java (JDK) | 25 | Eclipse Temurin recommended |
| Maven | 3.9+ | Bundled via mvnw / mvnw.cmd wrapper — no install needed |
| MongoDB | 6.0+ | Local instance or Docker (docker run -d -p 27017:27017 mongo:7) |
| Docker | Latest | For integration tests and container builds |
Windows users: Replace
./mvnwwith.\mvnw.cmdin all commands below.
Dev mode starts the application with live reload — code changes are picked up automatically without restarting:
# Linux / macOS
./mvnw compile quarkus:dev
# Windows (PowerShell)
.\mvnw.cmd compile quarkus:dev
Then open http://localhost:7070. The Quarkus Dev UI is available at http://localhost:7070/q/dev.
Dev mode also enables:
r in the terminal to re-run tests on changes💡 Secrets Vault: To use the secrets vault (storing API keys encrypted), set the master key before starting:
hljs language-bash# Linux/macOS export EDDI_VAULT_MASTER_KEY=my-dev-passphrase # Windows (PowerShell) $env:EDDI_VAULT_MASTER_KEY = "my-dev-passphrase" # Or in a .env file (already in .gitignore) echo "EDDI_VAULT_MASTER_KEY=my-dev-passphrase" > .envWithout this, the vault is disabled and secret management returns HTTP 503. Any passphrase works for local development. See Secrets Vault for production setup.
| Command | What It Does |
|---|---|
./mvnw compile quarkus:dev | Start dev mode with live reload (port 7070) |
./mvnw compile | Compile sources only (fast feedback) |
./mvnw clean compile | Clean build — delete target/ and recompile from scratch |
./mvnw test | Run unit tests (excludes *IT.java integration tests) |
./mvnw verify -DskipITs | Compile + unit tests + package (no integration tests) |
./mvnw verify | Full build — compile + unit tests + integration tests (requires Docker) |
./mvnw validate | Run Checkstyle code style checks |
./mvnw formatter:format | Auto-format Java sources using the project Eclipse formatter |
./mvnw package -DskipTests | Build the JAR without running tests (for install.sh --local) |
./mvnw clean package '-Dquarkus.container-image.build=true' | Build the app + Docker image |
./mvnw package -Plicense-gen -DskipTests | Generate third-party licenses (Red Hat certification) |
./mvnw quarkus:dev -Dsuspend | Start dev mode and wait for debugger on port 5005 |
./mvnw quarkus:dev -Ddebug=false | Start dev mode without the debug agent |
JaCoCo is configured to run automatically during ./mvnw test. After tests complete, find the coverage report at:
target/site/jacoco/index.html
| Property | Default | Description |
|---|---|---|
-Dquarkus.http.port=<port> | 7070 | Override the HTTP port |
-Dquarkus.mongodb.connection-string=<uri> | mongodb://localhost:27017 | MongoDB connection |
-Dquarkus.profile=<profile> | dev | Active Quarkus profile (dev, test, prod) |
-DskipTests | false | Skip all tests |
-DskipITs | true | Skip integration tests only |
# Build app + Docker image
./mvnw clean package '-Dquarkus.container-image.build=true'
# Build without container (for install.sh --local)
./mvnw package -DskipTests
# Generate third-party licenses (Red Hat certification)
./mvnw package -Plicense-gen -DskipTests
# Quickstart (one-file deployment)
kubectl apply -f https://raw.githubusercontent.com/labsai/EDDI/main/k8s/quickstart.yaml
# Kustomize overlays
kubectl apply -k k8s/overlays/mongodb/ # MongoDB backend
kubectl apply -k k8s/overlays/postgres/ # PostgreSQL backend
# Helm
helm install eddi ./helm/eddi --namespace eddi --create-namespace
Includes overlays for auth (Keycloak), monitoring (Prometheus/Grafana), NATS messaging, Ingress, and production hardening (HPA, PDB, NetworkPolicy). See the Kubernetes Guide for details.
We welcome contributions! Please read our Contributing Guide for details on setting up your development environment, code style, commit conventions, and the pull request process.
Every PR is automatically checked by CI (build + tests), CodeQL (security), dependency review, and AI-powered code review.
EDDI ships with security-by-default for production deployments:
AuthStartupGuard fails startup if OIDC is disabled in production without explicit opt-outSafeHttpClient with private IP blocking, redirect validation, and scheme enforcementX-Content-Type-Options, X-Frame-Options, Content-Security-Policy configured out of the boxsecurity-extended queriesFor vulnerability reports, see our Security Policy. For architecture details, see Security Architecture.
This project follows the Contributor Covenant Code of Conduct.
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba