README.md

August 16, 2026 · View on GitHub

OMK//CONTROL provider-neutral routing, evidence gates, and parallel lanes

OMK girl — operator avatar for the OMK//CONTROL coding harness

OMK

Open Multi-Agent Kit — provider-neutral coding agent, multi-agent orchestration, and evidence-gated control plane.

OMK is an open-source multi-agent coding harness: route work across models, bound parallel lanes, block outcomes, and keep replayable evidence for Codex, Claude Code, OpenCode, and local agents.

Keywords: multi-agent orchestration · coding agent CLI · provider-neutral LLM router · evidence-gated automation · agent skills · MCP · DAG parallel agents · session recovery

npm version npm downloads per month npm total downloads latest release MIT license supported Node.js version

open-multi-agent-kit npm version omk-ai npm version omk-agent-core npm version omk-tui npm version omk-adaptorch-wpl npm version


Scope. Verify. Replay

What is OMK? A verified, provider-neutral control plane for coding agents (Codex, Claude Code, OpenCode, local models). It turns a goal into a bounded DAG, runs parallel lanes with owned paths, blocks “done” without fresh evidence, and stores replayable receipts for review and recovery.

Use OMK when you need multi-agent software engineering with acceptance predicates, not chat that only claims the build is green.

ProblemOMK
Parallel agents overwrite the same workResource claims and owned paths bound each lane
An agent says "done" before the build is greenAcceptance predicates block unverified completion
A session crashes midwayReplayable state and session repair preserve the run
The preferred model changesThe control and evidence model stays stable

OMK in motion

Ten short captures of the control plane's main workflows.

1 · Install and boot

OMK install and boot

2 · Goal to DAG

OMK goal decomposition into a DAG

3 · Parallel lanes

OMK parallel execution lanes

4 · Provider routing

OMK provider-neutral routing

5 · Evidence gate

OMK evidence gate

6 · Skill routing

OMK skill routing

7 · MCP health

OMK MCP health view

8 · Context budget

OMK context budget

9 · Session doctor

OMK session doctor

10 · Packages and themes

OMK packages and themes


What OMK controls

  • Execution scope — resource claims, owned paths, bounded parallel lanes
  • Completion — declared predicates and fresh verification
  • Evidence — commands, exit status, workspace state, receipts
  • Recovery — replayable session state and repair tooling
  • Providers — one operator model across supported coding agents

Installation

npm install -g open-multi-agent-kit --ignore-scripts
omk --version
omk

Or without a global install:

npx --ignore-scripts open-multi-agent-kit

The open-multi-agent-kit package ships OMK.


OMK//CONTROL TUI

The OMK//CONTROL startup surface is the default operator view. The header reads omk v<package.version> · OMK//CONTROL, using the installed workspace package version as its source of truth.

OMK//CONTROL terminal dashboard


Core concepts

Scope

!omk plan turns a fuzzy objective into a bounded DAG: owned paths, ordered waves, and an acceptance predicate attached to every node before a single line of code is written.

Predicates

The Correctness Wall intercepts writes and runs acceptance predicates. A red predicate blocks completion — a green-looking reply alone is not a release signal.

Receipts

Every verified run produces a receipt: commands, exit codes, workspace state, evidence digest, and timestamps. Receipts are inspectable artifacts, not marketing claims.

Replay

omk session doctor detects unterminated turns and orphan results, then plans a dry-run repair against the replay ledger. An interrupted run is a recoverable state, not a loss.


Supported agents and providers

OMK is provider-neutral. The underlying agent can be Codex, Claude Code, OpenCode, or a local model; the execution and evidence model stays consistent.

Providers stay interchangeable. The routing layer picks the best arm for the task, but the control plane never changes when you swap models. NVIDIA NIM's z-ai/glm-5.2 entry transmits reasoning effort through max. Quota and billing-cycle failures can switch to an authenticated resilience candidate before retry; see provider resilience.


Verification boundary

OMK is not a security sandbox for arbitrary hostile code by default. Supported verification and sandbox modes are documented explicitly. Any run without the required evidence is labeled UNVERIFIED.

See containerization.md for sandbox patterns: OpenShell, Gondolin micro-VM, and plain Docker.


Extensions, MCP, and skills

OMK packages distribute skills, extensions, prompts, and themes through one control plane. Build a package once, install it through omk, pin it, scope it to a project when needed.

Public repository skills are listed in SKILLS.md. Operator installs can also load hubs such as omk-marketing (routes the bundled marketing/ SEO skill pack) without dumping every skill into context.

MCP is a runtime client, not just a health view: configured stdio servers are started on demand and their tools are registered into the session as <server>__<tool>. Connection is lazy, and a server that fails to start is reported without affecting the rest of the session. See docs/mcp.md, or run node scripts/mcp-smoke.mjs to see what your configuration actually resolves to.

Marketing, SEO, and AEO skill map

For growth work, start with !skill:omk-marketing (or /skill:omk-marketing). It routes to the smallest subset of the marketingskills pack. Common intents:

IntentSkills to load
SEO / AEO / discoverabilityseo-audit, ai-seo, programmatic-seo, schema, site-architecture, content-strategy
Positioning & researchproduct-marketing, customer-research, competitors, competitor-profiling, marketing-plan, marketing-psychology
Copy & contentcopywriting, copy-editing, content-strategy, emails, social, video, image, ad-creative
Conversioncro, signup, onboarding, paywalls, popups, pricing, offers, ab-test-setup, ab-testing
Acquisitionads, paid routes via ads/ad-creative, cold-email, directory-submissions, lead-magnets, free-tools, aso, sms
Lifecycle & revenuechurn-prevention, referrals, revops, sales-enablement, prospecting, co-marketing, community-marketing, public-relations, launch
Measurement & opsanalytics, marketing-loops, marketing-ideas, marketing-council

Load one primary skill (plus at most one supporter). Prefer evidence (analytics, research) before spend or publish actions.

Harness Graph (agents × skills × hooks × MCP)

Repository checkouts include a build-time harness control plane under .omk/harness-graph/:

bash .omk/harness-graph/run.sh
# read: .omk/harness-graph/out/dashboard.md  ·  SCORECARD.md

It inventories agent→skill/hook/MCP edges, ranks bipartite SPOFs, clusters skills (Louvain), scores association lift, recommends wiring (hybrid CF), and fail-closes on new dead links. See the harness-graph README and scorecard.

# Global, pinned OMK package
omk install npm:some-omk-package@1.2.3

# Project-local, pinned Git package
omk install -l git:github.com/example/omk-package@v1.2.3

# Inspect and control installed resources
omk list
omk config
omk update --extensions

A skills-only package is an ordinary OMK package:

{
  "name": "omk-workflows",
  "keywords": ["omk-package"],
  "omk": {
    "skills": ["./skills"]
  }
}

Use the minimum necessary skills per turn — usually one to three. A skill is loaded when it earns its place in the task, not because it happens to be installed.


Published packages

PackageDescription
omk-aiUnified multi-provider LLM API (OpenAI, Anthropic, Google, etc.)
omk-agent-coreAgent runtime with tool calling and state management
omk-protocolVersioned run contracts and pure semantic reducers
omk-book-to-skillOptional document-to-skill compiler and provenance adapter
open-multi-agent-kitInteractive coding agent CLI
omk-tuiTerminal UI library with differential rendering
npm install omk-agent-core   # Agent runtime
npm install omk-ai           # Multi-provider LLM API
npm install omk-protocol     # Run contracts and semantic reducers
omk install npm:omk-book-to-skill@0.95.2  # Optional document compiler
npm install omk-tui          # Terminal UI

Adaptorch MCP integration

AdaptOrch MCP is a separate, proprietary reliability-kernel service (not part of this monorepo) that OMK can route orchestration tasks through: topology-aware DAG routing, multi-model synthesis, and consistency verification. Backed by a published paper (arXiv:2602.16873).

The adaptorch and adaptorch-prod MCP servers plus the adaptorch-route and adaptorch-synthesize skills ship in OMK's default execution preset. Actually invoking AdaptOrch still requires an ADAPTORCH_CONTROL_PLANE_TOKEN.

This is distinct from packages/adaptorch-wpl in this monorepo, the stable Work Packet Loop package shipped as a runtime dependency of open-multi-agent-kit since v0.91.0.


Development

npm ci --ignore-scripts  # Install the locked dependency graph
npm run build            # Build all packages
npm run check            # Lint, format, and type check
npm test                 # Run the hermetic default test suite
./omk-test.sh            # Run OMK from sources

Supply-chain hardening

  • Direct external dependencies are pinned to exact versions.
  • .npmrc sets save-exact=true and min-release-age=2.
  • package-lock.json is the dependency ground truth.
  • npm run check verifies pinned direct deps and the generated shrinkwrap.
  • The published CLI includes npm-shrinkwrap.json to pin transitive deps.
  • CI installs with npm ci --ignore-scripts; scheduled audits run npm audit.

Contributing

See CONTRIBUTING.md for contribution guidelines and development.md for project setup.

Documentation

FAQ (AEO)

Is OMK a coding agent or an orchestrator? Both: open-multi-agent-kit is an interactive coding-agent CLI; OMK//CONTROL adds multi-agent DAG lanes, skill/MCP routing, and evidence gates on top.

Which models does OMK support? Provider-neutral — Codex, Claude, OpenCode Zen/Go, Kimi, GLM/ZAI, NVIDIA NIM, local providers, and more via omk-ai. Swap models without changing the control/evidence model.

How is completion verified? Acceptance predicates and fresh command evidence. Unverified runs are labeled UNVERIFIED; green chat is not a release signal.

Can OMK do marketing/SEO work? Yes, via skills (omk-marketing hub + SEO/CRO/ content skills listed above). Publishing, ads spend, and outreach still require explicit operator confirmation.

Where do release notes live? Versioned notes under .github/RELEASE_NOTES_v*.md; the coding-agent CHANGELOG is the source of truth and syncs the “Recent releases” block below (npm run sync:readme-releases).

Recent releases

Release v0.96.0

Added

  • Added omk-protocol, the versioned TaskSpec -> ExecutionAttempt -> Observation -> EvaluationResult -> RuntimeDecision contract package, with runtime validators, explicit waivers, and pure semantic and runtime-decision reducers.
  • Added evidenceReceiptToObservation() to project integrity-checked EvidenceReceipt v3 cores into immutable protocol facts. Legacy mutable EvidenceStatus and TaskContract verdict APIs remain compatible but are deprecated.
  • Added the optional omk-book-to-skill package with compile/update commands, a pinned upstream workflow, advisory generated-skill scanning, and SHA-256 source/artifact provenance checks. Python extractors remain outside OMK core.
  • Added deterministically seeded, bounded fast-check model and property suites for WPL transitions, replay migration and CAS, evidence freshness, subagent topology, run-journal CAS, and timeout/abort settlement ordering.

Changed

  • New replay events declare jcs-rfc8785-v2 and hash RFC 8785-canonical payloads. Events without an algorithm remain verified as json-stringify-v1; mixed ledgers and exports preserve legacy records without rewriting them.

Fixed

  • NVIDIA NIM's z-ai/glm-5.2 entry now transmits reasoning_effort, including the generated max thinking level; other NVIDIA models keep conservative compatibility defaults.
  • Billing-cycle and quota exhaustion, including provider 403 usage-limit responses, now classify as provider.rate_limit and can switch to the first configured, authenticated resilience candidate before retry. Each attempt remains journaled, and a recovered retry ends with a later completed termination.
  • Subagent DAG scheduling now sorts simultaneously ready lanes by lane ID, so topology aggregation does not depend on input insertion order.
  • Local release bundles now include omk-adaptorch-wpl, allowing isolated installs of the full packed workspace without resolving that dependency from the registry.

Release notes live in RELEASE_NOTES_v0.96.0.md.

Release v0.95.2

Changed

  • macOS sessions now derive replay-ledger process identity from bounded BSD ps -o lstart= output, so replay-lock acquisition no longer fails closed during AgentSession startup on Darwin while Linux /proc behavior remains unchanged.
  • The status rail now verifies connected MCP servers with protocol pings, marks dead processes as failed, and retries failed servers on a bounded slower cadence without spawning idle servers.
  • Interactive UX now includes an empty-editor affordance hint, elapsed-time and interrupt details on the working indicator, transient information notices, width-safe editor scroll borders, and opt-in footer CPU/memory metrics.
  • Extension tools can resolve timeouts from current context. The subagent extension uses this to remove task-count, concurrency, execution-budget, attempt, and outer tool-timeout caps in Ultra while preserving explicit cancellation and non-Ultra limits.
  • The startup control panel now identifies the product with WELCOME TO OMK instead of legacy Pi agent branding.
  • Context-budget prompts use compact metadata for valid zero-resource plans while retaining cache-state and legacy optimizer compatibility telemetry; diagnostic and non-empty plans keep full observability, and invalid budgets bypass the plan cache so diagnostics cannot be hidden by a prior hit.
  • The workspace context-budget cache scans every persisted key/value, keeps credential-shaped entries in memory only, and removes unsafe legacy snapshots instead of persisting secret-shaped text.
  • Exact context representations now reuse content-addressed cache entries across different queries and budget sizes instead of forcing avoidable misses.
  • Opt-in reasoning-router learning now isolates default ledgers and compiled bias snapshots per repository or git worktree, captures explicit manual thinking-level overrides as bounded feedback, and keeps updates behind the shipped, deterministic omk router-feedback compile-bias between-session command. Snapshot loading rejects nonzero biases below the strong-evidence threshold, unsafe or inconsistent counts, and duplicate cells; compilation uses an exclusive randomized temporary file before atomic rename.
  • Session bash now defaults to OS sandbox enforcement instead of ledger-only audit mode. macOS sandbox-exec and Linux bwrap restrict writes to the workspace/temp directories and disable network access; missing backends fail closed. Unwrapped audit and disabled off modes now require an explicit OMK_BASH_SANDBOX value, and unknown values resolve to enforce.

Release notes live in RELEASE_NOTES_v0.95.2.md.

Release v0.95.1

Added

  • Harness Graph control plane (.omk/harness-graph/$): \text{deterministic} \text{agents} \times \text{skills} \times \text{hooks} \times \text{MCP} \text{inventory} \text{with} 3-\text{tier} \text{skill} \text{classification}, \text{bipartite} \text{SPOF} \text{criticality}, \text{Louvain} \text{communities}, \text{association}-\text{rule} \text{lift}, \text{hybrid} \text{CF} \text{wiring} \text{recommendations} ($jaccard · idf · lift_boost), fail-closed health_gate.py + debt allowlist, executive dashboard.md, review-only wiring-patch, synthetic unit + property tests, and CI workflow .github/workflows/harness-graph.yml.
  • Harness Graph ops tooling: compact-skills-index.mjs (demand-union index rebuild), prune-retired-hooks.mjs (retired hook capability cleanup), apply-wiring-patch.py (half-bundle completion checklist), session-start drift audit hook with optional HARNESS_GRAPH_STRICT=1.

Fixed

  • Harness Graph green-metric traps: runtime-derived hook/MCP catalogs (no hardcoded answer keys), bipartite SPOF instead of empty articulation tables, default-only model-drift axis (failover is advisory), skills-index no longer dumps the full on-disk universe into false orphan-active counts.

Docs

  • Root README: AEO/SEO-oriented positioning, FAQ, and marketing/growth skill keyword map (omk-marketing + marketingskills pack).
  • Spec/plan/scorecard for harness-graph engineering (specs/012-harness-graph-engineering/, .omk/harness-graph/SCORECARD.md).

Release notes live in RELEASE_NOTES_v0.95.1.md.

License

MIT