A powerful, cross-platform screen recording application built with Wails (Go + React/TypeScript). Record your screen with customizable settings, smart zoom effects, and high-quality output.
- High-Quality Recording: Record your screen in multiple resolutions (720p, 1080p, 1440p, 4K)
- Smart Zoom Effects: Automatically creates zoom effects when you click during recording
- Flexible Frame Rates: Output videos at 30, 60, or custom frame rates
- Multiple Capture Devices: Select from available screen capture devices
- Cursor Capture: Records cursor movements and interactions
- Real-time Preview: See what you're recording in real-time
- Custom Video Processing: Enhanced video quality with brightness, saturation, and gamma adjustments
- Cross-Platform: Works on macOS, Linux, and Windows
- Modern UI: Clean, intuitive interface built with React and Tailwind CSS
- Go: Core application logic and screen capture
- Wails v2: Desktop application framework
- FFmpeg: Video processing and encoding
- RobotGo: Mouse and keyboard event handling
- React 19: Modern React with latest features
- TypeScript: Type-safe JavaScript
- Tailwind CSS: Utility-first CSS framework
- Vite: Fast development and build tool
- Radix UI: Accessible UI components
Before you begin, ensure you have the following installed:
- Go (1.23 or later)
- Node.js (18 or later)
- FFmpeg - Required for video processing
# macOS brew install ffmpeg # Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows # Download from https://ffmpeg.org/download.html
- Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
git clone https://github.com/emeraldls/open-recorder
cd open-recorder# Install Go dependencies
go mod tidy
# Install frontend dependencies
cd frontend && npm install && cd ..# Run in development mode with hot reload
wails devThe app will open automatically. You can also access the dev server at http://localhost:34115 for browser debugging.
# Build a distributable application
wails buildThe built application will be in the build/bin/ directory.
- Select Capture Device: Choose which screen or display to record from the dropdown
- Choose Resolution: Select your preferred recording resolution (720p to 4K)
- Start Recording: Click the record button to begin
- Add Zoom Effects: Click anywhere on your screen during recording to add automatic zoom effects at those points
- Stop Recording: Click stop when finished
- Save Your Video: Choose location and frame rate for your final video
The app automatically creates cinematic zoom effects when you click during recording:
- Click once to mark a zoom point
- The final video will smoothly zoom into clicked areas
- Zoom duration: 2 seconds
- Zoom factor: 2x magnification
- Resolution: 720p, 1080p, 1440p, 4K
- Frame Rates: 30fps, 60fps, or custom
- Format: MP4 with H.264 encoding
- Quality: Optimized with medium preset and CRF 23
The app uses optimized FFmpeg settings for high-quality recordings:
- Codec: H.264 (libx264)
- Preset: Medium (balance of speed and compression)
- Pixel Format: UYVY422
- Color Enhancement: Brightness +1.9%, Saturation +15%, Gamma 0.8
You can modify recording parameters in app.go:
- Frame rates
- Video quality settings
- Zoom effect duration and intensity
- Color correction values
screen-recorder/
├── app.go # Main Go application logic
├── main.go # Application entry point
├── wails.json # Wails configuration
├── frontend/ # React frontend
│ ├── src/
│ │ ├── views/ # Main application views
│ │ ├── components/ # Reusable UI components
│ │ └── lib/ # Utility functions
└── build/ # Build outputs and assets
- Backend (Go): Add new methods to the
Appstruct inapp.go - Frontend (React): Components are in
frontend/src/components/ - Styling: Uses Tailwind CSS for consistent design
- State Management: React hooks for local state
Oluwasegun Lawrence
- Email: lawrencesegun025@gmail.com