Check out pulse to get pulse and this repo together.
Minimal push-to-hold screen recorder for macOS and Windows
Push-to-hold screen capture with the simplicity of a walkie-talkie. Press Cmd+Shift+R (macOS) or Ctrl+Shift+R (Windows), hold to record, release to save. Videos are automatically saved to your Movies folder.
🚧 Architecture Update: Migrating from FFmpeg-based transcoding to native OS APIs (ScreenCaptureKit + Desktop Duplication) for better performance and Retina support. See MIGRATION_NOTES.md for details.
- ✅ Push-to-hold recording - Press and hold to record, release to save
- ✅ Global hotkey - Works from any application (
Cmd+Shift+R/Ctrl+Shift+R) - ✅ Full screen capture - Records entire display at 30 FPS
- 🚧 MP4 video output - Migrating to native H.264 encoding (hardware accelerated)
- ✅ Sequential file naming -
recording-1.mp4,recording-2.mp4, etc. - ✅ Automatic folder creation - Saves to
~/Movies/PushToHold(macOS) or~/Videos/PushToHold(Windows) - ⏳ Microphone audio toggle (coming soon)
- ⏳ Region selection with aspect ratio presets (coming soon)
- macOS 11.0 or later
- Screen Recording permission (prompted on first use)
- FFmpeg (temporary, until native implementation complete)
brew install ffmpeg
- Windows 10 or later
- FFmpeg (temporary, until native implementation complete)
- Download from ffmpeg.org
- Add to PATH
- Deno - JavaScript/TypeScript runtime (install)
- Rust - For Tauri backend (install)
- Xcode Command Line Tools (macOS only)
xcode-select --install
# Clone and navigate to the project
cd pulse-desktop
# Run in development mode
deno task tauri devThis will:
- Start the Vite dev server (React frontend)
- Compile and run the Rust/Tauri backend
- Open the desktop application window
# Build for production
deno task tauri build
# Run frontend only (UI development)
deno task dev
# Run tests
deno task test- Launch the app - Run
deno task tauri dev - Create/select a project - Choose a project name for organizing your recordings
- Record - Press and hold
Cmd+Shift+R(macOS) orCtrl+Shift+R(Windows) - Release to save - Your recording is automatically saved
- Manage clips - View your timeline, drag to reorder clips, edit labels, or delete
- Drag-drop reordering - Click and hold any clip, drag to new position (blue pulsing line shows where it will drop)
- Keyboard navigation - Use arrow keys to navigate, Cmd+Arrow to reorder
- Edit labels - Click on any clip filename to rename
- Undo/Redo - Cmd+Z / Cmd+Shift+Z for timeline changes
npm install
npm run tauri dev