A free and open source Snipping Tool alternative for Windows: region screenshots with a pixel
magnifier, GIF and MP4 screen recording, and a frame by frame editor. It shows the selection
already painted 114 ms after the shortcut with three screens, uses 33 MB of memory and fits in a
2.54 MB installer. No account, no cloud, no telemetry and no bundled FFmpeg.
> The interface speaks English and Spanish, and follows whichever one Windows is set to. You
> can pin it to either in Settings → The app → Appearance. The identifiers and comments in the
> source are in Spanish; the commits, this page and the
> home page are in English.
Install
Download the installer
· 2.54 MB · it installs for your user only, so Windows never asks for administrator rights. Older
versions are in Releases.
Three other ways, same app:
winget install Mun1to.winshotx
or from the Microsoft Store, where Microsoft signs the package and the Store keeps
it updated, so the app's own updater stays out of the way.
It lives in the system tray with no window of its own. Windows hides new tray icons, so if you
cannot see it, look behind the ^ arrow on the taskbar.
It updates itself. In Settings → The app → Updates a button shows up when a new version is out,
and one click downloads it, installs it and restarts the app. Every download is signed and the
signature is checked before anything is installed, so a tampered file is rejected.
What it does
| |
|---|
| 📸 Region capture | Over a frozen screenshot, with a 6× magnifier that shows the exact colour in hex, copied with C and snapping to system windows: one click takes the whole window. |
| 🎬 Region recording | 15, 30 or 60 fps through Windows Graphics Capture, with no overlays leaking into the video. A thin red frame shows what is being recorded (amber while paused), the bar below says whether sound is going in, and discarding asks twice. |
| ✂️ Frame by frame editor | Thumbnail strip, A/B trimming, looped playback, cropping the image, scaling with locked aspect ratio and a quality control. |
| 🔍 Recording studio | The camera moves in on every click and shortcut and follows the mouse while it is there, the pointer is drawn as large as you want without pixelating (and squeezes on each click), and clicks get a ring sized to the video. All of it decided when exporting, over frames already on disk, and all of it shown live in the editor preview as you move the sliders: what you see is what comes out. |
| ⏩ Speed on export | 0.5×, 2× or 4× over what you recorded. A tutorial has stretches where nothing happens, and those play at 2× without losing a thing. |
| 💾 Export | GIF, MP4, PNG or JPG, to disk and to the clipboard: an image pastes as an image, and a GIF or MP4 pastes as a file into Slack, Discord or Explorer. |
| ⏪ The last few seconds | It records all the time, drops the old, and one key keeps the last 15, 30 or 60 seconds. The good part of a screen almost always happens before anyone thinks of recording it. |
| 🔊 System audio | What comes out of your speakers goes into the MP4, captured straight from the default output. No extra driver, and you keep hearing it while it records. |
| ⏱️ Shoot on a timer | Wait 3 or 5 seconds before the screen freezes, with the countdown in the middle of the screen. It is the only way to photograph an open menu, because pressing the shortcut closes it. |
| 🌓 Light and dark | It follows the Windows theme and changes with it, or you pin the one you want. |
| 🔒 Everything stays local | No account, no telemetry, no uploads. The only network call is checking GitHub for a new version. |
Snipping Tool against winshotx
Same machine with Windows 11, three runs each, both starting from cold. The clock stops when the
selection is actually on screen. The full table
has the nineteen rows, including the five the Snipping Tool wins.
| winshotx | Snipping Tool |
|---|
| From shortcut to the selection on screen, already painted (three screens) | 114 ms | 920 ms |
| Memory while capturing | 33 MB | 253 MB |
| Memory sitting idle | 31 MB | 98 MB |
| Records GIF | yes | no |
| Frame by frame editor | yes | no |
| Pick your own shortcut | yes | no |
| Draw and annotate on top | six marks, with numbered steps | pen, shapes and text |
| Copy the text out of the image | yes, with the T key | yes |
| System audio when recording | yes, and the microphone mixed in | yes |
| Timer before capturing | 3 or 5 seconds | 3, 5 or 10 seconds |
| Blur out personal data | by hand, and with a mosaic | automatic |
Is this what you were looking for?
- "I want a Snipping Tool alternative for Windows." This is it, and it is 33 times faster to
open. The Snipping Tool still wins at annotating, text recognition and system audio, and the
table above says so.
- "How do I record a GIF of my screen on Windows?" Press
Ctrl+Shift+5, drag over the area,
press it again to stop, and export to GIF from the editor. No FFmpeg to install.
- "I need a lightweight screen recorder that does not eat my RAM." 33 MB while capturing,
31 MB waiting in the tray.
- "Something like ShareX or CleanShot X, but simpler." The same global shortcuts and the same
frozen-screen overlay, without the hundreds of settings.
- "I want to pick a colour off the screen." The magnifier gives you the hex code of the pixel
under the cursor at 6× zoom.
- "Does it upload my screenshots anywhere?" No. There is no account, no telemetry and no
network calls other than checking for updates on GitHub.
Shortcuts
| Shortcut | Action |
|---|
Ctrl+Shift+2 | Capture a region |
Ctrl+Shift+5 | Record a region · press again to stop |
Ctrl+Shift+6 | Keep what just happened · while "the last few seconds" is on |
Print Screen | Capture a region · once you take the key from the Snipping Tool |
Enter | Copy the selection to the clipboard |
Ctrl+S | Save the selection |
E | Open the selection in the editor |
A | Pin the selection: it floats on top of everything, where it was |
T | Copy the text inside the selection, read by Windows' own OCR |
C | Copy the colour under the cursor, the one the loupe is showing |
G / V | Record the selection as GIF / video |
Ctrl+A | Select the whole monitor |
←↑→↓ | Move the selection · Shift for steps of 10 · Alt resizes |
Esc | Cancel |
In the editor: space plays, I and O mark the start and end of the trim, C crops the image,
← → step through frames, Ctrl+S exports with whatever the panel has set, and Esc closes —
letting go of the crop frame or the drawing tool first, since closing throws the frames away.
In the editor, to annotate: 1 arrow, 2 box, 3 text, 4 highlight, 5 numbered step and
6 hide details. Ctrl+Z undoes the last one. Steps number themselves, so adding one in the
middle does not leave two threes in the same picture.
On a pinned shot: Ctrl+C copies it, Ctrl+S saves it to the shots folder, T copies its text
and Esc closes it.
Both global shortcuts can be changed in the settings by clicking the field and typing the new
combination. If another application already holds it, the field turns red and says so.
Print Screen belongs to the Snipping Tool through a per-user registry value, so registering the
hotkey alone looks like it worked and never fires. The switch in the settings clears that value and
takes the key, and turning it off puts the value back exactly as it was. Win+Shift+S is attended by Windows
ahead of any program, hook or hotkey. The only thing that takes it away is turning the S off in
DisabledHotkeys, which the same switch does: it costs Win+S, the search, and switching it off puts
everything back as it was. The desktop only reads that list when it starts, so it has to start again:
the Aplicar button on that row restarts Explorer, which takes two seconds and closes nothing,
instead of making anyone sign out. For removing the Snipping
Tool altogether, the app opens the Windows screen where that is done, and never uninstalls anything
by itself.
Two ways to capture
Both use the same shortcut and the same selection. What changes is the moment you let go:
| Profile | What happens when you release the mouse |
|---|
| Sale la barra | A toolbar appears over the selection: copy, save, edit |
| Se copia sola | Nothing appears · the image is already in the clipboard |
The profile is picked in the welcome on the first run, and changed any time in the settings.
What comes out of the crop, and from which screen
At the top centre, where Windows puts its own, there is a bar with four buttons. The first three
say what comes out: photo, video or GIF, picked before cropping and bound to F, V and G.
The fourth says where from: press it and every monitor puts its own number in the middle, and
1, 2 or 3 takes that whole screen, wherever the pointer happens to be. Clicking the screen
does the same.
Recording honours the profile: with "se copia sola" it starts the moment you let go, and with
"sale la barra" it lets you adjust the rectangle first, because getting a recording wrong costs
minutes rather than one keystroke.
How it is built
| Layer | Choice | Why |
|---|
| Desktop | Tauri 2 | small binary, system webview, Rust backend |
| Updates | Tauri updater plugin, minisign signatures | one button, without leaving the app or installing blind |
| Interface | React 19 + Vite + Tailwind 4 + framer-motion | independent windows, native feeling animation |
| Still capture | xcap | enumerates monitors and windows with their real coordinates |
| Recording | windows-capture | Windows Graphics Capture, 60 fps at no CPU cost |
| MP4 | Media Foundation, hardware H.264 | 0 MB of dependencies, system acceleration |
| GIF | gif + color_quant | global palette, dithering and frame differencing |
| Editing cache | lossless QOI | fast to write and editable frame by frame |
The selection overlay is not a transparent window. The screen is captured, shown frozen, and
the selection happens on top of that image. It sidesteps the Tauri v2 transparency bug on Windows,
removes the flicker of moving content underneath, and gives a pixel exact magnifier for free.
No bundled FFmpeg. MP4 is written by Media Foundation in hardware, and the GIF is produced in
pure Rust with a global palette, Floyd-Steinberg dithering and writing only the rectangle that
changed between frames. If you happen to have ffmpeg on your PATH, the editor offers a maximum
quality engine (palettegen) as well, but it is never downloaded and never shipped.
docs/TRAMPAS.md (in Spanish) collects the seven Tauri v2 traps on Windows that
cost hours of debugging: synchronous commands that freeze the interface, windows that must not be
created from a global shortcut thread, window labels that cannot be reused, the first click being
eaten by the system, a canvas tainted by the asset: protocol, an incomplete CSP that only shows up
in the installer, and the signing key that is passed one way and not the other.
Development
pnpm install
pnpm approve-builds --all
pnpm tauri dev # starts the app (it lives in the system tray)
pnpm tauri build # NSIS installer in target/release/bundle/nsis
Backend tests are not pretend: they capture the real screen, record a clip through Windows Graphics
Capture and export GIF and MP4 files that are then read back to check they are valid.
cd src-tauri
cargo test
The site lives in frontlaxweb/ and Cloudflare Pages serves it. Every push runs
the checks and then deploys, so the English pages, the asset hashes and the sitemap all have to
agree first:
node frontlaxweb/generar-en.mjs # rebuild /en/, the FAQ schema and the asset hashes
python frontlaxweb/generar-social.py # rebuild both 1200x630 cards
Publishing a version needs the private signing key, which is not in this repository and without
which the updater would reject the download:
export TAURI_SIGNING_PRIVATE_KEY="$(cat ~/.tauri/winshotx.key)"
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="" # the key was generated without one
pnpm tauri build
node scripts/publicar.mjs --publicar # writes latest.json and creates the release
publicar.mjs refuses to run if package.json and Cargo.toml disagree on the version, or if the
.sig is older than the installer, which is what happens when you build without the key.
After publishing, node scripts/verificar-firma.mjs downloads what the release actually serves and
checks the signature against the public key inside the app, with ed25519 over BLAKE2b-512. A
signature made with a different key is the one failure that gives no error at all: the updater
quietly refuses every download and every installed copy stays where it is.
The winget manifests are in packaging/winget.
Status
Runs on Windows 10 1903 or newer. macOS and Linux compile, but every platform specific function
returns "esta función solo está implementada en Windows": capture, recording, MP4 encoding,
clipboard and autostart are all behind #[cfg(windows)] with a stub for everything else, so
porting means filling those stubs in.
What is missing: automatic blurring of personal data (winshotx blurs by hand, with a mosaic),
a timer longer than five seconds, and any language other than Spanish and English. The full
comparison on the site says which rows the Snipping Tool still wins.
License
MIT. Use it, change it and sell it if you want. Built by
Munir Torres.