Built for LLMs
The patch endpoint accepts EditOp[] and returns typed skips on every
bad op — feedable directly back to the LLM as tool output. Single-shot
workflow construction works because the API explains its own rejections.
Built for LLMs
The patch endpoint accepts EditOp[] and returns typed skips on every
bad op — feedable directly back to the LLM as tool output. Single-shot
workflow construction works because the API explains its own rejections.
Durable by default
Every step runs through openworkflow’s Postgres-backed runtime. Crashes, redeploys, restarts — runs resume where they paused. No bolt-on caching; durability is the substrate.
Multi-tenant from day one
Auth via better-auth. Cookie sessions for UIs, thd_… API keys for
LLM orchestrators. Every workflow / run / schedule is scoped to an
organization. Tenant isolation is structural, not advisory.
Connector-shaped DSL
Block↔Tool split, visibility flag, declared output schemas, kind: 'wait' blocks for durable pauses. One Slack connector exposes 30
operations as one block, not 30 functions.
npm install -g @thodare/clithodare login --api http://localhost:3000curl -H "Authorization: Bearer $(thodare token)" \ http://localhost:3000/api/connectorsThe login command runs the entire sign-up + org + key bootstrap in
one shot. From there it’s curl, or any HTTP client. See
Quickstart for the full path from cold
start to a workflow that runs.
Thodare stands on the work of openworkflow
(Apache-2.0; vendored as @thodare/openworkflow). See
Acknowledgements.