Releases: SnapXL/SnapX
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












