Skip to content
New1.2: environment overrides, virtual nodes, Open in Xcode →

Inspect iOS interfaces, layer by layer.

Cutaway is a free Mac app that looks inside your running iOS app: every layer of the interface in 2D or spread apart in 3D, with its attributes and Auto Layout constraints. Change a value, and the app changes with it.

Version 1.2.0 · macOS 14 or later · Free and open source

Cutaway inspecting an app in 3D: the layer tree, the layers spread apart, and the attributes of the selected layer.Cutaway inspecting an app in 3D: the layer tree, the layers spread apart, and the attributes of the selected layer.

Three steps to your first inspection

About ten minutes, most of it waiting for a build.

1

Add CutawayServer

Add the Swift package to your iOS app and start it at launch. It goes into Debug builds only.

CutawayServer.start()
2

Run your app

In the Simulator, or on an iPhone or iPad connected to your Mac with a cable.

3

Open Cutaway

Your app appears in the list within a few seconds. Choose it, and its layers arrive.

Read the getting started guide →

See how the interface is really built

Everything below works in the Simulator and on a device over USB, with any app that includes CutawayServer.

Preview

Take the interface apart

Spread the layers apart in 3D and turn them with the trackpad to see what sits behind what. Collapse a subtree in the list and it folds back into one.

The preview →
Measuring

Measure without a ruler

Select a layer, hold ⌥ and point at another, in the preview or in the layer list. The distances appear in points, in 2D and in 3D.

Measuring →
Attributes

Change it while it runs

Edit text, colors, opacity, insets and more. Each change is applied in the running app at once, and ⌘Z undoes it.

Attributes →
Auto Layout

Follow the constraints

See every constraint that refers to a view, which ones are not in effect, and where the other end is. Click the other end to go to it.

Constraints →
EnvironmentNeeds CutawayServer 1.2

Try dark mode and larger text

Override the app’s appearance, text size, layout direction and size classes from the toolbar, and the preview follows, without opening the Simulator’s settings.

Environment →
Archives

Keep what you found

Save an inspection as a .cutaway file and open it later on any Mac, without the device: the tree, screenshots, attributes and constraints are all there.

Archives and export →

Fast with ten thousand layers

Every full test run on the development Mac holds Cutaway to these limits, on a generated tree of 10,000 layers shaped like a real app.

2 sfrom the tree arriving to the list on screen
16 msfor a new frame while you turn the camera
100 msfrom selecting a row to the preview and inspector following
How Cutaway stays fast →

Stays between your Mac and your app

Privacy and security →
  • Cutaway talks to simulators over the loopback address and to devices over the USB cable, and to nothing else.
  • No account, no analytics, no crash reports. Checking for updates asks GitHub for the list of releases and sends nothing about your Mac.
  • CutawayServer listens on 127.0.0.1 only and is left out of Release builds unless you opt in.

Three open-source parts

The Mac app and the iOS SDK share no code, only a versioned protocol, so either side can be read, tested or replaced on its own.

Cutaway

The macOS app. Finds your apps, draws their layers and edits their attributes. Swift, AppKit and Metal.

GPL-3.0 · macOS 14 or later

CutawayServer

The iOS SDK you add to your app. Captures layers, images and attributes when Cutaway asks. Pure Swift, no dependencies.

MIT · iOS 13 or later · Swift Package Manager

Cutaway Protocol

The FlatBuffers protocol between them: a numbered specification, the schema, and fixtures for testing either end.

MIT · version 1.2

Ready to look inside?

All releases and checksums

Cutaway is free software under the GPL-3.0. CutawayServer and the Cutaway Protocol are under the MIT License.