Lightweight screen recorder for Windows with an OBS Studio-like interface: one portable .exe, hardware H.264 to MP4, desktop audio and microphone, pause, global hotkeys.
Rust
6
61 commits
updated Oct 19, 2026
Lightweight screen recorder for Windows: a single ~7 MB .exe, with no bundled runtime or browser.
The interface follows OBS Studio, so OBS users find everything where they expect it.
| Idle (preview + audio) | Recording 1080p60 + audio | |
|---|---|---|
| Private memory | ~100 MB | ~270 MB |
| CPU (16 threads) | ~0.5 % | ~1.5 % |
Measured on Windows 11 on a laptop with an RTX 4060 GPU, encoding on its Intel integrated GPU (Quick Sync), without a webcam; your numbers will vary. About 40 MB of the recording figure is the queue of converted frames that keeps the encoder from dropping frames when it briefly stalls.
Status: early (0.3.0). obs-lite has been tested on a single machine (Windows 11, laptop with Intel and NVIDIA GPUs); see docs/TESTING.md for what was and was not verified. It has not had any security audit or independent code review. Most of the code was written with an AI coding assistant (Claude Code) and then built and tested as described there. It is not affiliated with the OBS Project and contains no OBS code.
obs-lite-X.Y.Z-windows-x64.msi, the installer: it needs no administrator rights, installs
to %LOCALAPPDATA%\Programs\obs-lite, adds Obs Lite to the Start menu and, if you tick the
box, to the desktop. A newer .msi upgrades it in place; uninstall it from Settings › Apps.obs-lite-X.Y.Z-portable-windows-x64.zip, the portable version: unzip it anywhere and run
obs-lite.exe. There is nothing to install.Ctrl+Alt+R). By default it records the first display Windows
reports and desktop audio at 60 fps to your Videos folder.Same layout as OBS Studio and its dark Yami palette, with OBS's wording in Spanish or English (it follows the Windows display language; change it in Settings › General):
Replay 2026-10-18 17-43-13.mp4, or
Repetición … in Spanish). It can run on its own or together with a recording; a recording
started while it runs begins at once, on a forced keyframe. Memory: what the quality preset
encodes in that time, about 30 MB for 20 s at 1080p60 medium.Ctrl+Alt+R and Ctrl+Alt+P.Everything is set from the interface (Ajustes and the docks) and saved in
%APPDATA%\obs-lite\settings.json. Delete that file to go back to the defaults: first display,
cursor captured, desktop audio on, microphone off, 60 fps, native resolution, medium quality,
output to the Videos folder, hotkeys Ctrl+Alt+R and Ctrl+Alt+P, obs-lite hidden from capture,
update check on, 20 s replay buffer.
Recordings are named after their start time (2026-10-16 13-45-02.mp4) and screenshots likewise
(Screenshot 2026-10-16 13-45-02.png, or Captura … in Spanish).
%APPDATA%\obs-lite.Each release zip and installer has a detached signature (.asc) made with this OpenPGP key:
A7FC EDEA D7E6 C343 7312 284A 442D A687 E0FF 73EE
Import the key and check that the fingerprint matches the one above and the one published in at least one other independent place (for example https://github.com/25Dark25.gpg):
curl -sL https://github.com/25Dark25.gpg | gpg --import
gpg --fingerprint A7FCEDEAD7E6C3437312284A442DA687E0FF73EE
Verify the signature of the zip (or, the same way, of the .msi):
gpg --verify obs-lite-0.3.0-portable-windows-x64.zip.asc obs-lite-0.3.0-portable-windows-x64.zip
The output must say Good signature and show the fingerprint above.
Optionally, compare the file's SHA-256 with the one in the release notes:
sha256sum obs-lite-0.3.0-portable-windows-x64.zip, or on Windows
Get-FileHash obs-lite-0.3.0-portable-windows-x64.zip -Algorithm SHA256.
gpg ships with Gpg4win and with Git for Windows.
Requires Rust 1.95 or later and the MSVC Build Tools with the Windows SDK (used to embed the icon).
cargo build --release
.\target\release\obs-lite.exe
Checks run by CI on every pull request (Windows, Rust 1.95 and stable):
cargo test --locked
cargo clippy --locked --all-targets -- -D warnings
cargo build --locked --release
cargo deny --locked check # needs cargo-deny; licenses, RustSec advisories, sources
The capture and encoding pipeline needs a GPU and a desktop session, so CI cannot exercise it.
--selftest records the primary display plus desktop audio through the same pipeline as the app:
.\target\release\obs-lite.exe --selftest 6 test.mp4 # 6 s at 1080p60
.\target\release\obs-lite.exe --selftest 6 test.mp4 pause 720 # pauses the middle third, 720p output
.\target\release\obs-lite.exe --selftest 6 test.mp4 replay # also saves the last 3 s as test-replay.mp4
It prints captured, encoded and dropped frame counts. The installer is built from a release build
with WiX 6.0.2 (installer/build.ps1), and installer/test.ps1
installs, upgrades and uninstalls it, as CI does. docs/TESTING.md has the
full manual test protocol and docs/RELEASING.md the release steps.
WGC (only when the image changes) ─┐
webcam (Media Foundation) ─────────┴─► GPU canvas (region crop + webcam overlay)
│
recording clock (excludes pauses) ─► video thread converts the canvas every 1/fps
to NV12 (GPU video processor, scaling) into a queue
WASAPI desktop + mic + app ─► mixer paced by the same clock (fills silence)
│
H.264 encoder (hardware, or software) + AAC encoder ─► packets ─┬─► MP4 writer
replay buffer (in memory) ◄─┘ ─► MP4 on save
src/capture.rs: capture sessions, source list and preview.src/encoder.rs: clock, canvas, frame queue, constant-frame-rate encoder, recording file and
replay buffer.src/mf.rs: Media Foundation pieces: GPU colour conversion, H.264 and AAC encoders, MP4 writer.src/camera.rs: webcam capture and overlay placement.src/audio.rs: WASAPI capture, devices and mixer.src/app.rs: user interface (egui) and recording lifecycle.src/config.rs: settings and their defaults.build.rs: draws the icon and embeds it in the executable.Please report vulnerabilities privately; see SECURITY.md.
MIT. Each release also ships THIRD-PARTY-LICENSES.html with the licenses of the
crates compiled into obs-lite.exe, generated with cargo-about
(cargo about generate --locked --fail about.hbs -o THIRD-PARTY-LICENSES.html).
Lightweight screen recorder for Windows with an OBS Studio-like interface: one portable .exe, hardware H.264 to MP4, desktop audio and microphone, pause, global hotkeys.
Rust
6
61 commits
updated Oct 19, 2026
Lightweight screen recorder for Windows: a single ~7 MB .exe, with no bundled runtime or browser.
The interface follows OBS Studio, so OBS users find everything where they expect it.
| Idle (preview + audio) | Recording 1080p60 + audio | |
|---|---|---|
| Private memory | ~100 MB | ~270 MB |
| CPU (16 threads) | ~0.5 % | ~1.5 % |
Measured on Windows 11 on a laptop with an RTX 4060 GPU, encoding on its Intel integrated GPU (Quick Sync), without a webcam; your numbers will vary. About 40 MB of the recording figure is the queue of converted frames that keeps the encoder from dropping frames when it briefly stalls.
Status: early (0.3.0). obs-lite has been tested on a single machine (Windows 11, laptop with Intel and NVIDIA GPUs); see docs/TESTING.md for what was and was not verified. It has not had any security audit or independent code review. Most of the code was written with an AI coding assistant (Claude Code) and then built and tested as described there. It is not affiliated with the OBS Project and contains no OBS code.
obs-lite-X.Y.Z-windows-x64.msi, the installer: it needs no administrator rights, installs
to %LOCALAPPDATA%\Programs\obs-lite, adds Obs Lite to the Start menu and, if you tick the
box, to the desktop. A newer .msi upgrades it in place; uninstall it from Settings › Apps.obs-lite-X.Y.Z-portable-windows-x64.zip, the portable version: unzip it anywhere and run
obs-lite.exe. There is nothing to install.Ctrl+Alt+R). By default it records the first display Windows
reports and desktop audio at 60 fps to your Videos folder.Same layout as OBS Studio and its dark Yami palette, with OBS's wording in Spanish or English (it follows the Windows display language; change it in Settings › General):
Replay 2026-10-18 17-43-13.mp4, or
Repetición … in Spanish). It can run on its own or together with a recording; a recording
started while it runs begins at once, on a forced keyframe. Memory: what the quality preset
encodes in that time, about 30 MB for 20 s at 1080p60 medium.Ctrl+Alt+R and Ctrl+Alt+P.Everything is set from the interface (Ajustes and the docks) and saved in
%APPDATA%\obs-lite\settings.json. Delete that file to go back to the defaults: first display,
cursor captured, desktop audio on, microphone off, 60 fps, native resolution, medium quality,
output to the Videos folder, hotkeys Ctrl+Alt+R and Ctrl+Alt+P, obs-lite hidden from capture,
update check on, 20 s replay buffer.
Recordings are named after their start time (2026-10-16 13-45-02.mp4) and screenshots likewise
(Screenshot 2026-10-16 13-45-02.png, or Captura … in Spanish).
%APPDATA%\obs-lite.Each release zip and installer has a detached signature (.asc) made with this OpenPGP key:
A7FC EDEA D7E6 C343 7312 284A 442D A687 E0FF 73EE
Import the key and check that the fingerprint matches the one above and the one published in at least one other independent place (for example https://github.com/25Dark25.gpg):
curl -sL https://github.com/25Dark25.gpg | gpg --import
gpg --fingerprint A7FCEDEAD7E6C3437312284A442DA687E0FF73EE
Verify the signature of the zip (or, the same way, of the .msi):
gpg --verify obs-lite-0.3.0-portable-windows-x64.zip.asc obs-lite-0.3.0-portable-windows-x64.zip
The output must say Good signature and show the fingerprint above.
Optionally, compare the file's SHA-256 with the one in the release notes:
sha256sum obs-lite-0.3.0-portable-windows-x64.zip, or on Windows
Get-FileHash obs-lite-0.3.0-portable-windows-x64.zip -Algorithm SHA256.
gpg ships with Gpg4win and with Git for Windows.
Requires Rust 1.95 or later and the MSVC Build Tools with the Windows SDK (used to embed the icon).
cargo build --release
.\target\release\obs-lite.exe
Checks run by CI on every pull request (Windows, Rust 1.95 and stable):
cargo test --locked
cargo clippy --locked --all-targets -- -D warnings
cargo build --locked --release
cargo deny --locked check # needs cargo-deny; licenses, RustSec advisories, sources
The capture and encoding pipeline needs a GPU and a desktop session, so CI cannot exercise it.
--selftest records the primary display plus desktop audio through the same pipeline as the app:
.\target\release\obs-lite.exe --selftest 6 test.mp4 # 6 s at 1080p60
.\target\release\obs-lite.exe --selftest 6 test.mp4 pause 720 # pauses the middle third, 720p output
.\target\release\obs-lite.exe --selftest 6 test.mp4 replay # also saves the last 3 s as test-replay.mp4
It prints captured, encoded and dropped frame counts. The installer is built from a release build
with WiX 6.0.2 (installer/build.ps1), and installer/test.ps1
installs, upgrades and uninstalls it, as CI does. docs/TESTING.md has the
full manual test protocol and docs/RELEASING.md the release steps.
WGC (only when the image changes) ─┐
webcam (Media Foundation) ─────────┴─► GPU canvas (region crop + webcam overlay)
│
recording clock (excludes pauses) ─► video thread converts the canvas every 1/fps
to NV12 (GPU video processor, scaling) into a queue
WASAPI desktop + mic + app ─► mixer paced by the same clock (fills silence)
│
H.264 encoder (hardware, or software) + AAC encoder ─► packets ─┬─► MP4 writer
replay buffer (in memory) ◄─┘ ─► MP4 on save
src/capture.rs: capture sessions, source list and preview.src/encoder.rs: clock, canvas, frame queue, constant-frame-rate encoder, recording file and
replay buffer.src/mf.rs: Media Foundation pieces: GPU colour conversion, H.264 and AAC encoders, MP4 writer.src/camera.rs: webcam capture and overlay placement.src/audio.rs: WASAPI capture, devices and mixer.src/app.rs: user interface (egui) and recording lifecycle.src/config.rs: settings and their defaults.build.rs: draws the icon and embeds it in the executable.Please report vulnerabilities privately; see SECURITY.md.
MIT. Each release also ships THIRD-PARTY-LICENSES.html with the licenses of the
crates compiled into obs-lite.exe, generated with cargo-about
(cargo about generate --locked --fail about.hbs -o THIRD-PARTY-LICENSES.html).