# Documentation

Squiggle tests, profiles and debugs your React Native app from the inside. It sees which component is on screen, what it rendered and what a tap set off, so your tests survive a redesign and a slow screen points at the code that made it slow.

## Start here

Setup takes one command and one rebuild. After that, your first flow takes a few minutes.

- [Set up your app](https://squiggle.sh/docs/setup): Install Squiggle, run squiggle init, and rebuild once.
- [Your first flow](https://squiggle.sh/docs/first-flow): Run the flow init wrote, then record one of your own.

Not ready to install? Try Studio in your browser first, on a demo app.

## What you can do

- [Test journeys](https://squiggle.sh/docs/flows): Flows in YAML that find controls by what they are, and keep passing when the layout changes.
- [Describe a step as a goal](https://squiggle.sh/docs/agentic-flows): Your coding agent works out the steps once. Every later run replays them.
- [Find what is slow](https://squiggle.sh/docs/performance): Findings that name the component, the request or the render behind a slow screen.
- [Inspect a component](https://squiggle.sh/docs/inspector): Point at anything on screen to see its props, state and the line that renders it.
- [Replay a session](https://squiggle.sh/docs/replay): Record a session, play it back, and keep the seconds before a crash.
- [See how people use it](https://squiggle.sh/docs/analytics): A heatmap, rage taps and funnels, with no events to add by hand.

Your coding agent can do all of this too, through Squiggle’s MCP server. See [Connect your agent](https://squiggle.sh/docs/agents).

## What it runs on

- An Apple Silicon Mac with macOS 15 or later, and Xcode.
- A React Native app you can rebuild: an Expo development build or a bare React Native app. Expo Go can’t load the SDK.
- iOS apps in the simulator, and [React Native macOS apps](https://squiggle.sh/docs/macos). Squiggle doesn’t drive Android or web apps.
