vloom-0.1.0 is not a library.
Vloom
A fast, privacy-focused CLI tool for recording browser windows and generating LLM-optimized videos. Built in Rust for macOS.
Why Vloom?
When working with AI assistants like Claude, you often need to show them UI/UX changes. Traditional screen recording tools create large files that hit upload limits. Vloom solves this by:
- Targeting specific windows - Record only what you need, no desktop clutter
- Optimizing for LLMs - Auto-compresses to H.264/720p, targeting <10MB per minute
- Instant workflow - Path copied to clipboard, LLM-ready prompt generated
- Privacy-first - Everything stays local, no cloud uploads, no accounts
Features
- π― Smart Window Targeting - Select any window by title
- π¬ H.264 Encoding - Efficient MP4 output optimized for LLM visual analysis
- π Clipboard Integration - File path automatically copied after recording
- π¬ LLM Prompt Generation - Pre-formatted prompt ready to paste
- β±οΈ Duration Control - Auto-stop or manual Ctrl+C
- π 100% Local - No data leaves your machine
Requirements
- macOS 12.0 or later (Monterey+)
- ffmpeg - For video encoding
- Screen Recording permission - Granted to your terminal
Installation
From crates.io
From Source
# Clone the repository
# Build release binary
# Install to PATH
Install ffmpeg
# Using Homebrew
Usage
List Available Windows
Output:
Available windows:
[1] Google Chrome - GitHub
[2] VS Code - main.rs
[3] Slack - general
Use --target "<title>" to select a specific window.
Record a Window
# Interactive selection (prompts if multiple windows match)
# Target specific window by title
# Auto-stop after 30 seconds
All Options
vloom [OPTIONS]
Options:
-t, --target <TARGET> Window title filter (partial match)
-d, --duration <SECONDS> Auto-stop recording after N seconds
-o, --output <PATH> Output file path (default: ~/vloom-recordings/)
--fps <FPS> Frame rate (default: 30)
--resolution <WxH> Target resolution (default: 1280x720)
-l, --list List available windows and exit
-v, --verbose Enable debug logging
-h, --help Print help
-V, --version Print version
Workflow Example
# 1. List windows to find your target
# 2. Start recording (Ctrl+C to stop)
# 3. Output:
How It Works
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Window β β Frame β β FFmpeg β
β Enumeration ββββββΆβ Capture ββββββΆβ Encoding β
β (scap) β β (30 FPS) β β (H.264) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Output β
β - ~/vloom-recordings/vloom-*.mp4 β
β - Clipboard: file path β
β - LLM prompt template β
βββββββββββββββββββββββββββββββββββββββ
Architecture
| Component | Technology | Purpose |
|---|---|---|
| CLI | clap |
Argument parsing |
| Capture | scap |
Native macOS ScreenCaptureKit |
| Encoding | ffmpeg subprocess |
H.264 video compression |
| Clipboard | arboard |
Cross-platform clipboard |
Permissions
Vloom requires Screen Recording permission on macOS:
- Open System Settings β Privacy & Security β Screen Recording
- Enable your terminal app (Terminal.app, iTerm2, etc.)
- Restart your terminal
If permission is not granted, Vloom will prompt you and offer to open System Settings.
Output Format
| Setting | Value | Reason |
|---|---|---|
| Codec | H.264 | Universal compatibility |
| Resolution | 1280x720 | LLM-friendly, <10MB/min |
| Frame Rate | 30 FPS | Smooth motion |
| CRF | 23 | Quality/size balance |
| Container | MP4 + faststart | Web-ready streaming |
Roadmap
- Windows support (Desktop Duplication API)
- Linux support (PipeWire)
- Audio capture
- GIF output option
- Config file (~/.vloom.toml)
- Self-update command
- Homebrew formula
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
# Clone and build
# Run tests
# Run with debug logging
Code Structure
src/
βββ main.rs # Entry point, recording workflow
βββ cli.rs # CLI argument definitions
βββ error.rs # Custom error types
βββ capture/
β βββ mod.rs
β βββ window.rs # Window enumeration & selection
β βββ recorder.rs # Frame capture pipeline
βββ encode/
β βββ mod.rs
β βββ ffmpeg.rs # FFmpeg subprocess management
βββ output/
βββ mod.rs
βββ clipboard.rs # Clipboard & prompt generation
License
MIT License - see LICENSE for details.