Raffرَفّ
A shelf that batches GNOME screenshots and hands their paths to terminal AI agents





What it is
Raff is a screenshot shelf. It catches every screenshot the moment GNOME saves it, groups them into batches, and hands them to terminal AI agents as pasteable paths, which kills the drag-and-drop safari of feeding images to a command-line tool. Raff means shelf in Arabic, the place things rest between one hand and the next.
It is a single Rust crate on GTK4 and libadwaita, built programmatically. The clever bit is Agent Mode, on by default: on every capture the clipboard becomes a dual-MIME source carrying both the image bytes and the batch’s quoted file paths, so a terminal pastes the paths while an image editor still gets the image. It also talks to Herdr to send a batch to a running agent. File custody is strictly read-only; Raff only ever deletes to the trash.
Two lessons from earlier projects are baked in: it never watches the clipboard, because Mutter forbids background capture, and it never auto-submits a prompt.
Features
- Catches every screenshot the moment GNOME saves it, grouping them into batches
- Agent Mode makes the clipboard dual-MIME: the image plus the batch's quoted paths
- Herdr integration to send a batch straight to a terminal agent
- A command-palette panel and a persistent, live-sliding pinboard strip
- Read-only file custody, nothing moves or deletes except explicit trash
- Drag-out, open, reveal in Files, and a 15-minute batch boundary
Stack
~8,800 lines of Rust · 21 tests