Skip to main content
Think of Smithers as a runtime for durable agent work. If React turns state into UI, Smithers turns state into executable work. Each render answers one question: given what has already completed, what can run now? That matters because real agent jobs do not stay single-step for long. A useful task becomes:
  • analyze a codebase
  • propose a fix
  • apply the fix
  • run validation
  • ask for approval
  • resume later if the process crashes
You can script all of that by hand. Most teams do at first. Then the retries, persistence, audit trail, and branching logic start taking over the project. Smithers exists to make that coordination the default instead of the afterthought.

The Three Surfaces

CLI

The CLI is the operations surface. You use it to scaffold workflow packs, launch runs, inspect state, read logs, answer approvals, send signals, and recover from failure. Start with CLI Quickstart if that is your immediate job.

JSX API

The JSX API is the authoring surface. You describe the workflow as a tree of <Workflow>, <Task>, and control-flow components, and Smithers repeatedly renders that tree as outputs become available. Start with JSX API if you are building workflows.

Runtime

The runtime is the durable engine beneath both surfaces. It validates structured output, persists it to SQLite, emits events, and resumes safely after interruption. Start with Workflows Overview if you want the model before the mechanics.

What Happens During a Run

  1. Smithers renders your workflow tree with the current ctx.
  2. It finds the tasks that are ready to execute.
  3. It runs those tasks and validates their outputs.
  4. It persists the outputs and runtime metadata to SQLite.
  5. It renders again with the updated state.
That loop continues until the workflow finishes, fails, pauses for human input, or is cancelled.

When Smithers Is the Right Tool

Use Smithers when:
  • order matters across multiple AI or compute steps
  • you need resumability or crash recovery
  • humans must approve or answer questions mid-run
  • different tasks need different models, tools, or policies
  • you want the workflow itself to stay readable and testable
If you only need one prompt and one response, a workflow is probably overkill.