Skip to content

Concept: self-contained desktop build — bundle the omadia backend so the app runs standalone (no Docker) #40

Description

@iret77

Concept — not yet scheduled. Captures a research session's findings so this can be picked up.

Goal

Make the omadia-ui desktop app self-contained: bundle the omadia backend so a non-technical user can double-click an installer and get a working local omadia — no Docker, no separate server to run. This is the "native installer" path (Path a) of the onboarding effort tracked in byte5ai/omadia#337.

Today omadia-ui is a canvas client that connects to a separately-running omadia server (app/src/main/discovery.ts / auth.ts; default ws://127.0.0.1:8181/omadia-ui/canvas). This issue is about shipping a build variant that brings its own backend.

What already exists (reusable foundation)

  • Electron shell, electron-vite, electron-builder, auto-release pipeline for macOS (dmg arm64/x64), Windows (NSIS), Linux (AppImage).
  • Signing capability — not a blocker (byte5 has an Apple Developer account; current ad-hoc signing is a deferred config choice, not an inability).
  • Lume renderer, server discovery + login.

What needs building

Building block Status Note
middleware sidecar new lifecycle manager in app/src/main (spawn/kill); PLATFORM_DATA_DIR → OS app-data dir
embedded Postgres + pgvector new e.g. @boomship/postgres-vector-embedded; per-OS/arch binary
web-ui as a bundled, interim admin surface new see "two-UI reality" below
seed first admin on first boot new the client cannot create an admin — call kernel /api/v1/auth/setup on first run
local-default discovery small point VITE_OMADIA_WS_URL at the co-bundled backend

The two-UI reality (verified against both repos)

The canvas client and the operator UI are distinct front-ends, not redundant:

Flow needed for a real trial canvas (omadia-ui) web-ui (Next.js, in byte5ai/omadia)
first-admin setup + LLM key / provider /setup, /admin/providers
Agent Builder (elementary — omadia isn't really usable without it) /admin/builder
run an agent + chat
audit-receipt / run trace /routines/.../runs

The canvas channel exposes only discovery + the WS canvas protocol; Setup/Builder/Audit are web-ui/kernel routes. So the self-contained app must bundle web-ui as an interim admin layer alongside the canvas, until the canvas covers Setup/Builder/Audit itself (planned, but not soon — capacity-bound). Bundle = canvas (host UI) + web-ui (interim admin) + middleware + embedded Postgres.

Engine / key

API key via the Setup wizard today. byte5ai/omadia#309 (subscription via the official CLI) makes it key-free later — caveat: in a double-click app the Claude CLI would have to be bundled/required, whereas the setup-prompt path (Path b) gets it for free since the installing agent already runs on the subscription.

Cross-platform note

The hard part is not the shell or signing (both already exist for 3 OSes) — it's the native backend deps (argon2, better-sqlite3) + the Postgres binary per OS/arch. Open scope question: mac-first (use the existing Apple setup, Mac-leaning evaluator base) vs. all 3 OSes at once.

Related

Status

Concept. A hands-on dry-run of the non-Docker install (to measure real robustness + produce the build steps) is the next step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions