Release notes
Changelog
1.2.3 · September 30, 2026 · A Business License activates on any Mac
- Activating a Business License no longer fails with “Connection error”. Squishr checks a license key with the twoplus11 license server over HTTPS, and it could only verify that server’s certificate on a Mac that had the python.org edition of Python installed, which most Macs do not. Everywhere else the check failed before it started, so activation said “Connection error” however many times you tried. Squishr now verifies the server the way Safari does, with the certificates macOS itself trusts, including one your school or company has installed.
- The license key field shows the whole key. It showed only the last part of a key’s format, so a key could be typed without the SQUISHR- it starts with and then be refused. It now shows the full format, SQUISHR-XXXX-XXXX-XXXX-XXXX.
- The Business License window is the one the other twoplus11 apps use.
Site update, September 23, 2026 · The privacy page now says update checks are counted
- Update checks are counted, and the privacy page now says so. When Squishr checks for a new version, that request reaches our server and we record it: which app it was, the version it reported, the date, the user-agent string of the request, and a one-way hash of your IP address that is re-salted every day. We keep it for one reason, to count how many installs are still in use. The privacy page said the opposite in its summary; it now says this there as well as in its “Update checks” section.
- The earlier “no telemetry” wording was inaccurate. The entry below of August 12, 2026 says the line about there being no account and no telemetry “was accurate and is unchanged”. It was not accurate: the checks were already being counted when it was written. That entry is left as it stands, because it is a record of what was published on the day; this one corrects it.
- Nothing about your files changed, and nothing about them is sent. There is still no account, the automatic check can still be turned off, and Squishr goes on working either way.
- No change to the app.
1.2.2 · September 15, 2026 · A compressed copy missing most of the video is no longer called a success
- A compression that silently dropped most of the video is now refused. Compression accepted any result that was not empty and came in under the target size, and never compared its length against the source. ffmpeg prints corruption to its log and still exits cleanly, so a partially synced video whose header claims far more footage than it actually contains encoded only the part it could read and reported a spectacular saving. Nothing downstream noticed, because the duration probe only ever revises upward. This is exactly the flow where you then delete the original, so the incomplete copy was the only one left. The finished file's duration is now checked against the source, and a short result is refused with the same "this file looks incomplete or corrupted" message the app already uses.
- The licence window meets the contrast standard. It had never been audited, and it was failing. The text and controls in that window now meet WCAG AA.
1.2.1 · September 14, 2026 · Runs on macOS 13 Ventura again
- Ventura is supported again. Squishr now runs on macOS 13 Ventura and later, where it previously required macOS 14 Sonoma. Nothing in the app ever needed Sonoma: the floor came from the Python runtime bundled in at build time, which has been rebuilt against one targeting macOS 10.13 on Intel and 11.0 on Apple Silicon. Intel and Apple Silicon Macs are both supported, as before.
1.2.0 · September 8, 2026 · Discord’s limit moved, and so did ours
Discord doubled its free upload limit on 13 August 2026 and Squishr went on squeezing every Discord video into half the room it actually had. That is fixed, along with the eleven releases Squishr shipped without a menu bar.
Added
- The update notice can only ever open a twoplus11.com page. When a new version exists, Squishr offers a button that opens the download page, and which page that is was whatever the update server said it was. Nothing checked it, so a spoofed or compromised server could have pointed that button at any site it liked, wearing the credibility of a signed app. The address is now checked against the real host before anything opens, and a lookalike like twoplus11.com.example.net does not pass.
- Squishr has a menu bar. It shipped for eleven releases with the bare minimum macOS gives a window: no Settings, no Help, nothing to press ⌘, on. There is now a Squishr menu with Settings, Check for Updates and License, a File menu with Add Videos, Open Recent, Compress and Clear all, and a Help menu. Every item runs the same thing its button in the window runs, so a confirmation, a toast or a disabled state is never skipped by taking the menu route, and the whole bar is translated into all thirteen languages.
- Settings, at ⌘, where you expect it. Appearance and Language were two unlabeled circles in the top right corner of the window, and whether Squishr checks for updates was buried inside the Updates sheet. They are one sheet now: a System / Light / Dark picker, the language list, and the update preference, grouped and labeled. The corner buttons stay, because they are the quick way; this is the findable one.
- A keyboard shortcuts panel, at ⌘/. Every chord the window answers, in a list, instead of one crammed paragraph at the bottom of the help sheet. The list is checked against the window’s own key handler, so a shortcut that changes and a panel that does not is now a failing test rather than a wrong instruction.
- Open Recent, at ⇧⌘O. The last few videos you added were offered on the empty screen and nowhere else, so the moment you added one the list you had just been shown disappeared. It is a sheet now, reachable at any time.
- Right-click a video in the queue. Compress this one, Show in Finder, Play, Copy, Show original in Finder and Remove, on the row you clicked, with Stop this one in place of Compress while it is running. Shift+F10 and the Menu key open the same menu on the focused row, so it is not a mouse-only feature, and it never opens off the edge of the window.
- The window remembers its size and where you put it. Every launch used to open a fresh 1120 by 720 window in the middle of the display. A size saved on a big display is clamped to the one you are actually on, and a position saved on a monitor you have since unplugged centers instead of putting the title bar where the mouse cannot reach it.
Changed
- Discord is 20 MB now, not 10. Discord doubled the free upload limit on 13 August 2026. Nothing failed and every file still fit; they just looked worse than they needed to, sometimes a lot worse, because the whole point of the app is to spend every byte the destination allows. Nitro Basic (50 MB) and Nitro (500 MB) are unchanged, and WhatsApp, Email, Gmail, iMessage, Signal and Telegram were all re-checked against each service’s own documentation on 1 September 2026 and were all still right.
- The preset numbers now carry the date they were last checked, and the app’s own copy is checked against them. The number used to be typed out separately in the presets, the empty-state chips, the README, the design notes, the help sheet and thirteen translation files. All six agreed with each other and all six were wrong, so nothing could notice. There is now one copy and the rest are compared against it.
- Compress is always on screen. The primary action used to be the last thing in the scrolling pane, so at the default window size with one video queued it sat below the fold, and the part of it you could see had the footer’s links painted across it in grey. It is its own bar at the foot of the window now, and the footer is a proper bar at the end of the column rather than an overlay pinned over whatever the pane happened to be showing.
- Completion toasts no longer cover the button you reach for next. The batch summary landed on top of Compress and swallowed clicks on it for six and a half seconds, which is exactly when you go to compress the next thing. Toasts now sit clear above the Compress bar, and follow the family’s timing: three and a half seconds for a result, six for a failure, and six and a half when there is something to press.
- The sort chips appear with the videos. Name, Size, Length, Status and Savings were offered over an empty queue, five controls that could not do anything, on the screen whose whole job is asking you to drop a video.
Fixed
- A shipped build no longer lets the environment redirect the license check. A developer variable exists so someone running Squishr from source can point it at a local server. Nothing stopped it working in the signed app too, so any process running as you could have set it and had the next activation send your paid key, the machine fingerprint, the app version and the seat name to a host of its choosing. The built app now ignores it; running from source still honors it.
- A video whose file said it was shorter than it is no longer wrecks the quality estimate. An MP4 records its length in a header, separately from the frames themselves, and that header is often wrong: a capture that was force-quit, a stream copy of a live recording, a partial download. On a one-minute clip whose header claimed six seconds, the quality meter promised “Great”, the trim handles covered only the first six seconds so most of the video could not be reached, the filmstrip took all ten thumbnails from the same opening moment, and the encode took three attempts to claw its way back under the target. Squishr now cross-checks the header against the number of frames and, when the two disagree, measures where the video really ends.
- Compressing a video that was already tiny made it bigger. A 38 KB screen recording came back at 66 KB, almost twice the size, from a run the app had already labeled “Already fits”. A floor meant to stop a picture being squeezed into nothing was overriding the rule that Squishr never spends more bits than the source carries. It no longer applies to a source thinner than the floor, because those bits do not exist to be put back.
- A WebM or MKV that already fitted still came back bigger. The rule that Squishr never spends more bits than the source carries was reading the soundtrack’s own bitrate out of the file, and Matroska and WebM do not record one, so for every video in those two formats the rule was skipped and the soundtrack was re-encoded at the app’s usual 96 kbps. On a 117 KB, twenty-second screen capture that spent 47 kbps on everything it had, the result was 271 KB, 2.3 times the size of the original, out of a run the window had already labeled “Already fits”. A soundtrack cannot be spending more than the file it lives in, so when the format will not say, the file’s own rate is the ceiling.
- A video with a very long name failed at the last moment. The output is named after the video plus the target it was made for, and nothing checked the result against the limit macOS puts on a single file name. A name over about 240 characters, which is ordinary for a video downloaded under its own title, encoded all the way to the end and then failed on the way into the folder, with a message that quoted an internal scratch file and never mentioned the name. The name is shortened to fit now, and the target it was made for is still on the end of it. A name that already fits is untouched.
- A hard squeeze is one encode faster. When the target is tight enough that Apple’s hardware encoder hits its own quality floor, asking it for a lower bitrate stops changing anything, and Squishr was asking twice before moving to the slower, byte-exact encoder that was always going to be needed. On a four-minute clip that is three full encodes down to two.
- The license line in the sidebar was cut in half in four languages. The English wording fits the 300px sidebar; the French, Italian, Portuguese and Russian wordings do not, so the line that exists to tell you which license you are on was truncated to its first two words. The row now wraps instead of truncating, in every language.
Accessibility
- The new sheets are keyboard-complete. Focus moves into Settings, Keyboard shortcuts and Open Recent when they open, Tab is trapped inside them, Escape closes them and focus returns to whatever opened them. Each one is audited on all four points, and scanned for contrast and WCAG violations in light and dark.
- The destructive item in the right-click menu turns red under the pointer instead of tinting its text. Red text on the hover wash measured 3.62:1 in dark mode, under the 4.5:1 floor, in the one state where the pointer is on it and you are reading it before clicking.
Site update, August 30, 2026 · Buy several apps in one order
- One payment, as many apps as you need. The commercial license window on this page could sell exactly one thing: Squishr. A team that also wanted two other twoplus11 apps paid three separate times, on three separate pages, and filed three separate receipts. That window now carries an Add another app control: search the catalog, set how many computers each app goes on, and pay once. Every app still gets its own license key, and they all arrive in the same email.
- Nothing changes if Squishr is all you want. The window opens exactly as it did, at the same price, with the same count of computers, and an order for a single app takes the route through checkout it always has. The extra controls appear only once the app list has loaded, so a slow or unreachable connection leaves the page as it was.
1.1.1 · August 22, 2026 · A file that took too long is not a broken file
- Fixed: dismissing the license window could delete the license key you had already paid for. Dismiss and the Escape key ran the same call as the explicit Remove button (the one that erases the stored key), and unlike Remove it asked nothing first. If your key had just failed to validate for a passing reason (the server briefly down, no network, a seat check that timed out), closing that window destroyed your only copy of it. Dismiss now closes the window and nothing else.
- Fixed: Squishr wrote its own Dock icon into its own application bundle, which broke the app’s Apple signature. Keeping the Finder icon in step with your light/dark appearance meant editing the signed app on first launch, exactly what code-signing exists to detect, and a bundle whose seal is broken can stop the updater accepting its own updates. Squishr now repaints only the live Dock tile, and ships both appearances inside one icon file.
- Fixed: a video Squishr ran out of time reading was reported as damaged. Both a genuinely unreadable file and one that simply took too long came back as “Couldn’t read this file.”, so a perfectly good video on a sleeping external drive, a network share that dropped, or a file still coming down from iCloud read as though it were corrupt, and the retry that would have worked never looked worth making. Squishr now says which of the two happened, and what to do about it.
- Fixed: one slow moment at launch could make every compress for the rest of the session take several times longer. Squishr asks the encoder once what your Mac can do in hardware and remembers the answer; if that one question was interrupted (a busy machine, a moment of memory pressure), it remembered “nothing” and quietly used the slow software path from then on, with no message and nothing to do but relaunch. An interrupted answer is no longer kept.
- Fixed: the guard that keeps a compress from writing over a video you queued now compares files, not spellings. It matched paths as text, and one file on a Mac has many correct paths: Mac drives ignore capitals, and folders reached through an alias or a synced location arrive under a different name for the same place. A queued original spelled either of those ways looked like a different file and would not have been protected. Still nothing to reproduce today, for the same reason as last release: Squishr has no Replace control and always steps around an existing file.
- Fixed, under the hood: a quarter of Squishr’s own test suite (every check of the window itself, and the entire automated accessibility audit) would quietly excuse itself on a machine missing an optional developer tool, and the run still reported success. It now fails loudly instead, so no release can be signed off on a suite that checked nothing.
- Fixed, under the hood: nothing verified that the window’s script finishes running. A page that parses perfectly can still stop dead partway through, which would ship an app that launches, looks exactly right, and has no keyboard shortcuts and no drop target. Squishr now checks the script runs end to end before a build can go out.
1.1.0 · August 20, 2026 · Stop one clip, reveal any original, and rows you can tell apart
- New: stop one video without stopping the batch. A long encode could only be ended by Cancel, which stopped everything queued behind it as well. Every video that is waiting or compressing now has its own stop button, and Squishr says which one it stopped.
- New: show the original in Finder, from any row, in any state, including a video that failed, which is exactly when you want to go and look at the file. Squishr no longer opens an empty Finder window when the original has been moved or deleted since you added it; it says so instead.
- New: rows say which folder they came from. Dropping a folder pulls in everything inside it, so a queue could show a wall of rows all reading
clip.mp4that were different files. Each row is now labelled with its folder (just the part that differs, not the long shared path), and only when the queue actually spans more than one. VoiceOver reads the folder as part of the row. - New: AV1. A format choice that holds a watchable picture at sizes where H.264 falls apart, which is exactly what a hard 10 MB cap does to a long video. No Mac can encode AV1 in hardware, so it is much slower than the other two; Squishr says so before you start, and reminds you to check that wherever you’re posting can play it.
- New: choose the trade between speed and quality. Faster, Balanced, or Best quality, which goes straight to two-pass encoding, the most picture per byte and the slowest. Squishr always had two-pass, but only ever reached it by accident, after the fast path had already missed the target twice.
- New: time remaining. The progress bar now says how much longer the video in front of you has to go, and the whole batch alongside it. It stays quiet until the estimate is worth trusting, rather than showing a number that lurches around.
- New: type an exact trim. The filmstrip handles are quick but approximate; you can now type the in and out times (
1:04,1:04.5,1:02:03). A time that isn’t in the video is refused with a message instead of being quietly rounded to something you didn’t ask for. - New: sort the queue by name, size, length, status, or how much each video saved, in either direction.
- Changed: Compress is now ⌘↩, and ⌘↑/⌘↓ switch videos. Plain Return used to start compressing the entire queue, which was both inconsistent with the rest of the family and far too easy to hit on the way to something else.
- Changed: picking HEVC or AV1 no longer needlessly drops resolution or frame rate. The quality meter judged every format against H.264’s requirements, so choosing a more efficient one spent its advantage on nothing instead of on the picture.
- Fixed: stopping a compress at the very end left the finished file behind. Press Stop while Squishr is putting the encode into place (the end of a long job is exactly when people do), and the video landed on disk anyway, while the row went back to saying “ready” and forgot the file existed. Nothing in the app could reveal it, open it or name it, and it kept the filename, so the next attempt quietly became “clip (Discord) 2.mp4”. A stopped compress now leaves the folder exactly as it found it, and a result from an earlier run is still untouched.
- Fixed: a folder of
clip1 … clip10was queued withclip10second, and the order that walk produces is the queue, before any sort control has been touched. Any name starting with a lower-case or accented letter was pushed to the end, and subfolders came back in whatever order the disk happened to store them. A dropped folder now arrives in reading order, all the way down. - Fixed: sorting the queue by Name was not alphabetical. The header worked and the rows moved; the order was the order Unicode stores letters in, so
Éditeur.movandÜbertragung.movsorted afterZoom.mov. Names collate properly in all thirteen languages now, in both directions, and a number inside a name counts as a number. Size, Length, Status and Savings fall through to the name when they tie, so they were serving the same wrong order and are fixed with it. - Fixed: every button on a row said the same thing when the queue spanned folders. The folder was folded into the row itself, but the Stop, Show-in-Finder and Remove buttons beside it still read “Remove clip.mp4” on every row, so the three controls that actually do something were the ones a screen-reader user could not tell apart.
- Fixed: a video that failed to compress said nothing to VoiceOver. The finished-successfully message was announced; a failure only painted the card red. A row’s name never mentioned what the row was doing either, so a failed video read exactly like one waiting its turn. Names now carry the state and are rewritten on every change.
- Fixed: a toast fired from inside a confirmation dialog was painted behind it, and a toast is the only report some failures get. An error could also be silenced by the success that came after it; warnings and errors interrupt now, successes stay polite.
- Fixed: “Your video is ready” notifications never actually appeared. Squishr was posting them through an interface Apple retired, and the failure was swallowed silently.
- Fixed: Squishr now checks there is room on the disk before it starts. It writes the largest files of any app in the family, and previously only found out mid-batch.
- Fixed: the folder label read as a save destination in Japanese (it names the folder a file came from, and now says so in every language), and the twoplus11 link in the footer announced itself in English to screen readers whatever language you had chosen.
- Fixed: a guard so a future Replace switch cannot destroy a queued original. Squishr decides an output name in one place, and it now refuses any name belonging to another file in the same queue, not just the one it is working on. There is nothing to reproduce today (Squishr has no Replace control and always steps around an existing file). The reason it is going in now is that two sibling apps shipped exactly this and both lost real user data with it.
- Fixed on the website: the buttons on this site had drifted off the family palette, and the small uppercase heading on the Privacy, Terms and Changelog pages was below the contrast guidelines ask for. The keyboard “Skip to main content” link on those three pages was relying on a color they never defined.
- The company name on an activated business license was always blank. Squishr read it from a field the licensing server stopped sending. The name is there, and it now appears. Nothing about how licenses work changed; only what the window could see.
Site update, August 19, 2026 · A checksum for the download
Website only; no change to the app.
- The download page now publishes the SHA-256 of the
Squishr.dmgit serves, so you can confirm the file you got is the file we put there. macOS already runs the check that matters (Squishr is signed with an Apple Developer ID and notarized by Apple, and a copy altered after we signed it will not open), but there was no way to check a download by hand, which is what anyone installing it on more than their own Mac tends to want. The checksum is on the download section under SHA-256 checksum, next to the one command that compares it with your copy. It is published as a plain file too, atSquishr.dmg.sha256, in the formatshasum -creads.
Site update, August 17, 2026 · The other apps, after the sign-up
Website only; no change to the app.
- The list of the other twoplus11 Mac apps has moved to the bottom of the page, below the email sign-up rather than above it. It used to arrive while the page was still making its case for Squishr, so the last thing you read before being asked for your email was a wall of other apps. It sits at the end now: the page finishes on Squishr, and the list is there if you want to see what else there is.
Site update, August 14, 2026 · Headlines in one color
Website only; no change to the app.
- The headline no longer fades from one color into another across the letters. A gradient poured through text is the house style of every generated landing page on the web, and it was on the hero here, on the small uppercase label above each section, and on the license label in the purchase panel. The words are one solid color now (the accent this page already used everywhere else), so the headline finally matches the page under it.
- The figures on the download-stats page were faded the same way and are plain white now. The color belongs to the bars beside them, not to the digits.
- Gradients are kept where they belong: the buttons, the app tile and the rule above the support panel are untouched. It is only text that stopped fading.
- No change to the app.
Download update, August 12, 2026 · Opens without an internet check
- The copy of Squishr in the download now opens without needing the internet. macOS checks that an app has been approved by Apple before it runs for the first time. That approval can travel inside the app itself, and in the download it did not, so the first launch had to reach Apple to confirm it. Offline, behind a hotel or campus login page, or when Apple’s service was slow, that check could fail and macOS would report that Squishr “cannot be opened because Apple cannot check it for malicious software.” The approval now travels with the app, so the first launch works with no connection at all.
- Automatic updates were never affected: the copy they install already carried its approval.
- The installer window opens at the right size. It was one title bar too short, so the artwork behind the drag-to-Applications arrow was cut off along the bottom and the window opened already scrolled. It now fits exactly.
- The app itself is unchanged: same version, same signature. Only the download was repackaged, so there is nothing to do if you already have Squishr installed.
Site update, August 12, 2026 · How updating really works
- The update instructions were out of date. They described downloading a new copy and dragging it over the old one. Squishr updates itself: it checks about once a week and offers to install the new version in place, refusing any download that isn't signed by us. You can still replace it by hand, and you can turn the automatic check off.
- Nothing else changed. What this page already said about your files (that they are never uploaded, and that there is no account and no telemetry) was accurate and is unchanged.
- No change to the app.
Site update, August 12, 2026 · Readable buttons and small print
- The buttons in the header say what they say. The Tip and Download pills were drawing their label at 55% opacity over a colored fill, which measured as low as 1.6:1 against it, well under the 4.5:1 the accessibility guidelines ask for. Their labels are now solid, and the fill behind them is set a shade deeper so the text genuinely clears that bar.
- The Subscribe and Support buttons too. Their labels were colored for one end of a two-color gradient and disappeared into the other end. Both now use a single fill that the label is legible on all the way across.
- The newsletter note, the “More apps” caption and the version line under the download button were all set too faint to read comfortably; each is now above the AA threshold.
- Keyboard shortcut chips are legible against their own background.
- No change to the app.
Site update, August 11, 2026 · Clearer search results
- The description under this site in Google is no longer cut off. It ran past the length Google shows and broke mid-word; it now reads as a complete sentence.
- The page title was also long enough to be truncated in search results, and has been shortened to fit.
- Sharing a link to the privacy, terms or changelog page now shows a proper preview card instead of a bare URL.
- The sitemap now reports when each page actually changed, so search engines re-check pages that have been updated instead of assuming they are stale.
- No change to the app.
August 11, 2026 · A new look
- Changed: Squishr has a new app icon. Every twoplus11 app moved to one generated palette, so the color in your Dock, on this site and on the download page is now the same color. They had drifted apart.
- Changed: refreshed the site to match, including the tab icon and the link preview image.
Site update, August 10, 2026 · Real screenshots of the app
- The product page illustrated the app with a hand-drawn mock-up of a window rather than showing Squishr itself. It now shows the running app: the target picker with the quality meter reading out the predicted size, the finished result, and a short animation of switching target and compressing a clip until it fits. No change to the app.
1.0.11 · August 9, 2026 · Automatic updates
- New: Squishr updates itself. When a new version is out you get a prompt with the release notes and can install it in place, no more visiting the site and dragging a new copy over the old one. This is the last update you have to install by hand.
- New: refreshed appearance. Squishr now uses the shared twoplus11 palette and a regenerated app icon, so it matches the rest of the family.
- Fixed: contrast and keyboard-navigation problems (WCAG 2.1 AA). Faint text is now readable, and every control can be reached and used from the keyboard.
- Fixed: the Check for Updates button spins while it checks, instead of flashing an empty window.
1.0.10 · July 17, 2026 · 13 languages
- New: 13-language localization with an in-app flag picker (auto-detects your Mac's language, override anytime).
- Fixed: the trim range now actually applies to the preview player. Previously the preview always played the full source and only the exported file was trimmed.
- Fixed: a queued item's settings are now frozen when it enters the queue, so changing global settings mid-queue can't mismatch a waiting item's quality-meter display.
1.0.9 · July 16, 2026 · Appearance override fix
- Fixed: pinning the appearance to Light or Dark (instead of following the system) now restyles the whole window. Previously the translucent header and footer kept the system's appearance, leaving hard-to-read text when the override and the system disagreed.
1.0.8 · July 15, 2026 · “Tip”
- Renamed the “Donate” link to “Tip.”
1.0.7 · July 15, 2026 · Dark icon refinement
- Refined the dark-mode Dock icon: now a true near-black, monochrome-style background with just a hint of orange, instead of a deeper tint of the same color.
1.0.6 · July 15, 2026 · Icon fix
- Fixed: the app icon could show the wrong light/dark variant in Finder, Spotlight, Launchpad, and the Dock while Squishr wasn't running. It now updates everywhere immediately, not just the Dock tile of an already-open app.
1.0.5 · July 14, 2026 · Dock icon appearance & padding fix
- New: the Dock icon now follows your Mac's light/dark appearance automatically, or pin it to Light or Dark from the new appearance toggle.
- Fixed: the Dock icon rendered edge-to-edge with no padding, making it look larger than every other app in the Dock. It now follows Apple's standard icon grid, sized and spaced to match.
1.0.4 · July 13, 2026 · twoplus11 credit & support prompt
- twoplus11 wordmark credit in the footer and update panel.
- Occasional, low-pressure prompt to support twoplus11 after extended use, never more than once, easy to dismiss for good.
1.0.3 · July 12, 2026 · Signal preset & a clearer footer
- New: Signal joins the share-target presets: a true 100 MB attachment cap.
- Improved: Help and Review, split apart. The footer's Help button now goes straight to support; keyboard shortcuts moved to their own Shortcuts button, and a new Review button lets you leave feedback in one click.
1.0.2 · July 11, 2026 · Deliver anywhere
- New: Copy, then paste the file: after a squish, Copy puts the finished video on your clipboard; paste it straight into Messages, Discord, Mail, or Finder.
- New: More share targets: presets for iMessage and Telegram, plus a true 25 MB Gmail limit.
- Improved: Honest progress: the progress bar tracks the real encode front to back instead of stalling near the end.
- Fixed: the quick “fix” pills now apply only to the selected item instead of changing your defaults for everything.
- New: a Business license button in the header: one click to upgrade to, or manage, a business license.
- New: Automatic update checks: the app quietly checks about once a week and badges the update button when a newer version is available (never a pop-up; nothing is downloaded or installed automatically). Turn it off with Automatically check for updates in the update panel.
1.0.1 · July 11, 2026 · Security, privacy & accessibility
- No more accidental lock-outs: a brief licensing-server hiccup used to be able to lock a paid seat for up to a day; it now falls back to your offline grace period and re-checks automatically.
- Tighter privacy & security: your license file is stored so only your account can read it, and update links are restricted to twoplus11.com over HTTPS.
- Reduce Motion: Squishr now fully honors the system Reduce Motion setting.
1.0.0 · July 9, 2026 · Initial public release
The first release. Drop a video, tap a target, it fits, every time.
- Guaranteed fit: pick Discord (10 MB), WhatsApp (16 MB), Email (20 MB), Discord Nitro Basic (50 MB), Nitro (500 MB), or any custom size. Squishr works out the exact bitrate, encodes with Apple hardware, then checks the real file size and automatically re-encodes smaller if needed, falling back to two-pass precision encoding. The file always lands under the limit
- Honest quality meter: before you wait for an encode, a meter shows how the video will look at that size: Great, Decent, Rough, or Won't look good, with one-tap fixes (drop to 720p, cap 30 fps, smaller audio, drop audio, trim it shorter)
- Trim: drag handles on a filmstrip to keep just the moment. A shorter clip means dramatically better quality at the same target; the meter and estimate update live. Fully keyboard-driven and VoiceOver-accessible
- Batch: drop any number of videos (or a whole folder) and compress them all to one target, two at a time, with per-file progress
- The hard files work: rotated iPhone portrait video stays portrait, HDR is tone-mapped so colors don't wash out, 120 fps screen recordings get capped when the budget is tight, 5.1 surround is downmixed, GIFs become tiny MP4s, and variable-frame-rate captures keep their timing
- Non-destructive by design: originals are never modified; every compress writes a new file ("clip (Discord).mp4") next to the original or into a folder you choose, and existing files are never overwritten
- Private by design: everything runs on your Mac. Nothing is uploaded, no account, no usage analytics
- Signed and notarized by Apple: macOS 14+, Apple Silicon & Intel
- Free for personal use forever: unlimited files, no account, no trial, no watermarks; commercial use requires a one-time $5-per-computer business license