# Studio

Studio is the Squiggle desktop app. Pick a simulator, and Studio boots it, installs and launches your app with Squiggle attached, and shows it live next to the Inspector, your flows, performance and analytics.

## Open your app

On the Devices screen (`⌘ 1`), pick a simulator. Studio boots it, launches your app if it’s installed, and otherwise builds and installs it first. Each stage shows in the device row (Booting, Installing app, Building app, Launching app, Opening app) and in the notifications. A simulator you boot from Xcode appears on its own.

> **Studio launches your app with Squiggle attached**
>
> That is what makes steps fast and lets Studio see everything. An app launched some other way, such as from Xcode, runs without it: flows still work, more slowly. From the terminal, `squiggle up` launches it the same way Studio does.

## One project at a time

Studio works on one project folder, the one with your `.squiggle` folder in it. Choose it with the folder picker, and switch from the title bar, the banner on Home, or **Project** in Settings. Flows, recordings, performance data and history all come from that folder, the same one the `squiggle` command uses, so a flow you ran in the terminal shows up in Studio’s History.

## Runs

A run is a stretch of recorded data: performance, analytics and product screens all show one run at a time. A new run starts when the app connects or relaunches. **Start run** begins a fresh one, **Stop run** freezes it so you can look at it, and **Reset run** clears it and keeps recording. Pick or delete past runs from the run picker. Each `squiggle flow` is one run too. The Performance and Product screens, and the `--session` flag, call a run a session: they are the same thing.

## Move between screens

Each screen is in the sidebar, and has a shortcut. `⌘ [` and `⌘ ]` go back and forward, and `⌘ /` lists every shortcut.

| Screen | What it is for |
| --- | --- |
| Home | The open project and the connected device, and a card for each screen. |
| Devices `⌘ 1` | Every simulator Studio can reach, and the running Mac apps. Pick the one to work on. |
| Flows `⌘ 2` | Record, edit and run flows. See [Flows in Studio](https://squiggle.sh/docs/studio/flows). |
| Inspector `⌘ 3` | The live component tree, the screen map and what re-renders. See [Inspect a component](https://squiggle.sh/docs/inspector). |
| Replay `⌘ 4` | Play back recorded sessions. See [Record and replay](https://squiggle.sh/docs/replay). |
| Gallery `⌘ 0` | Screenshots and screen recordings. See [Take a screenshot or record the screen](https://squiggle.sh/docs/studio/device#take-a-screenshot-or-record-the-screen). |
| Analytics `⌘ 5` | Errors, friction and what each touch and drag did. See [Heatmap](https://squiggle.sh/docs/analytics). |
| Product `⌘ 6` | Screens, funnels and audience. See [Product analytics](https://squiggle.sh/docs/product). |
| Performance `⌘ 7` | Metrics, the timeline, resources, findings and your data. See [Performance](https://squiggle.sh/docs/performance). |
| Tunings `⌘ 8` | What [`--tune`](https://squiggle.sh/docs/performance#tune-a-constant-against-measured-frames) and [`--repair`](https://squiggle.sh/docs/run/settings#repair-what-a-setup-breaks) measured: a tuning’s curve with its noise, the default and the value it chose, and a repair’s score in each setup before and after. It proposes; it changes nothing in your app. |
| History | Every flow, benchmark, crawl and recording this project ran, with a button to run it again. `⌘ Y` shows the most recent; **See all** opens the screen. `squiggle history` shows the same list. |

## Change Studio’s settings

Open Settings with `⌘ ,`.

| Setting | What it does |
| --- | --- |
| Notification sounds | Plays a sound with each notification. On by default; `⌃ M` mutes and unmutes. Sound palette picks the set of sounds. |
| Project | Switches the open project folder. |
| Command line | Install adds the squiggle command to your PATH, and Remove takes it away. |
| Replay the intro, Welcome banner | Show the first-launch intro again, and bring back the welcome banner on Home after you closed it. |
| Capture incidents | Saves the seconds around something going wrong as a recording. On by default. See [Incident capture](https://squiggle.sh/docs/replay/incidents). |
| Anonymous usage telemetry | The same switch as `squiggle telemetry off` and `on`. |
| Studio tour, Tour button in the sidebar | Start the tour, and show or hide its button in the sidebar. |
| Keyboard shortcuts | Lists every shortcut. |
| Check for updates | Looks for a newer Studio. |

`⌃ T` switches between the system, light and dark themes.

## In this section

- [Drive the simulator](https://squiggle.sh/docs/studio/device): Tap, type, scroll and press buttons from your Mac.
- [Overlays](https://squiggle.sh/docs/studio/overlays): Draw renders, bounds, the accessibility tree or a heatmap.
- [Compact mode and the device grid](https://squiggle.sh/docs/studio/window): Only the device, or every simulator at once.
- [Flows in Studio](https://squiggle.sh/docs/studio/flows): Record, edit, organise and replay flows.
