Stream Mask
Tauri desktop overlay for screen sharing:
- Local screen: the rectangle is almost transparent and click-through.
- OBS Virtual Camera output: the same rectangle is fully opaque and hides sensitive data.
Documentation
Requirements
- Windows 11 (primary target)
- OBS Studio 31.0.1+
- Bun
- Rust + Tauri prerequisites
OBS setup
- Open OBS
Tools -> WebSocket Server Settings.
- Enable WebSocket server on port
4455.
- Enable authentication and set a password.
- In
Settings -> Video, keep Base and Output resolutions equal to your monitor resolution.
Environment
Create .env from .env.example:
VITE_OBS_HOST=127.0.0.1
VITE_OBS_PORT=4455
VITE_OBS_PASSWORD=your_obs_password
VITE_MASK_COLOR=#000000
Run locally
bun install
bun run tauri dev
Tests and build
bun run lint
bun run test:unit
bun run test:scenario
bun run build
bun run tauri build
Live OBS integration test is opt-in:
LIVE_OBS=1 bun run test:scenario
Controls
- Camera button: start/stop OBS scene + virtual camera sync.
- Pencil button: lock/unlock overlay editing (move/resize).
- Close button: stop stream mask and exit app.
Known limitations
- The app controls only the
StreamMask scene and its sources.
- OBS must be reachable on configured host/port.
- For best Zoom text quality, share
OBS Virtual Camera via Share Screen -> Advanced -> Content from 2nd Camera.
License
MIT