Pretty screen recording and screenshots on Windows, plus a virtual camera that streams the same pretty output to Discord / Zoom / OBS.
Capture your screen — or a region of it — and Gleem composites it over a configurable gradient background, with rounded corners, drop shadow, perspective tilt, and an optional watermark. You can record to MP4, copy a screenshot to your clipboard, or feed the composited video stream into a Windows virtual camera for live calls.
Built as a desktop app: Rust + Tauri 2 native backend, React 19 frontend, runs from the tray.
| Feature | Details |
|---|---|
| 🖥️ Capture | Full screen, single monitor, or a selected region. Uses the Windows Graphics Capture API directly (low overhead, no driver). |
| 🎨 Compositing pipeline | Gradient/solid/image background → rounded corners → drop shadow → perspective tilt → watermark. Each step is a Rust module under src-tauri/src/processor/. |
| 📷 Screenshot mode | One hotkey grabs a frame, composites it, and drops the result on your clipboard (or to a file). |
| 🎬 Recording mode | Captures to MP4 via an ffmpeg-sidecar. Live preview, region-select overlay, recording border. |
| 📡 Virtual camera | A DirectShow virtual camera (built on softcam) that exposes the composited output to any app that lists webcams — Discord, Zoom, Teams, OBS, browsers. |
| 🎛️ Background presets | Curated gradients (backgrounds.json) plus custom images, all editable in-app. |
┌────────────────────────────────────────────────────────────┐
│ React 19 + Zustand (settings, live preview, controls) │
│ Tauri IPC │
└──────────┬─────────────────────────────────────────────────┘
│
┌──────────┴─────────────────────────────────────────────────┐
│ Rust backend (src-tauri/src/) │
│ │
│ monitor.rs ─► enumerate displays │
│ recorder.rs ─► windows-capture frames @ N fps │
│ │ │
│ ▼ │
│ processor/ │
│ ├─ background.rs gradient / solid / image fill │
│ ├─ corners.rs rounded corner masking │
│ ├─ shadow.rs gaussian drop shadow │
│ ├─ perspective.rs 3D tilt (forward warp) │
│ ├─ watermark.rs text overlay via ab_glyph │
│ ├─ template.rs preset application │
│ └─ pipeline.rs orders the stages │
│ │ │
│ ├─► clipboard/ ─► PNG to Win32 clipboard │
│ ├─► ffmpeg-sidecar ─► MP4 file │
│ └─► vcam.rs ─► softcam DLL ─► DirectShow cam │
└────────────────────────────────────────────────────────────┘
Every stage operates on a single image::RgbaImage, so the pipeline is straight-line code — easy to read in processor/pipeline.rs.
- Windows 10 / 11 (the capture API and virtual camera are Windows-only)
- Rust (1.77+ recommended)
- Node.js 18+
- Tauri 2 system deps (WebView2 ships with modern Windows)
The bundled gleem_vcam.dll is a pre-built softcam binary. You don't need to compile it separately unless you want to.
git clone https://github.com/IamOrbitDev/gleem-capture.git
cd gleem-capture
npm install
npm run tauri devThe settings window opens. Pick a background, a region or full screen, hit Record or Screenshot. The tray icon stays around when the window is closed.
To use the virtual camera: open Discord / Zoom / your browser → camera settings → select "Gleem Virtual Camera" (registered on first run).
npm run tauri buildOutputs a Windows installer under src-tauri/target/release/bundle/.
gleem/
├── src/ # React 19 + TypeScript front
│ ├── App.tsx
│ ├── components/
│ │ ├── BackgroundPicker/ # gradient / image picker
│ │ ├── LivePreview/ # real-time composited preview
│ │ ├── PreviewCanvas/ # the canvas that renders the preview
│ │ ├── SettingsPanel/ # in-window controls
│ │ ├── SettingsModal/ # popup settings
│ │ └── VideoRecorder/ # recording / region UI
│ ├── store/settingsStore.ts # zustand
│ └── utils/canvasDrawing.ts
├── src-tauri/ # Rust + Tauri 2
│ ├── src/
│ │ ├── main.rs
│ │ ├── lib.rs # Tauri setup
│ │ ├── commands.rs # IPC handlers (~670 lines)
│ │ ├── recorder.rs # capture pipeline (~1700 lines)
│ │ ├── vcam.rs # softcam wrapper (DLL FFI)
│ │ ├── monitor.rs # display enumeration
│ │ ├── state.rs # app state
│ │ ├── backgrounds/ # background data model
│ │ ├── clipboard/ # Win32 clipboard helpers
│ │ └── processor/ # image pipeline (see Architecture)
│ ├── gleem_vcam.dll # pre-built softcam DLL
│ ├── Cargo.toml
│ └── tauri.conf.json
├── backgrounds.json # gradient/preset definitions
└── public/ # static HTML overlays (recording border, region select)
Total: ~3 100 lines of Rust, ~2 000 lines of TypeScript/TSX.
Settings live in the standard Tauri app data directory:
- Windows:
%APPDATA%\com.gleem.desktop\
The in-app Settings panel writes there directly — no manual editing needed for normal use.
Custom backgrounds are added to backgrounds.json (in the app's data dir, the bundled one is a starting template).
- Windows only, by design. The Graphics Capture API, DirectShow virtual camera, and clipboard image format are all Win32. Porting to macOS would mean ScreenCaptureKit + CoreMediaIO + NSPasteboard — feasible but a separate project.
- Pre-1.0 software. Stable on the author's machine, but rough edges exist. Don't ship critical demos through it without rehearsal.
- Virtual camera registration requires admin rights on first run (DirectShow filter registration). After that, normal user.
- No telemetry. Nothing leaves your machine.
MIT for the application code. See LICENSE.
The bundled gleem_vcam.dll is built from softcam (BSD 3-Clause). Crediting Takashi Shino — the virtual camera plumbing is doing the hardest part.