FocusFlow is an open-source Windows desktop application that automatically transforms raw screen recordings into polished, professional tutorial and demo videos. By tracking user interactions (clicks and drags) and applying intelligent, smooth camera movements, FocusFlow edits your videos automatically.
π Website: focusflow.demosnap.tech
π¦ Downloads & Releases: GitHub Releases
Creating high-quality tutorials, product demos, or documentation videos usually requires hours of tedious post-production: trimming, panning, zooming in on clicks, and inserting cursor highlights. FocusFlow automates this entire pipeline.
As you record your screen, window, or a custom region, FocusFlow runs a lightweight hook in the background to capture your cursor coordinates, clicks, and drag events. When you stop recording, it compiles these interactions into a clean editing timeline. During the export process, FocusFlow uses a highly optimized FFmpeg pipeline to apply smooth, organic zoom-ins, natural pans, and clear click ripple indicators, producing a finished product that looks like it was edited by a pro.
Producing polished software walkthroughs is a major bottleneck for creators, developers, and founders. After recording raw screen captures, they must manually:
- Cut out long pauses or transition times.
- Manually zoom in on small buttons and key input fields so viewers can follow along.
- Hand-animate camera pans to follow the cursor.
- Superimpose click indicators or cursor highlights to make interactions obvious.
Existing automated solutions are typically:
- Expensive, subscription-based closed-source products.
- Tied to proprietary cloud platforms.
- Inflexible or bloated with unnecessary features.
- Unsupported on local machines without an internet connection.
FocusFlow provides a local, lightweight, and completely free open-source solution that runs entirely on your machine.
- Record: Capture your desktop screen, a specific application window, or a selected region.
- Track: Capture mouse clicks, coordinates, and drags silently in the background.
- Analyze: Automatically resolve and structure the interaction data into a non-overlapping timeline.
- Render: Apply mathematical easing (cosine curves) for smooth camera pans and zooms, and draw visual click ripples.
- Export: Produce a high-quality, production-ready MP4 video in seconds.
- Multiple Recording Modes: Capture the full screen, a custom-drawn region, or a selected application window.
- Smart Click & Drag Tracking: Log click coordinates, timestamps, and drag paths.
- Window-Scoped Click Filtering: Clicks outside the active recording window are automatically ignored when in Window Recording mode.
- Window-Relative Tracking: Stores clicks relative to the target window so that alignment remains perfect even if the window is moved.
- Automatic Easing & Zoom: Generates smooth zoom and pan keyframes using ease-in-out (cosine) interpolation.
- Visual Click Ripple Indicators: Automatically overlays clean ripple indicators at click positions.
- Intelligent Timeline Optimization: Merges nearby clicks and drag segments (within 300ms) to ensure continuous, natural camera flow.
- Bundled FFmpeg Sidecar: No external dependencies or complicated command-line setups required.
- Windows File Explorer Integration: Quick links to open your recordings and exports directories directly.
- Modern dark UI: Clean, native-feeling desktop experience built with React and Tailwind CSS.
- Global Hotkeys: Control recordings instantly using keyboard shortcuts:
Ctrl + Shift + R: Start RecordingCtrl + Shift + S: Stop Recording
- Pitch Deck: View FocusFlow Slide Deck
- Demo Video: Watch on YouTube
- Interactive Demo: Check out the interactive gif below showing the auto-zoom output:
FocusFlow is distributed as a native Windows application.
- Head over to the GitHub Releases Page.
- Download the latest
.msiinstaller for your system (e.g.,FocusFlow_0.1.1_x64_en-US.msi). - Run the installer and follow the on-screen instructions.
- Launch FocusFlow from your Start Menu.
Note
FocusFlow bundles the required FFmpeg binary as a Tauri sidecar. No separate installation of FFmpeg is required.
- Select Recording Mode:
- Screen: Records your entire primary monitor.
- Region: Allows you to draw a custom bounding box on your screen.
- Window: Lets you select a specific open application window to capture.
- Start Recording: Click the "Record" button or press
Ctrl + Shift + R. A 3-second countdown will initiate before recording begins. - Perform Actions: Click, drag, and navigate through your workflow as normal.
- If recording a window, dragging or moving the window is supported; clicks will automatically map to the window's coordinates.
- Stop Recording: Click the "Stop" button in the overlay or press
Ctrl + Shift + S. - Review and Export: FocusFlow will list your recorded session. Click "Export" to compile the timeline, apply zoom/pan easing, render click indicators, and save the final
edited.mp4video.
- Frontend Framework: React, TypeScript, Tailwind CSS, Vite
- Backend Core: Rust, Tauri v2
- Recording Engines:
- Screen and Region Recording: FFmpeg Sidecar
- Window Recording: Native Windows Graphics Capture API via
windows-capture
- Interaction Hooks: Windows API (via Rust
user32crate) for global mouse hook and window-level target resolution. - Export & Processing Engine: FFmpeg Sidecar (custom
filter_complexscript generation).
FocusFlow utilizes a decoupled frontend/backend architecture where the React frontend drives the user experience and Tauri (Rust) orchestrates low-level capture, file processing, and command line tools.
flowchart TD
subgraph Frontend [React Frontend]
UI[React UI] -->|IPC Invokes| Cmds[Tauri Commands]
Events[Tauri Event Listener] -->|State Updates| UI
end
subgraph Backend [Tauri Rust Backend]
Cmds --> StateMachine[Recorder State Machine]
StateMachine --> RecService[Recorder Service]
RecService --> CaptureScreen[FFmpeg Screen Capture]
RecService --> CaptureWin[windows-capture API]
RecService --> ClickHook[Global Mouse Hook]
ClickHook --> JSONStore[clicks.json & drags.json]
CaptureScreen & CaptureWin --> VideoStore[screen.mp4]
JSONStore --> TimelineGen[Timeline Compiler]
TimelineGen --> TimelineJSON[timeline.json]
TimelineJSON & VideoStore --> ExportService[Export Service]
ExportService --> FFmpegScript[FFmpeg Filter Compiler]
FFmpegScript -->|FFmpeg Executable| MP4[edited.mp4]
ExportService -->|Progress Events| Events
end
classDef frontend fill:#1e293b,stroke:#3b82f6,stroke-width:2px,color:#fff;
classDef backend fill:#1e1b4b,stroke:#6366f1,stroke-width:2px,color:#fff;
class UI,Cmds,Events frontend;
class StateMachine,RecService,CaptureScreen,CaptureWin,ClickHook,JSONStore,VideoStore,TimelineGen,TimelineJSON,ExportService,FFmpegScript,MP4 backend;
FocusFlow supports three specialized recording backends depending on your focus:
- Screen Recording: Captures the full primary monitor. Best for desktop-wide workflows and multi-app walkthroughs.
- Region Recording: Records a specified desktop rectangle. Ideal for cropping out sensitive UI details or system toolbars.
- Window Recording: Uses the high-performance Windows Graphics Capture API (
windows-capture). Only records the target application window.- Clicks outside the window boundary are automatically ignored.
- Mouse coordinates are normalized to the window coordinate space, keeping clicks perfectly aligned even if the target window is moved.
When an export is triggered, FocusFlow runs a highly optimized multi-stage processing pipeline:
[screen.mp4] + [timeline.json]
β
βΌ
1. Keyframe Compiler ββββββββΊ Interpolates camera positions using ease-in-out cosine curves.
β Computes zoom levels (default 2.3x) and target x/y offsets.
βΌ
2. FFmpeg Filter Generator ββΊ Compiles a custom filter script containing:
β β’ trim & setpts filters (segments)
β β’ zoompan filters (d=1, avoiding frame multiplication)
β β’ drawbox/drawgrid overlay filters (click indicators)
βΌ
3. Sidecar Execution ββββββββΊ Spawns the FFmpeg sidecar with the filter script.
β Monitors stdout/stderr to stream progress back to Tauri.
βΌ
[edited.mp4] ββββββββββββββββΊ Final output video is written atomically.
- Window Resizing: Resizing a window during recording is not fully supported. If a window is expanded during capture, newly exposed regions may appear black.
- Audio Capture: FocusFlow does not record microphone or system audio in version v0.1.1. Audio tracks must be added post-export.
- Manual Timeline Editing: The timeline is fully automated based on click timings. A manual editor interface is planned for a future release.
- Windows-First: The application relies heavily on native Windows capture libraries (
windows-capture) and Windows user32 APIs for global mouse hooks. macOS and Linux support are currently not available.
See the detailed ROADMAP.md for full release plans.
- v0.2.0: Microphone recording and audio device selection.
- v0.3.0: System audio recording and multi-track audio mixing.
- v0.4.0: Interactive timeline editor UI.
- v0.5.0: Custom cursor styles, text annotations, and export quality presets.
- Future: Cross-platform support (macOS/Linux), AI-assisted video editing, and direct cloud sharing.
We welcome contributions of all levels! Please read our CONTRIBUTING.md to learn how to:
- Set up your local development environment.
- Work with the Rust backend and React frontend.
- Write clean commits and verify your changes.
- Open bug reports and feature requests.
FocusFlow is released under the MIT License.




