A fast, always-on-top screen-region recorder for macOS and Linux. Frame a region, hit record, and get a clean GIF or MP4 — with inline preview and edit. Built in C++/Qt6 to feel like a utility, not an editor.
- Region capture — draggable, resizable, always-on-top capture window.
- GIF / MP4 output — palette-quantized GIF (giflib) or CRF-quality MP4 (Qt Multimedia).
- Inline preview & edit — trim in/out points and review takes without leaving the app.
- Follow-mouse pan — the capture region can track the cursor while recording.
- Global hotkeys — grow/shrink and follow-mouse toggle without focusing the app.
- HiDPI, letterbox, and optional mic audio for MP4.
Download the latest Framelit.dmg from Releases, drag Framelit to Applications, and launch.
On first launch macOS will prompt for Screen Recording and Accessibility permissions (System Settings → Privacy & Security). Both are required — screen recording for capture, accessibility for global hotkeys.
cmake -B build && cmake --build buildRequirements:
- Qt ≥ 6.5 (the repo pins convenience paths for 6.11.0 in
CMakeLists.txt) - CMake ≥ 3.22, a C++20 compiler
- giflib — auto-detected from Homebrew (
brew install giflib) or fetched/built via CMakeFetchContent - Linux only:
libgif-dev, pluslibxext-dev/libx11-dev(real click-through via XShape)
Run: open build/Framelit.app (macOS) · ./build/framelit (Linux)
Run tests: ctest --test-dir build --output-on-failure
The signing identity defaults to a developer certificate but is overridable at configure time:
# Ad-hoc (local, no notarization):
cmake -B build -DFRAMELIT_CODESIGN_IDENTITY=-
# Your Developer ID (or set FRAMELIT_CODESIGN_IDENTITY in the environment):
cmake -B build -DFRAMELIT_CODESIGN_IDENTITY="Developer ID Application: …"Requires Accessibility permission (System Settings → Privacy & Security → Accessibility).
| Shortcut | Action |
|---|---|
Cmd+Shift+= |
Grow capture region |
Cmd+Shift+- |
Shrink capture region |
Cmd+Shift+F |
Toggle follow-mouse |
Framelit stores preferences (capture rect, output dir, format) via QSettings under the
Kushview / Framelit domain:
# macOS
defaults delete net.kushview.FramelitFramelit's arc is capture → render → record → sync. Capture, render, and record ship today. Sync — cloud upload and shareable links — is planned and not yet implemented.
Copyright © Kushview. See repository for license details.