Open Multi-Agent Kit
Scope the work. Route the right agents. Verify every release.
Provider-neutral coding-agent CLI and multi-agent control plane for Codex, Claude Code, OpenCode, and local models.
Quick start ·
Control loop ·
Safety boundary
Packages ·
Documentation
Coding agents can produce code quickly. They can also overlap work, lose state, route to the wrong model, and claim completion before the build is green. OMK adds a control plane around that work.
| Problem | OMK invariant | Inspectable output |
|---|---|---|
| Parallel agents overwrite each other | Owned paths and resource claims bound every lane | DAG and workspace state |
| A model says “done” too early | Acceptance predicates require fresh evidence | Commands, exits, and receipts |
| A provider or model changes | Routing stays separate from the execution contract | Provider-attributed attempts |
| A session stops midway | Replayable state supports session recovery | Ledger, repair plan, durable goal |
OMK is for engineering work that needs a checkable result, not a convincing chat response.
npm install -g open-multi-agent-kit --ignore-scripts
omk --version
omkWithout a global install:
npx --ignore-scripts open-multi-agent-kitRequirements: Node.js 22.19 or newer. The published CLI package is
open-multi-agent-kit.
- Scope — turn a goal into a bounded DAG with owned paths, ordered waves, resource claims, and acceptance predicates.
- Route — select models, agent skills, MCP tools, and extensions for the job without changing the evidence contract.
- Verify — run the declared build, type, test, audit, and release gates. Required red predicates block completion.
- Replay — preserve receipts, repair interrupted sessions, and continue durable goals from explicit reducer state.
The animation changes once every 1.5 seconds and contains no flashing. The four steps above are the complete text alternative.
The default operator surface shows active work, routing, context, MCP state, and verification signals in one terminal UI.
The header reads omk v<package.version> · OMK//CONTROL; the installed package
version is the source of truth.
- Bounded DAG parallel agents with deterministic ready-lane ordering.
- Per-lane owned paths and resource claims.
- Explicit cancellation, timeout, and retry settlement.
- Durable goals and checkpointed continuation across bounded rounds.
- Acceptance predicates backed by fresh command evidence.
- Versioned observations, evaluation results, and runtime decisions.
- Replay ledgers, receipts, session repair, and SDK session inspection.
- Advisory judging that cannot replace required deterministic gates.
- Provider-neutral model registry through
omk-ai. - Agent skills loaded on demand instead of dumped into every prompt.
- MCP runtime client with lazy stdio server startup and registered tools.
- Extensions for tools, commands, events, providers, themes, and UI surfaces.
See providers, MCP, skills, and extensions.
AgentSession built-in local bash uses OS sandbox enforcement by default:
sandbox-exec on macOS and bwrap plus unprivileged user namespaces on Linux.
Local shell spawns restrict writes to the workspace and OS temporary directory,
disable network access, and fail closed with sandbox.backend_missing when an
enforcement backend is unavailable.
This is not read-confidentiality or whole-process containment. Other file
tools, extension and custom-tool code, injected or remote BashOperations, and
the OMK process keep the permissions of the process running them. Use
containerization when the
boundary must cover more than built-in local bash. A run without required
evidence remains UNVERIFIED.
OMK keeps routing separate from control and evidence. Codex, Claude Code,
OpenCode Zen/Go, Kimi, GLM/ZAI, native xAI/Grok, NVIDIA NIM, and local providers
can participate through omk-ai while the run contract stays stable.
Native xai keeps subscription OAuth and XAI_API_KEY billing separate. See
provider setup,
provider resilience, and
Grok integration.
| Package | Purpose |
|---|---|
open-multi-agent-kit |
Interactive coding-agent CLI and control plane |
omk-agent-core |
Agent runtime, tool execution, and DAG scheduling |
omk-ai |
Unified multi-provider LLM API |
omk-protocol |
Versioned run contracts and semantic reducers |
omk-adaptorch-wpl |
Work Packet Loop runtime |
omk-book-to-skill |
Optional document-to-skill compiler |
omk-tui |
Differential-rendered terminal UI library |
npm install omk-agent-core
npm install omk-ai
npm install omk-protocol
omk install npm:omk-book-to-skill@0.96.2
npm install omk-tuiOMK is the local, MIT-licensed control plane. AdaptOrch is a separate,
proprietary hosted patch-evidence service. It requires its own account and is
not part of this repository or the omk-adaptorch-wpl package.
- Documentation index
- Usage
- Providers and models
- Automation and SDK
- Run protocol
- Sessions and recovery
- Security
- Containerization
- Public skill catalog
- Changelog
- Release notes for v0.96.2
npm ci --ignore-scripts
npm run build
npm run check
npm test
npm run release:localDirect dependencies are pinned, CI installs with --ignore-scripts, and the
published CLI includes a generated npm-shrinkwrap.json. Read
CONTRIBUTING.md and the
development guide before sending a
change.
Both. open-multi-agent-kit is an interactive coding-agent CLI;
OMK//CONTROL adds bounded orchestration, routing, evidence gates, and recovery.
No. Providers can change while the execution and evidence contracts remain stable. Provider-specific capabilities still vary and are documented explicitly.
Declared acceptance predicates must pass with fresh command evidence. Chat text, a reviewer opinion, or stale output cannot replace a required gate.
Yes. Replay state, receipts, durable goals, and session repair preserve enough structure for bounded recovery instead of silently starting over.
- Added resource-aware host snapshots, admission decisions, generation-safe per-run tool-cap leases, workload classification, weighted FIFO permits, and
omk doctor resources//resourceoperator surfaces. - Added internal Vitest, Jest, workspace, and Go shard planners plus a journaled executor with corruption quarantine, completed-shard resume, admission-aware execution, and aggregate
workload_shard_result.v1evidence. Automatic session-command sharding is not enabled. - Added an internal subagent lane launcher that enforces parent admission width and shares its permit pool; live child-launch wiring is not enabled.
- Added exactly-once
prompt_settledand an opt-in completion sound. - Added a local-only resource observation journal at
.omk/runs/<promptRunId>/resource-observations.jsonl, recording bounded probe health, admission caps, classification, permit waits, settlement, and sound outcomes without raw host measurements. - The
QWEN TOKEN PLANstatus entry now uses the official QwenCloud management CLI to show the seven-day usage window and reset time.
- The session-termination classifier now accepts
resource.*causes for memory, disk, CPU, heap, unavailable probes, and permit queue overflow. Only CPU pressure can qualify for automatic retry; live resource gates currently return bounded block results. resourceGovernor.mode: "observe"is the default and records decisions without enforcing caps. Both"observe"and"off"preserve v0.96.1 scheduling behavior.
- Top-level
omk --helpnow listsomk doctor resources [--json]. - Removed development-only
prepareandpostinstallhooks from the published CLI manifest; default npm installs no longer call an unshipped workspace-linking script. - Bound resource observations and completion-sound results to their originating prompt journals, including consecutive fast observe-mode runs.
- Capped workspace shard plans at 16 while preserving every workspace through deterministic chunks.
- Ensured
prompt_settledconsistently followsagent_endas the final run event.
- Qwen quota discovery never sends an inference API key to a management endpoint, never reads browser cookies, and passes only non-secret process context to the QwenCloud child CLI.
- Removed the shipped subagent example's
offensive-jailbreakskill route.
- Documented an attributable AdaptOrch.com link for evaluating a separate hosted patch-evidence service; AdaptOrch remains distinct from the MIT-licensed OMK packages.
Release notes live in RELEASE_NOTES_v0.96.2.md.
- Added built-in harness loop extensions: identical-loop detection, compaction tool-pair repair, Kimi/K3/GLM/Grok/Claude prompt presets, and
/goalwith automatic continuation plus explicitpause,resume, evidence-gatedcomplete, andclearlifecycle commands. - Added pass-gated advisory best-of-N selection with strict weighted judge responses, forced-redacted candidate material, deterministic fallback, evaluation-bound request digests, and an explicit
ModelRegistry-backed LLM adapter. - Added digest-bound
Goal / Core / Verified / Open / Nextseam checkpoints to the existing durable-goal journal, including/goal checkpoint <json>and checkpoint-aware continuation. - Added
omk sdk session status|tail|inspect|sendfor external session controllers. Ambiguous selectors now fail closed, writes require exact IDs, active owners block concurrent access, and credential-shaped transcript text is redacted from output. - Legacy
readmode (OMK_OMP_SEAMS=0) now reports a private0700temporary spill directory with an exclusive0600file for recoverable line or byte truncation; it never writes beside or through the source path. A first line that alone exceeds the byte cap remains preview-only.
- Sandbox backend probing is now cached per local bash operations instance. All enforce-mode fallback verdicts share the concrete missing-backend diagnosis (
bwrap, user namespaces,sandbox-exec, or unsupported platform). Policy semantics are unchanged. - Extracted the session system-prompt assembly from
AgentSession._rebuildSystemPromptinto the pureassembleSessionSystemPromptmodule (core/session-system-prompt.ts). Provider playbook resolution stays at the call site; the assembly is now directly testable. - Extracted the retry/failover decisions from
AgentSession._isRetryableErrorand_prepareRetryinto the purecore/provider-retry.tsmodule (isRetryableAssistantError,nextRetryAttempt,computeRetryDelayMs). Retry ordering, backoff, and failover semantics are unchanged. - Extracted the compaction gates from
AgentSession._checkCompactioninto the purecore/compaction-gate.tsmodule (shouldSkipCompactionCheck,isSessionModelOverflow). Gate ordering and staleness semantics are unchanged. - Extracted the failover trigger and refused-model bookkeeping from
AgentSession._maybeFailoverFromSafetyStopintocore/provider-retry.ts(isFailoverTriggerError,failoverModelKey). Chain ordering and blacklist semantics are unchanged. - Extracted the context-budget arithmetic from
AgentSession._getContextBudgetOptionsinto the purecore/prompt-budget.tsmodule (computePromptTokenBudget,computeResponseReserveTokens). Env parsing stays at the call site; budget values are unchanged. - Extracted the prompt-cache key transition classification from
AgentSession._recordPromptCachePlaninto the purecore/prompt-cache.tsmodule (classifyPromptCacheTransition). Counter and break-reason semantics are unchanged. - Grok 4.5 / 4.3 now expose
/think maxandultrain the selector. Those aliases still send xAIreasoning_effort: "high"because those models have no upstreamxhigh/maxtier. - Native xAI SuperGrok usage now polls
GET https://cli-chat-proxy.grok.com/v1/billing?format=creditsand shows the weekly SuperGrok pool fromcreditUsagePercent. Stalegrok-oauth-proxycredentials are dropped from/loginand/logout.
- Durable-goal continuation now records and skips an unavailable WSL/project workspace instead of emitting an
ENODEVextension stack after every failed provider attempt. - Content/safety refusals are capped at one same-model retry when failover is unavailable, preventing the default transport retry budget from replaying the same refusal three times.
- Fable models remain visible in the model catalog, and a saved Fable default is honored when sticky-safety blocking is disabled.
- Claude models now omit discovered context files by default, avoiding provider false positives from unrelated instruction text;
OMK_CLAUDE_CONTEXT_FILES=1restores the full context. - Extension
resourceClaimsnow survive both tool-definition adapters, allowingdag-v2to schedule non-conflicting custom tool calls concurrently instead of treating them as unclaimed exclusive work. - Built-in tool-pair repair now uses the real
AgentMessagecontract (toolCallblocks and top-levelrole: "toolResult"messages), removing orphan pairs without unsafe message-shape casts. - Pinned the transitive development dependency
nanoidto 3.3.18, clearing GHSA-2v37-7h3g-55p8 from both full and production npm audits.
- Redesigned the root README around the Scope → Route → Verify → Replay control loop with a WCAG-aware cyberpunk OMK Girl hero and slow feature GIF generated through GPT Image 2. The root
DESIGN.mdnow defines public brand tokens, media budgets, and reduced-motion guidance.
- Removed the
grok-oauth-proxyprovider path. Grok harness dispatch, failover, usage, and presets now use nativexai. Stalemodels.jsonentries forgrok-oauth-proxyare ignored instead of reappearing in/loginand/model.
Release notes live in RELEASE_NOTES_v0.96.1.md.
- Added
omk-protocol, the versionedTaskSpec -> ExecutionAttempt -> Observation -> EvaluationResult -> RuntimeDecisioncontract 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 mutableEvidenceStatusandTaskContractverdict APIs remain compatible but are deprecated. - Added the optional
omk-book-to-skillpackage 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-checkmodel and property suites for WPL transitions, replay migration and CAS, evidence freshness, subagent topology, run-journal CAS, and timeout/abort settlement ordering.
- New replay events declare
jcs-rfc8785-v2and hash RFC 8785-canonical payloads. Events without an algorithm remain verified asjson-stringify-v1; mixed ledgers and exports preserve legacy records without rewriting them.
- NVIDIA NIM's
z-ai/glm-5.2entry now transmitsreasoning_effort, including the generatedmaxthinking level; other NVIDIA models keep conservative compatibility defaults. - Billing-cycle and quota exhaustion, including provider 403 usage-limit responses, now classify as
provider.rate_limitand can switch to the first configured, authenticated resilience candidate before retry. Each attempt remains journaled, and a recovered retry ends with a latercompletedtermination. - 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.
MIT


