Buffero is a Windows-only replay buffer desktop app. It runs as a small tray utility, watches for configured games, keeps a rolling video buffer, and saves the last part of gameplay to MP4 when you press the save hotkey.
The current design document source of truth is Buffero Design Document.txt.
- WPF desktop app targeting
net9.0-windows10.0.19041.0 - Single-instance tray app with settings/status window
- Custom executable, window, and tray icon
- Start with Windows support and background launch via
--background - Global replay buffer enable / disable control from the settings window and tray menu
- Auto-start / auto-stop buffering when an allowed game window stays eligible
- Foreground window hook for faster auto-detection, with polling fallback
- Startup scan for new games from Steam libraries, Epic manifests, and other common install folders
- Segment-based rolling replay buffer
- MP4 export to
%UserProfile%\Videos\Buffero Videos - Replay export is blocked when the save drive is critically low on free space
- Default save hotkey is
Alt+P Right Alt/AltGrsave support through the alternate registration path- Selectable window or full-display capture mode
- Selectable native
Windows.Graphics.Capturebackend or legacyffmpeg + gdigrabbackend - Selectable native, max
1080p, or max720pcapture resolution - In-game
Recording savedoverlay on the recorded game window - Tray notification fallback when a replay is saved
- Replay-saved overlay and tray notifications can be disabled in settings
- Diagnostics show save-drive and temp-drive free space
- JSON settings under
%LocalAppData%\Buffero\settings.json - Log files under
%LocalAppData%\Buffero\logs - xUnit coverage for the replay-domain/core logic
- Native capture is now the default path, using
Windows.Graphics.Capturewith the Windows media encoding stack - The legacy
ffmpeg + gdigrabpath is still available as a selectable backend and is also used as a fallback when native capture/export cannot start - Buffero can capture either the matched game window or the display containing that game window
- Replay export re-encodes buffered segments into the final MP4 through the active backend, with ffmpeg fallback when available
- Auto-start uses a ~2.5 second debounce and requires a valid game window only when window capture mode is selected
- Foreground change detection uses
SetWinEventHook, with the periodic scan retained as a fallback - Replay export checks available free space on the configured save drive before queueing export work
- Game autodetection is still executable-list based; the startup scan expands that list automatically
- System audio is still disabled for now
- Windows 10 or Windows 11
- .NET 9 SDK for building from source
ffmpeg.exeis optional, but recommended if you want the legacy backend or automatic fallback when native capture/export fails
Buffero already probes common ffmpeg locations, including the WinGet link path:
%LocalAppData%\Microsoft\WinGet\Links\ffmpeg.exe
dotnet build Buffero.slnAny Buffero.App build is also mirrored to the desktop-shortcut folder:
.\Buffero.App\bin\Desktop\
From source:
dotnet run --project .\Buffero.App\Buffero.App.csprojBuilt executable:
.\Buffero.App\bin\Desktop\Buffero.App.exeBackground launch:
.\Buffero.App\bin\Desktop\Buffero.App.exe --backgrounddotnet test .\Buffero.Tests\Buffero.Tests.csproj- Push to
mainupdates a rolling prerelease namedBuffero Nightlywith a downloadableBuffero-win-x64-nightly.zipasset in GitHub Releases. - Push a version tag like
v1.0.0to create a versioned GitHub Release with a matchingBuffero-win-x64-v1.0.0.zipasset. - The release workflow is defined in .github/workflows/publish-release-build.yml.
- Settings:
%LocalAppData%\Buffero\settings.json - Logs:
%LocalAppData%\Buffero\logs - Temp capture data:
%LocalAppData%\Buffero\temp - Saved clips:
%UserProfile%\Videos\Buffero Videos