Changelog
What’s new in Squiggle: every feature, every fix and every speed-up, newest first. The desktop app, the CLI, the MCP server and the SDK all ship on one version number, so a release here is a release everywhere — update once and you have all of it.
Public beta
0.1.016 August 2026
Welcome to Squiggle. This is the first public release, and the whole idea fits in a sentence: your app already knows what it is doing — its component tree, its state, its navigation, its network, its frame times — and until now nothing was asking. Squiggle puts a small SDK inside the running app, streams all of that into one queryable model, and then QA, performance, product analytics and agents stop being four tools that disagree and become four views over the same thing.
That model is the design, not a feature of it. A flow selector resolves against it, so a renamed button re-resolves instead of going red. A slow frame and the render that caused it are two queries over the same data. An agent reads it instead of screenshots — which is why a login journey runs end to end at zero model turns, and why every claim it makes carries the session and event it came from, for you to check rather than believe.
What you install. Six pieces, one version number, one licence. Start with the SDK: everything else is a view over the graph, and nothing produces a graph until the app is instrumented.
@squiggle.sh/react-native- the SDK, and the only Squiggle code that goes inside your app.
bun add @squiggle.sh/react-native, then one side-effecting import at the top ofindex.js. No provider, no config file, no account: the native accelerator and its single peer come along with it, idle cost is approximately zero while nothing is attached, and it checks no licence — the thing that has to be trusted enough to ship in your bundle asks nothing of you. @squiggle.sh/babel-plugin- a devDependency, and strictly optional. It is the difference between a component name and a clickable source location, and — with MMKV v4 — between storage spans and none.
@squiggle.sh/clinpm install -g @squiggle.sh/cli. Sixty-three commands from one typed tree, with an exit-code contract CI can branch on:squiggle initwires the SDK into an existing app,squiggle uprelaunches it with the agent attached and proves it,squiggle flowruns a journey, and--jsonis on everything that returns data.- The desktop app
- the DMG on the download page, for Apple Silicon. The Studio, the Runtime Inspector, the Performance Center and the Agent Center, plus the same
squigglebinary bundled inside the app, so installing one installs both. One licence and one project store across the two. - The MCP server
- already in the CLI, so there is nothing else to install.
squiggle init --mcpmerges the entry into your.mcp.json— your other servers survive untouched — and your agent gets seventy-five tools over one warm session, where a second question costs almost nothing. - The agent kit
squiggle agent kit --installwrites skills, a subagent per mode, hooks and slash commands into your agent, so it learns how to drive your app once instead of being told each time.- A licence
squiggle activate --trialgives you fourteen days with no card. After that a licence verifies offline, on the machine, and CI takes a token instead.
What beta means here. Everything below this line works and is being used daily; beta is about the shape, not the parts. The SDK's public API is what we will be slowest to change, because it lives in your bundle. The CLI's flags, the MCP tool names and the flow vocabulary are where a breaking change is most likely before 1.0 — and every one of them will land here, on this page, with the version that made it.
Desktop app
- Newone-click simulator bring-up, and a live canvas you can drive your app from
- Newthe Runtime Inspector — eleven node kinds, the causality edges between them, and a render-flame tree you can scrub
- Newsix overlay modes on the canvas, and a grid that watches several devices at once
- Newthe Performance Center: flamegraphs, heap diffs, network waterfalls and baselines, side by side
- Newinteraction analytics — a heatmap that knows which component was under the finger, not just where the pixel was
CLI
- Newsixty-three commands from one typed tree, with an exit-code contract CI can branch on
- New
squiggle initwires the SDK into an existing Expo or bare app in one step, and is safe to run twice - New
squiggle uprelaunches your app with the agent attached — and proves it, rather than hoping - New
--jsonon every command that returns data, so a run is pipeable into whatever you already have
Agents & MCP
- Newan MCP server with seventy-five tools over one warm session, so a second question costs almost nothing
- Newa runtime that executes a compiled plan and wakes the model only at the decisions that need one — a login journey runs end to end at zero model turns
- Newevery claim an agent makes carries the session and event it came from, so you can check it instead of believing it
- New
squiggle agent kit --installdrops the skills into your agent, so it knows how to drive the app without being told each time
Flows & device
- Newflows in YAML, with selectors that name what a control *means* rather than where it sits — a moved button re-resolves instead of going red
- Newrecord a session and replay it offline, as many times as you like, against the same assertions
- Newthree delivery planes, chosen per step, so a run is as fast as it can safely be
Product analytics
- Newfunnels with time-to-convert, cohort retention, feature affinity and release annotations — over the same events everything else reads
SDK
- Newone install and one import. A Babel plugin and an Expo config plugin do the rest, and nothing ships to your users
Licensing
- Newa fourteen-day trial with no card, and a licence that verifies offline once activated