Skip to content

Recording & capture

crowd-cast records the apps you selected during setup and nothing else. This page explains exactly how that works.

What gets captured: only your selected apps

Section titled “What gets captured: only your selected apps”

Two separate mechanisms decide what ends up in a recording. They give different guarantees, so it helps to keep them apart.

crowd-cast does not record your whole screen and then crop it down. It asks the operating system to capture only the specific applications you selected: on macOS through ScreenCaptureKit’s application-capture mode, and on GNOME (Wayland) through the private Mutter ScreenCast API. The pixels of any app you did not select never reach crowd-cast at all, so an unselected app cannot appear in the video, even by accident. That guarantee is enforced by the compositor or window manager underneath crowd-cast, not by crowd-cast deciding what to keep after the fact.

When the foreground app is not one you selected, the video is a blank (black) screen. Switch back to a selected app and it resumes.

On macOS, crowd-cast captures the main display (the monitor set as primary in your display settings). On a multi-monitor setup only that monitor is captured, so a recorded app’s window on a secondary monitor is not.

On Windows and GNOME (Wayland), a selected app is captured on whichever monitor it is on, and both behave the same way. Each monitor is scaled to a common size (a 1080-pixel short edge, so a 1080p monitor is captured at 1:1, a 4K monitor at half size, an ultrawide in between), and the app’s window is drawn at its real position on the monitor it occupies. Its whole window is always kept, scaled to fit and never cropped, while everything else stays black. Move the app to another monitor and capture follows it there.

On sway, full-screen capture records the output you pick through the desktop portal, which it asks for each time crowd-cast starts.

Keyboard and mouse events are delivered system-wide, not per window, so something has to decide when to record them. That is the one job follow-focus does: crowd-cast tracks which app is in front (about ten times a second) and logs input only while one of your selected apps is focused. The moment you switch to anything else, input logging stops.

So follow-focus governs input, not the safety of the video. Even if focus detection ever misfired, the worst case would be mis-timed input, never another app’s screen, because the video is already constrained by the compositor as described above. This is the core of crowd-cast’s privacy model.

Recordings are split into segments (5 minutes each by default). Each finished segment (a video file plus its input-event log) is uploaded on its own. This is also why Settings changes take effect on the next segment rather than mid-recording.

If there’s no keyboard or mouse activity for 2 minutes, crowd-cast automatically pauses both video and input. The status shows Idle (paused). As soon as you move the mouse or press a key, it resumes. No data is recorded while you’re idle, so stepping away from your desk never gets captured.

  • Video of the selected app’s window, encoded efficiently (HEVC/H.265 with hardware acceleration where available, downscaled to 1080p, 30 fps). Audio is not recorded.
  • Input events: key presses/releases and mouse movement, clicks and scroll, each timestamped, but only while a selected app is in the foreground.

For the full picture of what is and isn’t collected, and how to keep things private, see Privacy & data.

The capture engine is watched by a watchdog: if the underlying capture call stalls, crowd-cast restarts itself cleanly to recover rather than sitting in a broken state. You may occasionally see the tray icon briefly disappear and reappear when this happens.