✦ tech
under
the hood.
architecture
system overview
foundation
elizaOS
The agent framework Milady OS is built on. Core agent loop, memory abstractions, plugin system, adapter interfaces.
desktop shell
Electrobun
Native desktop container. Cross-platform, ships its own WebView, handles window management and OS integration.
frontend
React + Vite
Web UI and embedded desktop interface. WebGL pipeline for real-time VRM avatar with expression and animation control.
data flow
Memory retrieval and plugin hooks run between agent loop and LLM call. All state persisted locally in SQLite.
development pipeline
no human reviewers.
this is the pipeline.
Every commit goes through agent review and agent merge. No human approvers. The result: 1768+ PRs shipped with consistent standards, zero reviewer fatigue.
PR submitted
agent categorizes: feature · fix · refactor · chore · docs · breaking
automated checks
TypeScript · ESLint · unit tests · build · dependency audit
semantic review
reads full diff · checks logic, API misuse, security, style
auto-merge or feedback
approved PRs merge immediately · specific inline comments if not
human QA
real users install the build · file issues · repeat
API reference
REST API
localhost:2138
Available when Milady OS is running. All responses JSON. Streaming responses use Server-Sent Events.
/api/healthruntime status and version
{ "status": "ok", "version": "2.0.10", "uptime": 3621 }/api/chatsend message · streaming via SSE
{ "id": "msg_01", "role": "assistant", "content": "..." }/api/modelslist configured providers and availability
{ "providers": [{ "id": "claude", "available": true }, ...] }/api/historyretrieve conversation history by session
{ "messages": [...], "total": 42 }/api/models/switchswitch active provider mid-conversation
{ "active": "gpt-4o", "switched": true }WebSocket gateway
localhost:18789
chat.tokensingle streaming tokenchat.completefull response on completionmodel.switchactive provider changedplugin.eventcustom event from a pluginsystem.readyruntime finished startupconst ws = new WebSocket('ws://localhost:18789')
ws.onopen = () => {
ws.send(JSON.stringify({
type: 'subscribe',
events: ['chat.token', 'chat.complete'],
}))
}
ws.onmessage = (e) => {
const { event, data } = JSON.parse(e.data)
if (event === 'chat.token') {
process.stdout.write(data.token)
}
}