← All Posts

Blog

Why LookInside Supports Multiple Inspection Windows

May 19, 2026

The original Lookin allowed one inspection window at a time. When you connected to a second target, the first disconnected. That was a reasonable starting point, but it created friction in common workflows.

The workflow that kept coming up

The scenario developers described most often was this: they had a live iPhone inspection open and wanted to check the same screen on an iPad simulator without losing the iPhone hierarchy. Or they had a saved .lookin archive from a bug report open as a reference, and they needed to compare it against the current build.

With a single-window model, any of those workflows required the user to remember what they were looking at, disconnect, reconnect to the second target, then switch back — and repeat every time they wanted to compare.

Why a document-based architecture was the right fix

macOS has a first-class concept for this: document-based apps. Each document owns its own window and file lifecycle. The operating system gives us standard document behaviors like Open Recent, Save As, window management, and the File → New menu for free.

For LookInside, mapping each live inspection to a document was a natural fit. A live inspection is essentially a connection to a running target plus the view hierarchy snapshot that came back from it. An archive is a saved version of the same data. Both map cleanly to the document model.

The key behavioral rule that makes this work: connecting to the same target focuses its existing document rather than opening a second one. That avoids the confusion of two windows showing the same target with potentially different snapshots.

What changed in practice

Each document window now owns the connection, view hierarchy, dashboard, console, and reconnect state for exactly one target. When a target drops its connection and comes back, only the window bound to it reconnects. Nothing else is disturbed.

Opening a new inspection goes through File → New Inspection… or the target picker inside an existing inspection window. LookInside opens a new document window for a different target, while selecting the same target focuses the existing document.

The tradeoff

Document-based apps require a bit more intentional design than single-window apps. Every piece of state has to live in the right place — global app state versus per-document state — and that distinction has to be maintained as features are added. We made that investment because the multi-window benefit is real and the alternative, a growing pile of workarounds for the single-window limitation, is worse long-term.

The docs section has the practical details on opening and managing inspection windows.