Pixel-perfect screen recording for Mac.
Built with Rust. Powered by Apple Silicon.
Zero-copy · pure Rust · one shot
The name says it all — Zero + Pure + Shot.
Zero — zero-copy GPU pipeline. The CPU never touches a single pixel. 3% usage while recording. Pure — pure Rust, no Electron bloat. 3.9 MB installer, 11 MB on disk. Nothing wasted. Shot — one shot, instant capture. Click to record, done.
Most screen recorders treat your Mac like a 2015 laptop — copying pixels through CPU, bloating memory, spinning fans.
Zureshot doesn't touch your pixels. Every frame flows through a pure GPU pipeline, from capture to file. The result: recordings that look exactly like your screen, using almost no resources.
Your Mac renders at 2× or 3× physical pixels. Most tools quietly downscale to save bandwidth. Zureshot records every single physical pixel.
A 3200×2132 Retina display records at 3200×2132. Not 1600×1066. No exceptions.
Text stays razor-sharp. UI elements keep their crisp edges. What you see is what you get — pixel for pixel.
The entire recording path lives on the GPU. Pixel data never enters your app's memory.
ScreenCaptureKit → IOSurface (GPU) → VideoToolbox HEVC → MP4
↑ ↑
Zero CPU copy Hardware encoder
No memcpy. No Vec<u8>. No frame buffers in RAM. The CPU barely knows a recording is happening.
| Metric | Zureshot | Typical Screen Recorder |
|---|---|---|
| Extra RAM during recording | ~30-50 MB | 200-500 MB |
| CPU usage | < 3% | 15-40% |
| GPU overhead | < 5% | 10-25% |
| Fan noise | Silent | Often audible |
Your Mac stays cool. Your battery lasts longer. Your other apps don't stutter.
Every recording is tagged with the full BT.709 color pipeline:
Play your recording on any device and the colors will match your screen exactly.
Zureshot uses HEVC Main profile with Apple Silicon's dedicated media engine:
A 60-second Retina recording at 60fps: ~135 MB (vs 200+ MB with H.264).
⌘⇧R to record, ⌘⇧A for region select┌─────────────────────────────────────────────────────────────────────┐
│ Zureshot │
├─────────────────┬───────────────────────────────────────────────────┤
│ UI Layer │ Engine (Rust) │
│ Svelte 5 │ │
│ │ ┌──────────────────────────────────────────────┐ │
│ Tray Menu │ │ Capture Pipeline │ │
│ Region Select │ │ │ │
│ Recording Bar │ │ SCK ──→ IOSurface ──→ VideoToolbox ──→ MP4 │ │
│ Dim Overlay │ │ (GPU) (GPU/VRAM) (Media Engine) (SSD) │ │
│ │ │ │ │
│ │ │ Audio: SCK ──→ CMSampleBuffer ──→ AAC ──┘ │ │
│ │ └──────────────────────────────────────────────┘ │
│ │ │
│ │ ┌─────────┐ ┌──────────┐ ┌───────────────────┐ │
│ │ │ capture │ │ writer │ │ commands │ │
│ │ │ .rs │ │ .rs │ │ .rs │ │
│ │ │ SCK API │ │ AVAsset │ │ Tauri IPC bridge │ │
│ │ │ Delegate│ │ Writer │ │ State management │ │
│ │ └─────────┘ └──────────┘ └───────────────────┘ │
├─────────────────┴───────────────────────────────────────────────────┤
│ Tauri v2 + objc2 FFI │
├─────────────────────────────────────────────────────────────────────┤
│ macOS: ScreenCaptureKit │ VideoToolbox │ AVFoundation │ CoreMedia │
└─────────────────────────────────────────────────────────────────────┘
Apple Silicon SoC
┌───────────────────────────────┐
│ │
Display Output ───┤ Window Server composites │
│ frame into IOSurface │
│ │ │
│ ▼ │
│ ScreenCaptureKit delivers │
│ CMSampleBuffer (IOSurface │
│ handle — NOT pixel data) │
│ │ │
│ ▼ │
│ VideoToolbox reads IOSurface │
│ via Apple Media Engine │
│ (dedicated HEVC hardware) │
│ │ │
│ ▼ │
│ Encoded H.265 NALUs │
│ (tiny compressed packets) │
│ │
└───────────┬───────────────────┘
│
▼
AVAssetWriter → MP4 file on disk
Key insight: The pixel data (e.g., 3200×2132 × 1.5 bytes/pixel = 10 MB/frame) stays entirely in unified GPU memory. Only the tiny compressed NALUs (50-100 KB/frame) pass through CPU memory on the way to disk.
| File | Lines | Responsibility |
|---|---|---|
capture.rs |
~650 | SCK stream setup, SCStreamOutput delegate, frame routing, PTS enforcement |
writer.rs |
~470 | AVAssetWriter creation, HEVC encoding settings, BT.709 color, finalization |
commands.rs |
~820 | Tauri IPC commands, recording state machine, window management |
tray.rs |
~250 | System tray icon, context menu, shortcut handling |
lib.rs |
~60 | App bootstrap, plugin registration |
Rust handles all capture, encoding, and file I/O. The UI is a thin Svelte layer (~5 components) for tray menus, region selection, and recording controls. Tauri v2 bridges the two with type-safe IPC.
| Layer | Technology | Why |
|---|---|---|
| Capture | ScreenCaptureKit (macOS 12.3+) | Next-gen capture API, GPU-native IOSurface output |
| Pixel Format | NV12 (420v) |
Native format for HEVC encoder — zero color conversion |
| Color Space | sRGB capture → BT.709 encoding | Lossless metadata match, no implicit conversion |
| Encoding | VideoToolbox HEVC Main | Apple Media Engine hardware, ~3% CPU |
| Container | AVAssetWriter → MP4 | Native Apple muxer, proper moov atom, instant seek |
| Audio | AAC 48kHz stereo, 128kbps | System audio + microphone, dual track |
| FFI | objc2 0.6 + block2 0.6 | Type-safe Rust ↔ Objective-C bridge |
| App Shell | Tauri v2 | Lightweight native wrapper, ~3 MB binary |
| Frontend | Svelte 5 + Vite | Minimal UI for overlays and controls |
# Prerequisites: Rust, Node.js, pnpm
git clone https://github.com/anxiong2025/zureshot.git
cd zureshot
pnpm install
pnpm tauri dev
First launch: macOS will ask for Screen Recording permission. Grant it in System Settings → Privacy & Security → Screen Recording, then restart the app.
pnpm tauri build
The .dmg installer will be in src-tauri/target/release/bundle/dmg/.
| Mac | Chips | Capture | Encoding | Notes |
|---|---|---|---|---|
| MacBook Air | M1 / M2 / M3 / M4 | ✅ SCK Zero-Copy | ✅ Hardware HEVC | Fanless — truly silent recording |
| MacBook Pro 14" 16" | M1 Pro/Max — M4 Pro/Max | ✅ SCK Zero-Copy | ✅ Hardware HEVC | Multiple media engines on Pro/Max |
| Mac mini | M1 / M2 / M2 Pro / M4 / M4 Pro | ✅ SCK Zero-Copy | ✅ Hardware HEVC | Great for desktop recording setups |
| iMac | M1 / M3 / M4 | ✅ SCK Zero-Copy | ✅ Hardware HEVC | 4.5K/5K Retina fully supported |
| Mac Studio | M1 Max/Ultra / M2 Max/Ultra / M4 Max | ✅ SCK Zero-Copy | ✅ Hardware HEVC | Multi-encoder for highest throughput |
| Mac Pro | M2 Ultra | ✅ SCK Zero-Copy | ✅ Hardware HEVC | Up to 4 media engines |
All M-series chips share the same Apple Media Engine architecture. M1 through M4 (including Pro / Max / Ultra variants) deliver identical zero-copy recording quality. Higher-tier chips simply have more encoder instances for parallel workloads.
| Configuration | Capture | Encoding | Limitations |
|---|---|---|---|
| Intel + T2 chip (2018-2020 models) | ✅ SCK | ✅ Hardware HEVC via T2 | No unified memory — extra copy between CPU↔GPU |
| Intel without T2 (pre-2018) | ✅ SCK | ⚠️ Software HEVC | Higher CPU usage (15-30%), may impact performance |
| Requirement | Minimum | Recommended |
|---|---|---|
| macOS | 13.0 Ventura | 14.0+ Sonoma |
| RAM | 8 GB | 16 GB |
| Disk | ~200 MB/min (Standard) | SSD recommended |
| Display | Any resolution | Retina (2x) for best quality |
Vision: Zureshot aims to become the go-to tool for developers and creators who record tutorials, product demos, and technical walkthroughs — combining pixel-perfect capture quality with intelligent presentation features that make every recording look professionally produced.
MIT © Zureshot