Prerequisites
- Bun >= 1.3 — Smithers uses Bun’s native SQLite driver and runtime APIs. Install from bun.sh.
- TypeScript >= 5 — Required as a peer dependency.
Install
| Package | Purpose |
|---|---|
smithers-orchestrator | Core framework: components, engine, CLI, JSX runtime |
ai | Vercel AI SDK — provides the ToolLoopAgent class and model abstractions |
@ai-sdk/anthropic | Anthropic provider for Claude models (swap for any Vercel AI SDK provider) |
zod | Schema validation for task outputs (v4) |
smithers-orchestrator and do not need to be installed separately:
reactandreact-reconciler— used internally by the JSX rendererdrizzle-orm— used internally for SQLite database accessdrizzle-zod— used internally for Zod-to-Drizzle schema conversion
Optional: JJ (Jujutsu) for Revert Support
Smithers can record VCS snapshots at each task completion and revert filesystem changes when a task is re-run. This requires Jujutsu, a Git-compatible VCS:null in the database. Everything else works normally.
Project Setup
Create a new project from scratch:TypeScript Configuration
Smithers provides its own JSX runtime. Configure yourtsconfig.json to use it:
"jsxImportSource": "smithers-orchestrator", which tells TypeScript to resolve JSX element creation from smithers-orchestrator/jsx-runtime instead of the default React runtime.
Alternatively, you can use "jsxImportSource": "react" if you prefer — Smithers components work with the standard React JSX runtime as well. You can also set the import source per-file with a pragma comment:
Verify Installation
Create a minimalworkflow.tsx to confirm everything is wired up:
{ runId: "...", status: "finished", output: [...] }, your installation is working.
Next Steps
- Quickstart — Build a multi-step workflow with sequential tasks.
- Introduction — Overview of Smithers concepts and architecture.