Pixel-art translation of J. M. W. Turner, Rain, Steam and Speed: The Great Western Railway (1844): a steam locomotive crosses a railway bridge in rain and mist, its firebox glowing.Pixel-art translation of J. M. W. Turner, Rain, Steam and Speed: The Great Western Railway (1844): a steam locomotive crosses a railway bridge in rain and mist, its firebox glowing.

How Ogun is built

Ogun is a separate process with its own state, built directly on the zeus-core engine. Browser sessions stay with Zeus; code runs out of process; everything is journaled.

Components

Ogun on your machine, and the optional Zeus app beside it. Only zeusd ever holds browser sessions.

What each component is responsible for

ComponentOwnsNever does
ogundWorkflow IR validation, run state machine, scheduler and triggers, approvals for its domain, the artifact store, lineage, the cost ledgerHold browser cookies; run user code in-process; open a network listener (ogun-server, a separate process, is the hub’s listener)
zeus-core (embedded)Segmented, resumable transfers; the journal and commit protocol; verification; filesystem safety; the artifact store formatProduct policy, UI or configuration
OperatorsOne unit of work each. Core operators run inside ogund; adapters, code and model operators run in a child process with declared inputs, outputs and network policy, sandboxed with bubblewrap on Linux (none yet on Windows)See Ogun’s state directory or credentials they were not given
ogun CLIvalidate, hash, diff, put, run, backfill, partition-status, show; approvals on your terminalApprove from a pipe or on an agent’s behalf
MCP server (ogun mcp)Sixteen tools over stdio: validate, diff, plan a backfill and list operators without a daemon; store workflows, start runs and read status, partitions, approvals and streams with oneDecide approvals, extend permissions, return credentials
Ogun StudioOverview, workflows, runs, partitions, approvals, artifacts and lineage, streams, edges, connectors and an agent screen; desktop for Windows and Linux, and Studio-web served by ogun-serverHide the agent’s words inside approval facts
A2A bridge (planned)A workflow agent other agents can delegate to; off by default; localhost and tokenRun inside the daemon
Zeus session bridgeSession-gated acquisition through zeusd as a service clientCarry cookies to Ogun: files and provenance come back, secrets do not

Trust boundaries

Sessions stay in Zeus

Ogun’s engine is built with a session provider and proxy-fetch port that always answer no. Browser-session sources go through zeusd, the only process that ever holds them.

Approvals are human-only

Approvals are bound to request hashes and decided only on trust surfaces (terminal, Studio). MCP, A2A and the scheduler can raise them, never answer them.

Code runs outside

Python, shell, dbt and every external tool run in child processes with declared filesystem and network access, never in ogund. The sandbox is bubblewrap on Linux and sandbox-exec on macOS; Windows has none yet.

One local endpoint

ogund listens only on a local IPC endpoint: a Unix socket or a named pipe. HTTP surfaces (ogun-server for a hub, MCP over HTTP, A2A) are separate bridge processes.

Decision records

RecordDecisionStatus
ADR 0002Ogun is a separate product built on zeus-core; sessions only through zeusd as a service client; two GUIs; each product owns its LLM ladder, A2A and approvalsAccepted
ADR 0003The workflow IR is data, not code; every authoring layer compiles to itAccepted
ADR 0004Integrate, do not replace: tools are operators; Ogun is embeddable in orchestratorsAccepted
ADR 0005Benchmark runs are a run profile with environments and evaluatorsAccepted
ADR 0007Continuous streams are windowed partitionsAccepted
ADR 0009 and 0010The platform support matrix (O-12); a self-hosted server mode with OIDC and rolesAccepted
ADR 0013 and 0014Connectors are manifests that hold names, never secrets; agent threads over a closed tool setProposed
Zeus ADR 0011zeus-core is shared with Ogun; Zeus keeps its consumer scope; the service client kindAccepted

Technology

  • Rust, edition 2024; unsafe code only in isolated, reviewed platform modules
  • tokio and rustls; HTTP/1.1 and HTTP/2
  • redb for the run store and the engine’s transfer journal
  • BLAKE3 and SHA-256; JCS (RFC 8785) for canonical hashing
  • JSON-RPC 2.0 over a Unix socket or named pipe as the single daemon contract (O-15)
  • MCP over stdio, written in the ogun CLI (protocol revision 2025-06-18)

Specifications come before code. Ogun’s contracts (O-00 to O-17, all drafts) build on the Zeus specifications for conventions, the daemon API, approvals and the artifact store, so both products share one vocabulary.

Disagree with a decision?

Write to info@vernesystems.com. The records are accepted, and the specifications are drafts that feedback can still change.