No description
| .github/workflows | ||
| assets/fonts | ||
| packaging | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| install.sh | ||
| README.md | ||
Scythe (WIP)
High-performance, zero-copy GPU hardware screen recorder and instant replay overlay for Linux (Wayland & X11) and Windows.
Scythe is a native, ultra-lightweight alternative to NVIDIA ShadowPlay and GPU Screen Recorder. It records gameplay and desktop screens with near-zero CPU and GPU overhead by leveraging hardware video acceleration and zero-copy direct memory pipelines.
Features
- Instant Replay Buffer: Constantly records gameplay into a high-speed in-memory circular ring buffer. Save the last 15s to 5 minutes of action instantly with one hotkey (
Ctrl+Shift+R) without writing temporary files to disk. - Zero-Copy Capture Engine:
- Wayland: PipeWire DMA-BUF frame-passing directly to hardware encoder surfaces.
- X11: XCB Shared Memory (MIT-SHM) capture with per-frame pool reuse.
- Windows: Desktop Duplication API via Direct3D 11 (DXGI) texture binding.
- Hardware-Accelerated Encoding:
- NVIDIA NVENC (
h264_nvenc,hevc_nvenc,av1_nvenc) with direct hardware BGR0 input - AMD AMF (
h264_amf,hevc_amf,av1_amf) with native hardware format support - Intel QuickSync (
h264_qsv,hevc_qsv,av1_qsv) - AMD & Intel VAAPI (
h264_vaapi,hevc_vaapi,av1_vaapi) with DMA-BUF zero-copy - Universal SIMD-accelerated CPU fallback (
libx264,libx265,libsvtav1)
- NVIDIA NVENC (
- ShadowPlay-Style Stealth Overlay:
- Native GTK 3 Layer-Shell overlay with real background blur for Wayland compositors (Hyprland, Sway, etc.).
- Cross-platform hardware-rendered
eguioverlay for Windows, GNOME, KDE, and X11. - Translucent frosted glass HUD dock, centered controls, and contextual dropdowns.
- Dynamic Hyprland Integration: Automatically registers overlay blur rules and binds hotkeys at runtime without modifying
hyprland.conf. - Multi-Channel Audio Routing: Record system audio, microphone, or both simultaneously with individual volume controls via native PulseAudio/PipeWire and WASAPI/CPAL.
Default Shortcuts
| Action | Shortcut | CLI Command |
|---|---|---|
| Open / Close HUD Overlay | Alt + Z |
scythe-ui --menu |
| Save Instant Replay | Ctrl + Shift + R |
scythe-ui --save |
| Toggle Normal Recording | Ctrl + Shift + F9 |
scythe-ui --record |
| Toggle Mouse Cursor | Ctrl + Shift + F10 |
scythe-ui --cursor |
Installation
Arch Linux (AUR)
git clone https://aur.archlinux.org/scythe-git.git
cd scythe-git
makepkg -si
Pre-Built Packages (Releases)
Download the latest packages directly from GitHub Releases:
- Windows Setup:
scythe-setup.exe(Official installer with Start Menu & Desktop shortcuts) - Windows Portable:
scythe.exe(Standalone self-contained executable) &scythe-windows-x86_64.zip - Debian / Ubuntu / Linux Mint:
scythe_*_amd64.deb - Fedora / RHEL / openSUSE:
*.rpm - Universal Linux:
scythe-x86_64.AppImage - Generic Linux:
scythe-linux-x86_64.tar.gz
Build from Source
Prerequisites
- Rust (1.80+)
- FFmpeg 6+ / 7+ development libraries (
libavcodec,libavformat,libavutil,libswresample,libswscale) - PipeWire (
libpipewire-0.3-dev) - GTK 3 and GTK Layer Shell (
libgtk-3-dev,libgtk-layer-shell-dev)
Compile & Install
git clone https://github.com/oiupoyt/scythe.git
cd scythe
bash install.sh
CLI Usage
scythe-ui --menu # Open the interactive overlay UI menu
scythe-ui --status # Query background daemon state and metrics
scythe-ui --save # Save instant replay clip to disk
scythe-ui --record # Toggle normal recording on/off
scythe-ui --cursor # Toggle mouse cursor capture
scythe-ui --reload # Reload daemon settings
scythe-ui --quit # Stop background recording daemon
Configuration
Settings are saved in JSON format at ~/.config/scythe/config.json:
{
"fps": 60,
"record_bitrate_kbps": 18000,
"replay_duration_sec": 60,
"video_codec": "h264",
"output_directory": "~/Videos/Scythe",
"show_cursor": true,
"audio_mode": "system",
"mic_volume": 0.6,
"system_volume": 1.0,
"menu_hotkey": "Alt+Z",
"save_hotkey": "Ctrl+Shift+R",
"record_hotkey": "Ctrl+Shift+F9",
"cursor_hotkey": "Ctrl+Shift+F10"
}
License
Licensed under either of Apache License, Version 2.0 or MIT License at your option.