Skip to main content
Claude Code ships Dynamic Workflows: describe a task, Claude writes a JavaScript orchestration script, and a runtime fans it out across parallel subagents that attack the problem from independent angles and converge on an answer. If you have a Max or Team plan, you already have it, and for work that fits in one sitting it is genuinely good. So when do you want Smithers instead? When the work has to outlive the sitting.

The short version

Dynamic Workflows is a feature of one vendor’s coding agent. Smithers is an MIT-licensed runtime that treats coding agents, humans, and plain code as steps in one durable workflow. The two overlap on “run many agents against a problem” and differ on everything around it.
Claude Code WorkflowsSmithers
Where it runsInside a Claude Code sessionYour laptop, CI, or a server; the process is disposable
ModelsClaude subagentsClaude Code, Codex, Pi, Antigravity, any AI SDK model, mixed in one workflow
Crash mid-runWork is lost; start the script againResumes from the last persisted step
Human approvalBlocks while you are at the terminalDurably suspends; answer tomorrow over CLI, web, or HTTP
The workflow itselfA script generated per taskA versioned file you review, diff, rerun, and eval
HistoryScoped to the sessionEvery run, frame, and attempt is a SQLite row: ps, inspect, timeline, rewind, fork, replay
SchedulingYou start itDurable cron triggers, alerts, and a supervisor that revives stale runs
SourceClosed research previewMIT, on GitHub

What that means in practice

Durability is the line. A Dynamic Workflow orchestrates subagents and returns an answer; the value lives in that session. A Smithers run persists every completed step the moment it finishes, so killing the process, closing the laptop, or deploying over it costs you nothing. Resume picks up at the right step, and supervise does it automatically when a heartbeat goes stale. Vendor scope is the other line. An orchestration layer earns its keep by outliving the model choice. In Smithers a frontier model plans, a cheaper model fans out, and a different lab’s model reviews, in one workflow, with fallback arrays (agent={[claude, codex]}) when a provider has a bad day or you hit a rate limit. Dynamic Workflows orchestrates Claude. Approvals change what you can automate. A run that cannot stop and wait for a human is a run you have to babysit. <Approval> suspends a Smithers run as a database row that costs nothing while it waits, then resumes at the right step when someone answers. That is the difference between “agents I watch” and “agents I check on in the morning.”

They compose

This is not either/or. Smithers drives Claude Code as a first-class agent, on your existing subscription, and the Claude Code plugin mirrors Smithers runs into the session so your agent can watch and steer them. A sensible split: quick fan-outs in the session, anything long-running, approval-gated, or worth rerunning goes to Smithers. The longer argument, with the crash-resume demo, is in the open, durable version of agent workflows.

See also