Release notes
Changelog
1.5.1 · September 3, 2026 · A copy no longer crashes partway through
- Fixed: Copyr could crash mid-copy, with no warning and no report. The window’s own colors are redrawn continuously while a job runs, and that redraw can happen off the main thread. One of the calls that resolves those colors only tolerated the main thread, and the moment it ran anywhere else the app stopped instantly — reported by someone who hit it twice in one minute on a first run, no data lost. That call now tolerates being made from any thread, which is what drawing already required of it.
- Fixed: a second delivery into the same archive folder could erase the first delivery’s checksums. Copying two shoots into one drive wrote
checksums.sha256both times, and the second write replaced the first outright, silently. Each delivery now writes its own file, named after what it copied, so a later copy into the same folder can never reach an earlier one’s manifest. “Write Checksums for This Folder…” is unchanged: it still covers everything in the folder under the one shared name. - Fixed: a checksums file Copyr couldn’t read back was silently replaced rather than left alone. A permission a network share denied, or a mount that dropped mid-read, was treated the same as no file being there at all, so a smaller manifest overwrote one that could have covered far more. Copyr now refuses to write in that situation and says so, the same way a cancelled copy already writes nothing rather than something incomplete.
- Fixed: “Copy with Copyr” could stall before any window opened, if the Finder selection included anything on a sleeping external drive or an unmounted network share. The first check on that path could block on a disk that has to spin up or a share that has to reconnect, invisibly, since nothing is on screen yet to show the app is doing anything. That check no longer touches the disk.
1.5.0 · September 2, 2026 · Keep the checksums the copy already made
- New: checksums are something you ask for before the copy, not after it. Writing a
checksums.sha256beside a finished copy was real, but it lived on a right-click and a menu item you could only reach once the copy was over. It is now a switch in the copy sheet, next to Verify every file, called Save a checksums.sha256 file. - New: with verification on, it costs nothing. A verified copy already reads every byte through SHA-256 and used to throw the answer away the instant it had compared it. Now it keeps it. The report shows the two numbers, digests reused against files read back, so the claim is checkable rather than just stated.
- New: with verification off, it still costs no extra reading. The hashing rides on the buffer the copy is already holding, so it is processing time and not one more byte off either disk. The only files read back afterwards are the ones that landed without ever being read: an instant same-volume clone, a rename, a recreated hard link, or the part of a job a previous run finished before a drive was unplugged. The copy sheet says so before you start, because a transfer that finishes in four minutes and then hashes for two hours is not an instant transfer.
- New: the manifest says what it does not cover. A copy into an archive folder that already holds other deliveries covers what it put there and writes the number it is leaving out into the file’s own comment header, so a clean
shasum -a 256 -ccan never quietly mean less than you think. A second copy into the same folder adds to the manifest rather than replacing it, and a cancelled copy writes nothing at all. - Fixed: a stopped copy could leave a resume record that skipped the file it was copying. Stopping a job throws the job away, and normally that is the end of it. But the moment a file was abandoned, the job still wrote down that the file was finished. If Copyr then died before discarding that record, a crash, a force quit, or the power going, the job came back offering to resume, started past the abandoned file, and reported a clean copy with that file simply not there.
- Fixed: a copy picked back up after a restart could splice two versions of a file together. The check for whether the source had changed while Copyr was away compared the saved plan against itself, which can never differ, so it had never once fired. The source is re-read from the disk at the moment the copy resumes now, and a file that has moved on is started over.
- Fixed: a drive pulled out from under a copy is waited for, whichever end it was. Copyr always parked and waited when the destination went away. When the source went away it did the opposite: every remaining file failed at once, so a card pulled part-way through a large offload produced thousands of failures in seconds and called itself finished.
- Fixed: stopping a copy asks first. Stop used to throw the job away from one click on a small icon, with no undo and no warning.
- Fixed: the seat name is no longer this Mac’s own name. Activating a Business License sent your Mac’s name when you had left the Name this computer box empty. It now sends only what you typed, and nothing at all if you typed nothing. Copyr’s privacy page is updated to match.
- Accessibility: the progress bar is readable in light mode, and Reduce Motion switches its animation off rather than slowing it down.
1.4.1 · September 2, 2026 · The report opens again
- Fixed: opening a job’s report crashed Copyr. Clicking the report button on a finished row quit the app on the spot, with no window and no warning.
⌘Iand the Job menu’s Show Report did the same. The sheet asked for the app’s model in a way nothing ever answered, and a missing answer there is a hard stop rather than an empty value, so the crash came before anything was drawn. The sheet is handed the model directly now, which the compiler checks. The report has been unreachable since 1.3.0, and with it the two things that live only inside it: Copy Report and Save Failures as CSV. Retry Failed Items and Write Checksums were reachable from the Job menu all along.
Site update, August 31, 2026 · One name for the $5 license
- The $5 license is called a Business License everywhere now. Eleven app pages called it a “Commercial License” and fourteen called it a “Business License”, for the identical thing at the identical price. Copyr’s pricing section, its checkout window, and its terms and privacy pages now all say Business License.
- Nothing about the license itself changed. Same $5, same one-time payment, same cover for one computer. A key you already hold still works, and there is nothing you need to do.
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: Copyr. 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 Copyr 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.4.0 — August 22, 2026 · The Dock knows what the copy is doing
- New: the Dock icon says how far along the copy is. Copyr is one window, and a copy that takes an hour is a copy that spends most of that hour behind something else — so the number you actually want was the one number you had to raise a window to see. The icon carries the percentage while a job runs. With nothing running it carries something Copyr had never said outside its own window: how many files finished a job by already existing at the destination and are still waiting on you. The two are never confusable, because only one has a percent sign — placed the way your language places it, which is before the number in Turkish.
- New: the Dock icon has a menu. Right-click it, or press and hold, and the running job can be paused, resumed or stopped, and files chosen to copy, without bringing the window forward at all. The line at the top is the same status Copyr shows along the bottom of its window, and the menu reads in the language you picked — which a menu outside the window does not get for free.
- New: a copy that lands while you are in another app bounces the Dock icon once. Only once, only when Copyr isn’t the app in front, and not at all when Reduce Motion is switched on — where the badge and the spoken announcement carry the same news without moving anything.
- New: right-clicking a row now does something. Every action a row supports — pause, resume, stop, start this one next, decide, show the report, reveal the destination, retry what failed, write checksums, remove — is on the row itself, under the gesture people make without thinking. Acting from the menu also moves the selection onto that row, so the highlight and every
⌘-shortcut in the Job menu agree with what you just did. - Fixed: “Retry Failed Items” could not be reached. It has been in the Job menu and the report sheet since 1.2.0, and it was greyed out — or absent entirely — for every job it exists for. A retry is built from the plan the first pass ran from, and that plan was thrown away the moment a job finished unless the job also happened to have names already taken at the destination. So a card that finished with seventeen unreadable files and no name collisions, which is the ordinary shape of the problem retry was written for, offered no way to try them again. The plan is now kept for exactly as long as something on the row can still be built from it.
- Fixed: a crash on the default collision path, in six of thirteen languages. The sentence spoken when a job ends with two or more names already taken puts the folder before the count in Japanese, Korean, Polish, Russian, Turkish and Simplified Chinese — correctly, for those languages. Without numbered placeholders that hands a number to a slot expecting text, which is a hard crash rather than a wrong sentence, on the path the default “Ask me afterwards” setting takes over any ordinary folder.
- Fixed: three sentences with a count in them were English in twelve languages — translated all along, under keys nothing ever looked up. A phrase with a number in it is one entry in the translation tables, and the entry’s name has to match the number’s type; Copyr wrote counts one way and the tables had been written the other. The three: the Decide button on a row waiting on more than one already-taken name, “Do this for the other 4” — the toggle that clears the rest of a review in one click — and the “2 of 5” counter above it. Two of the three are on the sheet the default “ask me afterwards” setting funnels everyone into. Every count-based check passed the entire time: thirteen tables, identical key sets, coverage reading 100%.
- Fixed: choosing a file that isn’t a checksums file did nothing at all — no sheet, no message, no sound. It says so now. And a Save Failures as CSV that failed said nothing either, in the one button whose whole job is getting the list of what went wrong out of Copyr.
1.3.0 — August 20, 2026 · Drive the queue from the keyboard
- New: the queue can be driven from the keyboard. Six items in the Job menu act on “the selected job” — pause, stop, show the report, reveal, retry, write checksums — and the only thing that could change which job that was, was clicking a row. With three copies on screen, every one of those shortcuts went to whichever card the pointer last touched.
⌥⌘↓and⌥⌘↑walk the queue now, wrapping at both ends, and each move is spoken aloud. - New: a queued copy can be pushed to the front of the line. Copyr runs one job at a time, in the order things were dropped, and that order could not be changed — a 400 GB card queued first meant an urgent 12 MB folder waited behind it. Queued rows carry a start this one next button, and
⇧⌘]does the same from the keyboard. Neither disturbs the copy already running. - New: an interrupted copy comes back as a row you can start again. A job that didn’t finish had one route back into the app — a window that appeared once, at launch. Press Escape or never see it, and hours of transfer appeared to have evaporated. Unfinished jobs are now restored as rows in the queue, each showing how far it really got (including the part of the file that was in flight) and carrying its own Resume button. Quitting mid-transfer parks the copy and writes down exactly where it stopped, so it picks up at the byte you watched it reach.
- New: a checksum run can be stopped. Writing or checking a manifest put up a spinner with no button and no Escape, and hashing an archive drive takes hours — so a check started on the wrong folder could only be ended by force-quitting Copyr, which killed any copy running behind it. There is a Stop button now. Stopping a check keeps what it found and says plainly which files it reached; stopping a write saves nothing, because a partial checksums file would quietly pass its own verification years later.
- New: checksums you can still check in five years. Write Checksums… on any finished job hashes everything at the destination into a
checksums.sha256beside it, in the standardshasumformat —shasum -a 256 -creads it, so an archive checked in five years doesn’t need this app to still exist. Check a Folder Against Its Checksums… goes the other way and reports what still matches, what changed, what is missing, what couldn’t be read, and what is on disk but not listed. - New: Retry Failed Items in the report queues a fresh job containing only what didn’t land. Most failures are a drive that was asleep or a file that was open, and both are fixed by trying again a minute later. It never retries as a move — the originals of anything that didn’t arrive are still the only copy.
- New: Replace if larger, a sixth answer for a name that is already taken. Replace if newer gets one case badly wrong: a re-export or an interrupted earlier copy leaves a truncated file at the destination whose timestamp is newer than the complete original, and newest-wins keeps the broken one.
- New: the destination sheet remembers where copies go. The last six destinations sit as chips under the destination card — one click, no navigating. A folder is remembered when a job actually starts, two folders with the same name carry their parent, and a folder on a drive that isn’t connected is grayed out and can’t be chosen. The list never leaves your Mac, and Clear forgets it.
- Fixed: “Clear Finished” no longer throws away files that were still waiting on you. A job that finishes with names already taken keeps those files in its report and asks about them.
⇧⌘⌫swept those rows along with everything else — silently answering “leave them alone” for every one of those files, with no undo, while the status line was still saying they were waiting. Rows that are still asking something now stay, and a line says which ones were kept and why. - New: read Copyr in your own language. Copyr shipped thirteen translations and no way to reach them — a Mac set to English could not read the app in Spanish even though the Spanish was sitting in the bundle. Settings now has a language picker, and the window switches immediately with no relaunch.
- Fixed: the thirteen languages now reach the rest of the window. Text written straight into the interface translated; everything else did not — the status pill on every row, every tooltip and VoiceOver label, the statistics grid in the report, the “if a file is already there” choices and their explanations, the Keyboard Shortcuts sheet, the seventeen preflight findings, the confirmation shown before a move deletes your originals, the alert that stands between
⌘Qand a running copy, and the Open and Save panels. All of it is translated now, in all thirteen languages. - Fixed: every number and date in the window follows the language you picked, not whatever your Mac is set to — sizes, transfer rates, file counts and timestamps, with the unit translated too, so French reads “1,4 Go” and Russian “1,4 ГБ”. The saved report, the CSV export and the checksums manifest deliberately keep their own spelling: those are read years later by other programs, where a decimal comma is a parsing bug rather than a translation.
- Fixed: VoiceOver read the Keyboard Shortcuts sheet as punctuation. A speech synthesiser does not say “Command O” for
⌘O— it says “place of interest sign O”. On the one panel whose whole purpose is teaching the keyboard, a screen-reader user could not learn a single shortcut. Chords are spoken as words now, in the language you picked. - Fixed: Escape closes the Keyboard Shortcuts sheet and the resume offer. On the resume offer, Escape means ask me later and never discard — the resume records stay on disk.
- Corrected on this site: this app’s own pages still said Copyr could not move files. The safety section, the download panel and the privacy policy all claimed “version 1.0 has no move operation at all”; move has been a per-job choice since 1.1.0. The terms page described a different app entirely.
- Copyr sold business licenses and had nowhere to type one. The key button in the footer opened the checkout page and did nothing else, so anyone who had already paid was shown the shop again. The purchase email has always said “open Copyr, choose License…, paste the key, click Activate” — none of those three things existed. The footer’s key now opens a License panel: paste the key, name the computer so it is recognizable in your seat list, and click Activate. Nothing about Copyr is locked behind it — personal use is free, forever, and every feature works without a key; entering one registers this Mac against the license you bought.
- Removing a license hands the seat back. “Remove License…” tells the server to release this computer’s activation before it forgets the key locally, so the seat is immediately free for another Mac — which is what the purchase email means by “move a seat between machines any time”. The name you gave this computer is kept, so re-entering a key later does not add a second entry for the same machine to your seat list.
- The License panel keeps working offline: an activation is re-checked once a day, and if the license server cannot be reached the license stands for 72 hours before Copyr quietly falls back to the free tier and says the server is unreachable. It never calls a key invalid on evidence it does not have. A key that was rejected is always re-checked rather than cached, so freeing a seat or renewing takes effect the moment you look, instead of up to a day later.
- The panel reads in all thirteen languages Copyr ships, and is keyboard- and VoiceOver-operable: Escape closes it, Return activates, and the reason a key was refused is announced rather than only drawn.
- The footer has its Updates button back. The shared twoplus11 footer is meant to read License → Updates → Help → Review → Tip in every app in the fleet, and Copyr’s was missing Updates entirely — so the only way to check for a new version by hand was the menu bar.
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
Copyr.dmgit serves, so you can confirm the file you got is the file we put there. macOS already runs the check that matters — Copyr 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, atCopyr.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 Copyr, 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 Copyr, 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.
- 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.
Site update — August 13, 2026 · The logo, matched to the app
- The Copyr tile beside the name now matches the icon in your Dock — the same deep indigo running into the same blue, in the same direction. It had been a flatter, lighter pair that was close enough to pass and never actually matched.
- The arrow drawn on that tile was a third blue again. It is the icon's now, on the page and in the small icon your browser shows in its tab.
- The preview image shown when a link to this page is shared uses those same colors.
- 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.
- The screenshot viewer no longer makes every visit quietly re-download this page as if it were an image — a wasted request on each load.
- No change to the app.
Site update — August 12, 2026 · The twoplus11 logo, back to its own color
- The twoplus11 wordmark in the top-left corner is the studio’s blue again. It had been recolored to match Copyr’s accent color, which made the same logo look like a different one on every app’s site. It now matches twoplus11.com and the rest of the apps.
- 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.
- 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: Copyr 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.
1.2.0 — August 10, 2026 · “Copy with Copyr” works
- Fixed: the “Copy with Copyr” right-click item in Finder had never worked — not in 1.0.0, not in 1.1.0. It produced an alert reading The application “Copyr” does not have permission to open … and nothing else, wherever the files were. It now opens Copyr with your selection loaded.
- The first time you use it on your Desktop, Documents or Downloads, macOS asks whether Copyr may read that folder — the normal one-time permission prompt, now with an explanation of why it's being asked.
- Fixed: Escape closes the conflict, destination and report sheets again. On macOS that's the contract every dialog keeps, and it's the only exit a keyboard-only user has when Full Keyboard Access is off.
- Fixed: the disk image no longer opens pre-scrolled with the bottom of the window cut off, and its two hidden support files can no longer push the layout around if you browse with invisible files shown.
- Corrected on this site: Copyr's own page said it couldn't move files. It has been able to since 1.1.0 — the FAQ, the feature list and a “copy only, no move” badge were all left behind by that release. The download panel also still read “Version 1.0.0”.
- Added screenshots to this page — it had never shown the app. The job sheet you get before a copy starts, and the queue with finished jobs.
1.1.0 — August 9, 2026 · Unattended copies finish
- New: a copy left running unattended comes back finished. “Ask me” used to stop the transfer at the first name clash and wait for a click — left overnight, a job could sit on one duplicate until morning. Now the file is left completely untouched, the question is recorded, and the job carries straight on.
- “Ask me” is now “Ask me afterwards.” The questions arrive as a sheet when the transfer has finished, with “Do this for the other N” to clear the rest in one click. Closing the sheet is a real answer — “leave them” — and loses nothing; the row keeps a ? button that reopens it later.
- Answering queues a small follow-up job over just those files, so settling one question never re-copies a finished job. On a move, a file left for a decision keeps its original and its source folder — nothing is deleted on the strength of an unanswered question.
- New: verification over a network is priced honestly. Verifying reads every byte back, so on a share every byte crosses the network twice. Copying to a network volume now warns that this is usually the setting to turn off; moving to one says the opposite and keeps it on, because your originals are deleted on the strength of those writes.
- New: an Already there section in the report lists each skipped file with both sizes, included when you save the failures as CSV, and a running job shows “n already there” alongside its skips and failures.
1.0.0 — August 6, 2026 · Initial public release
First release. The file-copy engine Finder should have — it doesn't abort a three-hour copy because of one bad file.
- One bad file no longer ends the job — an unreadable file is recorded with its reason and errno, and the rest of the copy carries on.
- Pause and resume any job, mid-file. Pausing flushes to disk first, so a paused job is always a safe moment to unplug.
- Unplug-safe — if a drive disappears mid-copy the job waits for it instead of failing. Reconnect and it continues from the last durable checkpoint; at most 64 MB is ever re-copied.
- Resume after quitting — close Copyr with a copy in flight and it offers to pick the job back up next time. Files that already made it across aren't copied again.
- Nothing half-written wears a real name — content goes to
<name>.copyr-partand is renamed into place only once complete and verified. - Optional SHA-256 verification — reads every file back and compares checksums. Off by default, since it roughly halves throughput.
- Instant same-volume copies via
clonefile(2)— immediate, and no extra disk space. Automatically skipped when verification is on. - Keeps everything — permissions, ACLs, timestamps, extended attributes and Finder tags; symlinks stay symlinks; hard links are recreated rather than duplicated.
- Honest preflight — free space, iCloud placeholders that would have to be downloaded first, anything already unreadable, and network or removable destinations.
- Collision handling — ask, skip, replace, replace if newer, or keep both. Ask is the default, and answering once can apply to the whole job.
- Live speed graph of the last minute, plus an ETA that stays quiet until it has enough signal to be worth trusting. A stalled copy visibly falls to zero instead of holding its last good number.
- End-of-job report — everything copied, skipped or failed, each with a reason. Copy as text, or save just the failures as CSV.
- Four ways in — drop on the window,
⌘O, Copy with Copyr in Finder's right-click menu, and a Services entry that works without enabling anything and can take a keyboard shortcut. - Full keyboard control, VoiceOver labels and announcements, and a palette checked against WCAG 2.1 AA in light, dark, and both Increase Contrast variants.
- Native SwiftUI. Signed and notarized by Apple — macOS 14+, Apple Silicon & Intel.
- Free for personal use forever, including updates; optional one-time $5-per-device commercial license for commercial use.
Known scope for 1.0: local, USB and Thunderbolt volumes are the supported cases. Network volumes work, but speed and resume are best-effort and labelled as such in the app. Copyr copies; it does not move — moving means deleting your originals, and that deserves its own design rather than a checkbox.