Analytics.
Node-delegated cost tracking. Every node meters its own tokens and spend as it runs — and the canvas rolls all of them into one dashboard across every provider and local model.
Each node accounts for itself.
Most tools wrap one meter around the whole app. DISPATCH delegates cost tracking to the node: each one tallies its own tokens in and out, and prices them at its own model's rate.
An Investigate on gpt-4o, a Plan on claude-opus, a Create on local llama-70b — each prices itself exactly. The canvas only rolls the numbers up: per node, per model, per provider, per run. No billing exporter, no guesswork.
three nodes · three models · one rolled-up total = $0.14
Meter at the node, roll up at the canvas.
The same loop fires every time a node runs: count → price → emit → roll up.
Count its tokens
As a node streams, it tallies prompt and completion tokens straight from the provider's usage fields — input and output kept separate, never estimated after the fact.
Price at its model
Each node already pins a provider and model, so it applies that model's exact input/output rate. Local models price at $0.00 — but still report tokens.
Emit a usage event
On completion the node emits a small usage record — node id, model, tokens, cost — onto the run's event stream, the same channel that drives live status dots.
Roll up to one view
The canvas aggregates every event into one dashboard — per node, per model, per provider, per run — so a twenty-node graph reads as a single, trustworthy number.
Run the graph. Watch the meters.
Press Run. Each node meters its own tokens and cost as it fires; the dashboard rolls them up live into a per-model breakdown and one run total.
Local models cost $0.00 but still report tokens — usage stays visible even when spend is zero.
Know what every node costs.
When cost lives on the node, you can see exactly where spend goes — and trim it without unwiring the graph.
Spend maps to the node that caused it.
A run total tells you what you paid, not why. If a Create node eats 60% of the bill, you see it on the bar in real time — then move it to a cheaper model, cap its tokens, or swap it local. Cost becomes a property you can edit, not a month-end surprise.
One number across four vendors.
OpenAI, Anthropic, Google, and your local models each bill differently — or not at all. The dashboard normalises them into one currency-true total, so a mixed-model graph reads as cleanly as a single-model one.
Twenty agents, one tally.
Because metering is delegated, a Parallel fan-out of twenty agents each reports its own cost — and the Merge rolls them into the same total. No double counting.
Counted, never sent.
All accounting happens on your machine from the usage you already receive. No telemetry, no billing export to a third party — your spend data stays as local as your canvas.
Every run is a row.
Each run's rollup is kept beside the graph, so you can compare what a workflow cost yesterday versus today after a model swap — and catch a price regression before it compounds.
Wire it to the rest.
Model Hotswapping
Set provider + model per node and swap live — the meter reprices on the spot.
openLocal Models
Ollama, llama.cpp, LM Studio — zero-cost nodes that still report tokens.
openAdvanced Orchestration
Cap concurrency and tokens per node to keep the rolled-up cost in budget.
open