Fig. 0 — what it is
Wire inputs, AI steps and actions into a graph
Several inputs can feed one graph, each running only the part it reaches — event-driven, batched, scheduled or on demand. Runs on your machine, with any model, and tells you plainly when something breaks.
Download AWO — free See how it works
Free tier, no account, no telemetry. Node.js 22+.
sources: - id: chat trigger: type: discord botToken: ${DISCORD_BOT_TOKEN} channelIds: ["1189…"] # 25 messages, one AI call deliver: { mode: batch, maxWaitSeconds: 300 } - id: hourly trigger: { type: schedule, everySeconds: 3600 } nodes: - { id: read, type: reason, prompt: "Which stocks?" } edges: - { from: chat, to: read } - { from: hourly, to: read }
The problem with one-thing-after-another
Most automation tools give you a list of steps that runs top to bottom. That is fine until the work is real, and then three things break at once.
Two things start the same job
A message arrives and a schedule fires. With a list you build two near-identical workflows and watch them drift apart, or one that does both jobs on every event and bills you for the half you did not need.
The AI's answer should decide what happens next
"Is this urgent?" ought to pick one of three branches. A list can only run the next step, so the branching ends up inside a prompt, where you cannot see it, test it, or find out why it chose wrong.
A busy channel costs a fortune
One run per message is fine at ten messages a day and ruinous at three hundred an hour — every message its own model call, most of them saying nothing worth a call.
How AWO works
You draw a graph. AWO runs the part of it that each event actually reaches, and keeps a record of what happened and why.
Wire up what happens
Add inputs, AI steps, conditions and actions from the palette, and say what runs next. The canvas is a plain YAML file on your disk — the same document the command line runs.
Press Test run
The graph runs for real with a stand-in event. Every step shows what it was given, what it produced and why it ran — including the steps that were skipped and the reason.
Set it watching
It runs on its own from then on: immediately on an event, batched over a window, on a schedule, or when you say so.
Fig. 2 — one graph, three inputs
Which part of the graph runs — and which part doesn’t. Pick an input to take over.
Nothing has run yet — pick an input above.
What you compose it from
Nine primitives. Everything else is how you wire them.
Inputs
Discord, Telegram, webhooks, live sockets, page changes, schedules, manual
Ask the AI
Any model, per workflow or per step. Reply as text or parsed JSON
Pull out data
A field from an event, or text matching a CSS selector
Only continue if…
Gate the branch on a real value
For each item
Fan out over a list, with ceilings on breadth and spend
Bring together
Merge branches and read what actually arrived
Send an alert
Discord, Slack, Telegram, email, database, any webhook
Run a command
Tests, builds, scripts. Off until you allow-list it
AI writes code
A coding agent in a sandbox, opening a PR. Off by default — and the basis of Autopilot
What people build with it
Each of these ships inside AWO as a recipe: open it, fill in two or three fields, press Test run.
Watch a page and tell me what changed
Checks on a schedule, asks the AI whether the change was worth a message, and only then alerts you.
schedule→ask the AI→only if…→alert
Triage a busy chat channel
Reads a batch of messages, classifies what is being asked, and routes each kind down its own branch.
discord · batched→classify→route
Reproduce → fix → verify
Turns a bug report into a failing test, fixes until it passes, and refuses to open the pull request if it does not.
report→failing test→fix→gate
And for software engineering work: Project Autopilot
Point AWO at a repository and give it a goal. It drafts a plan of phases with dependencies, shows you the plan before anything runs, then works it phase by phase — opening one pull request per phase with your test suite as the gate.
A plan you can edit
The goal is decomposed into phases. Add, reorder, split or delete them before a line of code is written — the decomposition is a document, not a hidden step inside a prompt.
Five cycles per phase
Researcher and planner investigate — both read-only, and no config can make them writable. Builder writes and opens the PR. Reviewer and tester gate it: fail, and there is no pull request.
Done means done
A run is complete when every phase is done with a landed PR — a fact about saved state, never a model announcing it has finished.
What batching saves you
A busy channel is where one run per message stops being affordable. Put your own numbers in — a model call is the unit of cost, so the saving is just how many calls stop happening.
One run per message
—
AI calls / day
Batched
—
AI calls / day
Fewer calls
—
at the same coverage
Saved / day
—
at $0.002 per call
Batching never runs less often than its own timer, so a quiet channel still delivers on the window. The arithmetic above accounts for that.
What a run tells you
Every step keeps what it was given, what it produced, how long it took, and why it ran. Open one.
When it goes wrong
The same failure, reported two ways. The first is what the machine knows. The second is what you need.
Error: action node "forward" (discord) failed: discord action
needs `content` text and/or an `embed` object in config
at runAction (orchestrator.js:612:11)
at WorkflowRunner.executeSubgraph (orchestrator.js:1104:24)
True, and it tells you what the code checked rather than what to do.
The Discord message could not be sent because it has no message text.
Open this step and fill in message text — either type it, or
reference an earlier step’s output like {{ ai.output }}.
And most never reach a run: AWO checks what it can while you are still configuring, so the mistake is caught before the model is ever called.
The thing itself
The builder, as it actually looks. Steps carry a coloured seam by kind, the canvas is the same document the CLI runs, and a test run lights up every step it touched.
How it compares
Only things that can be checked. No opinions about anyone else’s product.
| AWO | Hosted automation tools | Writing it yourself | |
|---|---|---|---|
| Runs on | Your machine | Their servers | Yours |
| Your data goes | Only where you send it | Through them | Only where you send it |
| Model | Any — local or cloud | Usually theirs | Any |
| Several inputs, one graph | Yes | Varies | If you build it |
| Cost at 10k events | Flat | Per task or per run | Your time |
| Works offline | Yes, licence included | No | Yes |
| You maintain | A workflow | Nothing | All of it |
Why a graph
Most automation tools give you a list of steps that runs top to bottom. That works right up until real work shows up:
- Two things can start the same job — a message and a schedule.
- One AI step’s answer should decide which of three branches runs.
- A busy channel should be batched, so fifty messages cost one model call.
- A fix-and-retry loop needs to run until it passes, with a hard ceiling on attempts, time and spend.
A list cannot express any of those honestly. A graph can, and AWO’s engine executes it directly: an event arrives, AWO works out which steps it affects, gathers their inputs, runs them, records the result and carries on.
What it will not do
No telemetry
AWO makes no call home, ever. Not for licensing, not for usage, not for crash reports. The only requests are the ones your workflow makes.
No account to run it
Download, unpack, run. An account here exists only so you can read back a licence key you bought.
Off by default
Shell commands, filesystem access, git writes and code-writing agents each need a separate, explicit opt-in. A workflow file can never enable them on its own.
Your workflows are files
Plain YAML on your disk, readable and version-controllable. Stop paying and they keep working within the free limits.
What it costs
The free tier is a real product, not a demo. You pay at the point you want a second input feeding one graph, or a second workflow running.
Free
$0 / forever
No account, no card, no time limit.
- One workflow, one input
- Every node type, any model
- Full run history and debugging
Pro
$12 / month
When one input stops being enough.
- Several inputs feeding one graph
- As many workflows running as you like
- Project Autopilot, Postgres, email support
Questions people actually ask
Do I need to be a developer?
No, and the recipes are there for exactly that reason: pick one, fill in two or three fields, press Test run. You never see YAML unless you want to.
You do need to install Node.js once and choose a model. Both are one-time, and the download page walks through them.
Where does it run?
On your machine. The Studio is a local web app at 127.0.0.1, nothing is hosted, and there is no account needed to run it. If you close the laptop, the workflow stops — put it on a server you control if you want it always on.
Which AI models does it work with?
Any of them. A local Ollama costs nothing and works offline; OpenAI, Anthropic and your own endpoint work too. You can set a model per workflow, or per step — a cheap one for classification, a strong one for the summary that gets published.
AWO ships no model and no keys, so the choice and the bill are yours.
What does it cost to run?
AWO itself is free for one workflow. The running cost is your model calls, and batching is the lever that controls them — the calculator above takes your own numbers.
Is my data sent anywhere?
No. AWO makes no call home — not for licensing, not for usage, not for crash reports. The only network requests are the ones your own workflow makes, to the places you configured. The full account is here.
How is this different from Zapier, n8n or Make?
Three things, all checkable: it runs on your machine rather than their servers, it uses any model including a local one, and several inputs can feed one graph with each running only the part it reaches. The comparison table sticks to facts and offers no opinion about anyone else's product.
What happens if I stop paying?
Your workflows stay on your disk as plain YAML and keep working within the free limits. Nothing is deleted and nothing is held hostage. A lapsed subscription also gets 14 days at the paid tier first, with a notice on screen, rather than stopping at midnight.
Is it open source?
No — AWO is proprietary, licensed and not sold, and the download contains the compiled product. Your workflows are a different matter: plain files that belong entirely to you.
Build your first workflow tonight
Free tier, no account, nothing sent anywhere. Unpack it and the Studio opens — a recipe gets you running in about a minute.