No description
Find a file
2026-10-11 04:47:35 +00:00
.github/workflows ci: disable automated release notes generation to preserve minimal notes 2026-09-11 07:28:22 +05:30
assets feat(ui): dropdown rolldown animation, sound in replay, square buttons, full QoL keybinds, and monospace font support 2026-10-08 23:09:52 +05:30
docs/superpowers docs: add implementation plan for settings UI and notification overhaul 2026-10-04 11:30:17 +05:30
packaging fix(windows): suppress console windows with FreeConsole, ShellExecuteW, and CREATE_NO_WINDOW 2026-09-08 19:42:34 +05:30
src feat(ui): screenshot resolution presets, low-end hardware optimizations, and all 8 keybind tests 2026-10-09 07:47:38 +05:30
tests feat(ui): screenshot resolution presets, low-end hardware optimizations, and all 8 keybind tests 2026-10-09 07:47:38 +05:30
.gitignore fix(ci, windows): track bundle_deps.py and improve mingw dynamic library resolution 2026-09-04 23:45:07 +05:30
.gitlab-ci.yml Add LICENSE 2026-09-27 20:52:52 +05:30
Cargo.lock Fix Windows video encoding, DWM overlay transparency, and settings layout alignment 2026-09-22 22:12:46 +05:30
Cargo.toml Fix Windows video encoding, DWM overlay transparency, and settings layout alignment 2026-09-22 22:12:46 +05:30
install.sh fix(audio): add WASAPI loopback support, mono-to-stereo upmix, and 48kHz resampler 2026-09-10 23:02:39 +05:30
LICENSE-APACHE Add LICENSE 2026-09-27 20:52:52 +05:30
LICENSE-MIT Add LICENSE 2026-09-27 20:52:52 +05:30
README.md Update README.md 2026-10-11 04:47:35 +00:00
TODO_CHECKLIST.md docs: document screenshot resolution presets and low-end hardware optimizations 2026-10-09 07:48:09 +05:30

Scythe (WIP)

High-performance, zero-copy GPU hardware screen recorder and instant replay overlay for Linux (Wayland & X11) and Windows.

Release License

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)
  • ShadowPlay-Style Stealth Overlay:
    • Native GTK 3 Layer-Shell overlay with real background blur for Wayland compositors (Hyprland, Sway, etc.).
    • Cross-platform hardware-rendered egui overlay 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.