Product Architecture
Myrm ships as two product layers plus optional cloud control plane. Understanding the split helps you deploy, debug, and migrate from other agents.Layers
Plain language: the frontend is what you click; the server is the door into your workspace; the harness is the brain and hands inside the sandbox.
Harness public API (integration contract)
Open-source server code must integrate throughmyrm_agent_harness.api — not deep imports into internal harness modules.
Architecture CI in
myrm-agent-server blocks from myrm_agent_harness.*._* imports so harness internals can evolve while the public api.__all__ stays stable. Release wheels ship readable .py stubs plus compiled core extensions.
Why it matters for SaaS: the control plane rolls a new runtime Docker image tag per user sandbox (server + harness bundled in the image). Server glue imports only api.hooks / api.skills, so the glue layer stays stable across image rolls — a pattern most monolithic open-source agents do not support.
Request flow (typical chat)
- User sends a message in frontend (or an IM channel via server).
- Server authenticates, loads agent profile, streams events to the UI.
- Harness runs the agent loop: tools, memory recall, sub-agents, context compression.
- Results stream back through server → UI (and optional channel notification).
What to configure where
Deployment modes (same features, different packaging)
Device & hardware layer: what works today, what does not
“Personal AI companion” competitors put the agent onto your own board, watch, or old phone. Here is our split, stated plainly:
Honest difference from the competition: Hermes Gadget already ships an open SDK, a desktop simulator (the same firmware core runs in a desktop window, so you can develop and accept without hardware), and a per-model physical verification matrix. We agree with that path and plan the same discipline (a passing build is not a working device; unverified items must be written down explicitly) — but it is not shipped today, so we do not market it.
Platform support & verification status: every capability is labelled
Implementation depth differs across the three platforms, so we do not write “works everywhere”. Each capability carries a status:
Legend: ✅ has a real-stack / real-binary test record; ⚠️ code exists but no physical-machine verification; ❌ explicitly disabled on that platform or not implemented. Passing unit tests and CI is not the same as working on the machine — unlabelled means unverified.
The full list of unverified items is tracked on our roadmap; the discipline itself is a capability verification matrix with support labels.
Migrating from other agents
- Config: import paths for Hermes / OpenClaw-style exports (see Quick Start).
- Memory: Myrm uses structured DB memory + GUI — not a single
MEMORY.mdfile. - Skills: prebuilt + community discovery; evolution is approval-gated.
- Channels: 26 built-in providers — re-link OAuth/ tokens in Settings.
Next
Quick Start
Run locally in minutes.
Memory System
How cross-session memory works.
Sandbox Runtime
Where tools actually execute.
Desktop App
Tauri packaging and updates.