Repository navigation
Releases
Save Tool v1.8.3 - light theme by default + auto-scroll to new downloads
Light by default (Claude-style), and the download card comes to you
Two changes you asked for:
-
The page now opens in the light cream theme (like claude.ai), instead of following your phone's dark mode. There is a moon/sun button in the top-right corner if you want dark back - your choice is remembered per device.
-
After you paste a link, the page scrolls to the new download card automatically. Previously the card appeared below the fold and it looked like nothing was happening.
Verified in a real 390x844 phone viewport: default background is cream (rgb(250,249,245)), the toggle switches and survives reload, and submitting a link scrolls the new card into view (scrollY 0 -> 293, card top at 342px).
Recommended download: SaveTool-v1.8.3-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.8.2 - Threads share links now download
Fixed: Threads share links did not download
The Threads app's "Copy link" gives a share link like threads.com/share/BAVzxB05HF/, not a post link. Save Tool only understood threads.com/@user/post/<code>, so it failed with "url is not a post link" and yt-dlp has no Threads support to fall back on.
Now a share link is resolved first (Threads redirects it to the real post) and then downloaded normally. Verified with the exact link that failed:
input: https://www.threads.com/share/BAVzxB05HF/
result: threads_DeiR8J_kpfn.mp4 (status: Saved)
Also: long URLs inside error messages are shortened to the host name, and error text is clamped to 5 lines on the card (full text on hover / long-press) so one bad link no longer blows up the page.
Recommended download: SaveTool-v1.8.2-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.8.1 - easier on mobile and desktop
Easier on both mobile and desktop
On a phone:
- The link box now uses the URL keyboard (with a Go key) - no autocorrect mangling your links
- The keyboard no longer covers the page on load (no autofocus on phones)
- PC-only buttons (Change folder / Open) are hidden on phones - they open dialogs on the PC's screen, useless when you are away
On the desktop:
- Tap or click a finished download's file line to copy its full path to the clipboard
Everything is verified at both viewports (390px phone and 1440px desktop): no JS errors, no horizontal overflow, and the phone path behaves differently from the PC path exactly as intended.
Recommended download: SaveTool-v1.8.1-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.8.0 - Test button: prove the download works on your device
How do you know the mobile download actually works? Tap Test.
Every finished download now has a Test button. It downloads the whole file inside your browser, computes its SHA-256, and compares it with the hash computed on the PC. If the hash matches, every single byte arrived intact on that device - no guessing.
✓ test OK · 464.8 KB in 0.4s · SHA-256 match
- Works over the public link, Wi-Fi, anywhere - it tests the exact path your device uses
- Includes a built-in SHA-256 for plain http:// pages (LAN), where browsers hide the crypto API
- Shows real numbers: size and transfer time, so you can see the actual speed per device
Recommended download: SaveTool-v1.8.0-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.5 - mobile: force save instead of open-in-player
Fixed: tapping "Save to phone" opened a video player instead of downloading (iPhone Safari, some Android browsers)
Why: the file was served as video/mp4 / audio/mpeg, so mobile browsers played it inline rather than saving it. It is now served as application/octet-stream with X-Content-Type-Options: nosniff and Content-Disposition: attachment - every browser (iOS Safari, Android Chrome) treats that as a file to save.
Also added:
HEADsupport on the download route (some mobile download managers probe first)Accept-Ranges+ 206 partial content were already there (resume works)
Verified end to end through the Worker:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="youtube_jNQXAC9IVRw.mp4"; filename*=UTF-8''youtube_jNQXAC9IVRw.mp4
Accept-Ranges: bytes
X-Content-Type-Options: nosniff
Where the file lands
- Android: Downloads folder (Chrome downloads it directly)
- iPhone: Files app > Downloads (Safari shows the download; if the video starts playing instead, long-press the Save to phone button and choose Download Linked File)
Recommended download: SaveTool-v1.7.5-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.4 - cleaner page (footer buttons removed)
Cleaner page
- Removed the footer buttons (Add shortcut / Use on phone / Open to internet / Update). The public Worker link replaced all of them, so the page is now just: paste a link, pick options, download, Save to phone.
- The small version line stays (it also carries setup warnings, useful if something goes wrong).
Still available on the PC when you need them:
- Update yt-dlp:
savetool.exe update(or just retry a failed download - it updates itself once) - Start the public link:
run-public.bat
Recommended download: SaveTool-v1.7.4-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.3 - mobile UI pass
Mobile UI pass - built for thumbs, not mice
- Every control now has a comfortable hit area (42px+): buttons, dropdowns, checkboxes, the paste and download buttons (52px)
- Job actions fill the row (Save to phone / Retry / Cancel / Remove) so nothing needs careful aiming
- Save to phone is now the highlighted primary button on a finished download, and the useless "Show file" button (it opens Explorer on the PC) is hidden when you are on a phone
- Finished download says "Saved - tap Save to phone" so the next step is obvious
- Footer buttons and the save-folder row lay out two per row instead of squeezing
- Safe-area padding for notched phones, no tap highlight flash, no text-size jumps
Verified with a real 390x844 mobile viewport (Chrome DevTools Protocol): scrollWidth = 390 - no horizontal overflow, all controls reachable.
How to use
run-public.bat (or the "Save Tool (public).bat" shortcut on the Desktop)
Then on the phone open https://savetool.thanhhung33.workers.dev, paste a link, and tap Save to phone.
Recommended download: SaveTool-v1.7.3-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.2 - mobile: save straight into the phone's Downloads
Mobile: files now save into the phone's Downloads folder
- The download link sends both a plain
filename="..."and a UTF-8filename*=name, which is what Android browsers need to save with the correct name (iOS/desktop use the second one) - Added HTTP Range support (
Accept-Ranges: bytes, 206 partial content): Android download managers and video players can now resume or stream a file instead of failing and starting over - The button on a finished download is labelled Save to phone when the page is opened from another device
Cache-Control: no-storeso a half-downloaded file is never served from cache
Verified: full download, 206 range, open-ended range, out-of-range 416, both filename forms, no-store - 9/9 checks pass.
How to use
run-public.bat (or the "Save Tool (public).bat" shortcut on the Desktop)
Then on the phone open https://savetool.thanhhung33.workers.dev, paste a link, and tap Save to phone on a finished download. The file lands in the phone's Downloads folder.
Recommended download: SaveTool-v1.7.2-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.1 - fix: stays reachable behind the tunnel
Fixed: "Save Tool is not reachable" (backend answered 502)
The app used to shut itself down about 3 minutes after the last browser tab stopped polling - fine for a desktop app, fatal when it sits behind the Cloudflare Worker and the tunnel keeps running (the Worker then got a 502 from the tunnel).
- In public mode the app now stays up until the launcher stops it (no idle exit)
- The launcher (
run-public.bat) now supervises the app: if it ever exits, it is restarted automatically
Verified: with no traffic at all for 3.5 minutes, the app stayed up and the Worker kept answering 200.
How to run it
run-public.bat (or the "Save Tool (public).bat" shortcut)
It starts the app, opens the cloudflared tunnel, points the Worker secret at it, and prints:
https://savetool.thanhhung33.workers.dev
Open that on your phone (4G, anywhere), paste links, tap Save to pull a file onto the phone.
Recommended download: SaveTool-v1.7.1-win64.zip - everything included, unzip and double-click savetoolw.exe.
Save Tool v1.7.0 - use it from anywhere
Which file do I download?
Download SaveTool-v1.7.0-win64.zip (FULL PACKAGE). Unzip the whole folder and double-click savetoolw.exe - no console window, no downloads on first use.
New in 1.7.0 - use it from anywhere (not just your Wi-Fi)
The project now ships a Cloudflare Worker that acts as the public front door for the app on your PC. It is a pure reverse proxy: the page, the API and the file downloads all travel through a cloudflared tunnel back to savetool on your PC - nothing is stored in the cloud.
One-time: npm install then npx wrangler deploy.
Every time you want it online: run run-public.bat. It starts the app in public mode, opens the tunnel, writes the tunnel URL into the Worker secret BACKEND_ORIGIN, and prints your public link:
https://savetool.thanhhung33.workers.dev
Open that on your phone (4G, anywhere), paste links, and tap Save on a finished job to pull the file onto the phone. If the PC is off, the Worker shows a friendly "Save Tool is not reachable" page instead of an error.
SAVETOOL_PUBLIC=1 (set by the launcher) makes the local server accept the tunnel's Host header; the per-run token still guards every API call, so treat the Worker URL as private.
Also since 1.6.1
- Use on phone (same Wi-Fi): tap "Use on phone" and open the shown address
- Save button on every finished job - downloads the file to whichever device you are using
- Faster downloads (parallel fragments), all helper tools bundled, Threads falls back to yt-dlp