A step-by-step guide to building workflows, configuring nodes, and wiring up variables in AutoPilot.
AutoPilot turns data work into a flowchart. You drag blocks — called nodes — onto a canvas, connect them in order, and click Run. Each node does one job and passes its result to the next. It's the visual version of a command-line pipeline:
cat data.csv | filter "age > 30" | sort by "name" > output.csvEverything runs inside your browser tab. Nothing is uploaded, no account is needed, and it keeps working with no internet connection.
100% private
Files never leave your machine.
Works offline
Runs fully in the browser, no server.
Handles huge files
Streams to disk so large data won't crash the tab.
A workflow is a left-to-right chain of nodes. The output handle of one node connects to the input handle of the next — "send your result onward." A typical CSV pipeline looks like this:
Bring data in → reshape it → export any node's result straight from the execution panel. Mix and match nodes to build anything from "dedupe this contact list" to "merge ten PDFs and pull out the tables." Browse every available node in the Nodes section of the sidebar.






Variables are how data travels between nodes. Every node that produces data writes its result to a named variable. The next node picks that name from a dropdown as its input. Think of it as a shared bag of results that grows as the workflow runs.
data. Downstream nodes can reference it by selecting data in their input-variable dropdown.data and writes a new variable, e.g. parsedData.parsedData and writes filteredData, and so on down the chain.cleanContacts, over30) rather than the node type. When a workflow has ten nodes, descriptive names make the input dropdowns far easier to read.


Filter a contact list down to people over 30 and export it. Three nodes, end to end.
Upload File
CSV Parse
CSV Filter
filteredData from the execution panel — pick CSV or Excel and optionally split into segments.It takes about a minute. Add a trigger, drop in a file, chain a couple of nodes, and hit Run.
AutoPilot keeps everything on your own machine — nothing is uploaded to a server. Two browser technologies work together, with an optional folder on your disk for long-term keeping.
IndexedDB — the metadata store. Your workflows, nodes, edges, run history, dataset manifests (schema and row counts) and caches live in IndexedDB, the browser's built-in database (accessed through Dexie). It survives refreshes and works offline.
OPFS (Origin Private File System) — the row store. The actual rows of every dataset are written as chunked JSON files in OPFS, a private per-origin file system. It is much faster than IndexedDB for large files and no other website can read it.
Folder archiving (Chromium only). On Chrome, Edge and other Chromium browsers you can link a workflow to a real folder on your computer. Completed runs are archived there automatically; once archived, the browser copy is reclaimed — the folder becomes the durable home and the browser is just a working cache.
Settings → Storage shows your browser storage quota, whether storage is 'persistent' (protected from automatic eviction), and counts of workflows, executions and datasets. It also has cleanup tools: remove orphaned OPFS fragments left by interrupted runs, or clear all in-browser execution data (folder-archived runs are kept).
AutoPilot processes files in chunks so even multi-gigabyte datasets never load into RAM all at once. A single setting controls the chunk size.
Chunk size is the number of rows held in memory per OPFS chunk file. Bigger chunks mean fewer files and faster sequential I/O but more RAM per operation; smaller chunks are gentler on low-memory machines.
| Preset | Chunk size | Recommended RAM |
|---|---|---|
| Balanced | 10,000 rows | 4 GB+ |
| Performance | 25,000 rows | 8 GB+ |
| Maximum | 50,000 rows | 16 GB+ |
Prefer a custom value? Any number between 5,000 and 100,000 rows works. The setting is saved in your browser (localStorage).
Heavy operations — sort, join, aggregate, compare — use streaming algorithms (external merge sort, grace hash join, streaming accumulators) that respect the chunk size, so they scale beyond available memory.
Open Settings → Performance to pick a preset or drag the slider. If a large run feels slow or the tab is under memory pressure, step the chunk size down.
AI is optional. One setting (Settings → AI) powers both the in-editor Assistant and the AI Text node — a local model via Ollama (private, offline, no API key) or any OpenAI-compatible remote API (stronger, but sends your prompts to that provider).
Pull a model
ollama pull gemma3:4bPrefer a remote model? In Settings → AI, switch the provider to "Remote (OpenAI-compatible)", set the base URL and model, and paste your API key — it's kept in memory for this session only and is never written to disk.
AI Text calls the model once per run and always re-runs it on every execution — there's no caching. Everything else in AutoPilot stays fully offline; AI only activates while your configured endpoint is reachable.