Context.Tag services, Layer composition, and programmatic workflow graphs.
Prerequisites
- Bun >= 1.3
- TypeScript >= 5
- SQLite access on the local filesystem
Install
Install the core builder dependencies:What Each Package Does
| Package | Purpose |
|---|---|
smithers-orchestrator | Workflow builder, durable runtime, SQLite helpers, CLI |
effect | Effect, Layer, Context.Tag, Schedule, and Schema |
@effect/sql | Model and typed SQL integration |
drizzle-orm | SQLite client layer (uses bun:sqlite under the hood) |
ai + @ai-sdk/anthropic | Optional model integrations via the Vercel AI SDK |
Minimal TypeScript Setup
Create atsconfig.json like this:
Recommended Runtime Shape
Smithers should be configured the same way as the rest of an Effect app:- dependencies are
Context.Tags - infrastructure is a
Layer - workflow steps are
Effects - Smithers adds durability, retries, approvals, and orchestration
Next Steps
- Effect Quickstart — Build a two-step workflow with
$.step(). - Effect Builder API — See when to use the builder and how it compares to TOON.
- Services — Wire in
Context.Tagservices and live layers.