Iterate with culvii dev
culvii dev keeps your local code and your cloud dev environment in sync. As you save the file, the workflow definition updates in your dev environment within a second or two.
Start the dev session
In your tutorial directory, run:
culvii dev vendor-screen.ts
You'll see something like:
✓ Connected to dev environment (tenant=yourcompany)
✓ Workspace: dev-yourname (auto-provisioned)
✓ Compiled vendor-screen.ts
✓ Draft synced (vendor-screen)
Watching for changes…
Open the Console: https://console.culvii.com/dev/dev-yourname/drafts
A few things just happened:
- The CLI compiled your TypeScript to a workflow definition (JSON).
- It pushed that definition to your dev environment as a Draft.
- It auto-provisioned a
dev-yournameworkspace if you didn't already have one. - It opened a WebSocket connection so future saves push automatically.
The Draft state is ephemeral — only you see it; it disappears when this culvii dev session ends. See Workflow lifecycle for the full state model.
Trigger your first run
Open the Console URL printed by the CLI. You'll land on your dev workspace's Drafts tab. Click your vendor-screen workflow, then Run.
The Console asks for the input. Recall your workflow expects { vendorId: string }:
{ "vendorId": "V001" }
Click Run again. The Console opens a live trace view. You'll watch:
run.start— the run begins.step.start: analyze— the workflow enters the analyze step.llm.call— the agent calls the model with the goal and tool descriptions.tool.call: lookup-vendor— the agent decides to look up V001.tool.ok— the tool returns{ name: 'Acme Supplies', rating: 4.5, flags: [] }.llm.call— the agent reasons over the result.step.ok: analyze— the step completes with the structureddecision.run.complete— final result.
The final state of screening should be something like:
{
"decision": "pass",
"reason": "Rating of 4.5 exceeds threshold of 3.5 and there are no compliance flags."
}
Try running with V002 and you'll see the agent return fail. With V003 it should pass.
Iterate
Now make a change. In your editor, change the agent's goal to require rating ≥ 4.0 instead of 3.5. Save the file.
In the terminal running culvii dev, you'll see:
✓ Compiled vendor-screen.ts
✓ Draft synced (vendor-screen)
In the Console, the workflow definition updates immediately. Run it again with V003 (rating 3.9) and you should now see fail.
This is the development loop: save → sync → re-run. There's no rebuild step, no container restart. Drafts are designed to be cheap.
Tail logs from the terminal
In a second terminal, tail the same dev environment:
culvii logs --env dev --follow
You'll see the same trace events as a stream of structured log lines, suitable for grep, jq, or feeding into Cursor / Claude Code as context.
Stop the dev session
When you're done, Ctrl+C in the culvii dev terminal. The Draft is disposed automatically. Your code is still on disk — only the cloud-side ephemeral Draft goes away.
Now you have a working workflow in dev. Next: get it into a stable environment with Deploy to sandbox.