Now in early access
LLM data pipelines as DAGs.
Authored visually or in Python.
Run complex AI-native workflows with result caching, schema validation, and robust error handling. Flexible hosting options.
What's in the box
A graph editor, a Python SDK, and the engine that runs them.
Graph editor
Drag nodes, connect ports, configure inline. Connections are checked against port schemas before they complete.
Python SDK
Define workflows in Python. Node factories produce the same JSON the editor saves. Pydantic models work as output schemas.
Typed schemas
Schemas on every node port. Connections validate at design time; inputs and outputs are checked at runtime.
Result cache
Results cached by config and input. Change a prompt, only that node re-runs. Failed runs resume from the last checkpoint.
LLMs
Gemini, GPT, Claude, and more behind one interface. Structured output, response repair, retry policies, per-node cost tracking.
Triggers & callbacks
Webhook triggers, Google Forms, run completion callbacks. Self-hosted; one command to start.
How it works
Define, run, integrate.
Define the workflow
Build a DAG of LLM prompts, code, branches, maps, transforms, and sinks. Author it in the graph editor or in Python via the SDK — both paths produce the same workflow document.
Run and inspect
Execute against sample data. Each node's status overlays the canvas; click a node for its actual input, output, timing, and cost. Results are cached, so editing a prompt only re-runs the affected nodes.
Trigger and integrate
Trigger runs via API, signed webhooks, or Google Forms. Subscribe to run completion callbacks for the final result. Failed runs resume from the last successful checkpoint.
Try Substructure
Self-hosted version is rolling out first. Get in touch to talk about access or use cases.
Contact us