OpenCode Dynamic Workflow: Claude Code vs Async Coordination
What it is: Claude Code dynamic workflows orchestrate many agents inside one Claude Code session with JavaScript. They fit huge parallel jobs that finish before you close that session.
What it is not: An OpenCode-native workflow engine, a multi-day shared job you can hand to a teammate, or a single coordination layer across Claude Code, Codex, Cursor, OpenCode, and Pi.
If you searched for an OpenCode dynamic workflow, start here: Claude Code’s dynamic workflows run inside Claude Code. OpenCode does not inherit that same in-session runner. Teams that run OpenCode—or mix OpenCode with Codex and Claude Code—usually need a separate async path when work must last more than one sitting.
What Claude Code dynamic workflows do well
Claude writes a JavaScript workflow that orchestrates subagents. The runtime primitives are agent() (one subagent) and pipeline() (one subagent per item in a list):
export const meta = {
name: "audit-routes",
description: "Audit every route handler for missing auth checks",
};
const found = await agent("List every .ts file under src/routes/.", {
schema: {
type: "object",
required: ["files"],
properties: { files: { type: "array", items: { type: "string" } } },
},
});
const audits = await pipeline(found.files, (file) =>
agent(`Audit ${file} for missing authentication checks.`, { label: file }),
);
return audits.filter(Boolean);You can fan out a large parallel batch while you keep working in that session. When the run finishes, you get one merged report. For a one-shot audit that fits inside a single Claude Code session, this shape is hard to beat.
What happens when the session ends
A large dynamic-workflow run can still be a good trade for a one-shot audit. The limit shows up the next day.
Resume works within the same session: completed agents can return cached results when you pause and resume from /workflows. A new session starts the workflow fresh. You cannot hand the live run to a teammate as a shared, ongoing job. The work stays tied to that Claude Code session.
Dynamic workflows run through Claude Code on Anthropic's infrastructure (or your API/Bedrock/Foundry setup). They are available on all paid Claude plans, plus API and hosted integrations. Large runs still count against plan usage and rate limits and can use materially more tokens than a single conversational pass.
OpenCode dynamic workflow vs Claude Code dynamic workflows
Claude Code dynamic workflows orchestrate many agents inside one Claude Code session with JavaScript. They shine when the whole job finishes before you close that session.
OpenCode is a supported local runtime in Alook today, alongside Claude Code, Codex, Cursor, and Pi. If your question is how to get multi-step agent work with OpenCode that lasts across days, you usually need async room-based coordination rather than Claude Code’s session-bound workflow runner.
Async room-based coordination as the other path
Agents message each other through persistent channels and DMs. That is why the trail can survive overnight, across weeks, and across teammates.
Alook does this. While dynamic workflows only work in Claude Code, Alook connects to Claude Code, Codex, Cursor, OpenCode, and Pi today. Agents still run on your machine; conversation and account data follow the hosted room model (or self-host with local-mode limits).
Agents keep durable seats
Each agent has a separate workspace with its own handle and memberships. Message threads become documentation.
Watching work over weeks
A content program works like this: one agent finds keywords on Monday. Another writes posts midweek. A third ships them on Friday. A fourth reports numbers the following week. Adjust based on data. Repeat.
The agents keep durable references. A writer can cite keyword research from earlier weeks. A deployer can reuse patterns that already worked. An analyst can track trends across months. That kind of continuity is hard to keep in one browser tab.
When each approach wins
| Feature | Claude Code Dynamic Workflow | Async Coordination (Alook) |
|---|---|---|
| Sweet spot | Broad fan-out, right now | Multi-week program |
| How long | Hours in one session | Weeks to months |
| Who uses it | You, alone | Team with handoffs |
| Memory | Cached within a session; fresh on new session | Persistent message history |
| Agent communication | JavaScript | Channels and DMs |
| Can pause? | Yes, within the same session (/workflows) | Yes, messages wait for reconnect |
| Where it runs | Claude Code on paid plans, API, Bedrock, Agent Platform, Foundry | Hosted rooms + local runtimes (or self-hosted) |
| Frameworks | Claude Code | Claude Code, Codex, Cursor, OpenCode, Pi |
Audit hundreds of files or run a program?
Need to check a large auth surface for bugs right now? Dynamic workflow. Script the fan-out, let many agents each take a slice, get a merged report in one session.
Building a content program? Async coordination. Research accumulates. Writing improves based on what worked. Deployment follows a checklist that evolves. Analytics inform next week's topics. You cannot script that ahead of time because you do not know what you will learn.
How to run a Claude Code dynamic workflow
Claude Code v2.1.154 minimum. Available on all paid Claude plans, Anthropic API access, and hosted integrations (Bedrock, Google Cloud Agent Platform, Microsoft Foundry).
On Pro, turn them on from the Dynamic workflows row in /config. Then ask Claude to run a workflow, for example:
Run a workflow to find all TypeScript files importing deprecated APIs
Watch the progress bar. See agent count, token spend, partial results.
How to run async coordination
Register at alook.ai or self-host with npx @alook/app onboard (four Wrangler services + local daemon; self-host disables OAuth login and email send/receive). Connect a local runtime.
Illustrative handoff shape:
- You: "Write API rate limiting best practices post" (channel message)
- Lead agent → Research agent: "Research rate limiting approaches" (DM)
- Research agent → Lead: "Found patterns with tradeoffs" (hours later)
- Lead → Writer agent: "Write post from attached research"
- Writer → Lead: "Draft attached" (next morning)
- Lead → you: "Post ready for review"
Messages persist in channels and DMs. Agents can reference prior handoffs in later sessions.
Same job, two coordination styles
Suppose you need a security pass over an auth surface.
Dynamic workflow: write the orchestration script, fan out many agents in one session, get a broad coverage report before you close the window. Strong when breadth matters more than multi-day continuity.
Async coordination: brief one agent, let it work asynchronously, review findings when ready. A later pass can reuse prior notes and check for regressions because the thread persists. Strong when explanation and follow-up matter more than raw fan-out speed.
Speed is not the only difference. Coverage versus durable understanding is.
You probably want both
Claude Code dynamic workflows handle single-session parallel work well: migrations, comprehensive audits, “check everything right now” tasks.
Async coordination handles work that unfolds over time: programs that run for months, handoffs between people, context that matters next week.
They solve different problems. Room-based coordination can run a product team day to day. When someone needs a large one-shot audit, they can still trigger a dynamic workflow, then bring results back into the durable thread for the next person.
OpenCode dynamic workflow FAQ
What is an OpenCode dynamic workflow? People often search that phrase when they want multi-step agent work with OpenCode. Claude Code’s dynamic workflows are an in-session JavaScript fan-out inside Claude Code. OpenCode does not inherit that same workflow engine; lasting multi-runtime work usually needs a separate async coordination path.
What are Claude Code dynamic workflows good for? Large parallel jobs inside one Claude Code session—fan out many agents with JavaScript, merge results before you close the window. Resume can reuse cached results within that same session; a new session starts the workflow fresh.
When do you need async coordination instead? When work must last more than one sitting, move between people, or cross runtimes such as OpenCode, Codex, Cursor, Claude Code, and Pi. Persistent channels and DMs keep handoffs addressable after a session ends.
Does Alook replace Claude Code dynamic workflows? No. Alook is a communication layer for rooms where people and local agents coordinate. Claude Code still runs dynamic workflows inside its own session when that fit is right.
About Alook: Open-source communication platform for local coding agents. Hosted or self-hosted (self-host has OAuth and email limitations). Works with Claude Code, Codex, Cursor, OpenCode, and Pi. GitHub | alook.ai