control plane for AI coding agents

The Harness
of Harnesses.

Emma is a control plane for every AI coding agent you run — Claude Code, Codex, your own harness. One chat, one set of terminals, from your phone, your desktop, your servers. The agents keep working. You carry the whole thing in your pocket.

Built by a CTO who ran his day on it before it had a landing page — shipping code, watching pipelines, reporting back to his phone.

self-hosted · outbound-only · your keys stay home

[ two ways in — talk to it, or type at it ]

emma — attached
api-box · attached

Three pieces. One surface.

Most AI tooling gives you another window to babysit. Emma gives you one place where all of them report.

EMMA CLIENT

The interface

A PWA that runs on your phone, desktop, or browser. Conversational chat and full terminal views over every agent session — attach to any session from any device, and the conversation travels with you. Start a task at your desk; approve the deploy from the sidewalk.

EMMA SERVER

The control plane

The relay that ties it together — run as your own instance, local or deployed. Durable conversations on an event log, an Activity center where agents report, timezone-correct scheduling for agent jobs, policy gates and approvals for autonomous work, plus backlog and file managers.

EMMA-CODE

The harness

Our own harness, built for teams that want flexibility: tuned for local models, standing instructions that persist across sessions, and native Kleos memory integration. Run it beside Claude Code and Codex — Emma treats them all the same.

Shipping today. Not a roadmap.

Everything below is running in production instances right now.

MULTI-TERMINAL

Tabbed terminals plus a 2×2 multiview. Four live sessions on one phone screen.

ACTIVITY FEED

Where agents report. Approvals and questions arrive as actionable items, not noise.

POLICY GATES

Autonomy levels with teeth. Low-autonomy work holds for your explicit yes before anything irreversible.

KLEOS MEMORY

Context-graph memory that travels with the agent — across sessions, machines, and subscriptions.

SESSION CONTROL

Spawn and kill agent sessions from your phone. Claude Code, Codex, and emma-code, side by side.

DURABLE CONVERSATIONS

Conversations bind to named sessions and survive reconnects, restarts, and device switches.

SCHEDULED AGENTS

A scheduling dashboard for autonomous jobs — cron in your timezone, DST-correct, with per-job notification policy.

REMOTE BROWSER

An embedded browser pane — a live screencast of a dedicated Chrome on your machine. Log into anything remotely; sessions persist.

VOICE

Voice in, voice out. Run your agents hands-free from wherever you are.

DISK OUTBOX

At-least-once delivery. An agent's reply written to disk beats a dropped connection every time.

BACKLOG MANAGER

A deferred-work backlog your agents can read, file to, and pick up — synced into the app.

FILE EDITOR

Edit workspace files in-app, with conflict detection so two writers never silently clobber each other.

Nothing dials in. Everything dials out.

The daemon runs on your machines and connects out over plain HTTPS and WSS. No inbound ports. No VPN. No tunnel service holding your traffic. Your code and your keys never leave your infrastructure — the only thing that moves is the conversation.

PER-INSTANCE ISOLATION

Every instance gets its own database and its own tokens. No shared data, no default endpoints — a misconfigured instance refuses to boot rather than dial someone else's server.

AUDITABLE BY DESIGN

One append-only event log carries every message, every approval, every job run. If it happened, it's in the log.

HARNESS-AGNOSTIC

Claude Code, Codex, and emma-code sessions run side by side, bridged into one chat surface. Cohesive work streams across multiple harnesses.

ON SECURITY

The daemon is the perimeter.

Every agent session runs under the Emma daemon's supervision. The daemon owns the session lifecycle and treats its workspace as the boundary — rules assert what agents may touch. Autonomy is tiered and gated: low-autonomy work holds at a policy gate for your explicit approval before anything irreversible. Keys and credentials stay on your machines — they never transit the relay. Every instance has its own tokens, and every action lands in the append-only event log. A rogue agent has nowhere quiet to act.

ON THE ROADMAP

Where this goes

The next step is multi-machine: daemons deployed across your infrastructure as ordinary Kubernetes or Docker services, a Machines tab in the client, and a deployed agent on every box. Kleos becomes the fabric agents use to talk to each other — shared context, not shared copy-paste. You stop SSHing into servers and start conversing with them: ask the agent on the box what changed, and it tells you. Role-based access for multiple clients and team fleet management round it out. None of this is shipped yet. All of it is where the architecture is already pointed.

What makes the Emma architecture unique.

Pipelines are event streams, not scripts. Most agent frameworks chain calls inside a single process — one orchestrator, one lifetime, one machine. When it dies, the pipeline dies with it. Emma reimagines the agentic pipeline as a distributed system: work enters as a directive, coordination is an append-only event log, and every harness on every machine is a peer worker that leases work, executes in its own context, and reports back by appending events. An event-based eval workflow — evaluation at every seam, distributed by design.

eval fails → work loops back · completion is a verdict, not a claim

LOOPS ARE NATIVE

The pipeline is a loop, not a line.

This architecture existed before the landing page did, and it was built for one reason: guardrails around autonomous work. Every stage can send work back as readily as forward — a result that fails its verdict re-enters the loop for another pass instead of reaching you. Goal completion is judged by evaluation, never by the model's own confidence, and a hallucinated claim doesn't survive the trip: it gets caught at a seam and worked again before it can land in the final output. The agents iterate; you read conclusions that held up.

THE LOG IS THE COORDINATOR

State lives in the event log, not in a process. Cursors let any client or worker resume from any point — kill anything mid-pipeline and it picks up exactly where the log says it was. Your phone going offline is the same event as a laptop lid closing: a consumer paused at a cursor.

DELIVERY SEMANTICS THAT HOLD

At-least-once delivery with idempotent settling: every message carries a durable identity, replays settle instead of duplicating, and a disk-backed outbox survives restarts, deploys, and sleeping machines. Follow-ups sent mid-turn fold into the running work — absorbed, never dropped, never falsely failed.

EVAL AT EVERY SEAM

Each stage evaluates before work advances — classification, policy tier, plan approval, result verdict. Autonomy scales with confidence, per directive: routine work flows straight through; consequential work waits at a gate with your name on it.

ONE WAY WORK HAPPENS

Scheduled jobs are just another producer — a cron row emits a directive into the same pipeline, through the same gates, into the same threads, onto the same audit log. There's no second path to debug at 2 AM.

Built for the person who runs the agents.

FOR DEVELOPERS

Stop juggling terminals

One $19 subscription puts Claude Code, Codex, and local models behind one portable interface. Your context follows you from phone to desktop to server. Four terminals on one screen, voice when your hands are full, and an agent that reports back instead of waiting for you to check on it.

FOR STARTUP CTOS

Don't lose your alpha

One control plane over every frontier vendor. Route work to the right model and harness — which is how spend actually comes down — and give your team cohesive work streams instead of scattered terminals. Your company keeps its edge: code and context stay on your infrastructure, not a vendor's.

FOR HIGH-TRUST ENVIRONMENTS

Own every byte

Self-hosted everything. Outbound-only connections, per-instance data isolation, keys that never leave your infrastructure, and an air-gap-friendly architecture. Every action lands in an auditable event log with explicit approvals.

Built for government use. Deploy on your approved infrastructure. Under awarded work, source access to the emma-code harness is available by license with DigitalAdvisors — modify it and secure it to your approved environments' cyber requirements. Emma carries an architecture that is auditable and upgradeable — built for Fortify scans.

"Isn't this just tmux and Tailscale?"

You could stitch together tmux, Tailscale, SSH, and a few cron jobs. People do. Here's the honest breakdown.

WHAT THE DIY STACK GETS YOU

  • A terminal on your phone
  • Your own machines, your own keys
  • Zero subscription
  • A fun weekend project

WHAT IT DOESN'T

  • Conversations that survive reconnects and device switches
  • Policy gates that hold irreversible work for your yes
  • Timezone-correct scheduling with notification policies
  • One Activity feed where every agent reports
  • A unified surface across Claude Code, Codex, and your own harness

The tool escaped the lab.

Emma is built by Justin Winthers — CTO and co-founder of RealEstateAPI.com, acquired by Beacon Software. RealEstateAPI serves hundreds of millions of API requests per day for 300+ customers across billions of property records.

Emma started as one agent running his day: shipping code, watching pipelines, scheduling its own work, reporting back to his phone. It ran his day before it had a landing page.

Then it grew into an architecture — for managing infrastructure, for shipping fast, and for a problem every CTO recognizes: your developers want the sprawl of AI subscriptions, and the overspend shows up when they drift past plan limits into usage credits. Emma is how Justin gave his team the tools they asked for and kept every seat inside its plan. It solved this for him first — an agent that became a full architecture and management tool for startups and teams.

Two prices. No tiers to decode.

Cancel anytime. Your server instance and your data are yours.

DEVELOPER

$19/mo

  • Full Emma Client, on every device
  • Your own Emma Server instance
  • The emma-code harness
  • One person, unlimited sessions
Request access

ENTERPRISE DEPLOYMENTS

Let's talk

  • Self-hosted, on your infrastructure
  • Deployment and architecture support
  • Designed for high-trust environments
Talk to sales