the most efficient screen recorder for mac.
Download · Docs · For your agents · Contributing · CLI
Wrec records displays or windows with a native ScreenCaptureKit pipeline, writes
hardware-encoded .mov files, and gives you both a native SwiftUI menu-bar app
and a JSON-friendly CLI for scripts and agents.
Note
Wrec is still early public software. Release builds are not notarized, so macOS blocks the first launch of an app downloaded with a browser. The install script below is not affected (and neither is the CLI); if you drag the app in from a browser download instead, clear the quarantine recursively (the nested helpers are quarantined separately) and reopen:
xattr -dr com.apple.quarantine /Applications/Wrec.app- Native SwiftUI menu-bar app with no capture code in the UI process.
- Standalone
wrecCLI for terminals, scripts, and coding agents. - Display and window capture.
- HEVC by default, with H.264 available.
- 30 FPS and 60 FPS recording.
- Resolution controls for 720p, 1080p, 2K, 4K, and native capture.
- Cursor capture, system audio capture, microphone capture, and Wrec-window hiding toggles.
- Pause, resume, stop, queued jobs, and recording status.
- JSON output for target discovery, job control, errors, metrics, and logs.
- Local recording history and metrics stored separately from media files.
The app and CLI are thin clients for the same local recording service. The SwiftUI shell never captures frames itself: both clients send newline-delimited JSON requests over a channel-specific Unix socket to the Rust daemon. The daemon owns target discovery, permissions, the recording queue, job state, controls, history, and metrics.
For an active job, the daemon launches a separate native Swift capture engine.
ScreenCaptureKit delivers frames directly to AVAssetWriter, which performs
hardware encoding and writes the .mov file. Rust coordinates the recording
but never copies or processes video frames.
The app bundle contains wrec-app, daemon, and capture-engine. The
standalone CLI package contains wrec, daemon, and capture-engine, so both
interfaces use the same protocol and recording pipeline.
Normal CLI commands launch the matching Wrec app when its daemon is absent. This keeps macOS Screen Recording permission attached to Wrec, Wrec Nightly, or Wrec Dev instead of exposing internal helpers in System Settings.
The app:
curl -fsSL https://wrec.app/install-app | shThe installer downloads the latest release, verifies its checksum, and
installs it into /Applications with no Gatekeeper warning (curl downloads
are never quarantined). You can also download the build from
GitHub Releases
and drag it into /Applications yourself — see the quarantine note above.
Either way the app then updates itself in place: About → Check for updates
(the update is digest-verified and relaunches without the Gatekeeper
warning).
The CLI — for terminals, scripts, and coding agents:
curl -fsSL https://wrec.app/install | shThe CLI installer grabs the archive for your Mac, installs the runtime
under /usr/local/lib/wrec, and places a managed wrapper at
/usr/local/bin/wrec. Update it later with wrec update (or check first
with wrec update --check).
Nightly — optimized early-access builds from main, isolated from stable:
curl -fsSL https://wrec.app/install-app | WREC_CHANNEL=nightly sh
curl -fsSL https://wrec.app/install | WREC_CHANNEL=nightly shNightly installs as Wrec Nightly.app with the wrec-nightly CLI.
- macOS 15+.
- Apple Silicon (M-series) Mac. Intel Macs are not supported yet.
- Screen Recording permission for the matching Wrec app.
- Audio Recording permission when system audio capture is enabled.
- Microphone permission when microphone capture is enabled.
| Channel | Audience | App | CLI | Runtime home |
|---|---|---|---|---|
| Dev | Contributors building locally | Wrec Dev | wrec-dev |
~/.wrec-dev |
| Nightly | Users testing work from main |
Wrec Nightly | wrec-nightly |
~/.wrec-nightly |
| Release | Stable users | Wrec | wrec |
~/.wrec |
Each channel also has its own ~/Library/Application Support/<app name> data
directory and ~/Movies/<app name> default recording directory.
Set WREC_HOME to override the daemon directory for tests or isolated agents.
Building from source, development checks, and packaging live in CONTRIBUTING.md. Wrec's north star is recording efficiency: low memory footprint, low CPU usage, and clear controls for people and agents.
MIT