Choosing a window
DemoTake records one window, not your whole screen. The window can be covered or pushed off to the side while you keep working, as long as it isn't minimized or on another desktop.
Why one window
A take records exactly one window (or one iOS Simulator device). The rest of your screen, your notifications and your other apps never end up in the video. It also means the window doesn't have to be in front: you can keep working in other apps while DemoTake, or your agent, records.
Pick the window
On a take's recording screen, click Choose Window… on the stage, or Choose… / Change… under Target in the Session Inspector (⌥⌘I). You can also pick it in the Target Window section of the New Take sheet.
DemoTake records one window or iOS Simulator device. Windows keep recording when covered or off to the side; devices are recorded from their own screen.
- Safari · Aurora — DashboardSelected
- Xcode · Aurora.xcodeprojCovered or off-screen. Still recordable.
- Notes · Launch checklist
- iPhone 16 ProiOS 18 · 402×874 pt
Click a thumbnail, then Use Window. If the app you want isn't there, open it and click Refresh. With no windows at all, the sheet says "No windows found. Open the app you want to record, then refresh."
Listing windows needs Screen Recording permission. If it isn't allowed yet, the sheet shows a banner that walks you through it, and the thumbnails appear the moment you switch it on. See Install and permissions.
Once a window is chosen, the stage shows what will be recorded, for example "Window 1680×1050 · 60 fps · App audio on · Mic off".
What the window can and can't do while recording
| The window is… | Records? |
|---|---|
| In front | Yes |
| Covered by other windows | Yes |
| Moved partly off screen, or off to the side | Yes |
| Minimized to the Dock | No. macOS pauses capture of minimized windows |
| On another desktop (Space) | No. It delivers no frames |
DemoTake checks before it records. If the window is minimized, Rehearse and Record refuse to start and tell you to move it aside instead. If a scene starts and no frames arrive, DemoTake stops within a few seconds, discards the empty attempt and says the window is minimized or on another desktop: bring it onto this desktop (it can stay covered) and try again.
Need the window out of the way? Drag it mostly off the edge of the screen or put another window over it. Don't minimize it.
The Session Inspector's Mode section says how the take will run, for example Records in the background when you or your agent drive the app and DemoTake only records.
Browser windows
When the target is a browser window (Safari, Chrome, Edge, Brave, Arc and others), the New Take sheet adds a Browser section:
- Browser page only: "Leaves out tabs, the toolbar and automation bars. Follows the page as bars come and go." Use it when a recording shows tabs, bookmarks or a bar like "Chrome is being controlled by automated test software".
- Show address bar (with Browser page only): "A clean bar with the page's address, drawn by DemoTake. It follows redirects; query strings are never shown." Useful for app reviews, where the video has to show your domain.
- URL contains: records the browser window whose tab shows an address containing this text, such as
yourapp.com, then follows it across navigations. You don't need to move the tab into its own window first. In DemoTake Agent, a tab that isn't in front is brought to the front of its window, or for review takes opened in its own window, so your other tabs aren't recorded. If another tab comes to the front while recording, DemoTake pauses and tells you. With two copies of Chrome running (one started by another tool with its own profile folder), DemoTake looks in both and changes tabs only in the copy that shows the page.
Browser page only and Show address bar are also under Target in the Session Inspector (⌥⌘I), so you can change them later.
DemoTake Agent finds the page area and the address with Accessibility. DemoTake Studio finds them by reading the text of the browser's toolbar, so keep the address bar visible in the browser.
Agents set the same options with browser in take_create, for example {"mode": "page", "address_bar": "drawn"} with {"url_contains": "yourapp.com"} as the target.
Apps that stop drawing when covered
Most apps keep drawing when their window is covered. Some apps that draw with the GPU, such as the iOS Simulator app, games and video players, pause drawing while they are hidden. The recording then shows a blank or frozen stretch.
DemoTake notices. While recording, it warns once that the app stopped drawing and asks you to keep it visible. After recording, those blank stretches are cut from the edit automatically, and the editor's timeline marks each one with its length.
Why a stretch went blank
Each blank stretch carries its cause, so you know what to change next time:
| Cause | What happened | Next time |
|---|---|---|
| Window covered | Other windows were on top of the recorded one | Keep the window in front with nothing on top of it |
| Window minimized or hidden | The window was minimized, the app hidden, or another Space was showing | Keep the window on the current desktop |
| App not drawing | The window was visible and uncovered, but the app sent black or no new frames | Wait for it to finish loading, or interact with it |
| Tab switched | Browser mode: another tab was in front of the recorded one | Stay on the tab, or record it in its own window (browser.tab: "isolate") |
| Screen locked or display asleep | The Mac locked or the display went to sleep | Disable display sleep and the screen saver while recording |
| After a pause | The first frames after resuming from a pause or hand-off were blank | Give the app a moment after resuming |
The capture notes the cause as it happens. For takes recorded with older versions, DemoTake works it out afterwards from the frames (when you run Find Pauses in the Polish tab, or edit_suggest_cuts) and from the take's events and hand-offs, and labels it Inferred with a confidence. When the evidence isn't enough it says cause unknown rather than guess. The causes show in the Polish tab's Blank Stretches group, in the timeline's tooltips, and for agents in edit_suggest_cuts (blank_spans), take_get, timeline_get, take_contact_sheet and review_check, each with a hint.
To keep them anyway, turn off Cut blank frames in the Pacing section of the editor's inspector. Agents use the keep_blank_frames operation of edit_apply. For iOS apps, DemoTake Agent avoids the problem by recording the simulator device itself; see iOS Simulator.
Frame rate and audio
Settings › Capture sets how new recordings are made:
Recording continues when the window is covered or moved aside. Minimized windows pause capture, so move the window aside instead.
- Frame rate: 30 fps or 60 fps. The default is 60 fps. Agents can pass
fpstocapture_start. - Record app audio: the sound of the app you record. Because macOS captures audio per app, sound from the app's other windows is included too.
- Record microphone: your narration. It needs Microphone permission, and DemoTake listens only while you record.
Both audio options are off by default. Agents turn them on per recording with app_audio and microphone in capture_start.
Whole displays
The Choose a Window sheet lists windows and iOS Simulator devices. Agents can also record a whole display: targets_list with include_displays: true lists them. DemoTake keeps its own windows out of display recordings.