A lightweight, native macOS screen recorder with hardware-accelerated encoding
Features • Requirements • Installation • Usage • Building • Tech Stack
edacam is a menu bar screen recording application built natively for macOS. It leverages Apple's Media Engine for hardware-accelerated H.264/HEVC encoding, resulting in minimal CPU usage and efficient recordings.
Designed with a warm, approachable aesthetic inspired by modern design principles, edacam provides professional-quality screen recordings without the complexity.
| Feature | Description |
|---|---|
| 🎬 Hardware Encoding | Uses Apple's dedicated Media Engine for H.264/HEVC |
| 🖥️ Multi-Display | Record any connected display |
| 🔊 System Audio | Capture system audio output |
| ⏸️ Pause/Resume | Pause recordings without creating multiple files |
| ⌨️ Global Hotkeys | Control recording from anywhere (⌘⇧R, ⌘⇧P) |
| 📊 Live Stats | Real-time duration and file size display |
| 🎨 Menu Bar App | Minimal footprint, always accessible |
| 🔒 Sandboxed | App Store ready with proper entitlements |
- macOS 12.3 (Monterey) or later
- Processor Apple Silicon (M1/M2/M3/M4) or Intel
- Disk Space ~15 MB/minute at High quality
Download the latest release from the Releases page.
# Clone the repository
git clone https://github.com/yourusername/edacam.git
cd edacam
# Open in Xcode
open edacam.xcodeproj
# Build and run (⌘R)- Launch edacam — it appears in your menu bar
- Select a display from the dropdown
- Click "Start Recording" or press
⌘⇧R - Record your content
- Stop by clicking "Stop" or pressing
⌘⇧R - Find your recording in ~/Movies
| Shortcut | Action |
|---|---|
⌘⇧R |
Start/Stop Recording |
⌘⇧P |
Pause/Resume Recording |
| Setting | Options | Default |
|---|---|---|
| Frame Rate | 30 fps, 60 fps | 60 fps |
| Video Codec | H.264, HEVC | H.264 |
| Quality | Low, Medium, High | High |
| Output Format | MP4, MOV | MP4 |
| Save Location | Any folder | ~/Movies |
| Preset | Bitrate | File Size |
|---|---|---|
| Low | 4 Mbps | ~30 MB/min |
| Medium | 8 Mbps | ~60 MB/min |
| High | 15 Mbps | ~115 MB/min |
- Xcode 15.0 or later
- macOS 14.0 or later (for building)
- Apple Developer account (for code signing)
# Clone
git clone https://github.com/yourusername/edacam.git
cd edacam
# Build via command line
xcodebuild -scheme edacam -configuration Release build
# Or open in Xcode
open edacam.xcodeproj- In Xcode: Product → Archive
- In Organizer: Distribute App
- Choose distribution method (App Store / Direct)
| Framework | Purpose |
|---|---|
| ScreenCaptureKit | Screen capture |
| VideoToolbox | Hardware video encoding |
| AVFoundation | Media file writing |
| SwiftUI | User interface |
| Carbon | Global keyboard shortcuts |
┌─────────────────┐
│ SCStream │ Screen capture
└────────┬────────┘
│
▼
┌─────────────────┐
│ VideoEncoder │ Hardware H.264/HEVC
│ (VideoToolbox) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ MediaWriter │ MP4/MOV output
│ (AVAssetWriter)│
└─────────────────┘
edacam/
├── edacamApp.swift # App entry point
├── Models/
│ ├── RecordingState.swift # Observable state
│ ├── RecordingSettings.swift # User preferences
│ └── RecordingError.swift # Error handling
├── Services/
│ ├── ScreenRecorder.swift # Recording orchestrator
│ ├── CaptureManager.swift # ScreenCaptureKit wrapper
│ ├── VideoEncoder.swift # Hardware encoding
│ ├── MediaWriter.swift # File writing
│ └── HotkeyManager.swift # Global shortcuts
└── Views/
├── MenuBarView.swift # Main UI
├── SettingsView.swift # Settings panel
└── ...
edacam is optimized for minimal resource usage:
| State | CPU | GPU | Memory |
|---|---|---|---|
| Idle | < 1% | 0% | ~50 MB |
| Recording (1080p 60fps) | 5-15% | 2-5% | ~150 MB |
Hardware encoding is handled by Apple's dedicated Media Engine silicon, not the CPU or GPU.
edacam requires the following permissions:
| Permission | Purpose |
|---|---|
| Screen Recording | Capture screen content |
| Microphone | System audio capture |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 edacam
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Built with SwiftUI
- Screen capture powered by ScreenCaptureKit
- Hardware encoding via VideoToolbox
Made with ❤️ for macOS