Welcome to Smithers
Smithers is a declarative JSX framework for building AI agent orchestration workflows. Built with Solid.js signals, it lets you write agent workflows as composable JSX components with persistent state across sessions.Why Smithers?
- Write agent workflows as JSX - Declarative composition is easier to reason about than imperative chains
- Let Claude Code write the orchestration - Describe what you want, and your agent builds the workflow
- Persist state across sessions - Pick up where you left off, even days later
- Mix short scripts with long-running workflows - Same syntax for a quick task or a week-long project
- Full observability - Database logging and reports show exactly what your agents are doing
- Reactive primitives - Solid.js signals mean your workflows respond to state changes automatically
- Version controlled workflows - Workflows are just TypeScript files
Quick Start
Get up and running with your first agent in minutes
Core Concepts
Understand the execution model and mental framework
Components
Explore the component API reference
Examples
Learn from real-world agent examples
Key Features
Claude Component
The core agent component that executes Claude with full tool access:Ralph Loop Controller
Named after Ralph Wiggum’s “I’m in danger” catchphrase - controls iterative loops that could run away:Structured Output with Zod
Get typed, validated responses with automatic retry:Database State Persistence
All state is saved in a PGlite database that survives restarts:MCP Tool Integration
Give Claude access to external tools via Model Context Protocol:How It Works
Smithers uses a custom Solid.js renderer called the “Ralph Wiggum Loop”:- Render: Your JSX components render using Solid’s fine-grained reactivity
- Execute:
<Claude>nodes are executed via Claude Code CLI - Update:
onFinishedcallbacks update Solid signals - Re-render: Signal changes trigger reactive updates to the tree
- Loop: Back to step 2 until no pending
<Claude>nodes remain - Complete: Execution finishes when all agents are done