Smithers · v0.23.0

Describe a workflow.
Smithers builds it.

The new create-workflow metaworkflow turns a plain-English ask into a runnable workflow: clarify the spec, design the graph, scaffold real files, verify until it compiles, then write the skill that documents it.
clarify design scaffold verify document
$ bunx smithers-orchestrator init  # seeds create-workflow
smithers.sh
0.23.0
New · Persistence

Run Smithers on Postgres.

your hand-written SQL
SQLite  bun:sqlite PGlite  embedded, in-process PostgreSQL  managed, production
One dialect seam runs that exact SQL across all three with no query rewrites. Develop against an in-process PGlite, deploy against managed Postgres, same code.
smithers.sh
createSmithersPostgres()
New · bunx smithers-orchestrator usage

See how much quota each account burned.

accountwindowconsumed
claude-code5h
72%
codexweekly
41%
anthropic-apirate-limit
18%
openai-apirate-limit
6%
One report across every provider. Credentials are read host-side and never leave the process. --format json for scripts.
smithers.sh
--account · --provider · --fresh
Agents

Any agent. Any MCP server.

Claude Code Codex Gemini Antigravity Hermes Vibe (Mistral)
Every agent runs behind the same durable engine. New this release: a Vibe (Mistral) agent and a corrected Antigravity CLI. And createMcpToolset connects any stdio MCP server, projecting its tools straight into an SDK agent.
const { tools } = await createMcpToolset({ command, args })
smithers.sh
claude · codex · gemini · antigravity · hermes · vibe
New · Custom Workflow UIs

Workflows ship their own UI.

A workflow registers a browser UI through the Gateway, served at /workflows/<key> with live run, event, and node-output hooks over real RPC.
gateway.register({ ui: { entry } })
UltraGrill is the showcase: an open-ended real-time collaboration workflow with a live custom UI, launched with one command.
$ bun .smithers/scripts/ultragrill.ts "ship the landing page"
smithers.sh
gateway-react · gateway-client
New · Human in the loop

Let an agent stop and ask a person.

blocked ask_human waits answer resumes
When an agent is blocked, uncertain, or about to do something irreversible, it raises a durable request and blocks until a human answers. Available as the ask-human CLI and the ask_human MCP tool.
$ bunx smithers-orchestrator ask-human "Which DB should I target?" --choices sqlite,postgres
smithers.sh
--choices · --context · --timeout
New · Zero-install VCS

jj, bundled.

darwin-arm64 darwin-x64 linux-arm64 linux-x64 win32-x64
Smithers ships a jj binary per platform, so worktree snapshots and forks work with no system install. A package manager pulls only the one matching your host, and the doctor tells you up front when no usable git or jj is present.
$ bunx smithers-orchestrator workflow doctor  # vcs: ok
smithers.sh
SMITHERS_JJ_PATH override · PATH fallback
Also in 0.23.0

Benchmarks, examples, correctness.

Benchmarks

SWE-Bench Pro
SWE-EVO
Claw-Eval-Live
RoadmapBench
· Opus 4.8 + Codex

Examples

defending-code (ASAN vuln discovery)
open-code-review

Correctness

outer-JSON extraction
DevTools stream recovery
strict Codex schemas
Pi plugin MCP bridge
Full changelog: smithers.sh/changelogs/0.23.0
smithers.sh
0.23.0