Core vs Console
Edictum ships as two products: a standalone Python library and an optional self-hosted console. Choose what fits your deployment.
Right page if: you are deciding whether to use just the core library or also deploy Edictum Console, and need to understand what each provides. Wrong page if: you already know what you need and want setup instructions -- see https://docs.edictum.ai/docs/quickstart for core or https://docs.edictum.ai/docs/console/setup for console. Gotcha: the core library has zero runtime dependencies and works fully offline. The console never evaluates contracts -- agents do that locally. Console adds visibility, live updates, and approval workflows on top.
Edictum ships as two products that work independently or together.
Core Library
pip install edictum — MIT licensed, zero runtime dependencies, Python 3.11+.
The core library evaluates contracts in-process, inside your agent. No server, no network calls, no external dependencies at runtime.
What you get:
- 4 contract types: preconditions, postconditions, session contracts, sandbox contracts
- 8 framework adapters: LangChain, OpenAI Agents, CrewAI, Agno, Google ADK, Semantic Kernel, Claude SDK, Nanobot
- YAML contract pipeline with JSON Schema validation and SHA-256 versioning
- CLI tools:
edictum validate,check,diff,replay,test - Observe mode for testing contracts against live traffic before enforcing
- Postcondition findings with remediation callbacks
- OpenTelemetry instrumentation (via
edictum[otel]) - Built-in templates:
file-agent,research-agent,devops-agent - Local audit sinks: stdout, file (.jsonl), in-memory collecting sink
Optional extras:
| Extra | What it adds |
|---|---|
edictum[yaml] | YAML contract parsing + JSON Schema validation |
edictum[otel] | OpenTelemetry span emission |
edictum[cli] | CLI tools (validate, check, diff, replay, test) |
edictum[gate] | Coding assistant governance (Claude Code, Cursor, Copilot CLI, Gemini CLI, OpenCode) |
edictum[server] | Console SDK (connects agents to a running console) |
Edictum Console
Self-hosted operations console — FSL-1.1-ALv2 licensed, single Docker image, Postgres 16 + Redis 7.
The console never evaluates contracts. Agents do that locally using the core library. The console adds centralized management, visibility, and coordination on top.
What it adds:
- Live contract hot-reload — edit contracts in the dashboard, agents pick up changes instantly via SSE
- Human-in-the-loop approvals — approval queue with Slack, Discord, Telegram, email, and webhook notifications
- Fleet monitoring — live connected agents, drift detection, coverage analysis (enforced/observed/ungoverned tools)
- Contract management — versioned library, compositions, bundle signing (Ed25519), YAML diff viewer
- Audit event feed — centralized audit trail with faceted search, histogram, and shareable URLs
- Agent assignment — rule-based bundle routing with glob patterns and tag matching
- AI contract assistant — generate contracts from natural language (Anthropic, OpenAI, OpenRouter, Ollama)
- Multi-environment — separate bundles and notification routing per environment (dev/staging/prod)
When to use each
| Scenario | Core only | Core + Console |
|---|---|---|
| Single agent, static contracts | Yes | Overkill |
| Prototyping / local development | Yes | Optional |
| Contracts change via code deploys | Yes | Optional |
| Audit logs go to your existing observability stack | Yes | Optional |
| Need live contract updates without redeploying agents | — | Yes |
| Need human approval workflows (Slack/Telegram/Discord) | — | Yes |
| Need visibility into agent fleet behavior | — | Yes |
| Multiple environments with different contract sets | — | Yes |
| Regulatory audit trail requirements | — | Yes |
| 10+ agents across teams | — | Yes |
The core library is always required. Console builds on top of it — it does not replace it.
How they connect
Agent Process Console (optional)
┌──────────────────────┐ ┌──────────────────────┐
│ Your Agent Code │ │ Dashboard (React) │
│ + Edictum (core) │◄──── SSE ────►│ FastAPI Server │
│ │ │ Postgres + Redis │
│ Contracts evaluated │── events ───► │ Audit Feed │
│ locally, in-process │◄── bundles ── │ Contract Management │
└──────────────────────┘ └──────────────────────┘- Agents evaluate contracts locally — the console never sees tool call arguments or outputs
- The console pushes contract updates to agents via Server-Sent Events
- Agents send audit events (decisions, not data) to the console for the feed
- If the console goes down, agents continue with their last known-good contracts
Next Steps
- Quickstart — get the core library running in 5 minutes
- Console setup — deploy the console with Docker Compose
- Adapters — choose the adapter for your framework
Last updated on