Why I Built This
When recording tool demos, I often needed to capture a phone screen and a PC screen at the same time. In practice, that meant recording them separately and syncing them up in post to make it look simultaneous.
Another pain point was re-recording every time I made a typo or missed a step. Doing that over and over was genuinely frustrating.
I built d3motap3 to solve both of these problems.
What It Does
Capture Up to 2 Sources at Once
Phone and display, terminal and webcam — any combination in side-by-side or picture-in-picture.
There are 7 source types to choose from:
- Full display
- Individual window
- Screen region
- Webcam
- Built-in terminal
- iOS device (USB)
- Android device (USB)
YAML Scripted Automation
Define your demo steps in YAML and it records itself. Each step waits for the previous one to finish, so timing is always perfect. Define it once, get a perfect recording every time.
steps:
- type: terminal_input
text: "npm install"
- type: wait_for_output
pattern: "added .* packages"
- type: terminal_input
text: "npm start"
- type: wait_for_output
pattern: "Server running"
Timeline Editor
Edit your recordings with the built-in editor:
- Clip splitting
- Transitions (fade / dissolve / wipe)
- Text overlays with animation
- Audio track import and editing
AI Script Generation
Describe your demo in plain text and get a YAML script generated via Claude API.
Built-in Terminal Rendered in Rust
The built-in terminal isn't a screenshot — it's rendered directly by Rust via PTY → alacritty VT parser → cosmic-text. The terminal itself becomes a capture source, so there's no need to window-capture an external terminal app.
3 Layouts
- Single — one source, full frame
- Side-by-Side — two sources next to each other (adjustable split ratio)
- Picture-in-Picture — a small overlay on top of the main source (adjustable position and size)
Platform
macOS only (uses ScreenCaptureKit). Distributed as a signed and notarized DMG.
Top comments (0)