Instant Replay, Recordings and Screenshots with easy sharing and editing tools built in, right on your Windows or Linux PC—local first. FOR LINUX VERSION PULL REQUESTS PLEASE USE THE LINUX BRANCH
A local-first replay recorder: no account, no subscription, no required cloud.
Download · Linux Setup · Windows Setup · Build from Source · Report a Bug
FTHRClips run silently in the background capturing your game and when you press a hotkey it saves the clip. But unlike other applications FTHRClips is built to protect your privacy and doesn't depend on a network connection.
| Category | Feature |
|---|---|
| Capture | GPU-accelerated recording via NVENC / AMF / QSV (CPU OpenH264 fallback) |
| Capture | Crash-resilient manual recordings written directly as fragmented MP4 with live AAC; no stop-time re-encode or whole-file remux |
| Capture | Configurable replay history up to 5 minutes and up to 240 FPS; Low, Medium, High, or custom bitrate |
| Capture | H.264, HEVC and AV1 selection; Windows uses backend-defined presets |
| Capture | Monitor selection and scaling modes |
| Hotkeys | Global hotkeys via Hyprland binds (Linux) or system hooks (Windows); Windows supports controller chords |
| Hotkeys | Save clip · Start/stop · Dismiss notification |
| Audio | System-output and microphone tracks; Windows 11 per-app stems are code-ready but still require hardware qualification (aka we fucked up and it didn't work) |
| Post-processing | Watermark overlay |
| Post-processing | Webcam overlay (picture-in-picture) |
| Post-processing | Windows third-party keyboard window overlay with live chroma-key color picking and intensity control |
| Game detection | Auto-detects game window, prompts to switch capture focus |
| Settings | Presets — save/load/delete full configuration snapshots |
| Clip browser | Thumbnail grid, linked-folder protection, trim editor and transactional export |
| Upload | Optional, consent-installed Catbox or Lustful uploader; Lustful hardware identity is a second install |
| Packaging | Windows installer and experimental Linux AppImage build paths |
you can download a ready installer or app image right on our downloads page downloads.fthrclips.com or compile the code yourself with this repo.
Linux support, build instructions and requirements are maintained on the
linux branch.
Please open Linux-related pull requests against that branch, not master.
Run a locally qualified FTHRClips-Setup-<version>-x64.exe and follow the setup steps. FTHR Clips
installs for all users under Program Files and subsequent downloads of the same
product update or repair that installation rather than creating a second entry.
The uninstaller keeps clips, screenshots and exports. It keeps FTHR settings by
default as well; removing settings/cache is an explicit choice. Global hotkeys
work out of the box.
Requirements: Windows 10 version 1903+ or Windows 11. Native NVIDIA H.264/HEVC/AV1 on a same-adapter display is the intended alpha cohort. Stall mitigations are code-integrated and automated-tested, but the complete physical qualification must be repeated after those fixes. AMD and Intel paths remain hardware-unverified; hybrid or cross-adapter capture is not supported.
See the linux branch for build dependencies and instructions.
Visual Studio 2022 + Python 3.14. See BUILDING.md for the full walkthrough.
┌─────────────────────┐ Shared Memory (v4) ┌────────────────────────┐
│ FTHR_UI (Python) │ ◄─────────────────────────► │ Native capture engine │
│ PySide6 frontend │ │ Windows: WGC + GPU │
│ Consent / Queue │ │ Linux: Wayland/X11 │
│ Clip browser │ │ Platform audio input │
└─────────────────────┘ └────────────────────────┘
│ JSON subprocess IPC
▼
┌─────────────────────┐ Lustful only ┌────────────────────────┐
│ Optional Uploader │ ───────────────────────► │ Optional Hardware ID │
│ Catbox / Lustful │ derived UUID only │ local machine-ID read │
└─────────────────────┘ └────────────────────────┘
The native capture engine runs as a separate process and communicates with the Python UI via shared memory. Windows uses WGC/DXGI capture with the selected NVENC, AMF, or QSV encoder and WASAPI audio. Linux uses supported Wayland capture protocols or native X11/RandR with FFmpeg and PulseAudio-compatible audio. Platform hotkey activation is forwarded by the UI through the same shared-memory command contract; Linux also uses an owner-only Unix socket for compositor key bindings.
the uploader is separate from the main app and doesn't work unless deliberately installed.
Even after it installing it only connects when you allow it to.
please note that all clips uploaded to third party services fall under their terms and privacy policy:
THIRD_PARTY_NOTICES.md.
Issues and PRs are welcome. Please open an issue first for significant changes so we can discuss the approach.
- Run tests:
QT_QPA_PLATFORM=offscreen pytest tests/ - Code style: standard Python (no formatter enforced yet)
- C++ style: match the existing code
AI-Generated Contributions
The use of generative AI when contributing to this repository is generally permitted with the following exceptions:
any AI-assisted contribution that affect any security-critical systems, privacy, data handling, encryption, authentication, update mechanisms, must be reviewed by a competent human contributor, gary does not count.
All creative work that is part of your contribution, including icons, illustrations, audio, music, and sound effects, must be fully created by human artists. AI is a tool to assist, not a replacement for human creativity.
FTHR Clips' own source code is licensed under the
GNU General Public License v3 (GPL-3.0-only). You may use,
study, modify, and redistribute it under those terms.
Copyright © 2026 FTHR Software. The program comes without warranty; see the
complete terms in LICENSE.
Downloadable builds contain the GPLv3-licensed FTHR application together with third-party components that retain their own licences:
| Component | Licence | Effect on the download |
|---|---|---|
| FFmpeg (dynamically linked) | LGPLv3 | Remains under LGPLv3; notices and source availability are required. |
| PySide6 / Shiboken (separate extension modules) | LGPLv3 option selected | Remains under LGPLv3 with replacement and relinking rights. |
| Qt 6 (separate shared libraries) | LGPLv3 option selected | Remains under LGPLv3 with replacement and relinking rights. |
The build uses PySide6 6.11.1 as its sole Qt binding and includes the LGPL text,
notices, exact source locations, and separately replaceable libraries. Bundled
media is either deterministically generated by the project under MIT or is the
hash-verified Oswald 4.103 font under OFL-1.1; the asset allowlist is
tools/release_asset_manifest.json.
Full details and every bundled component: THIRD_PARTY_NOTICES.md.
Licence texts: licenses/, also installed alongside the app.
| Document | What it is for |
|---|---|
BUILDING.md |
Building the app and both engines, on Windows and Linux |
CONTRIBUTING.md |
Tree layout, entry points, the shared-memory contract, conventions |
KNOWN_ISSUES.md |
What is broken, unverified or missing — read before filing a bug |
| Recording reliability changes | Manual recording, faster finalization, focus recovery, and validation results |
SECURITY.md |
Reporting a security issue |
THIRD_PARTY_NOTICES.md |
Every bundled component and its licence |
Note about AI usage
AI tools were used to review and edit parts of the code. (also the comments cuz I'm lazy)
NONE of the assets used on both app and website were created with AI.
All changes made by AI were reviewed/corrected by human contributors.