Solo
$39/month
for one machine
Everything the product does, on the machine you work on.
- 1 machine
- 1 CI run at a time
Pricing
You pay for machines. Every plan drives devices, reads your own data, runs in CI and carries the whole agent runtime — there is no tier that unlocks a feature, no add-on for performance, and nothing on this page you have to talk to someone to find out.
Plans
Solo
$39/month
for one machine
Everything the product does, on the machine you work on.
Team
Most popular$159/month
for 5 machines — about $32 each
A small team, and a second CI run in flight for busy pull-request days.
Enterprise
Let’s talk
priced on machines, invoiced yearly
More machines than five, invoicing, and a procurement process to satisfy.
No tier unlocks the agent runtime and nothing here is an add-on. The plans differ by the two countable things above — machines and CI slots.
Simulators and devices over real HID — taps the app cannot tell from a finger.
Selectors survive a moved control, so a redesign is not forty broken tests.
A session becomes a file: replay it, assert on it, diff two runs of it.
Eleven node kinds and the causality edges between them, not a flat log.
Twelve detectors, baselines, and a regression that fails the pull request.
Funnels, retention, affinity and friction — over the same rows as the traces.
Eighty tools, the intent runtime and a deny rail your agent obeys.
A signed grant works with no network, and captured data stays in your repo.
After you buy
npm install -g @squiggle.sh/clisquiggle activatesquiggle activate prompts for it, masked as you paste. Passing it inline works and warns — a key given as an argument is written to ~/.zsh_history in plain text, where it outlives the terminal and syncs to backups.~/.squiggle/license.json is a signed grant; four characters of the key are kept so squiggle license has something to show you, and nothing more.Trial
squiggle activate --trialsquiggle licenseCI
env: SQUIGGLE_LICENSE_TOKEN: ${{ secrets.SQUIGGLE_LICENSE_TOKEN }}Questions
~/.squiggle and it is honoured offline until it expires. Revalidation happens in the background, after the command has already run — a licence check never adds latency and never fails a run on a train.activate, license, doctor, --help — keeps working. Nothing you already captured is locked up: the store is SQLite and JSONL in your own repo.