SimpleRecorder is a Windows-first screen recorder designed for fast capture, a clean HUD, and a GPU-first architecture.
This repository currently contains the Phase 1 foundation:
- WinUI 3 HUD shell
- system tray integration
- persisted settings
- managed recorder stub wired through real contracts
- native engine scaffold for future capture, audio, and encode work
- UI: C# + WinUI 3 + Windows App SDK
- Application architecture: modular monolith
- Contracts: shared .NET interfaces and models
- Infrastructure: settings, tray, native adapter
- Native engine path: C++/WinRT + Direct3D 11 + Windows.Graphics.Capture + Media Foundation + WASAPI
- Windows 11 recommended
- .NET 8 SDK
- Visual Studio 2022/2026 with:
- WinUI / Windows App SDK tooling
- Desktop C++ workload
- Windows 11 SDK
- Open
SimpleRecorder.sln. - Set
SimpleRecorder.Appas the startup project. - Select
Debug | x64. - Press
F5.
.\build\restore.ps1
dotnet build .\SimpleRecorder.sln -c Debug -p:Platform=x64 -m:1
.\src\SimpleRecorder.App\bin\x64\Debug\net8.0-windows10.0.19041.0\SimpleRecorder.App.exeOr use the development shortcut:
.\build\run-dev.ps1src/SimpleRecorder.App: WinUI application entrypoint and app lifetimesrc/SimpleRecorder.Presentation: HUD views, styles, state, and viewmodelssrc/SimpleRecorder.Contracts: shared contracts and recorder/settings modelssrc/SimpleRecorder.Infrastructure: tray, settings persistence, audio device catalog, and native bridgesrc/SimpleRecorder.Engine.Native: native engine scaffold for future capture and encode workbuild/: restore and environment bootstrap scriptsdocs/: architecture and development documentation
Phase 1 is intentionally focused on product shell quality and architecture readiness.
Implemented:
- HUD window and state transitions
- settings persistence
- tray icon with command routing
- recorder controller abstraction with stubbed backend
Not implemented yet:
- real display/window/region capture
- real screenshot pipeline
- hardware encode
- loopback and microphone capture
- The app runs unpackaged in
Debugfor fast local iteration. - The native project exists on disk but is not yet part of the managed solution build pipeline.
- Settings are persisted to
%LocalAppData%\SimpleRecorder\settings.json.
Before the first commit, configure your Git identity:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"Then create the first local commit and connect a remote:
git init -b main
git add .
git commit -m "chore: bootstrap SimpleRecorder repository"
git remote add origin https://github.com/<your-account>/SimpleRecorder.git
git push -u origin main