{"slug": "show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows", "title": "Show HN: Omegacode – an agent agnostic version of Claude Workflows", "summary": "Omegacode, an agent-agnostic workflow runner, launches as an open-source tool that orchestrates multiple coding agents including Claude Code, Codex, OpenCode, and pi using a deterministic DSL. The tool enables cross-provider workflows such as adversarial code reviews and multi-provider bake-offs, with features like resumable runs and a live dashboard.", "body_md": "An **agent-agnostic implementation of Claude Code's Workflows**. omegacode runs JavaScript workflow\nfiles that orchestrate fleets of coding agents with a small deterministic DSL — `agent()`\n\n/\n`parallel()`\n\n/ `pipeline()`\n\n/ `phase()`\n\n— and the workers are pluggable: the same workflow can\ndrive **Claude Code**, **Codex**, **OpenCode**, and **pi** in a single run.\n\n```\nnpm install -g omegacode\nomegacode install-skill\n```\n\n`install-skill`\n\nteaches your agents how to author and run workflows by copying the skill into\n`~/.claude/skills/`\n\n(Claude Code) and `~/.agents/skills/`\n\n(Codex and other agents). Pass\n`--claude`\n\nor `--agents`\n\nto install to just one.\n\nYou'll need Node 20+ and at least one worker installed: `codex`\n\n(the default provider), `claude`\n\n,\n`opencode`\n\n(≥ 1.16.2), and/or `pi`\n\n(≥ 0.79.1, `npm i -g @earendil-works/pi-coding-agent`\n\n). Run\n`omegacode doctor`\n\nto check — it flags binaries below the minimum versions, which the workers\nrefuse at runtime.\n\nNote on opencode/pi sandboxing:neither CLI can enforce a confined sandbox, so omegacode accepts themonlywith an explicit`sandbox: \"danger-full-access\"`\n\n(per call or via`--sandbox`\n\n). The default`read-only`\n\nsandbox is rejected with an error naming the remedy — a deliberate fail-closed choice. Model strings pass through verbatim to the backend (e.g.`agent(\"…\", { provider: \"opencode\", model: \"openrouter/anthropic/claude-sonnet-4.5\", sandbox: \"danger-full-access\" })`\n\n).\n\nWith the skill installed, just ask your agent:\n\nuse omegacode to adversarially review this PR with both claude code and codex\n\nIt will author a workflow — finders fan out in parallel, a cross-provider skeptic pass tries to\nrefute each finding, a synthesizer merges what survives — then run it and report back. Runs are\njournaled and resumable, and `omegacode serve`\n\nopens a live dashboard of every agent as it works.\n\n``` js\nexport const meta = { name: \"adversarial-review\", description: \"find bugs, cross-examine them\" }\n// FINDINGS and VERDICT are plain JSON Schemas, elided here\n\nphase(\"Find\")\nconst findings = await parallel(\n  [\"correctness\", \"security\", \"performance\"].map((lens) => () =>\n    agent(`Review the diff through the ${lens} lens. List concrete issues.`, { schema: FINDINGS })),\n)\n\nphase(\"Verify\")\nreturn await pipeline(\n  findings.filter(Boolean).flatMap((f) => f.issues),\n  (issue) => agent(`Try to refute: ${issue.desc}`, { provider: \"claude-code\", model: \"claude-fable-5\", schema: VERDICT }),\n)\n```\n\nPlain JavaScript, no imports — the DSL is injected. Each `agent()`\n\nspawns a real Codex, Claude\nCode, OpenCode, or pi agent; omit `provider`\n\n/`model`\n\nto inherit whatever the run was started with\n(`--provider --model`\n\n, default `codex`\n\n), or pin them per call when you want cross-provider\ndiversity. Provider and model are **both-or-neither** at every site (per-call, meta defaults,\nCLI flags): a lone `provider:`\n\nor `model:`\n\nis rejected, so a model meant for one provider can\nnever silently ride another provider's call.\n\n```\nomegacode run <file.workflow.js | name>   # run a workflow (auto-starts the live viewer)\nomegacode serve                           # read-only dashboard over all runs\nomegacode run <name> --resume <runId>     # resume — only the changed suffix re-runs\nomegacode doctor                          # check codex/claude/opencode/pi availability + versions\nomegacode guide                           # print the full authoring guide\n```\n\n`run`\n\nalso accepts saved workflow names. Six built-ins ship with the package:\n`deep-research`\n\n, `code-review`\n\n, and four multi-provider workflows that put the two\nmodels' decorrelated errors to work — `multi-provider-review`\n\n(both review the same\nbranch independently, then a synthesis merges both), `bake-off`\n\n(both implement the\nsame task in isolated worktrees, blind cross-provider judges pick a winner),\n`provider-debate`\n\n(propose → attack → rebut for N rounds, then a judge rules), and\n`second-opinion`\n\n(both answer cheap; agreement returns merged, disagreement escalates\nto deep effort and adjudicates). Try `omegacode run deep-research --args '\"your question\"'`\n\n, or `omegacode workflows`\n\nto list them. See `omegacode guide`\n\nfor the\ncomplete authoring reference.", "url": "https://wpnews.pro/news/show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows", "canonical_source": "https://github.com/SawyerHood/omegacode", "published_at": "2026-06-13 17:18:53+00:00", "updated_at": "2026-06-13 17:47:35.275227+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools", "artificial-intelligence", "large-language-models"], "entities": ["Omegacode", "Claude Code", "Codex", "OpenCode", "pi", "Node", "npm"], "alternates": {"html": "https://wpnews.pro/news/show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows", "markdown": "https://wpnews.pro/news/show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows.md", "text": "https://wpnews.pro/news/show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows.txt", "jsonld": "https://wpnews.pro/news/show-hn-omegacode-an-agent-agnostic-version-of-claude-workflows.jsonld"}}