Skip to Content
DocsArchitectureSystem model

System model

Cmdop splits into three parts. The machine owns the files, the tools, the execution, and the session. The relay makes that machine reachable without requiring an inbound port on it — the agent dials outward. The machine workspace is the browser surface you attach from, and it holds nothing durable.

Three parts, with a clear split of responsibility.

The three parts

PartWhat it isWhat it owns
MachineA joined computer running the cmdop agent.The files, the tools, the execution, and the session.
RelayThe service machines dial into. It is embedded in the same cmdop binary.Reachability and the embedded web console.
Machine workspaceThe browser surface you work in.Your view of a session, and the requests you make of it.

The machine is where everything durable lives. The relay makes it reachable without requiring an inbound port on the machine — the agent dials outward. The workspace is how you attach.

Why the split matters

Because execution state is single-homed on the machine, the relay going down or your browser closing does not lose work. And because the workspace is only an attachment point, you can attach from somewhere else without migrating anything.

Operating the relay — starting it, choosing how it is reachable, bringing more machines into the fleet — is a separate loop from doing work in the workspace. See Deployment.

Common questions

Where does Cmdop actually run the work?

Work runs on the joined machine. The machine owns the files, tools, execution, and session; the relay provides reachability, and the workspace is the surface you attach from.

Why does the machine not need an inbound port?

The agent on the machine dials outward to the relay and keeps that connection open. The relay uses that live relationship to make the machine reachable without requiring an inbound port on the machine.

What happens if the browser closes?

The browser workspace is only an attachment point. Closing it detaches your view; it does not move or erase the work owned by the joined machine.

Last updated on