A free, open-source screen recorder and editor for polished product demos — with Screen-Studio-style auto-zoom, cursor effects, on-device AI voice enhancement, and hardware HEVC export.
This is a fork of OpenScreen (itself a continuation of the original project by Siddharth Vaddem) that pushes the editor toward Screen Studio Pro territory. Everything runs locally: no accounts, no uploads, no telemetry.
OpenScreen records your screen at the native resolution while capturing the cursor and every click as a separate metadata stream — the cursor is never baked into the pixels. That one architectural choice is what makes the polish possible: zooms are generated from your clicks after the fact, a synthetic cursor is re-rendered along a smoothed path, and every effect stays editable until export.
Record → Edit → Export:
| Recording | Editing | Export |
|---|---|---|
| Full screen or single window (ScreenCaptureKit) | Click-driven auto-zoom with cinematic easing | MP4 (H.264 or HEVC) and GIF |
| System audio + microphone + webcam | Smoothed synthetic cursor with click ripples & bounce | Hardware-accelerated (VideoToolbox) |
| High-frequency cursor & click telemetry | Backgrounds, padding, shadows, motion blur | Studio Sound voice enhancement |
| Trim, crop, per-segment speed, annotations | Constant 60 fps retiming | |
| On-device Whisper captions (13 UI languages) |
Load a recording and the timeline is already working for you — zoom regions are auto-suggested at the exact positions you clicked during the recording (dwell detection fills in click-free stretches):
Exports re-render the synthetic cursor with click ripples, and the camera zooms to where you clicked:
Choose H.264 for compatibility or HEVC for smaller files at the same quality (hardware-encoded via VideoToolbox), and flip on Studio Sound to denoise and de-reverb your voiceover — a local DeepFilterNet model, roughly 25× faster than realtime on Apple Silicon, measured at ~37 dB of noise reduction with speech preserved:
One click on the timeline's audio-cleanup button (Remove silences & filler words) detects long silences — and filler words, when the transcript surfaces them — and cuts them as ordinary, undoable trim regions: the same delete-the-span mechanics a transcript editor uses.
Compared to upstream OpenScreen:
- Click-driven auto-zoom — every click becomes a zoom target (Screen Studio behavior); dwell detection remains as the fallback for click-free spans.
- Cursor click ripples — an expanding, fading ring anchored at each click's true position, identical in the live preview and the exported file.
- Studio Sound — on-device AI voice enhancement (DeepFilterNet) applied to MP4 exports, off by default, nothing leaves your machine.
- Silence & filler-word removal — one-click timeline cleanup built on the existing on-device Whisper stack.
- HEVC export — hardware
hvc1encoding when the platform supports it, at 65% of the H.264 bitrate. - Assorted fixes (standalone diagnostic tool schema, etc.).
Requirements: macOS on Apple Silicon, Node 22 (see .nvmrc), npm 10, and Xcode (for the Swift capture helpers).
git clone https://github.com/AlanRoybal/openscreen-studio.git
cd openscreen-studio
npm install
# Native ScreenCaptureKit + cursor helpers (Swift)
npm run build:native:mac
# On-device Whisper model for captions & audio cleanup
node scripts/fetch-caption-model.mjs
# Optional: DeepFilterNet CLI for Studio Sound (sha256-pinned download)
npm run fetch:deep-filter
# Launch
npm run devOn first recording, grant Screen Recording and Accessibility (for click capture) in System Settings → Privacy & Security, plus Microphone if you record voice.
Tip
If Electron's binary fails to download during npm install (an npm allowScripts policy can block its postinstall), run node node_modules/electron/install.js once.
- Record — pick a display or window in the recorder HUD, toggle mic/system audio/webcam, hit record.
⌘⇧Oopens the app from anywhere. - Edit — the editor opens with auto-zoom suggestions already on the timeline. Drag to adjust zoom regions, press
T/A/Sfor trims, annotations, and speed ramps, tweak the cursor (size, smoothing, click effects), pick a background, generate captions. - Clean up — the waveform button removes long silences and filler words as undoable trims.
- Export — choose MP4 (H.264 or HEVC) or GIF, pick a resolution, optionally enable Studio Sound, and export. Encoding is hardware-accelerated end to end.
npm run dev # Vite dev server + Electron with hot reload
npx tsc --noEmit # typecheck
npm run test # unit tests (Vitest)
npm run test:browser # Pixi/canvas rendering tests (Playwright)
npm run test:e2e # end-to-end export tests (build with `npm run build-vite` first)
npm run lint # BiomeLayout: src/ is the React/Pixi editor, electron/ the main process and IPC, electron/native/ the Swift (macOS) and C++ (Windows) capture helpers, src/lib/exporter/ the WebCodecs export pipeline, src/lib/captioning/ the on-device Whisper stack.
The recorder writes three artifacts per session: the screen video (native resolution, cursor hidden), a cursor telemetry file (position, clicks, cursor type — captured via a CGEventTap), and a session manifest. The editor and exporter treat the video as just one layer: the synthetic cursor, zoom camera, ripples, backgrounds, and annotations are all composited from metadata at render time (Pixi/WebGL for preview, canvas + WebCodecs for export), which is why everything stays adjustable after recording and why exports match the preview deterministically.
MIT — free for personal and commercial use, no paywalls, no premium tiers.
Built on OpenScreen, continued from the original work of Siddharth Vaddem. Voice enhancement uses DeepFilterNet (MIT/Apache-2.0); captions use Whisper via Transformers.js.



