Workflows are TypeScript
No YAML, no graph builder, no visual editor. Use if, for, while, await, and early returns. orch runs the function top to bottom.
Write a plain TypeScript function. orch spawns Claude Code and Codex, passes typed data between steps, watches them in tmux, and resumes from exactly where you crashed.
import { workflow, step, commit, claude } from 'orch'
const WORK = step.define('work', {
agent: claude(),
validate: gitDiffCreated(),
})
export default workflow('hello', async (run) => {
await run(WORK, { prompt: 'Add a CHANGELOG.md with an Unreleased section' })
await commit('docs: add changelog')
})orch run helloNew here? Start with What is orch?, then Getting started.