Shoot the screen, note it, hand it off. Built for Omarchy.
Omarchy already takes screenshots and records the screen. What it has no answer for is the hand-off: turning what you just saw into something an agent can act on. That is all Omashot does.
Press a key, drag a region, type what is wrong. Keep going. When you are done,
the whole lot is on your clipboard as paths and notes, or as a folder with a
brief.md an agent reads top to bottom. No account, no upload, no telemetry:
everything is plain files under ~/Omashot/.
Omashot is a fork of QACut, rebuilt around Omarchy's own picker, keys, menu, bar and themes. The capture and markup code is shared; the desktop integration, and the vocabulary, are not.
Omashot does not have product tiers, and it does not call anything a "bundle".
| Word | What it is |
|---|---|
| shot | One screenshot, with a note on it. |
| brief | A folder of shots in reading order, with a brief.md written for whoever gets it. The thing you hand over. |
| section | A part of a brief. One page, one screen, one step of a process. |
| loose shots | Shots taken outside any brief. Copy them and they clear. |
| trail | Hands-free capture: a shot at every step while you do the thing. |
| recording | A screen recording, for a person rather than an agent. |
A brief on disk:
~/Omashot/2026-09-19_143022-settings-review/
brief.md everything in reading order, images linked relatively
manifest.json the same data, structured
01-settings-page/ 01.png 02.png 03.png
02-billing/ 01.png
Set $OMASHOT_DIR to put that somewhere else.
Omashot has no palette of its own. Omarchy renders its colours from whatever theme you are on, and the app follows along — windows and bar mark alike — the moment you switch. Nothing to configure.
That is one template, omarchy/themed/omashot.css.tpl. There is no theme-set
hook: the app watches the rendered stylesheet and re-skins itself.
Omashot puts a widget in the Omarchy bar that appears only when it is holding something: a brief with a shot count, loose shots waiting to be copied, or a live trail or recording you can stop with a click. Idle, it shows nothing. A bar is yours, and an app that sits in it to announce that it is doing nothing has not earned the space.
Click it to open the brief, middle-click to finish and copy.
The compositor owns the keys, because Wayland has no global hotkey API and an
app that claims otherwise is lying to you. Every binding runs omashot <verb>,
which reaches the running app over a socket — and starts it first if it is not
up, so the first press after a login just works.
| Key | Command | Does |
|---|---|---|
SUPER+ALT+Q |
omashot shot |
Take one shot and note it |
SUPER+ALT+A |
omashot add |
Add a shot to the open brief |
SUPER+ALT+T |
omashot trail |
Trail what you do, as shots |
SUPER+ALT+R |
omashot record |
Record the screen |
SUPER+ALT+N |
omashot section |
Next section |
SUPER+ALT+B |
omashot brief |
Open the brief |
SUPER+ALT+D |
omashot done |
Done: write it out and copy its path |
SUPER+ALT+Z |
omashot zoom |
Mark a zoom, while recording |
Every letter is the first letter of its verb, so the keys and the command line
are the same vocabulary. omashot copy takes the loose shots; it has no key by
default because it is the one you want to think about.
Every chord is one Omarchy leaves free, so installing Omashot unbinds
nothing: SUPER+SHIFT+1..9 stays on move window to workspace,
SUPER+ALT+1..5 on the window groups, SUPER+ALT+S on the scratchpad.
Everything is also in the Omarchy menu under Omashot, and omashot help
lists the verbs.
Not in the AUR yet. From source, with Node 22+, a Rust toolchain and the Tauri prerequisites:
git clone https://github.com/mcinnisdev/omashot
cd omashot
npm install
npm run tauri build
./scripts/install-local.sh # binary, launcher and icons into ~/.local
./omarchy/install.sh # theme, keys, menu, window rule, bar widgetomarchy/install.sh is additive and idempotent, skips anything you have edited
yourself, and --uninstall takes it back out. packaging/PKGBUILD is the Arch
package.
Honest about where this is:
- Shots, briefs and trails work on Omarchy. Region picking goes through
omarchy-capture-region, so it snaps to windows and monitors exactly like a screenshot does, and stills come through wlroots screencopy. - Recording edits, composites and exports on Linux, but capturing a
source is still Windows-only. The Linux path will go through
gpu-screen-recorder, which Omarchy already ships. - Keystroke badges and click-triggered trailing need
/dev/inputaccess that Wayland does not hand out. A trail falls back to interval shots; badges are not available yet. - Windows still builds. The Omarchy-specific pieces are behind
cfg, and the capture and markup code is shared.
Tauri 2: a Rust backend and vanilla TypeScript built with Vite.
npm run tauri dev
npm run build # type-check and bundle
cd src-tauri && cargo testsrc/ the windows: picker, note, brief, edit, prompts, theme
src/studio/ compositor, timeline, export (WebCodecs)
src-tauri/src/ main.rs, capture.rs, export.rs, model.rs
src-tauri/src/ picker.rs (Omarchy region picking), ipc.rs (the CLI),
theme.rs (live theming), status.rs (what the bar reads)
omarchy/ theme template, keys, menu, window rule, bar widget
packaging/ PKGBUILD and the .desktop entry
scripts/logo.py the mark, as pixel art, at any size and any colour
Internally the code still says group where the user says section, and
peek where the user says brief. The vocabulary is a seam at the edges —
ipc::VERBS maps one to the other — rather than a rename of 6,000 lines that
would risk the parts that already work.
The mark is a 16x16 pixel grid scaled by whole numbers, so it is exact at every icon size and can be re-rendered in any accent:
python3 scripts/logo.py --ascii
./scripts/icons.sh # regenerate every iconMIT. Made by Nick McInnis.
