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
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.
| Problem | OMK |
|---|---|
| Parallel agents overwrite the same work | Resource claims and owned paths bound each lane |
| An agent says "done" before the build is green | Acceptance predicates block unverified completion |
| A session crashes midway | Replayable state and session repair preserve the run |
| The preferred model changes | The control and evidence model stays stable |
Ten short captures of the control plane's main workflows.
- 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
npm install -g open-multi-agent-kit --ignore-scripts
omk --version
omkOr without a global install:
npx --ignore-scripts open-multi-agent-kitThe open-multi-agent-kit package ships OMK.
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 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.
The Correctness Wall intercepts writes and runs acceptance predicates. A red predicate blocks completion — a green-looking reply is never a release signal.
Every verified run produces a receipt: commands, exit codes, workspace state, evidence digest, and timestamps. Receipts are inspectable artifacts, not marketing claims.
omk session doctor detects unterminated turns and orphan results, then
plans a dry-run repair against the tamper-evident replay ledger. An
interrupted run is a recoverable state, not a loss.
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.
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.
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.
For growth work, start with !skill:omk-marketing (or /skill:omk-marketing).
It routes to the smallest subset of the marketingskills pack. Common intents:
| Intent | Skills to load |
|---|---|
| SEO / AEO / discoverability | seo-audit, ai-seo, programmatic-seo, schema, site-architecture, content-strategy |
| Positioning & research | product-marketing, customer-research, competitors, competitor-profiling, marketing-plan, marketing-psychology |
| Copy & content | copywriting, copy-editing, content-strategy, emails, social, video, image, ad-creative |
| Conversion | cro, signup, onboarding, paywalls, popups, pricing, offers, ab-test-setup, ab-testing |
| Acquisition | ads, paid routes via ads/ad-creative, cold-email, directory-submissions, lead-magnets, free-tools, aso, sms |
| Lifecycle & revenue | churn-prevention, referrals, revops, sales-enablement, prospecting, co-marketing, community-marketing, public-relations, launch |
| Measurement & ops | analytics, marketing-loops, marketing-ideas, marketing-council |
Load one primary skill (plus at most one supporter). Prefer evidence
(analytics, research) before spend or publish actions.
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.mdIt 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 --extensionsA 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.
| Package | Description |
|---|---|
| omk-ai | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |
| omk-agent-core | Agent runtime with tool calling and state management |
| open-multi-agent-kit | Interactive coding agent CLI |
| omk-tui | Terminal UI library with differential rendering |
npm install omk-agent-core # Agent runtime
npm install omk-ai # Multi-provider LLM API
npm install omk-tui # Terminal UIAdaptOrch 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.
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- Direct external dependencies are pinned to exact versions.
.npmrcsetssave-exact=trueandmin-release-age=2.package-lock.jsonis the dependency ground truth.npm run checkverifies pinned direct deps and the generated shrinkwrap.- The published CLI includes
npm-shrinkwrap.jsonto pin transitive deps. - CI installs with
npm ci --ignore-scripts; scheduled audits runnpm audit.
See CONTRIBUTING.md for contribution guidelines and development.md for project setup.
- Read the documentation
- Browse all public Skills
- Harness Graph control plane
- Changelog (coding-agent / open-multi-agent-kit)
- Release notes for v0.95.1
- Unreleased draft notes
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, 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).
- Harness Graph control plane (
.omk/harness-graph/): deterministic agents×skills×hooks×MCP inventory with 3-tier skill classification, bipartite SPOF criticality, Louvain communities, association-rule lift, hybrid CF wiring recommendations (jaccard · idf · lift_boost), fail-closedhealth_gate.py+ debt allowlist, executivedashboard.md, review-onlywiring-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 optionalHARNESS_GRAPH_STRICT=1.
- 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.
- 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.
- Added explicit multi-account subscription authentication:
/loginnow opens an account picker for configured OAuth providers, offers a separate Add another account action, captures ChatGPT/Claude/Google email identities, and pins requests to the selected account without silent rotation or failover. - Added multi-provider quota meters to the pinned STATUS RAIL: every configured Codex, Claude, Kimi Code, and GLM/ZAI subscription is shown together with independent windows and reset countdowns. Codex polling passively merges official
x-codex-primary-*,x-codex-secondary-*, andcodex.rate_limitssignals when they are present. Claude Code's passiveanthropic-ratelimit-unified-*headers preserve recent 5-hour/7-day values; when the usage endpoint is rate limited and the snapshot is incomplete, an account-scoped, hourly-capped one-token Haiku quota check mirrors Claude Code's startup fallback. Model Studio Token Plan is identified asQWEN TOKEN PLANwithconsole-only quotabecause its official usage endpoint requires an Alibaba Cloud console session rather than the plan API key; Qwen OAuth/Grok remain explicitquota API unavailableentries.
- Removed the persistent GitHub star prompt from interactive startup. The
/starcommand remains available as an explicit, on-demand repository shortcut and no longer writes a tracking flag to settings. - Anthropic-bound images now default to a 1,900 px longest edge and pass through a final header-level size guard, preventing sticky oversized-image request failures from clipboard and extension paths.
- Cancelling manual compaction now clears the transient compaction notice and restores queued input without duplicating messages.
- Refreshed built-in model metadata via
omk-aiso OpenCode Zen (opencode) gains thekimi-k3entry that OpenCode Go (opencode-go) already had, with current provider handoff coverage for both catalogs. glm-5.2on OpenCode Zen/Go now exposes thexhigh/maxthinking levels in the thinking-level selector (Ctrl+T//thinking); it was previously capped athighbecause top-tier levels require an explicitthinkingLevelMapentry to appear.- Auto-compaction now fails fast on insufficient-balance 429 responses instead of repeating the same quota error through every retry.
Release notes live in RELEASE_NOTES_v0.95.0.md.
- Persistent GitHub star nudge on interactive startup: first installs and anyone who has not confirmed a star keep seeing a nag banner every launch until they star https://github.com/dmae97/omk and run
/star(writes globalgithubStarred: truein~/.omk/agent/settings.json)./star resetbrings the nag back. Project settings cannot silence it.
Release notes live in RELEASE_NOTES_v0.94.1.md.
MIT