Turn data intent into an operable pipeline.
The agent proposes. You inspect the code, artifacts, lineage, and runs before anything is trusted.
For data engineers and software engineers
One request becomes sources, joins, a check, and transforms, each proposed and approved on the canvas.
See how it worksStart from the data you already have
Built for pipelines you can operate
Five capabilities, one workspace. Each has its own page with the full story.
The agent proposes. You decide.
Nothing the agent writes is trusted until a person has read it. Runs and answers stay tied to the nodes that produced them.
Approvals
Every change arrives as a proposal
Adding or changing a node waits for you, and a run pauses at any new script until someone reads it. Approve it and the run continues.
- Approve or reject with a reason
- Scripts pause their run until reviewed
- One inbox for everything waiting on you
Runs
Run a node, a branch, or all of it
Each node executes in its own sandbox and writes an artifact the next node can read. The canvas shows the run as it happens.
- Node, branch, and full-pipeline scopes
- Status, logs, and row counts per node
- Manual, agent, and scheduled run history
Canvas
The whole pipeline, open to inspection
Every node opens to what it was asked to do, what it produced, and whether its checks passed.
- Intent, schema, and preview per node
- Validation results on the node
- Auto-layout for crowded graphs
How it works
Four steps from a file to an answer you can trace.
Built for the people who own the pipeline
Data engineers
Move faster without giving up the DAG.
- The DAG stays visible
- Lineage stays attached
- Runs stay observable
Software engineers
Real Python and SQL, with runs you can inspect.
- Scripts, not black boxes
- Isolated execution
- Test before you run
Everything in the workspace
Build
Ready to build a pipeline you can inspect?
Describe the outcome, inspect what the agent proposes, and run it when you trust it.