Monomind v2.2: Org Runtime v2 - Real Agent Sessions, Not Scripted Prompts
A daemon-hosted architecture where every role in an org is a live, provider-backed agent session, governed by an in-process policy engine and streamed over an append-only event bus.

Org Runtime v2: a single OrgDaemon process hosting multiple orgs, each with independently governed role sessions connected by a shared event bus.
Earlier versions of Monomind's org feature worked by having a single Claude Code boss agent, running under the Task tool, prompt its way through a org's roles and manually post updates to a dashboard. It worked, but every role's behavior lived inside one shared prompt context, and there was no structural boundary between what one role could see, call, or spend versus another.
Monomind v2.2, released July 17, 2026, replaces that flow with Org Runtime v2. The core change is architectural: each role in an org is now a real, independently-running provider-backed agent session, hosted inside a long-lived OrgDaemon process, coordinated through an append-only event log, and constrained by a per-role policy engine. This post walks through the three pieces that make that possible.
Org Runtime v2 - OrgDaemon, OrgBus, PolicyEngine
.monomind/orgs/<name>.json1. OrgDaemon: One Process, Many Orgs, Real Sessions
Every role is a live agent session, not a scripted turn in a shared prompt
At the center of Org Runtime v2 is OrgDaemon, a process that can host multiple orgs concurrently. Each org is defined by a config file at .monomind/orgs/<name>.json, and each role within that config gets its own agent session - a real, provider-backed session, not a simulated or scripted stand-in inside a shared conversation.
The execution path for a role is straightforward: runAgentSession() sets up the session, hands off to runOneSession() to run a single turn, which in turn calls into the underlying runner's run() method to actually talk to the provider. Because each role's session is a distinct object with its own state, one role's context window, tool calls, and conversation history never bleed into another's.
This matters because it's what makes the rest of the system - the event bus, the mailbox, the policy engine - possible in the first place. You can't govern or audit a role's behavior if that role doesn't have a clean, separately addressable execution context.

{
"name": "sample-team",
"roles": [
{
"name": "lead",
"provider": "claude-code",
"policy": {
"tools": { "allow": ["Read", "Edit", "Bash"] }
}
},
{
"name": "reviewer",
"provider": "claude-code",
"policy": {
"tools": { "allow": ["Read"] }
}
}
]
}Key Takeaways
- ✓OrgDaemon hosts multiple orgs in a single long-lived process.
- ✓Each role gets its own real, provider-backed agent session - not a scripted turn inside a shared prompt.
- ✓Session execution flows through runAgentSession() → runOneSession() → runner.run().
2. OrgBus and Mailbox: How Roles Actually Communicate
An append-only event log replaces the old dashboard curl posts
In the v1 flow, keeping a dashboard in sync meant the boss agent manually curl-posting status updates as it went. Org Runtime v2 removes that entirely. Every meaningful event in an org's lifecycle - a role starting, a message being sent, a tool call happening - is written to OrgBus, an append-only JSONL event log with in-process fanout.
Because OrgBus is append-only, both the dashboard and any historical view of the org are reading from the same source of truth: nothing is summarized or re-derived after the fact. Messages between roles are delivered through a per-role Mailbox, so a role only ever sees the messages actually addressed to it, rather than the full firehose of the org's activity.
The dashboard itself runs on port 4242 and is auto-launched by a Claude Code SessionStart hook - there's no separate CLI command to start it. It discovers running daemons through .monomind/control.json, which is how it finds the right OrgBus stream to tail.

{"ts":"2026-07-17T14:02:31Z","org":"sample-team","role":"lead","type":"message.sent","to":"reviewer"}
{"ts":"2026-07-17T14:02:33Z","org":"sample-team","role":"reviewer","type":"session.started"}Key Takeaways
- ✓OrgBus is an append-only JSONL event log with in-process fanout - the single source of truth for org activity.
- ✓Per-role Mailbox delivers only the messages addressed to that role.
- ✓The dashboard on :4242 is auto-launched by a SessionStart hook and discovers daemons via .monomind/control.json.
3. PolicyEngine: In-Process Governance, and Migrating from v1
Tool limits, file scope, web access, and token budgets - enforced per role, with an audit trail
Each role session in Org Runtime v2 runs behind its own PolicyEngine. This is real, in-process enforcement, not documentation of intended behavior: tool allow/deny lists, file scope restrictions, web access control, and token budget caps are all checked before a role's session is permitted to act, and every decision is written to an audit trail.
This is a direct consequence of the OrgDaemon architecture - because each role is a distinct session rather than a turn inside one shared prompt, the policy engine has a clean boundary to attach to. A role restricted to Read-only tools genuinely cannot invoke Edit or Bash; there's no shared context for it to reach around the restriction through.
The old v1 flow - the Task-tool boss agent driving everything through prompts and manual dashboard posts - is now legacy. It's still reachable via /mastermind:runorgv1 for org configs that haven't been migrated yet, and the org migrate command converts v1 configs into the v2 shape shown earlier in this post.

“Governance has to live inside the session boundary, not around it - otherwise it's just a label on a config file.”
- Monomind Core Team
Key Takeaways
- ✓PolicyEngine enforces tool allow/deny lists, file scope, web access, and token budget caps per role, with a full audit trail.
- ✓Policy enforcement is possible precisely because each role runs as a separate real session, not a shared prompt turn.
- ✓The v1 flow is legacy, reachable via /mastermind:runorgv1; org migrate converts v1 configs to v2.
Conclusion & Future Outlook
Org Runtime v2 didn't add new prompts or new marketing surface area to Monomind's org feature - it replaced the execution model underneath it. Real per-role sessions, an append-only event bus, and in-process policy enforcement are the foundation every org run has been built on since v2.2. Monomind is Apache-2.0 licensed and available on GitHub.
Deploy Monomind Digital Workers Today
Run open-source AI agent teams on your own infrastructure or hire Monoes Workforce to build and audit fully managed operations.