Skip to main content
create-workflow writes a .tsx orchestration skeleton and its prompts, then verifies and documents the result with a companion agent skill. For most workflows you describe the behavior instead of hand-editing the generated .tsx file.

The two-file model

The .tsx file imports and renders the .mdx file at runtime. Editing the prompt changes agent behavior on the next run - no build step, no TypeScript.

Your first edit

After create-workflow has generated a workflow, open its companion .smithers/prompts/WORKFLOW_ID.mdx:
Change the instruction - for example, ask for a haiku:
Run it again:
The agent now writes haiku. The .tsx file didn’t change.

Template syntax

Props come from the workflow input and are interpolated with {props.key}:
Any input field the workflow declares is available as props.<field> in the prompt.

Create a new MDX-backed workflow

Use the built-in create-workflow workflow:
Or scaffold by hand:
  1. Create .smithers/prompts/my-task.mdx - write the instruction.
  2. Copy examples/init-pack/hello.tsx, rename the workflow name and prompt import.
  3. Run bunx smithers-orchestrator workflow run my-task.

When to graduate to TypeScript

Stay in MDX as long as possible. Add TypeScript only when you need:
  • Multi-step branching - different tasks depending on a prior output
  • Parallel fan-out - multiple tasks running simultaneously
  • Validated structured output - Zod schemas on task results
  • Loops - retry until a score threshold passes
See the TypeScript SDK for all of that. Start with MDX, graduate only when the task demands it.