Beautiful screen recordings with automatic zoom, smooth cursor motion, and click effects β right on your desktop, 100% free and offline.
A local, open-source take on tools like Screen Studio. Record your screen, then polish it with cinematic auto-zoom, gradient backgrounds, and animated clicks. Export to MP4, WebM, or GIF.
Runs on Windows, macOS, and Linux. Screen capture uses FFmpeg per platform β Windows (gdigrab) is the actively tested path; macOS (avfoundation) and Linux (x11grab) follow FFmpeg's standard conventions and may need a permissions grant (macOS Screen Recording) or an X11 session (Linux; Wayland is not yet supported). Reports and PRs welcome.
Polished product demos usually mean pricey subscriptions or cloud uploads. Mouse Studio gives you the good parts β auto-zoom that follows your cursor, buttery cursor smoothing, and tasteful click animations β as a free desktop app that never sends a single frame off your machine.
Record once. The editor does the cinematography.
- Any screen or window β pick your source from a dropdown.
- Webcam + microphone (optional) β record a webcam and/or mic alongside your screen. The webcam captures in lockstep with the screen (pause/resume mirrored), and the mic narration is preserved for the editor.
- Cursor-free capture β the real OS cursor is left out of the recording (FFmpeg screen grab:
gdigrabon Windows,avfoundationon macOS,x11grabon Linux), so the editor draws its own crisp cursor instead of baking in a jittery, shape-shifting one. Your real cursor stays visible on screen while you record. - Native cursor + click tracking β every move and click is sampled and saved alongside the video for the editor to work with.
- Pause / resume mid-take.
| π Auto-Zoom | The frame smoothly zooms toward wherever your cursor is working. Tune zoom level and smoothness. |
| π±οΈ Custom Cursor | Arrow, pointer hand, dot, or ring β in four sizes, with optional shadow and velocity-aware smoothing. |
| π₯ Click Animations | Orb, pressure, or ripple effects with adjustable force. |
| π Backgrounds | Preset gradients, real Windows / macOS wallpapers, solid colors, or your own image. |
| πΉ Webcam bubble | Drop your webcam in as a circular or rounded picture-in-picture. Drag it anywhere in the preview, resize it, mirror it, or snap to a corner. |
| π Click sounds + narration | Optional click sounds (synthesized styles or a recorded sample) and your recorded microphone narration β each toggled independently, previewed live, and mixed into the export. |
| πΌοΈ Framing | Padding, corner radius, drop shadow, and aspect ratios (16:9, 4:3, 1:1, 9:16, auto). |
| β±οΈ Timeline | Split, trim, delete segments, add speed-ramp segments, plus undo/redo. |
| ποΈ Preview zoom | Scroll to zoom the preview and pan around β non-destructive, never touches the export. |
- β‘ GPU Hardware Accelerated Encoding β Auto-detects and uses your GPU hardware encoder (NVIDIA NVENC, Intel QuickSync, AMD AMF, macOS VideoToolbox, or Windows Media Foundation) for 5xβ15x faster exports with minimal CPU load (with automatic
libx264CPU fallback). - π Direct Stream Pipeline β Frame-by-frame streaming directly to FFmpeg (
image2pipe) guarantees 100% frame-accurate playback speed and compact output file sizes (10 MB β 30 MB). - ποΈ Export Controls β Select 60 FPS (silky smooth) or 30 FPS, and scale output resolution (Original, 1080p Full HD, 720p HD).
- π Audio muxing β Click sounds and/or microphone narration are rendered to a single track and muxed into the export (AAC). Skipped automatically for GIF and when both are off.
- β±οΈ Real-time Progress & ETA β Live rendering FPS counter, percentage bar, and estimated time remaining during export.
- Formats β MP4 (H.264), WebM (VP9), and GIF (optimized two-pass palette).
Ready-to-use desktop apps are available on the GitHub Releases page:
- Windows: Download
Mouse-Studio-Setup-*.exe(Installer) orMouse-Studio-*.exe(Standalone Portable). - macOS: Download
Mouse-Studio-*.dmgor.zip.
Prerequisites: Node.js 18 or newer.
# 1. Clone
git clone https://github.com/moego0/demo-video-recorder.git
cd demo-video-recorder
# 2. Install (also pulls the bundled FFmpeg)
npm install
# 3. Launch
npm start
# 4. Build standalone installer locally (optional)
npm run distThat's it β the recorder window opens. Pick a source, hit Record, stop when done, and the editor opens automatically with your clip.
Want people to download the app directly instead of building from source? Publish the installers to GitHub Releases. The npm run dist build produces these files in dist/:
| File | What it is |
|---|---|
Mouse Studio Setup <version>.exe |
Windows installer (adds shortcuts + uninstaller) |
Mouse Studio <version>.exe |
Windows portable (runs without installing) |
- Run
npm run distand confirm the.exefiles are indist/. - Go to your repo β Releases β Draft a new release.
- Choose a tag β type a new one like
v0.1.0(matchespackage.jsonversion) β Create new tag on publish. - Add a title (
Mouse Studio 0.1.0) and notes (what's new). - Drag both
.exefiles fromdist/into the "Attach binaries" box and wait for the upload to finish. - Click Publish release.
Your download link is now https://github.com/moego0/demo-video-recorder/releases/latest β that's the URL the Downloads section points to.
With the gh CLI installed and authenticated (gh auth login):
npm run dist
gh release create v0.1.0 \
"dist/Mouse Studio Setup 0.1.0.exe" \
"dist/Mouse Studio 0.1.0.exe" \
--title "Mouse Studio 0.1.0" \
--notes "Webcam PiP, click/mic audio, faster GPU export."- Bump
"version"inpackage.json(e.g.0.1.1). npm run dist.- Create a new release with a matching new tag (
v0.1.1) and upload the freshly built.exefiles.
Heads-up on the unsigned build: because the installer isn't code-signed, Windows SmartScreen shows a one-time "Windows protected your PC β More info β Run anyway" prompt. This is expected for unsigned apps and worth noting in your release notes so users aren't alarmed. Removing it requires a paid code-signing certificate.
- Record β choose a screen or window, optionally pick a webcam and/or microphone, then press Record. Do your thing, then Stop.
- Edit β the editor opens with your clip. Turn on Auto Zoom, pick a background, tweak the cursor and click styles, drag the webcam bubble where you want it, and enable click sounds or narration under Audio. Scrub the timeline to trim or add speed segments.
- Export β click Export, choose MP4 / WebM / GIF, pick your Encoder (GPU / CPU), FPS, and Resolution, then save.
β¨οΈ Handy shortcuts: Space play/pause Β· S split Β· Del delete segment Β· Ctrl+Z / Ctrl+Y undo/redo Β· 0 + - preview zoom.
- Electron β cross-platform desktop shell with Chromium GPU hardware rasterization.
- HTML5 Canvas β hardware-accelerated compositor. Recording and export share one
drawFrame()renderer, so the preview matches the output exactly. - FFmpeg (
ffmpeg-static) β high-performance MP4 / WebM / GIF stream encoding with GPU hardware acceleration. - uiohook-napi β native mouse-click capture.
- No frameworks, no build step β plain JS that's easy to read and hack on.
demo-video-recorder/
βββ main.js # Electron main: capture sources, cursor/click tracking, GPU FFmpeg export stream
βββ preload.js # Secure IPC bridge (contextBridge)
βββ src/
β βββ recorder.html/.css/.js # Recording window
β βββ editor.html/.css/.js # Editor + canvas compositor (drawFrame)
β βββ export.js # GPU Export modal UI & frame stream engine
βββ backgrounds/ # Bundled wallpaper presets
βββ assets/ # README graphics
- Webcam bubble overlay (drag-anywhere PiP, circle / rounded, mirror)
- Cursor click sounds (synthesized styles + recorded sample)
- Microphone narration (recorded and mixed into the export)
- GPU Hardware Acceleration (NVENC, QuickSync, AMF, VideoToolbox)
- Prebuilt installers (Windows
.exe, macOS.dmg/.zip) - Manual zoom keyframes on the timeline
- Background music / audio track
Have an idea? Open an issue β feature requests welcome.
Contributions of all sizes are welcome, from typo fixes to new export formats.
- Fork the repo and create a branch:
git checkout -b feature/your-idea - Make your change and test with
npm start - Open a pull request describing what and why
If Mouse Studio saves you a subscription, a β on the repo genuinely helps others find it.
Released under the MIT License β free for personal and commercial use.
β Star this repo if it helped you ship a better demo.