There are two different mob surfaces:
- Host APIs: typed
mob/*methods over JSON-RPC and the SDK-backedMobclasses - Agent-side tools:
mob_*tools exposed inside a running agent session
mob_* tools as if they were the public RPC/SDK API.Create a mob
- JSON-RPC
- Python
- TypeScript
- Rust
Spawn members
- CLI
- JSON-RPC
- Python
- TypeScript
- Rust
The CLI exposes helper, callable-run, and run-resource commands such as
spawn-helper, fork-helper, run, runs, status, logs, attach, run-flow, member-status, respawn, and wait-kickoff. It does not expose the raw host-side mob/spawn lifecycle directly.Place a member on a bound host
Run the member-host daemon in its own restart-stable realm. Keep this process running:0600 descriptor to the mob from the controlling host, then use
the reported host id as placement:
REST and public MCP expose those three observations but not host binding,
grants, member live control, or hard cancel. Python and TypeScript SDKs wrap
the full JSON-RPC family. Trusted in-process
MobHandle callers also expose
hard cancel. Browser mobs stay single-host.Resume a durable member under a new role
Role migration is a trusted Rust-host operation. It preserves the exact mob, member identity, session, and transcript while declaring the exact predecessor role for one cold Resume request:SpawnMemberCustomizer with
ctx.spawn_source == SpawnSource::Resume and
spec.declare_resume_from_role("domain")? when cold restore reconstructs the
spec after a process restart. The runtime rejects a missing or incorrect
predecessor declaration and refuses migration while the exact session is live,
even if that actor is idle.
Wire and unwire peers
- JSON-RPC
- Python
- TypeScript
- Rust
Send work to a member
Use the host control plane when an application needs to deliver content directly to a member session.mob/member_send and SDK Member.send require the target’s profile to set
external_addressable: true; omission means false. The creation examples
opt in the lead only. Internal flow dispatch and ordinary peer messaging do
not require this external-entry opt-in.
- JSON-RPC
- Python
- TypeScript
Submit tracked work
Use the work lane when you need a cancellable work reference rather than plain content delivery. The work lane uses the opaquemember_ref returned by spawn, member list, or
member send responses. Externally originated work also requires
external_addressable: true on the selected member’s profile; use lead-1’s
member_ref for these examples.
- JSON-RPC
- Python
- TypeScript
Run a flow
- CLI
- JSON-RPC
- Python
- TypeScript
- Rust
Helper-oriented CLI flows
The current CLI is strongest for helper-style workflows on an existing mob: Assume ordinary memberslead-1 and analyst-2 have already been spawned as
above. Keep lead-1 live as the fork source, and give each temporary helper a
fresh identity distinct from those persistent members.
retirement_error reports cleanup debt without erasing the committed result.
Do not rely on a completed one-shot helper remaining live as a later fork
source. The status and respawn commands above address the ordinary members,
not the temporary helpers.
