For application developers
Build feature modules in Python and YAML while the runtime handles routing, UI effects, provider access, and scoped persistence.
Python runtime for agentic applications
Democr.ai gives developers a runtime for modules, server-driven UI, AI providers, document ingestion, sandbox policies, and audit trails through one SDK boundary.
Build feature modules in Python and YAML while the runtime handles routing, UI effects, provider access, and scoped persistence.
Configure engines, extractors, knowledge stores, and runtime services outside feature code.
Keep extensions behind SDK boundaries with policy checks, task visibility, and observable execution paths.
Why it exists
A working prototype can be assembled quickly. A maintainable system also needs permissions, UI state, tool contracts, ingestion queues, provider configuration, and traceability. Democr.ai makes those concerns explicit runtime services.
Pages are described on the server and rendered by web or desktop clients. Actions return effects and stream incremental updates.
Modules, engines, and extractors consume public SDK contracts instead of importing core internals.
Uploads can flow through asynchronous extraction, full markdown, chunking, embedding retrieval, and knowledge graph traversal.
Feature modules ask for objectives or configured models. Provider startup, warmup, and invocation are runtime responsibilities.
Extensions run behind import and access boundaries. A Python Process Guard is reinforced on Linux by kernel enforcement — Landlock, seccomp-BPF, and cgroup/iptables network egress.
Actions, tasks, model calls, tool activity, and data mutations can be correlated into observable execution flows.
Runtime shape
Client implementations stay renderers. Application behavior lives in modules and reaches platform services through the SDK.
Module authoring
A module defines models, YAML UI, actions, tools, agents, and skills. It does not need to own frontend state management, direct model loading, media transport, or knowledge indexing.
- kind: Row
id: chat_page
stretch: true
children:
- kind: ThreadList
id: chat_thread_list
action:
name: chat.open_thread
- kind: MessageList
id: chat_message_list
capabilities:
- messages.append
- messages.replace
- kind: Composer
id: chat_composer
send_action:
name: chat.start_thread
context:
composer: chat_composer
@action("submit_message")
@permission_required(["chat.write"])
async def submit_message(ctx, session, module_sdk):
turn = create_user_turn(module_sdk, ctx)
stream_id = ctx["stream_id"]
await module_sdk.effects.publish(
stream_id,
module_sdk.effects.ui_collection_append(
"chat_message_list",
"messages",
message_row(turn["message"]),
),
)
await run_chat_orchestration(
module_sdk,
ctx,
turn["conversation"],
turn["message"],
)
Local to distributed
Democr.ai is local-first, but the same runtime shape can point to external infrastructure when a deployment needs shared services or distributed workers.
| Capability | Local setup | Distributed setup |
|---|---|---|
| Relational storage | SQLite for core and module data | Postgres or compatible managed database |
| Media | Local filesystem storage | S3-compatible object storage and optional public delivery endpoint |
| Knowledge graph | Ladybug local graph store | Neo4j-compatible graph backend |
| Vector retrieval | sqlite-vec | Milvus or Pinecone-style vector providers, certification varies by provider |
| Runtime coordination | In-process or local IPC services | Redis, TCP services, remote workers |
| Observability | SQLite-backed event and audit storage | Postgres, ClickHouse, and optional OTLP export, certification varies by provider |
Provider logos show implementation targets, not certification status. Pinecone and ClickHouse are implemented but still require validation through the current integration pass.
System areas
These are the areas that usually become custom glue code in agentic applications. Democr.ai makes them explicit and reusable.
Application surfaces with models, YAML pages, actions, tools, agents, skills, and locales.
Installable providers for chat, reasoning, embedding, speech, vision, and local model runtimes.
Installable document processors that convert uploads into markdown, chunks, and metadata.
Asynchronous ingestion with retrieval over embeddings, extracted markdown, and graph context.
SDK boundaries, import checks, access policy, a Python Process Guard, and Linux kernel enforcement (Landlock, seccomp, cgroup/iptables egress).
Runtime task state, agent/tool progress, model calls, and audit trails for data mutations.
Project status
Democr.ai is an active open-source runtime. The goal is not to hide complexity behind generated application code, but to put the common layers around agentic software in one place so feature modules stay understandable.