Product·App Shots

Show the agent
what you see.

App Shots capture a live window into the Code composer - not marketing screenshots, not a gallery. Hold both Option keys, Continuum comes forward, and the shot drops into the prompt next to your text. Paste, drop, and file attach still work; this is the fast path when the bug is on screen.

both-Option frontmost window into the prompt
Browser
localhost:3000
TypeError: Cannot read properties of undefined (reading 'id')
at SessionRow (Sidebar.tsx:88)
at WorkspaceList (Sidebar.tsx:214)
+ both Option · capture
CodeUsage
Continuum
Portland · claudeworktree · ui-1
no attachment yet press both Option
type a caption after the capture…
waiting for captureMac native

The bug is on screen. The shot is in the prompt.

01 · The gesture

Both Option keys. One capture.

The default is a global both-Option chord - left and right Option together. Continuum captures the frontmost window (or the window you chose in the picker) and stages it as an attachment.

No crop tool. No export dialog. No “save to Desktop then attach.” The point is speed: see the error, grab the frame, tell the agent what to fix.

The chord wants both physical keys, so it reads the left and right modifier bits separately rather than the generic “an Option is down” flag every app already uses. Any other modifier held cancels it.

global hotkey frontmost or chosen Mac-first
Code
hotkey
both
left Option + right Option · default
both Command both Shift
system-wide · Continuum need not be frontMac native

It fires once on the rising edge, the moment both keys are down, and then disarms until you physically break the chord. Hold the keys and nothing repeats. That single rule is what keeps a gesture built from keys you also type with from machine-gunning twenty screenshots into a prompt. Continuum also ignores the chord when it is already frontmost, because the gesture exists to capture other apps.

The hotkey is off until you turn it on. Enabling it installs a keyboard event tap, which macOS gates behind Accessibility, so the toggle only arms once you have opted in and granted the permission. Turn either one off and the tap comes straight back down. Nothing is watching your keyboard on a fresh install.

One capture runs at a time. A second chord during the hand-off is dropped rather than queued, so a nervous double press cannot land two half-finished shots. If there is no capturable window in front, you get a plain “no window to capture” instead of a black rectangle in your prompt.

02 · What gets captured

One window. Real pixels. Nothing else.

An App Shot is a single window, taken through the system window-capture API with a filter scoped to that one window. Not the screen, not the desktop, not the app behind it.

01

Retina, not a thumbnail

The capture is sized to the window at the backing scale of the display it lives on, at best available resolution. Small type in a stack trace survives, which is the entire reason to send an image instead of describing it.

02

Clean frame

The cursor is excluded. The window shadow is dropped. Global clipping is ignored, so a window overlapped by another app still comes through whole rather than with a bite taken out of it.

03

Sane candidates

Only normal on-screen windows qualify: no menus, no overlays, nothing effectively invisible, nothing smaller than a dialog, and never one of Continuum’s own windows. The picker labels each one with its app name and pixel size.

The result is written as a PNG into a staging folder and attached from there, so what the agent receives is a real file, not a lossy paste. Removing the chip cleans the staging directory up behind you. This is the difference between showing a model a rendering bug and typing a paragraph about one, and it is the same instinct as giving an agent the context it actually needs rather than more prose. An editor-bound assistant like Cursor can read every file in the repo and still never see the window your app is rendering in.

03 · Screen Recording

A permission wizard that doesn’t gaslight you.

macOS requires Screen Recording permission for window capture. Continuum walks you through it the first time - open System Settings, enable Continuum, come back. If the toggle is off, the capture fails closed with a clear reason instead of a blank image.

We only need window capture for App Shots. Continuum is not a screen recorder and does not stream your desktop.

It is a runtime permission, not an entitlement baked into the app, so it is yours to revoke at any point. Continuum checks the state without ever prompting, and only asks when you press the button that needs it.

Settings
app shots
Screen Recording
required for App Shots
needed
  1. Open System Settings → Privacy & Security
  2. Screen Recording → enable Continuum
  3. Return here and try the gesture again
Not now Open System Settings

macOS only shows its own Screen Recording prompt once. If you said no months ago, asking again does nothing at all, which is exactly how permission flows end up lying to people. The wizard handles that case: after your first attempt it escalates to a direct deep link into Privacy & Security → Screen Recording rather than pretending the button will work on the next press.

There is a relaunch escape hatch too, because a freshly granted Screen Recording permission sometimes only takes effect for the capture API after a restart. And the last step is a real Test capture: it runs the full path and shows you the resulting image. You leave Settings knowing it works, not hoping it does. Permission theatre is a large share of why a working setup suddenly stops working, so it is worth over-building.

04 · Into the composer

Continuum comes forward. The shot is already attached.

After capture, Continuum teleports to the front and drops the shot into the active Code composer as an attachment chip - thumbnail, window title, ready to send. Type a line of context, hit send. The agent sees the same pixels you saw.

App Shots sit next to paste, drag-drop, and the paperclip. Use whichever is fastest for the moment. Shots stage the same way as other attachments - size cap, preview, remove chip.

The window flies from where it was into the composer, so you can see which frame you grabbed without reading a filename. Under Reduce Motion the shot is simply delivered, with no animation at all.

CodeUsage
São Paulo
São Paulo · cursorworktree · sp-1
here's the crash from the preview build
Xcode · Crash Report app shot · 1.8 MB
repro: open Code → expand defx-frontend → crash on first paint. stack in the shot.
paperclip app shot mic
~$0.08 · ready to sendsame attachment path

If no session is open, the capture lands on the Code tab’s empty-state composer, which is a session waiting to be born. Pick the repo, add the sentence, send, and the shot is the first thing the agent sees. A visual bug reported as “the sidebar looks wrong on first paint” costs a turn of clarification; the same bug with the frame attached usually does not. Running the CLI on its own gets you there eventually, once you have saved a file somewhere and typed its path.

Captions matter more than people expect. The screenshot says what is broken; you still have to say what you want. Pair it with a dictated line from Voice and the whole report takes about four seconds. When the agent comes back with a patch, the reviewing-generated-code habits that apply everywhere else apply here too - an image is evidence, not a spec.

Settings
shortcuts
Settings · App Shots · capture key
Both Option ⌥ + ⌥ default
Both Command ⌘ + ⌘
Both Shift ⇧ + ⇧
global · system-wideMac native
05 · Configurable keys

Pick the chord that fits your hands.

Default is both Option. Prefer both Command or both Shift? Set it in Settings → App Shots. One global gesture system-wide - Continuum does not need to be frontmost to capture. Changing the pair re-arms the tap immediately, with no relaunch and no dead intermediate state.

The alternatives exist for one concrete reason: an Option key may already be your Voice trigger. Two global gestures on the same key is a bad afternoon, so move App Shots to Command or Shift and both keep working.

Mac-first for the global gesture. Electron desktop (Windows / Linux) has App Shot IPC with a confirmation step. On iOS, attach from the file picker or paste - no system window capture API to lean on.

⌥⌥ · ⌘⌘ · ⇧⇧ Electron confirm iOS attach

The Windows and Linux desktop app takes the same idea through a deliberately narrower door. Its capture request is only accepted from Continuum’s own trusted app origin, only when a Continuum window is focused, and every single shot puts up a native confirmation dialog naming the window it is about to share. Approving grants exactly one capture; the next one asks again. It is slower than the Mac chord on purpose, because an Electron renderer is a wider attack surface than a signed native app and a silent screenshot API inside one is not a trade worth making.

iOS has no equivalent. There is no system gesture that hands one app another app’s window, so the phone uses the ordinary paperclip, the share sheet, and paste. That is the same class of platform boundary as what an agent is allowed to touch on your machine: honest limits beat a feature that only works in the screenshot on a marketing page.

06 · Questions

The honest fine print.

Short answers here, long answers in the docs.

No. App Shots exist to put a live window into the agent prompt. There is no gallery, no markup editor, and no share sheet for decks. Capture → composer → send.

The frontmost window by default. You can choose a specific window when the capture UI offers a picker, which lists each candidate by app name and size. Continuum’s own windows are never candidates, and Continuum comes forward after the capture so you can caption and send.

No. The global chord is off until you enable it in Settings → App Shots, and it only arms once macOS has granted Accessibility for the keyboard tap. Turn the toggle off, or revoke the permission, and the tap is removed. A fresh install watches nothing.

No, and that is deliberate. The chord fires once when both keys go down and will not fire again until you physically release one of them. Only one capture runs at a time, so a jumpy second press is dropped rather than queued behind the first.

macOS gates window pixel access behind Screen Recording. Continuum uses it only for App Shots. The permission wizard opens System Settings and fails closed if the toggle is off.

iOS has no equivalent global window-capture gesture, because no iOS app can read another app’s pixels. Attach screenshots or files through the normal paperclip and share path instead. The Mac owns the chord; the Windows and Linux desktop app has the same capture behind a per-shot confirmation dialog.

07 · Begin

Put the bug
in the prompt.

Install Continuum, grant Screen Recording, press both Option keys.

window capture · into the composer · not a gallery