screenshot, screen-recording, ocr, and uploader for wlroots compositors.
  • C 98.5%
  • Makefile 1.2%
  • Nix 0.3%
Find a file
2026-07-05 22:58:00 -04:00
.forgejo/workflows fix binary no version warning 2026-06-11 09:04:40 -04:00
.github/workflows fix binary no version warning 2026-06-11 09:04:40 -04:00
include plugin options, split files 2026-05-07 07:44:16 -04:00
man fix some issues with plugins, man and help message 2026-07-05 20:56:01 -04:00
protocols support for kde 2026-05-28 09:50:33 -04:00
src bound untrusted capture, translate and regex sizes 2026-07-05 22:58:00 -04:00
tools fix runtime dep on void, remove word wall when tesseract is missing 2026-04-29 09:49:42 -04:00
.clang-format actual formatter 2026-04-28 20:45:26 -04:00
.clangd pre 0.1.0 2026-04-26 20:20:56 -04:00
.gitignore links 2026-05-21 16:08:21 -04:00
flake.lock nix flake 2026-05-07 12:07:09 -04:00
flake.nix 0.4.0 2026-06-23 20:46:00 -04:00
LICENSE pre 0.1.0 2026-04-26 20:20:56 -04:00
Makefile 0.5.0 2026-07-05 20:28:45 -04:00
OPTIONS.md make editor use last tool 2026-07-05 20:22:34 -04:00
PLUGINS.md harden plugin auto-update 2026-07-05 21:22:00 -04:00
README.md readme 2026-07-05 19:38:30 -04:00

grabit

screenshot, screen-recording, ocr, and uploader for wlroots wayland compositors.

works on: hyprland, sway, niri, river, kde plasma 6. not supported: x11, gnome.

install

Void

see https://void.creations.works/

Arch (AUR)

see https://aur.archlinux.org/packages/grabit

Gentoo

eselect repository add roxy-overlay git https://codeberg.org/key/roxy-overlay.git
eselect repository enable roxy-overlay
emaint sync -r roxy-overlay
emerge --ask media-gfx/grabit  # masked by ~amd64

NixOS

nix run git+https://heliopolis.live/creations/grabit.git -- --help

from source

make
sudo make install

deps: json-c libcurl libmagic wayland-client wayland-cursor cairo libxkbcommon libdbus-1. optional: libjpeg libwebp (jpeg/webp output). runtime: ffmpeg (for --record), tesseract (for --tesseract).

demo

region selector annotator color picker

  • region selector with live freeze (drag, or click a window on hyprland to snap); pointer included by default (capture.cursor)
  • confirm mode (region.confirm) - flameshot-style: adjust the selection with handles, arrow keys (hold to accelerate), or dragging, then enter / ctrl+c / double-click to capture
  • --fullscreen / -F grabs a whole monitor - one monitor grabs directly, multiple opens a monitor picker (--fullscreen=<n|name> skips it, --fullscreen=all stitches every monitor); works with --record too
  • annotator opened with -e - pen, marker, line, rect, ellipse, arrow, blur, text, eraser; scroll wheel sizes strokes and text
  • color picker with hex input + eyedropper that samples from the freeze
  • --record toggles region recording with a live overlay + tray icon; mp4, webm, or gif via recording.format (mp4)
  • --pin pins captures to the desktop - click-through, stackable, draggable across monitors when grabbed
  • uploads to zipline, nest, fakecrime, ez, guns, pixelvault, or any sharex .sxcu uploader; zipline supports chunked uploads (--chunked) with automatic fallback when cloudflare rejects large files
  • --tesseract --translate[=<lang>] OCRs the region and pipes through translate-shell before copying

docs

  • OPTIONS.md - usage, configuration, auth tokens, sharex uploaders, recording/pin/ocr/edit, filename templates, env vars, build targets
  • PLUGINS.md - plugin cli, manifest format, helper header

source

license

agpl-3.0-or-later. see LICENSE.