A minimal, Loom-style screen + webcam recorder built with Electron. Capture a screen or window with your webcam composited as a circular bubble in the corner, review the take, and save it as an MP4.
- Record any screen or window with a live webcam bubble overlay
- Pick the bubble's size and which corner it sits in
- Choose your camera and microphone, with a live self-view and mic level meter
- 3-2-1 countdown, pause/resume, and a review step before saving
- Saves MP4 directly when the runtime supports it, otherwise transcodes from WebM with a bundled FFmpeg
- Remembers your camera, mic, bubble size, and corner between sessions
- Bun (used as the package manager and script runner)
- macOS is the primary target. On macOS you must grant Screen Recording, Camera, and Microphone permission to the app.
New to the project? Follow these steps to go from nothing to a running app.
PipCast uses Bun as its package manager and script runner. If you don't have it yet:
curl -fsSL https://bun.sh/install | bashRestart your terminal, then confirm it's installed:
bun --versiongit clone https://github.com/sethdavis512/pipcast.git
cd pipcastbun installThis also downloads the bundled FFmpeg binary (ffmpeg-static) used for WebM-to-MP4 transcoding.
bun run devAn Electron window opens with hot reload enabled — edits to the source refresh the app automatically.
On first launch, macOS prompts for Camera and Microphone access — accept both. Screen Recording can't be granted from a prompt, so:
- Open System Settings → Privacy & Security → Screen Recording.
- Enable PipCast (or Electron while running in development).
- Quit and relaunch the app.
If the permission is missing, the app shows an in-window hint with a button that deep-links straight to the right settings pane, plus a Retry button once you've granted it.
You're ready — see Usage to record your first take.
- Pick a screen or window, then a camera and microphone.
- Adjust the webcam bubble size and corner.
- Click Start, wait for the countdown, and record. Use Pause / Resume as needed.
- Click Stop to review the take, then Save, Re-record, or Discard.
| Command | Description |
|---|---|
bun run dev |
Start the app in development with hot reload |
bun run build |
Type-check and bundle for production into out/ |
bun run preview |
Run the production build locally |
bun run typecheck |
Type-check without emitting |
PipCast composites the screen and webcam onto a canvas each frame and records that canvas stream alongside the microphone track. The Electron main process owns screen-source selection, permissions, settings, and the save/transcode pipeline; the renderer drives the UI and media capture through a small typed IPC bridge. See CLAUDE.md for an architecture overview.
