ShadowPlay-style replay recorder with an embedded OBS capture engine, a clip gallery, and configurable recording controls.
Browse the full feature gallery →
Screenshots show the English UI with sample clips and simulated capture state. See the gallery for all 28 images and capture details.
Recording settings accept custom replay lengths (10–1200 seconds) and integer bitrates (5 Mbps up to the existing frame-rate limit), alongside the sliders.
Pause replay when AFK is off by default, including for existing installations. Choose 10 or 30 minutes, 1, 2, or 3 hours, or enter a custom timeout of 10–86400 seconds. When no keyboard or mouse input is detected for that long, ClipCat pauses replay. Manual recordings continue with video and audio unaffected. Input resumes replay only if it was enabled before the pause. Turning the AFK setting off also releases the pause. Replay saves already in progress finish before the replay buffer is paused. Idle detection uses Windows session input or the X11 ScreenSaver extension on Linux; Wayland idle detection is unavailable. Controller-only input does not reset the timeout.
The Capture mode dropdown offers Monitor capture and Automatic game capture. Monitor recording always captures the selected display, including games and other apps. Select the primary monitor automatically or choose a connected monitor; unavailable selections fall back to the primary display. Replay clips use the application active when Save is pressed for their filename and folder. Manual recordings use the application active when recording stops. Known games keep their friendly names; other apps use their executable names for stable groups. Changing the mode or monitor clears the replay buffer and is blocked during manual recording. On Wayland, the system screen-sharing portal controls display selection.
Automatic game capture preserves the previous game-detection behavior and saved desktop fallback preference. Existing installations keep this mode; new installations start in monitor mode.
The Language field in Settings switches between Hungarian and English US. On first launch, the Windows display language determines the default: Hungarian for Hungarian Windows, English US otherwise. A saved manual selection is retained for subsequent launches. After saving, the UI, tray menu, and notifications switch languages without restarting.
The Info section at the bottom of Settings contains the version, update check, license link, and GitHub icon. The repository is catninth/clipcat. The License button opens the specified MPL-2.0 license file.
ClipCat uses the shared catninth-updater
Rust library. It checks stable releases from catninth/clipcat after 20 seconds,
then every six hours, and displays the GitHub release body as patch notes.
Installation is user-triggered and uses the selected tag's signed latest.json:
NSIS on Windows, AppImage replacement or .deb/.rpm installation through pkexec
on Linux. Recording and clip-saving guards remain in ClipCat.
See the updater integration guide for configuration and lifecycle details.
To publish a new version:
- Bump the version in
src-tauri/Cargo.tomland theclipcatentry insrc-tauri/Cargo.lock(tauri.conf.jsonuses the Cargo version), then updateCHANGELOG.md. - After committing and pushing, open Actions → release → Run workflow, enable
publish, and provide English release notes following the format of previous releases. This creates av<version>release with installers, signatures, andlatest.json.
The release workflow also creates a nightly prerelease every night; the updater ignores these.
The updater verifies packages with a minisign key. The public key is in tauri.conf.json;
the private key and its password are stored in the repository secrets TAURI_SIGNING_PRIVATE_KEY and
TAURI_SIGNING_PRIVATE_KEY_PASSWORD. If the private key is lost, existing installations
can no longer receive updates.
The UI uses React + Tailwind CSS (Vite), with source files in ui/; translations live in
ui/locales/ and are also loaded by Rust.
npm install
npx tauri dev # Vite dev server + application
npx tauri build # installer packagenpm ci
npm test
npm run build
# Windows: generate the configured resources for native tests as well.
powershell -NoProfile -ExecutionPolicy Bypass -File bundle-obs.ps1
cargo test --locked --manifest-path src-tauri/Cargo.toml -- --test-threads=1
powershell -NoProfile -ExecutionPolicy Bypass -File tests/bundle.test.ps1
node tests/recording-crash.mjsnpm run preview:ui starts a separate browser test UI at 127.0.0.1:5174.
It uses the real React components with simulated native responses; it does not start recording,
run an installer, or overwrite the application's saved settings.
For reproductions of the original audit findings, fixes, and test limitations, see audit-verification.md.