Home
Democr.ai developer documentation
Build runtime-native modules, UI, tools, and agents¶
Democr.ai gives module developers a server-driven UI runtime, an SDK boundary, provider contracts, sandbox policies, observability, and agent/tool orchestration through one application surface.
Use these docs to build modules without guessing how the runtime works.
Choose Your Path¶
Start from the workflow that matches what you need to do next.
Setup
Run Democr.ai locally
Install the environment, start desktop or server mode, and understand the runtime process shape.
First feature
Create a module
Build the smallest useful module before going deeper into manifests, actions, and UI contracts.
Real module
Study the chat module
Follow a complete tutorial covering models, UI, actions, tools, agents, skills, and streaming updates.
Interface
Use A2UI components
Find component contracts, YAML examples, binding behavior, visibility rules, and runtime updates.
What You Build Against¶
Democr.ai separates application code from runtime infrastructure. Modules stay inside the SDK boundary while the core owns orchestration, storage, transports, and enforcement.
Modules
Package pages, actions, models, RBAC, locales, tools, agents, skills, and commands.
Server-driven UI
Describe screens as A2UI/YAML and let clients render the same contract across transports.
AI runtime
Resolve model capabilities, run completions and streams, expose tools, and keep providers isolated.
Knowledge
Extract documents, ingest markdown and chunks, retrieve scoped content, and track background work.
Sandbox
Restrict filesystem, process, network, and external access through runtime policies.
Operations
Use config validation, migrations, provider setup, observability, and troubleshooting tools.
Runtime At A Glance¶
The same module can run through desktop IPC, web sockets, or server mode because rendering and actions go through the runtime contract.
Default launch
python main.py
Server runtime
python main.py --mode server
Web client
python main.py --mode server --client webclient
Config check
python main.py validate-config --path ./config.example.yaml
Migrations
python main.py migrate all
Autogenerated module migration
python main.py create-migration data -m "message" --autogenerate --module module_name