Releases: SnapXL/SnapX
v0.4.0
v0.4.0 (2026-02-20)
Eight months, 257 features, 136 bug fixes, and one existential crisis later, here we are. SnapX now officially runs on everything short of a smart toaster.
I am proud to say this is the first usable release of SnapX for basic usecases at the moment. ❤️
The biggest news is that we've completely overhauled the uploader system. You can now configure FTP, FTPS, SFTP, Imgur, ImageShack, Flickr, Hastebin, GitHub Gist, Google Photos, OneTimeSecret, Paste.ee, and Pastebin directly from the settings UI. No more editing JSON files by hand, like it's 2015. Oh yeah, and did I forget to mention you can now choose your selected uploader, after capture tasks, after upload tasks?
We've also switched the configuration from JSON to YAML because YAML is what cool kids use. We've also implemented post-quantum resistant encryption for secrets in your configurations. Your old settings will migrate automatically. If they don't, that's a bug. Open one.
The OCR tool got a massive upgrade. It now supports drag and drop, clipboard pasting, and file selection. We also swapped out the OCR backend for RapidOcrNet, which is faster, smaller, and actually works cross-platform without using a bunch of native libraries. The OCR model is no longer embedded in the binary, so the application size dropped significantly. You're welcome.
We've also made great strides in Linux packaging. We now have Flatpaks, Snaps, RPMs, and DEBs. We did consider making an AppImage; however, I'm not seeing a very enticing reason. Flatpaks can now be put on a thumb drive.
Windows users can now download MSI packages. MSIX packages are coming on Microsoft Store first. FreeBSD builds are here. Alpine Linux builds also exist now.
We've removed about 15 dead uploaders, including Twitter, Bitly, and various services that have been offline longer than some of our contributors have been alive. If you were still using TwitPic, I have some bad news.
The region selector won't crash the app if screenshotting fails anymore. It now shows a helpful dialog instead of just dying. Progress.
We've also added a QR code tool overhaul, proper window and monitor capture from the tray, thumbnail generation, AVIF, and WEBP support. The version text in the about window is now animated because we ran out of important things to do.
We have officially moved to .NET 10. Bringing slight performance improvements.
"Any program is only as good as it is useful." - Linus Torvalds
Known Issues
- Much higher memory usage than ShareX. This is because even though SnapX is still under active development, it utilizes more of your computer's memory than before, such as caching images in memory to keep the UI responsive.
- DatabaseView is not implemented properly.
- SnapX's settings on FreeBSD are not encrypted.
- Imgur OAuth2 is broken. Notably, because Imgur broke it for 3rd party applications and hasn't provided any guidance to anyone in the open source community.
- Google Photos uploader requires you to create a new Google project to use it.
- A portion of the region capture window on macOS is not visible.
Screenshots
I've redacted some of the 1000 commits for your convenience. I doubt you want to read all of it...
Features
- Avalonia: Release v0.4.0 (
911be8f5) - Avalonia: Add OCR drag&drop (
b1cd64d6) - Avalonia: Add not implemented yet view (
76d69942) - Core: Add encryption & use it by default (
61e37d6d) - Core: Use Tmds.Ssh instead of SSH.NET (
e7b6ade5) - Core: Migrate configuration from JSON to YAML (
bba7ffd4) - Avalonia: Add FTP/FTPS/SFTP uploader settings (
97281e62) - Avalonia: Add Imgur uploader settings (
e55d3666) - Avalonia: Add ImageShack uploader settings (
0b8625fd) - Avalonia: Add Database viewer (
12aa3915) - Avalonia: Add BuiltIn Uploader View (
fc9efe9b) - Avalonia: Add Flickr uploader settings (
896795f7) - Avalonia: Add Hastebin uploader settings (
432c2570) - Avalonia: Add GitHub Gist uploader settings (
1f9ee94b) - Avalonia: Support OAuth2 loopback uploaders (
58fe5d82) - Avalonia: Add OneTimeSecret uploader settings (
f1c74006) - Avalonia: Add Google Photos uploader settings (
4cde9d79) - Avalonia: Add Paste_ee uploader settings (
41fbfc09) - Avalonia: Add pastebin uploader settings (
452f6626) - Avalonia: Use Destination enums to navigate settings (
581f6ccb) - Core: Switch default hastebin provider to pastie.io (
5a50525d) - Avalonia: Add clipboard/file support to OCR Tool (
687ea682) - Avalonia: Completely revamp QRCodeView (
50a0e409) - Avalonia: Make version text animated (
e1aee2b6) - Avalonia: Allow region selector to be called programatically (
07ef3b0e) - Avalonia: Add OCR Tool (
9f11c3a1) - Core: Switch to RapidOcrNet for faster, smaller, cross-platform OCR (
4a801e40) - Avalonia: Poll for window/display updates on Linux/FreeBSD (
9cd59c19) - Avalonia: Show success dialog with response data after test upload (
1447162f) - Core: Add windowList support to macOS (
c990a35f) - Avalonia: Custom uploader menu (
d915c02b) - Avalonia: Import/export/reset config (
50d13ebc) - Avalonia: Add progress indicator to OCR (
2becb5cf) - Avalonia: Add HistoryItem shortening/sharing (
be4ae381) - Core: No longer embed OCR model inside binary (
a54d1306) - packaging: Refactor snapx RPM into sub packages (
d16b0ce5) - Avalonia: Add thumbnail generation (
3c951020) - Core: Use UI frontend for clipboard actions (
c4521708) - Avalonia: Simplify capture options & add QR code to...
v0.3.0
v0.3.0 (2025-06-26)
You can now upload and download your HistoryItems directly and instantly open their URLs, shortened links, their deletion links, file paths, and folders. We just upgraded to PaddleOCR v5 (PaddleSharp v3), which increases the performance of the OCR model. Additionally, you can now run PaddleOCR on most Linux distributions*, and macOS. To accompany the support, we've created an OCR window for it that has support for English, Chinese (Simplified), Chinese (Traditional), Spanish, Arabic, Korean, Hindi, Japanese, Telugu, Tamil, Russian, Portuguese, Turkish, German*, French (Revolution).
The ugly "sidebar" we had has been ejected from the building. Now, there's an actual sidebar that mimics ShareX's sidebar, somewhat.
Additionally, we've removed the dependency on LibVLC, which didn't make much sense for us. After giving it thought, playback inside SnapX is a waste of everyone's time. On Linux, we have mpv, haruna, and VLC. On Windows, it ships Movies & TV ootb and you have VLC as an option. On macOS, you have the integrated video player with VLC as an option. For sound playback, we now use ffplay from FFMPEG.
We've also made SnapX far more stable. The annoying HistoryItem flashing is gone, and the region selector won't crash the app if screenshotting fails. It's simply a much smoother and more reliable experience.
You'll find smarter build processes, with us no longer putting *.so files in your $PATH to appease .NET. We now use a wrapper script, as we should have in the first place. For Windows users, this release includes better path handling and disables the wrapper script on Windows. Plus, we've fine-tuned performance by optimizing build times on Windows and ensuring a smoother experience when launching features like the About Window. We've also updated various dependencies for improved stability and security.
Additionally, I have added a LogViewer for ease of access.
I also switched SnapX's versioning tool to GitVersion, which was designed to be SemVer compliant. It also doesn't panic when building SnapX without a git repository. Finally, we've improved our documentation, making it clearer for packagers and easier to understand our versioning.
SnapX is now ~825 MiB uncompressed (~411 MB zipped), with the majority of that coming from our integration of PaddleOCR, a powerful offline AI text recognition engine. This allows SnapX to deliver fast, private OCR without needing any cloud services. While the increase is most noticeable on Linux (previous builds were ~75 MiB), it's less significant on Windows and macOS. When I asked in our Discord, the community overwhelmingly understood and accepted the size tradeoff in exchange for better cross-platform support and advanced OCR. If you feel that is too large for your liking, you can set the DisableOCR=1 environment variable when building SnapX, and it will once again be ~75 MiB.
"In open source, we feel strongly that to really do something well, you have to get a lot of people involved." - Linus Torvalds
Known Issues
- Much higher memory usage than ShareX. This is because even though SnapX is still under active development, it utilizes more of your computer's memory than before, such as caching images in memory to keep the UI responsive.
- The settings window's buttons do nothing yet, besides the
Config folderbutton. - PaddleOCR can't be run on musl-based Linux distributions, Windows 11 ARM64, and FreeBSD.
- On Linux, PaddleOCR libraries contain an invalid RPATH, but still run. This still causes COPR builds to fail. It will be fixed soon after this release.
Screenshots
Features
- Avalonia: Implemented core functionality for HistoryItems context menu actions (
ce3b44fc) by @BrycensRanch - Core: Made OCR more flexible for PaddleOCR (
2ece80d7) by @BrycensRanch - Avalonia: Added initial settings window (
c336de7b) by @BrycensRanch - Avalonia: Added OCR window powered by PaddleOCR (
02881416) by @BrycensRanch - Avalonia: Added fully functional LogViewer (
accae46b) by @BrycensRanch - Core: Added support for PaddleOCR on macOS & Linux (
ab362c98) by @BrycensRanch - CLI: Added
--versionoption (379c6fe2) by @BrycensRanch
Bug Fixes
- Core:
CopyImagein MacOSAPI having double quotes (c201c846) by @BrycensRanch - Avalonia: Screenshotting two times causing crash on Windows (
1dec604e) by @BrycensRanch - Core: CopyImage in MacOSAPI having double quotes (
c201c846) by @BrycensRanch - Avalonia: Thrown error on
-videoCLI parameter (14236a54) by @BrycensRanch - Core: Do not log binary in console in DEBUG mode (
3de0c06c) by @BrycensRanch - Avalonia: Made MainWindow bigger (
12a6c281) by @BrycensRanch - Avalonia: Made RegionSelector only use one screen (
a71bc5d7) by @BrycensRanch - Avalonia: Removed LibVLC for dependency on ffplay (
10809dde) by @BrycensRanch - Core: Given non-null logger to Aptabase (
61897883) by @BrycensRanch - Avalonia: Do not use Assembly versioning semantics in task tray version (
e4f12a50) by @BrycensRanch - Build: Icons not installing in the right place (
24684584) by @BrycensRanch - Build: Build in environments without git repository (
1c932000) by @BrycensRanch - Build: Wrapper script install not working & refactor (
9ed58775) by @BrycensRanch - Core: Building on Windows (
d115f620) by @BrycensRanch - Core: Custom uploader items
sxcu(01632f40) by @BrycensRanch - Avalonia: Explicitly registered embedded Inter font for Linux & FreeBSD (
8c3bda24) by @BrycensRanch - Avalonia: Constant refreshes of entire HistoryItem list (
698b48fe) by @BrycensRanch - Core: Properly implemented deep equality and hash code for HistoryItem (
7ca27a00) by @BrycensRanch - Core: Implemented CopyImage for macOS (
5a391532) by @BrycensRanch - Avalonia: Allowed AboutWindow buttons to stretch forever (
01728a4f) by [@BrycensRanch](https://github...
v0.2.1
v0.2.1 (2025-06-09)
Bug fix release to deal with the problems of the 0.2.0 release. Nothing to see here.
"Sometimes you have one of those days that shows how incompetent you are... Moral of the day: RTFM." - Linus Torvalds
Known Issues
0.2.1release identifying as0.2.0- Much higher memory usage than ShareX. This is because even though SnapX is still under active development, it's doing more things with your computer's memory than before, like caching images in memory to keep the UI responsive.
- Inconsistent flickering of HistoryItems. It seems that it needs more investigation.
- The settings window is incomplete.
- PaddleOCR can't be run on Linux
Bug Fixes
- fix(Core): allow applying the first migration when no previous version exists
- fix(Core): allow other processes on Windows to read/write to version-lock
- fix(Core): run StripPII on title & use environment-safe placeholder for user path
Build System
- build: add
ELEVATION_NOT_NEEDEDenvironment variable for packaging on Homebrew - build: allow skipping macOS version check for packaging on Homebrew
Packaging
- build(spec): fix bullseye using fancy chars when COPR doesn't support it
- build(PKGBUILD): remove libcurl dependency
Misc
Screenshots
Full Changelog: v0.2.0...v0.2.1
v0.2.0
v0.2.0 (2025-06-07)
With the pre-release of 0.2.0, marks the actual UI for end users. It's very incomplete and juvenile, however, it has a lot of potential. Additionally, SnapX's history is now powered by SQLite instead of JSON. SnapX automatically migrates your History.json when it sees it in it's ConfigFolder. Additionally, you can turn off FeatureFlags at build time with export DisableOCR=1 && ./build.sh.
As a nice plus for packagers, builds no longer fail when SnapX is built without it's .git directory.
"If Microsoft ever does applications for Linux it means I've won." - Linus Torvalds
Known Issues
- Much higher memory usage than ShareX. This is because even though SnapX is still under active development, it's doing more things with your computer's memory than before, like caching images in memory to keep the UI responsive.
- Inconsistent flickering of HistoryItems. Needs more investigation.
- Settings window is incomplete.
- PaddleOCR can't be ran on Linux
Screenshots
Bloopers
While testing, I've come across some really cool bugs. Right clicking an HistoryItem causing a refresh? Somehow turning one HistoryItem being shown to 7 more popping up out of nowhere.
Video_2025-06-06_17-34-01.mp4
I also experimented with having a million HistoryItems. Worked better than the black window I had from trying to do it without virtualization.
There's also version mismatch protection now!
Looks just about the same besides the font on Windows being Segoe UI and Linux being Inter
Or better, when I was working on SQLite support and faced many challenges. So instead, I chose to go with Dapper.AOT! So far, I'm loving it.
What's Changed
- build(deps): update rust crate camino to v1.1.10 by @renovate in #193
- build(deps): update dependency sixlabors.imagesharp to 3.1.9 by @renovate in #195
- chore: move PR template to proper directory by @ok-coder1 in #198
- docs: make all the newlines in Markdown files actual newlines by @ok-coder1 in #196
- chore: add 0.2.0 Dev as a version option to issue form by @ok-coder1 in #197
- build(deps): update dependency sentry.profiling to 5.10.0 by @renovate in #199
- build(deps): update rust crate uniffi to v0.29.3 by @renovate in #200
- feat(Avalonia): initial basis of UI by @BrycensRanch in #99
- Apply fixes from CodeFactor by @codefactor-io in #202
Full Changelog: v0.1.0...v0.2.0
v0.1.0
v0.1.0 (2025-05-31)
The current features are slightly better than UploaderX due to PaddleOCR. (You can test it with snapx-ui -OCR ~/Pictures/Screenshot.png). You can test more of the Core features with the CLI. Integration with the respective operating systems is WIP. This release marks the beginning of actual versioning of SnapX. Very soon, semantic-release will be introduced to automatically produce versions bi-weekly. Once the feat/initial-avalonia-ui branch is merged, the 0.2.0 version will be born.
For clarity, SnapX is still not usable. For me, this isn't very pleasant to say, however, I am proud of the progress I've made, and other contributors have as well. The foundation of the project is valuable. The hours I've put into the Core with the migration to SQLite (coming with feat/initial-avalonia-ui)
SnapX's develop branch is also packaged on COPR and AUR. Packaging for other operating systems is coming soon.
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." – Linus Torvalds
New Contributors
- @ok-coder1 made their first contribution in #96
- @Rune580 made their first contribution in #143
- @norz3n made their first contribution in #56
What's Changed
- refactor(ImageEffectsLib): begin migrating to ImageSharp by @BrycensRanch in #29
- refactor(Core): save memory async by @codefactor-io in #34
- build(PKGBUILD): add Arch Linux package by @norz3n in #56
- docs: fix typo in contribution guide by @ok-coder1 in #96
- chore: optimize images in repository by @imgbot in #22
- docs: Add
hard fork of the Windows applicationto README.md by @ok-coder1 in #97 - docs: capitalize ShareX OCR by @ok-coder1 in #100
- docs: add
at its EOLfor Windows 11 by @ok-coder1 in #102 - docs: make the readme formatting better by @ok-coder1 in #129
- docs: make readme formatting even more better by @ok-coder1 in #132
- docs: make the readme
*actually connected by @ok-coder1 in #130 - docs: even more formatting to the readme and grammar issues by @ok-coder1 in #134
- ci(actions): add PR labeler by @ok-coder1 in #135
- docs: change the link for Security Page to SnapX's by @ok-coder1 in #137
- ci(actions): fix
stale.ymlby @ok-coder1 in #138 - ci(actions): remove comments and add
actionslabel to PR labeler by @ok-coder1 in #136 - docs: install required dependencies for building on macOS by @ok-coder1 in #144
- docs: fix grammar mistakes by @ok-coder1 in #149
- docs: grammar fixes in
CONTRIBUTING.mdby @ok-coder1 in #153 - chore: update
.gitignoreby @ok-coder1 in #152 - docs: add MacPorts
ffmpeginstall guide by @ok-coder1 in #146 - ci(actions): add features to
stale.ymlby @ok-coder1 in #147 - ci(actions): make PR labeler have even more options by @ok-coder1 in #151
- docs: update readme by @ok-coder1 in #156
- docs: make the HDR note look better by @ok-coder1 in #150
- docs: make MacPorts guide a tip by @ok-coder1 in #163
- style(CLI): remove an extra
=inCLIAbout.csby @ok-coder1 in #162 - ci(actions): add
todoto exempt issue labels by @ok-coder1 in #161 - chore: add issue forms by @ok-coder1 in #170
- ci(actions): add linters by @ok-coder1 in #168
- style(actions): making the
commitlintstep more human-friendly by @ok-coder1 in #171 - style: make the feature request template grammar better by @ok-coder1 in #175
- style: update PRIVACY.md grammar by @ok-coder1 in #176
- ci(actions): add
buildlabel to PR labeler by @ok-coder1 in #174 - style(actions): add indentation to
labeler.ymlby @ok-coder1 in #178 - docs: PRIVACY.md grammar fixes & additional indentation by @ok-coder1 in #177
- chore: add PayPal as a sponsor option by @ok-coder1 in #180
- build: remove NUKE.build by @BrycensRanch in #159
- feat(Core): use SharpCapture instead of xcap by @BrycensRanch in #89
Full Changelog: https://github.com/BrycensRanch/SnapX/commits/0.1.0












