Workflow editorAutomations that run code, images and models — on your own machine.

Wire a pipeline on a canvas and press Run. A node can be code in any of ten languages, a folder of files on your own disk, an AI model, an image operation, or one of thousands of operations on the services you already use. Deploy it to a URL or a schedule when it works.

Part of Circuitry Studio — the same AI works in every surface, on the models you choose.

The Order API workflow mid-run: green ticks on the start node, the JavaScript validate node, the IF and the 400 Bad Request return, with the executed path drawn in green. Downstream sit a GPT-4o Mini fraud check, a Slack alert, a Stripe charge, and a fork into Google Sheets, Supabase Postgres, an Apple AI thank-you note and an email to the customer.
Mid-run: validate the order, check it for fraud, take the payment, then record it and write the customer back.

A node can be real code.

Code nodes

Ten to pick from on the node itself — JavaScript, TypeScript, Python, Three.js, Shell, Go, Rust, C, C++ and Zig. Each node has its own run button, so you test that one step before you wire the next. Go, Rust, C, C++ and Zig compile to WebAssembly, and Python runs on a WebAssembly runtime — so the workflow runs inside Circuitry on whatever device you opened it on, and in the cloud once you deploy it. Point Python at your own machine through Circuit and it runs there natively instead.

A Code node on the workflow canvas with its language menu open: JavaScript, Python, Three.js, Shell, Go, Rust, C, C++ and Zig

The language menu on a single Code node.

Say what the step should do; the wizard writes it.

A wizard on every node

Every node type carries one. Type a line — “Mandelbrot fractal”, “resize to 800px wide”, “post it to the channel” — and the node comes back configured, with whatever it wrote there to edit.

The Quick Code Wizard above a Python code node, with the prompt 'Mandelbrot fractal' typed in and generated NumPy code below

One line in, working Python out.

The wizard already knows what the last node produced.

Build a node at a time

Run a node and its output is real. Add the next one and its wizard reads that output — the shape and the values — so what it writes lands on your actual fields. Wire a selfie and a dress into an image step, type “put dress on the lady in a different pose without camera”, and both pictures are already sitting there as inputs.

Two image nodes on the canvas — a mirror selfie and a red slip dress — wired into an AI Image Generator whose prompt reads 'put dress on the lady in a different pose without camera'. Both source pictures appear as thumbnails above the prompt, labelled 'sent as inputs', and the generated result sits in an Image node below.

The selfie and the dress, picked up as inputs on their own, and what came back.

Run over folders on your own disk.

Point a Files node at a folder, put a Loop around the work, and Save writes each result back out. Resize a hundred photos, OCR a stack of receipts, strip metadata, build a full app-icon set, remove backgrounds. The badges count each file through the loop as it runs.

A workflow reading a folder of photos, looping over each one, removing its background with AI and saving the result, with per-node run counts

Seven images through the loop, seven files written.

Output draws itself on the board.

Wire a step into an Image node and it renders the picture; into a Chart node and it plots the data; into a 3D node and it runs the Three.js scene, animation and all. The result sits beside the code that made it, so a change and its effect are in the same glance.

Python code nodes on the canvas with breakpoints set, each feeding an image node that renders the Mandelbrot and Julia sets it computed

Code node, then the picture it produced.

Send one input to several models and read the answers side by side.

Each Agent node picks its own model, so a Fork can hand the same input to three of them and put their three answers on the canvas at once. The run log records which model each node used and how long it took.

Shot needed
One input forking into three Agent nodes on different models, each showing its own answer.

Sketch it by hand, then turn the sketch into the workflow.

Sketch to diagram

  • Draw a shape, write a label inside it, and the two become one block you can drag.
  • An arrow between two blocks becomes a connection that re-anchors when you move them.
  • To Node reads each handwritten label and creates a real node from it — “remove background” arrives as a Vision node already set to Remove Background.
  • One undo brings the ink back exactly as you drew it.
Video, not a still
A hand-drawn sketch of boxes and arrows on the canvas, converting into wired nodes that then run. The conversion is the claim — a still can only show the after.

The pen works on the same canvas as the nodes.

Press D and the board becomes a whiteboard — the full pen tray, on the running system. Circle the part that’s slow, sketch the next stage beside the built one, hand it to someone over live collaboration. The ink stays where you put it; the workflow still runs.

Shot needed
A running workflow with handwritten annotations and a sketched next stage drawn around it.

Hand the working board to the coding agent.

The board is where you get the behaviour right; the agent is what puts it into your project. Ask it to implement the flow in your code, come back later and ask it whether the code still matches the board, or change the board and ask it to update the code. The Generate Code button also exports the flow directly.

Shot needed
A workflow beside the agent chat, where the agent has just written the equivalent code into a project file.

Hundreds of services, thousands of operations.

The Plugins Library holds ready-configured integrations from hundreds of providers, browsable by category. If the one you need isn’t there, the wizard builds it — from an API spec file, or by reading the service’s own documentation. That includes your company’s private endpoints.

The plugin library — providers with their service and operation counts, filtered by category.

The plugin library — providers with their service and operation counts, filtered by category.

Give it a URL, or a schedule.

  • Set the Start node to Webhook and save. The URL is live from that moment — real requests start real runs, and a Reply node answers the caller.
  • Set it to Schedule and build the timer from dropdowns; it previews the next few run times before you commit.
  • Choose where it runs: circuitry.dev, or your own Circuit, where the data and the execution stay on your machine.
  • No deploy step to remember: the URL serves whatever you last saved.
A deployed workflow: a webhook trigger into a Rust code node that reads the request body, into a Reply node, all three showing green completion ticks

A webhook, a Rust step, a reply — that whole flow is the endpoint.

Watch it run. Stop it where it matters.

  • Every node shows its own status as the run passes through, and holds the output it produced — click one to read it.
  • Breakpoints in Python, JavaScript and TypeScript pause the run mid-line, with stepping and variable inspection.
  • Run one node on its own, or from a chosen node onward, so you don’t repeat the expensive steps while iterating.
  • The Run Log is a call stack, not a flat list: an agent’s tool calls are indented under the agent that made them, with timings.
Shot needed
The Run Log open beside the canvas, an agent row with its MCP and vector-store calls indented underneath.

The phone runs the whole studio.

Same workflows, same tools. Start a run, change a node, or wire a new board from nothing — and the terminal, the code editor and every other surface are there beside it, laid out for a touchscreen rather than trimmed down for one.

The Order API workflow open on a phone, mid-run: green ticks on the start, validate, IF and return nodes, with the full editing toolbar and a run button along the bottom.

The same board, mid-run, on a phone.

Any automation task, not only the cloud ones.

Batch a folder of product photos, strip the background from each and write them back to disk. Chart the numbers a step just computed, or render a 3D scene. Call the services you already pay for, and put the finished board behind a URL or a schedule. One canvas covers all of it, on your own machine or in the cloud.

A workflow named Image Batch: a start node into a folder of product photos, a loop, an Image node showing a t-shirt, a Remove Background node showing the same t-shirt cut out, and a Save node writing to ./save-test, with per-node run counts on each.

A folder of product photos: background removed from each, saved back to disk.

Build it, watch it run, then put it live.

Free for non-commercial use. Deploying a workflow to the cloud, and reaching your own machine from a phone or tablet, need a paid plan.

The other surfaces in the studio