Open workflow runtime

Run agent workflows anywhere.

Write orchestration in JavaScript; dispatch Codex, Claude Code, Gemini, Qwen, Kimi, or any local CLI.

01 Why ODW

Keep the plan in code. Keep the agent context clean.

ODW turns dynamic workflow scripts into portable artifacts: easy to inspect, run, pause, resume, and move between agent CLIs.

workflow.js

Portable scripts

The same Claude Code-style workflow can run on Codex, Gemini, Qwen, Kimi, or a custom shell adapter.

parallel()

Parallel by design

Fan out independent subtasks without filling the host agent's conversation with every intermediate step.

odw status

Observable runs

Detached workers persist logs, state, and final results so long-running orchestration can be inspected later.

02 Runtime shape

A small engine between workflow scripts and real agent CLIs.

The loader wraps Claude-style JavaScript, the scheduler limits concurrency, and adapters shell out to the local agents you already use.

fan-out-reduce.js
export const meta = { name: "fan-out-reduce" }

const drafts = await parallel(
  [1, 2, 3, 4].map((i) => () =>
    agent(`Draft #${i}: ${args.question}`)
  )
)

return await agent(
  "Synthesize the best answer",
  { schema }
)
agent agent(prompt)

Dispatch real work

Run one coding-agent CLI on a scoped subtask and collect text or schema-validated output.

parallel parallel(thunks)

Fan out safely

Run independent branches concurrently when the next step needs the full batch.

pipeline pipeline(items)

Stream stages

Move each item through review, verification, and synthesis without a global barrier.

03 Start

Install the runtime or hack from source.

Use the single-file installer, install from npm, or clone the repository. ODW drives local agent CLIs; it does not call model APIs directly.

terminal
$ curl -fsSL https://raw.githubusercontent.com/xz1220/open-dynamic-workflows/main/scripts/install.sh | sh one-file installer
$ npm i -g open-dynamic-workflows or from npm
$ odw run examples/deep-research.js --wait run your first workflow