Repository navigation
Releases
Cmdr v0.61.0
More fixes than new things this time. The most interesting new things:
- Copying thousands of small files onto a local disk got many times faster. It's always a compromise between speed and
data safety, but the old balance was way too conservative. Transfers are now a lot faster, and Cmdr still makes sure
every file is safely on the drive before it reports "done". - The Operation log got a lot more useful: if you did something silly, you can now properly review and roll back your
copy, move, or trash operation, in whole or in part. Even days later. - If a volume suddenly becomes unavailable mid-transfer (typically a NAS reboot or a router restart), the file now
carries on from where it was once the share is back: this applies to downloads from SMB, SFTP, NFS, S3, and WebDAV,
and to uploads to SMB.
Plus ~50 smaller fixes and improvements.
Added
- Roll back only the items you check: the Operation log is now a list of operations beside a checkbox tree of each one's
items, with "Roll back selected", "Roll back the rest", and a key for every action (8583f7b, dbfcef1, 1f39a2b,
1a243a0, e318e6e, 329e2a2, 64e2f6a, 4a5b1bc, c0db102, 360ba5e, f02e6ef, c952d56) - Carry a file on from where it stopped after a long outage instead of starting it over, for downloads from SMB, SFTP,
NFS, S3, and WebDAV, and for uploads to SMB (1e7b712, 91a0622, b354704, a901fb2, 558ee26, 09667a9,
7a36d86, 412d46b, 9dd2a7d, dc4e591) - Drop an image from Chrome, Safari, or Mail into Cmdr to copy it (83e1a83, 3eb8cb5)
- Copy from cameras and other USB devices that can't read a file in parts (a2d474e)
- Load more results as you scroll in Search and Selection lists, up to 10,000 (1459e8b)
- Say how many hidden items an empty-looking folder holds, and how to show them (70ec66b, c0aa42b, 21ad6c8,
00ec5d1, dc74d7f) - Go back and forward with ⌥← and ⌥→ (1df7208)
- Jump to the first and last row with ← and → in a search results pane (3ec3190)
- Give Linux its own keyboard: Total Commander-style default keys, Linux key names everywhere, a real Quit, F11 full
screen, working AltGr and text-editing keys, and a warning for keys your desktop takes (1df7208, 2988adb,
0b4f684, 3d0df12, e4b7a46, 47351fb, 3fd18a7, 4a8cdf3, 4dac271, 3e4869f, df7327d, 325957c,
130f152, e58bbff, 60975d7, 1a717c3, feb2c26, 6392a4a, 52b964b)
Changed
- Copy and move thousands of small files onto a local disk many times faster (792e05f, 112cdd9, 83fcab2,
c2604b4) - Keep the viewer and running copies going through a dropped SMB connection, and reload a viewed file that changed
meanwhile (9dd2a7d, 16bce5d) - Let a key you bound yourself win over a default, and show only keys that really run their command (48063e2,
d07a89b) - Show every shortcut in a message as a key cap with your own key, or name the command if it has none (92f22a8,
4873d16, d2751f9, ce125e7, 2bdcb08, 5a6b808) - Show shortcut modifiers in the menu bar's order, like ⇧⌘P (09e2f4f)
- Move the search dialog's recent searches from ⌘H to ⌘Y, and list the search and viewer keys in Settings (4a8cdf3)
- Slide Settings, the viewer, and other secondary windows in and out (bdb7efa)
- Select the cursor row too on the first ⌘-click, like Finder (3a90c8d)
- Say each refused folder list in one line under a search, and offer Full Disk Access only where it helps (ff2b577,
46b725f, 01fe8cf) - Say a file is open somewhere else when a share or the viewer can't read it (242167b, d010745, e92e40f,
a4c65bf) - Explain a refused trash when another account owns the items or the drive's trash won't take them (8c42c20,
38649d6) - Keep browsing a phone responsive during a copy, on any cable (6d3b1ec)
- Mark an operation a crash cut off as "Didn't finish", rollbackable as far as its record proves (d5514dd, 95a8dfb,
a20e811) - Word everything the Linux way on Linux (file manager, keyring, Unmount, this computer), and hide Mac-only features
there (2445e47, 7d48eec, e6af3cf, 413a622, a459057, 36bb663, 2253c87, 4b81eb5, 69c2555, 52f1209,
3f6390e, 0f042d9, 838f65a, b95f6ae, 218e8d9, 42c1fbe) - Stop runaway indexing memory on Linux too (94ee5c9)
- Graduate nine features to stable and eight to beta, SMB shares and Android phones among them (16b5f4e)
- Include about 20 behavior settings in error reports, with no paths or names (2fbf98c)
- Count six more features and the install channel (Homebrew or direct) in the anonymous usage stats (75fe042,
bac18f7)
Fixed
- Fix a move between drives deleting the originals after the destination drive was unplugged (796c2ee)
- Fix ⌘⌫, F8, ⌥⌘V, and other file-moving keys acting on your files while you type in a text field, like the path bar or
a rename (e434a2b, 40e9000) - Fix ⌘↑ in a text field going to the parent folder instead of the start of the text (9a615eb)
- Fix letter shortcuts going dead on Russian, Greek, Hebrew, and other non-Latin keyboard layouts (c400731, e8e50f8)
- Fix a second Cmdr icon in the Dock after Restart on an update (37d1459)
- Fix "Show in Finder" from Firefox, Chrome, and App Store apps only bringing Cmdr forward (5f6e571)
- Fix a copy's time left jumping to hours on a run of tiny files or behind a big one (99967db, fa2a918)
- Fix a failed copy from a Dropbox-style folder blaming a disconnected drive (6e00aed)
- Fix deleting something already gone from a share ending in an error (63fd1da)
- Fix the queue showing a finished operation as still running (f721d6c)
- Fix a crash mid-rollback making a partly rolled-back operation look untouched (876e196, df455f8)
- Fix an old rollback reappearing in the Operation log as something to roll back (51a44d9)
- Fix two rollbacks of one operation running at once (0694533)
- Fix the Search dialog closing when a file showed up twice in the index (2b8aaa6)
- Fix "Show all in main window" opening only 30 results under a toast that never ended (e683db8)
- Fix heavy download activity stalling listings and SMB transfers (13bb6fd, 2d15588)
- Fix the drive index failing and rebuilding on a nearly full disk (a9074a0, e85b92d)
- Fix the downloads hotkey landing on a download you had renamed or moved (8ade044)
- Fix a drive holding only hidden items claiming macOS may be hiding its files (893dc78)
- Fix ⇧⌥← right after F2 doing nothing, and the third F2 not letting the extension grow into the name (4ae45b3,
367b33e) - Fix Brief view's rename field stopping short of the column's edge (04253c4, 367b33e)
- Fix text selections in fields being nearly invisible with some accent colors (8085c04)
- Fix Copy no longer firing from the menu after rebinding it away from F5 and back (0c1c918)
- Fix the "Reset all keyboard shortcuts" confirmation showing in English with an OK button (52d5f76)
- Fix a revoked or broken server certificate being met with "add it in Keychain Access" (a07ee59)
- Fix a file name with a comma showing up unredacted in an error report after a failed move (999d82f)
- Fix expected refusals, like a full disk or a file in use, sending automatic error reports (7d9e63b, 242167b)
- Fix rare Android errors reading as a dropped connection (4cbe291)
- Fix sizes and search drifting on Linux after a burst of file changes (5cc24bb)
- Fix Cmdr on Linux not finding adb in Android Studio's default SDK folder (b842921)
- Fix an empty gap before the viewer's title on Linux (174195f)
Security
- Stop AI tools from reading more mail, browser, and password manager data (Thunderbird, Outlook, Vivaldi, Opera,
Bitwarden, 1Password, and Linux mail clients): CVSS v4.0 5.9 (medium), Cmdr 0.42.0–0.60.0 (99c7777)
Non-app
- Lay the groundwork for the Windows port: every OS difference sits behind a typed seam, copy and default keys vary per
OS, and a Windows CI lane reports what still breaks (0076c10, 757dcbf, 092ad6a, 2445e47, 7d71298, e9d234c,
0d36249, a5916d2) - Move the repo, the backlog board, and the reports repo under the
getcmdrorg (2cb1689, c67c95c) - Turn the website's features page into a tour led by product clips, and say how to pronounce "Cmdr" on the home page
(ee27643, 352a02a, 07f4e11) - Run the unattended agents as a restricted user, with David's approval required when they touch deploys, deps, or
release code (20b54bd, 74c6560, 10a4e9f, 738ae8a) - Give translators tools to write, look up, and check a batch, with no hand-edited catalogs (1f17929, fbc06c4,
a3ebb50) - Show the acquisition funnel by country and channel in the analytics dashboard (daab3ec, dab6c43, cc90658)
Cmdr v0.60.0
About 40 fixes and improvements, lots of them for search and the file viewer. And a lot of code refactors in the
background that you shouldn't notice.
Fun: You can now try Cmdr in your browser, nothing to install: getcmdr.com/demo 😄
Added
- Encrypt SMB connections (AES-128 and AES-256), with "Always require SMB encryption" in Settings and an MDM key to
enforce it (f57c4c0, 08098b8, 455a483, 94cec13, df32ae1, 7b71887, 2227718, 547e5ec, fad5ee1,
b8df115, 1015357) - Pause indexing while your disk is nearly full (threshold in Settings > Advanced, default 5%), with a red badge and a
warning on folder sizes (d889b3b, dc6d87c, ec6cd0d, af913d4, 3ee98a0, 7a1bfad, 240371f) - Offer Retry when a copy stops for lack of space, in the dialog and the operation queue (8fc51c0)
- Show how many tokens the AI provider's cache served in Ask Cmdr's cost meter (43bcdfc, 76442a7, ca2a45e)
- Choose whether to skip Mac-only hidden files (
.DS_Store,._*) when copying, moving, or compressing, with a default
in Settings (20428a9, 3643589, 0f41334, 206363b)
Changed
- Refuse to delete, trash, move, or rename your home folder or a folder holding it (f2b2e7b, 9113621, 6fbcbb4,
f44b6ac, 7997531) - Retry a busy AI provider up to four times, and say it's busy while waiting (0cb3c74)
- Let Ask Cmdr plan renames in any folder on any connected volume, and name every row it can't rename (2704718,
90e7de7) - Reconnect silently to a NAS that dropped an idle connection, with no reconnect bar (429f80f)
- Tell you when an SMB server's sign-in reply fails its signature check on a direct connection (342e138, 8563070,
0070930, e0d69ac) - Delete a file's
._resource-fork twin along with it on QNAP shares (88ebd75) - Land on
/instead of your home folder when the top-level folder you're in gets deleted (00f6ead) - Reword dozens of messages so every language can translate them naturally (e30eaa9, dcf7f05, 96a6f48, ead283d)
Fixed
- Fix a blank window on macOS Catalina, and broken layouts there in the Servers view, Acknowledgements, and conflict
dialogs (2854af6, 67d0d82) - Fix SMB 3.1.1 servers that sign only with HMAC-SHA256 not connecting (f57c4c0)
- Fix a long change replay filling a nearly full disk, and a quit mid-replay skipping changes (61e39cf, e81d028)
- Fix a running Cmdr refusing other apps' ejects of drives it had no work on (7adefae)
- Fix search finding nothing in accented folders on a NAS (9d53333, ea00290)
- Fix search on a Mac missing names written in the other Unicode form, like an NFC
café(4542247, 871ef5c) - Fix AI search dates, date chips, and MCP dates using UTC days instead of yours (2c91be4, 59e416c, 1074e62,
3ffe6ae) - Fix a search exclusion Cmdr couldn't use being silently ignored (4610349, e622c6e)
- Fix search answering "no matches" or "invalid pattern" when it couldn't read the drive index (4d5256e, 42ca0b0,
b85acd0, bdfceb7) - Fix search showing a mangled
~path for folders whose name starts like your home folder's (1668dd1) - Fix the viewer showing an extra empty line at the end of files ending in a newline (d9f6083)
- Fix a viewer regex ending in
$skipping every line of a Windows (CRLF) file (fd1d829) - Fix ⌘C copying nothing after a drag between wrapped lines in the viewer (5c8f387)
- Fix undoing a rename on SMB, SFTP, or a phone skipping it instead of restoring the old name (4116198)
- Fix a canceled copy's log row claiming it copied everything it planned (ae93506, 3bf4c63)
- Fix a double-click in Brief view opening a folder twice (0fdc4a0)
- Fix a drop onto a pane showing your home folder suggesting Copy instead of Move on the same disk (7c87c32)
- Fix file names shrinking to nothing in a narrow Full view pane: Date, then Ext, now make room (0721a10, c06bfa0)
- Fix a nearly empty drive reading "100% free" (b077b32)
- Fix About, Settings, and Zoom menu items looking clickable while a dialog blocks them (8fa2e53)
- Fix dialogs scrolling sideways with a mouse connected (2935968)
- Fix a toast covering the progress chip in the title bar (cb4deed)
- Fix new users seeing "We've added new onboarding options" on their second launch (75f7811)
- Fix the first requests on a busy Mac sometimes skipping your proxy (bc7904b)
- Fix expected refusals, like a delete denied in a system folder, sending automatic error reports (72d2a18)
- Fix image indexing on Linux filling search with made-up text, and clean up what it left (8e23f2a, 4ebd6c1)
- Fix Linux license checks not telling your machines apart (dbfd5c8)
- Fix a network folder you can't read jumping to its parent folder instead of saying access is denied (6103957,
90455b0) - Fix Local Network access stopping after each update until you switched Cmdr off and on in System Settings (e2ddb8c,
c8d4b07) - Fix opening a file in Cmdr from another app sometimes doing nothing, with no word of why (5c8cfbd, a11ecd4)
Non-app
- Launch a live demo at getcmdr.com/demo that runs Cmdr's real engine in the browser, also in the home page hero
(788892b, 074cc4e, fcf0979, 87f132c, 24df93c, 20c1293, 43b5e49, aa33dbc, e56ac13, b4791a7) - Move the viewer, search, menu bar, Multi-Rename, and recents into their own Tauri-free crates (3ad0b11, 229cb27,
3c0e73c, 87b7132, 48f9362) - Serve downloads and updates from an EU mirror, keep telemetry and error reports in Cloudflare's EU jurisdiction, and
send license emails through an EU provider (a4054e4, 843d7cf, c6ff7b0, eb206a9) - Run CI per lane, so a push tests only what it touches, with the macOS lane on David's M1 when it's free (f3ed2d0,
b3ebbc0, 58f8fa6, a5dc9cf, 5eec7de) - Fail the build on JavaScript, CSS, or regex that Catalina's Safari 15 can't run (fac66a3, ad58cbc, 5a29519,
ec410f0)
Cmdr v0.59.0
My highlights this time:
- A full revamp for the built-in agent's tooling. The agent has a lot better tools now to help you. OMG it's so much
nicer, you need to try it! AI chats also got real, usable search! (alpha version) - Czech language added (Huge thanks to Jiri Slovacek for the high-quality contribution!)
- Copies to/from SMB shares keep Finder tags, comments, and custom icons.
And 30+ bug fixes and ~15 improvements for memory use, speed, security, correctness, etc.
Added
- Add Czech: the whole app and its native menus, reviewed by a native speaker (2988e10, 1e28b01, 172395b,
42c14fb, 3042ecb, f62199d) - Add "Open in Cmdr" to the top of Finder's right-click menu, with an opt-in Finder extension (deff440, b80c9f6,
9657016, 2d1bf89, 8333306) - Keep Finder tags, comments, custom icons, and resource forks on copies to and from SMB shares (0152be2, 1bd809e)
- Roll back Finder color-tag changes from the operation log, whoever made them (6b722a2, 2a71f25)
- Browse and copy out of zip files inside restic snapshots (8fcb2d3)
- Let Ask Cmdr read Cmdr's own state, settings, and logs, with secrets masked (de36956)
- Find text in the open Ask Cmdr chat with ⌘F (7282980)
- Search past Ask Cmdr chats by relevance, with what matched, each chat's age, and a real title (0b89894)
- Bring back any dismissed hint in Settings > Advanced > Hints and warnings (914c837)
Changed
- Make anything sensitive an AI asks for wait for your yes: opening files, changing settings, ejecting, rolling back,
and clearing a Locked flag (3a28fc9, 5f3f715, 40e259c, b98f623, 239a7bd, 4b55871, 3ea9e7f, 9ed06ac) - Show both the friendly name and the raw value when Ask Cmdr asks to change a setting (004e9c6, 31c63a8)
- Cut Ask Cmdr's prompt nearly in half (15,460 to 8,516 tokens): local models with a 32K window fit again (eeaed0c)
- Make Ask Cmdr more reliable on smaller models, and stop it claiming it checked things it didn't (7ae02f9, 02b3f74,
689e7ac, 3cc31cf, 4c276ee, c054df5, 4fa7024) - Say plainly when your AI plan doesn't include the model, or Groq's free tier is the limit (a0764f0, a2cdb93)
- Speak MCP through the official SDK, supporting every spec revision through 2026-07-28 (4013e63)
- Use about 400 MiB less memory at search and listing peaks (61eaf0d)
- Read and change Finder tags on direct SMB shares about 6× faster, even with no mount (62fa8e5)
- Name a share by the server name you gave it, like "private on Home NAS" (3bdb181)
- Copy small files to Android phones faster (0813c45)
- Keep the folder importance weights out of Time Machine, saving about 180 MB per backup (c7657ba, 3337c32,
97cebb1) - Let Space, -, and * run their commands once you pause typing a quick filter (c5113c1)
- Refuse shortcuts that can never fire in the main window, like a lone letter or Shift+letter (0c599b6, 30c6a2a)
- Turn off autocorrect and word prediction in search fields (c7b2e97)
Fixed
- Fix a keystroke typed elsewhere answering a question a running copy popped up, like clearing a Locked flag (c6beb91,
67dbdac) - Fix a force-quit during a copy possibly leaving an overwritten original under a temp name (8ee863b)
- Fix a canceled transfer still walking the whole folder tree (461b743)
- Fix undoing a move onto an SMB share leaving the emptied folder behind (9c063e1, d85b520)
- Fix typed
.localSMB servers not connecting when discovery hadn't found them (8119cb8) - Fix forgetting an SMB server leaving its saved passwords behind (de6bfcc)
- Fix a WebDAV folder behind some proxies listing itself as its own child (5c3ad91)
- Fix a phone sometimes opening twice when connected from two places at once (25e9c17)
- Fix Android files with odd names showing a row that points at another file (c6d1a8d)
- Fix drive sizes and search going stale after a failed journal replay (9fee271)
- Fix a relaunch after a build-heavy gap replaying changes for 15 minutes instead of rescanning in three (c7ec68c)
- Fix a folder created during the first index reading 0 bytes (a8f0b2c)
- Fix the drive badge and MCP state stalling while the index fills gaps or a mount is dead (812ef38, a65535c)
- Fix rare file-watching hangs and missed change batches (c8f83b0, bef5046, 96e1ae2, b34b58c)
- Fix a locked 7z inside a restic snapshot asking for the backup's password (23fe79e)
- Fix a parked restic snapshot pane holding its index in memory (5f5274e)
- Fix ⌘C over a PDF in the viewer copying nothing (e64ef13, a058ecf)
- Fix the viewer's tail, reload, and encoding changes silently not taking (2c02ca6)
- Fix a window-sized focus ring when switching the viewer to text, Binary, or Hex (8a39952)
- Fix opening a file Cmdr can't hand to another app giving no reason (208e0c3)
- Fix ⇧Space typing into a quick filter instead of opening Quick Look (61d3ddc)
- Fix the mouse wheel doing nothing right on the pane divider (10b6bb4)
- Fix Settings sidebar clicks doing nothing during a search (9313f09, 6604909)
- Fix Ask Cmdr's tag tool clearing a whole selection on a malformed request, or saying OK when it tagged nothing
(1a15bdf, 7fd4e6b) - Fix Ask Cmdr sometimes running phantom copies of a tool call (c861d25)
- Fix the "This chat is getting long" nudge firing at 3% (bd3e915)
- Fix Escape and closing the rail not leaving Ask Cmdr's threads panel (781d444, 32225c5)
- Fix free Mistral keys failing on every call (d8aeb29)
- Fix AI clients failing to switch a pane to Servers in languages other than English (8c86aa7)
Security
- Stop AI tools from reading SSH keys, credentials, browser data, mail, Cmdr's tokens, or any file holding a private
key: CVSS v4.0 5.9 (medium), Cmdr 0.42.0–0.58.0 (287388d, d912e5d, 093828f) - Stop a malformed reply from a phone or camera from crashing Cmdr: CVSS v4.0 2.4 (low), Cmdr 0.5.0–0.58.0 (ea5fae4)
Non-app
- Lead the landing page with product clips and real users' words (9409722, 9b855be, f966174, 2df04b1, e17f805,
a1d25e6) - Prove the Zip Slip guard and rollback's safety with Kani, check
unsafewith Miri, explore races with Shuttle, and
require every fuzz property to catch a mutant (95c7c9e, 941fb80, 7f20179, a605ef5, 08e69da, 4701c68) - Make our FSEvents fork first-party, held to every house check (fbadc22, 044f42c)
Cmdr v0.58.0
About 50 bug fixes and small improvements, lots of them for phones, ejecting, and the drive index. Ukrainian lang added.
Thanks for the reports and requests, keep them coming!
Added
- Show images, HEIC, and PDFs in F3 on every server and phone, with progress and Cancel on slow ones (6c3baa9)
- Add Ukrainian: the whole app and its native menus (26eeec7, d33353c, 449904b, 739edf0, b5b4f05)
- Browse DFS links inside an SMB share: listings, copies, moves, and live updates follow the link, a dead link only
blocks what's behind it, and Cmdr asks before signing in to a different server (6cade25, 8469bd0, 3aa9583,
1b1d5b1, 5af4634, df64fac, afb5381, f238475, 45d49a7) - Ask Skip or Skip all when the destination refuses a name, for a file or a whole folder (de5c6bf, 7d6f7b3,
f92d6a9, 3378965) - Copy symlinks as symlinks between volumes where the destination can hold them, and count them as skips where nothing
can land (0893e5e) - Switch the filter badge between Filter and Jump with ⌃S (fc087e0)
- Jump by typing in the Servers view and a server's share list (b475192)
- Add "Eject all", which refuses before unmounting anything while an app holds one of the drive's volumes (3c16245,
6a2abe6) - Show a phone Cmdr is waiting on in the volume switcher, with what to do next (10eddb3, 9c48105)
- Add other group IDs to saved NFS places, so files readable only through one of them open (b5856b1)
Changed
- Keep browsing an SMB share responsive while a copy runs on it (c88ec30)
- Copy compressible files to and from Android phones faster (up to 2.3× pushing, 30% pulling) (0e9eb37)
- Eject only that volume while its drive keeps others mounted, like Finder (3c16245)
- Make ⌃M with nothing selected rename only the file under the cursor, and wait for a changing folder to settle
(f94671f, 203d9ef) - Bring back F2 cycling the rename selection, stop ⌥← / ⌥→ at the extension's dot, and show
tar.gzas one extension
(45ea6a5) - Say so in a calm note when items you delete are already gone, with no error dialog or report (3117322, df69055,
208f7cc, dd8d560) - Give every click target a 24-by-24 square, including one-letter folders and the foot of the pane divider (1ed5ae0)
- Show packages macOS knows about, like
Logo.sketchbundle, with their icon, and warn when renaming them (9fc8101,
10f9bed) - Let Ask Cmdr's rename check run as long as a slow NAS needs, with progress and Stop, and say why nothing happened
(73903a6) - Make Ask Cmdr cheaper on GPT-5.6+ and OpenRouter-to-Claude with prompt caching, and price cached tokens right in the
cost meter (6d57d5e) - Keep thinking on in Ask Cmdr: the Effort picker has no "Off" anymore (40dd813)
- Offer local AI only on macOS 14 or later, where its server can start (83b5a02, 4103a95, 9047e50)
- Explain in your language why only one Cmdr can run when you open a second (b71b3b3, 592f2bc, d1994fb)
- Allow no outside host at all in the app's content security policy (971549b)
Fixed
- Fix right-click Services showing only a few items on macOS 27 (6554cc8)
- Fix a crash from toggling a drive's indexing off, forgetting it, and turning it back on during its first index
(8d1f97c) - Fix forgetting a drive while its indexing was stopping leaving the index on disk (3bddd5f)
- Fix a relaunch after a long compile re-walking the whole drive (b6e0892, aff7e0d, d13df19)
- Fix the index trusting old rows after a drive's change journal was wiped (ebbbd3d)
- Fix an interrupted folder read dropping real files from the index (2a2792f)
- Fix a pane keeping a stale row for minutes when macOS lost its change history (53d9d37)
- Fix Rescan doing nothing on a drive whose index wasn't running (60f6513)
- Fix a phone's index walk freezing or marking healthy folders unreadable while you browse (09b3447, 85f646b)
- Fix a replugged phone staying missing after you tap Allow (47fb022)
- Fix a USB cable pulled mid-copy reading as a failed copy with a report button (6873c9c)
- Fix one broken file name failing a whole phone folder (f5317ff)
- Fix folders an Android phone won't open showing as empty (dcef1a3, d87973e)
- Fix Android phones showing no free space until opened, and appearing twice while waiting for Allow (8fded62)
- Fix refusals from phones and servers giving macOS privacy advice instead of saying who refused (8d44690, 3ea2fb8,
c08f1c9) - Fix ejecting a drive with an open disk image on it saying to wait, when the image has to go first (5edfe3f)
- Fix two Cmdrs sharing one drive index or splitting each other's logs (6b9176b, eae610e, 0d4be5e, e2e86b5)
- Fix a retried copy leaving its temp file behind until the next launch (d9ac950)
- Fix canceled Nextcloud uploads sometimes leaving chunks on the server for a day (ea6b2cc)
- Fix "file already exists" prompts showing two identical-looking sizes: now exact bytes, or "(same size)" (fb4db79)
- Fix the extension-change dialog reading "Use ." and its "Keep" button sometimes doing nothing (c997aa3, 45ea6a5)
- Fix AI search showing the previous query's steps, and a slow old answer overwriting newer filters (d213045,
9206b85) - Fix Stop on an Ask Cmdr turn picked up after a reload (ba4fb9b)
- Fix folders with a Finder symbol or emoji missing Cmdr gold (75e1244, 36f69b2)
- Fix a window-sized focus ring when switching a Markdown file to formatted view (64b8c09)
- Fix the mouse wheel and file drops doing nothing on the right pane's first 8 px (85eef9d, 1ed5ae0)
- Fix keyboards not being able to remove a shortcut, and VoiceOver missing controls nested in Settings and Search
(4059d3d) - Fix VoiceOver not reading the Servers view's hosts and shares as lists (96ebeec)
- Fix error reports dropping the log lines right before the failure (726a7bf)
- Fix a harmless browser notice sending automatic error reports (e18bac7, 40dd627)
- Fix MCP reporting failure for a copy that went ahead when the UI answered slowly (aa9f6f6)
- Fix Linux boot indexing crawling network shares under the home folder, and counting reserved space as used (f38059e,
2cab6c1)
Security
- Stop a malicious SFTP server from exhausting memory or stalling uploads:
russhGHSA-4p9f-7p9m-5vfg (medium) and
GHSA-fw5c-8223-6h42 (medium), Cmdr 0.40.0–0.57.0 (5d53602)
Non-app
- Sign every commit
pnpm landputs onmain, and require signed commits there (1d05324, 5b3100f) - Re-verify getcmdr.com/trust on every release, and re-evaluate the accessibility report (1cf3010, 069538e,
d05f02c) - Gate every release tag on the pre-release checks and on complete Security lines (b8e59e4, 94974cc, 4b4df6b)
- Copy the whole Homebrew cask into the tap on each release (791180f)
- Drop the last
zip4.6.1 from the dependency graph (9eb5857, e935c66) - Speed up local checks and Playwright builds (2cbde14, 91fef89, d22357d, 485d4d9)
Cmdr v0.57.0
The three highlights:
- I've neglected AI features for months. Now I finally gave them some love. The agent got better system prompts and
more tools. The UI finally displays the agent's tool calls transparently, and the suggestions UI is basically new.
It's still not perfect but improved a lot. With an Opus 5.5 wired in it's already pretty decent, but I also want to
set up Sonnet-level agents for success. - A major MTP speedup: big Android folders now list up to 10× faster—I listed 3,248 photos in 0.4 s down from 5.5 s.
- The usual: 30+ bug fixes and smaller improvements.
Added
- See what Ask Cmdr looked at and what came back on every step, with paths that open in a pane and steps folded under
one summary (9c40a5c, 54e4ee3, 9fe4e9a, 407d2f5, d40ced7, 73ac312, 2a4f7fe, 4bbcb5e, a1bdd8b,
18ee599) - Let Ask Cmdr list and search your NAS even while it sleeps, and connect a server you saved when you ask (fa35bb8,
edc396c, 56f76df, 4c214ff, 29837a2, 038a62c, b7ec0ad, 7b25524, 27a1a66, de3081f, 0430170,
65bf7c4) - Let Ask Cmdr file things by your existing folders and naming, with suggested moves that rename each file and one Undo
(6679a11, 5995443, 7ad9d7d, f9ed916, f02a459, b45abb8, 5cd7418) - Approve Ask Cmdr's suggestions to save, rename, or refolder a server, with no password and no contact until you
connect (088b13f, da8de1c, 7293b58, c18cc5b, 73843a3) - Redesign the AI suggestions dialog: each action is named and explained, files show their current size and date, and
you pick which ones run (22f0b5e, ab575e1, 0a602a3, f246efe, acd3515, 10ac39b, 2831b34, e4db8a3,
1393d87, 1966370, f80b331) - Let Ask Cmdr's answers run as long as they need, with a loop guard and a check-in past a set cost (default $2)
(c223b87, 1645f7a, 1bebcb8) - Pick how hard each cloud model thinks in Settings > AI, with reasoning on every provider (0455eed, 306b6ac,
168541a, f9941fd) - Show Ask Cmdr's cost and tokens in an always-visible footer, and say when no AI provider is set up (539e710,
4c03216, 8752bc2, e6e432f) - Start a new Ask Cmdr chat with ⌘N (2d2be75)
- Open "Go to folder…" with ⌘⇧G too, like in Finder (6c713a2)
- See everything an error report or feedback would send, in full, in the File viewer (ac14acd, 2689bd4)
- Save an SMB server without contacting it through "Add anyway" (a5ec097)
Changed
- Make Ask Cmdr turns cheaper: earlier turns aren't billed again, and Claude and GPT-5.6+ hit the prompt cache
(c756e81, b070411, 55a28ef) - Let Ask Cmdr's chat memory use the model's whole context window (45bb108, 743e18f)
- Show numbers in the app's language and dates in your Mac's region format (7978560, 0a3e179)
- List big Android folders 10× faster or more (6378b64)
- Say up front when an AI trash suggestion is on a drive with no Trash, and delete for good once you approve (189ecb5,
0a345e6, df2dbc9, bb6d06c) - Light a drive's indexing dot blue the moment you turn indexing on (103f69c)
- Use clearer wording across the app, in all 11 languages (360a0cf, 02e44f6, 8c9d240, 1a2cb3a)
Fixed
- Fix links and buttons in Settings doing nothing, like the AI sign-up links, Buy a license, and Open log folder
(4cbbf57) - Fix the operation queue, Settings, and Keyboard shortcuts not coming back when clicked while minimized (343c926)
- Fix a setting changed right before quitting getting lost (412fa20)
- Fix AI folder suggestions, AI search, AI selection, and the Anthropic key check failing on current Claude models
(f97ff44, 35c69dc, 8491aa4, 9704e47, 7dadf54) - Fix Ask Cmdr's cost meter showing almost four times the real price for current Claude models (a0aa008)
- Fix the model picker offering models that can't chat (31eb48c)
- Fix some zstd-compressed zip entries failing to open as corrupt (ed3aa3c)
- Fix FAT32 and exFAT USB sticks not offering the Trash (2a4e94f, 893e692)
- Fix progress on network folder copies ending at "1 / 36", and quick copies showing every file at 0 bytes (1952093,
e37ca93, 3efcf2f, 2110c6a) - Fix new folders showing "≥" sizes or
<dir>until the next launch (4013646, b5ba9e7) - Fix Brief view cutting names short after a zoom change (34c3907, a0e8ccb)
- Fix words breaking mid-word in dialogs, the operation log, and the queue (096edbc, 34becf2, 4580d65, fc61100)
- Fix closing some list dialogs crashing the window (aa1b4a1)
- Fix menu commands sometimes running twice after the window reloaded (12c1ddc)
- Fix restic snapshots failing to browse for minutes after a prune on another machine (7ce00ca)
- Fix long pauses still failing some WebDAV uploads, and canceled uploads leaving temp files on the server (1179a77,
7299220) - Fix a phone move under a new name replacing a file there, and names too long for a phone garbling the transfer
(be7ff2d, 04f1230) - Fix searching "German" (or any language's English name) not finding the Language setting (aaae2ec)
- Fix a dragged dialog getting stuck where you can't grab it, and checkboxes hopping when ticked (60eb4fd, b9b6e43)
- Fix folder importance ranking app internals as top projects and ignoring folders you open on a NAS (30f15aa,
d7a8856, 5e4c877)
Security
- Stop a malicious
.git/configin a browsed repo from switching off git's path protections (70ae9eb) - Keep S3 access key IDs out of logs and the copy dialog (1981c78)
- Update SQLite, zstd, and tokio for upstream security fixes (c01c0db, 4afd0a9, 1e2dec7)
Non-app
- Fuzz every NFS reply decoder against hostile servers (d8c5fcf, 9fd3cc7)
- Serve the website from Cloudflare's edge with long caching, a report-only CSP, and a dead-link check (2df192f,
ff1135a, 6f0eb05, 1a2c6d2) - Switch every product screenshot to shadowless window captures (02d3150, d1a07f1)
- Make docs-only and merge-back CI runs finish in minutes, and
landreport red CI at the first failed job (9bd4d81,
8b96519, 2964c87)
Cmdr v0.56.0
Another big one! The highlights:
Wow, this one was quick! My three highlights:
- "Sort by date" improved: the date column now supports three types of sorts: created, added, and last mod.
- Multi-rename: use EXIF info and media tags to put a photo's capture date, a camera model, or a song's artist and track
in file names when renaming. Plus some more fixes to the multi-renames. - NFS: Open your NAS's NFS shares directly, with no system mount. (Alpha version!)
And a lot of fixes. Thanks for the bug reports everyone!
Added
- Connect to NFS shares on a NAS without sudo or a system mount: pick an export from the server's list, browse, copy
both ways, rename, and delete, with folders refreshing when another computer changes them (2a98058, d0927ef,
95f68d8, c320b51, 83069d5, 516a614, 2120c9e, 4973eae, 4897096, d00617c, 6befc4e, 9d05df4,
af5006d) - Put photo, video, and music details in Multi-rename masks, like
[=exif.taken:d]or[=tag.track:2], picked from a
media ▾field picker (⌘⌥X) that shows each file's values (ae63a96, 983af18, bf7cbd8, cca7de4, cf23f04,
555c3df, 86358a5, 3a8e55c, 10e400d, dba4e84, 9c9e4fc, d6104fd, 7e560e0) - Pick a range placeholder's characters in a text box on a real file name, instead of counting positions (3552df6,
8994141, 3bda0fe, 8a94913, a43bc07, 3ce4183, c27f883, 7e45a1d, 2be7a5c, 4d8ee06) - Walk Multi-rename's preview with the keyboard and reorder files with ⇧↑ / ⇧↓ to set the counter's order (623285b,
abaaf03, 9ddf7c8, cbc10a4) - Reorder Multi-rename presets, starting from a new "Date and time" preset (3fc5637, 4e36c90, 6d1d926, 0391637)
- Use separators inside date placeholders, so
[Y-M-D h.m.s]makes2026-07-14 09.05.30(f611d29, 3bd1d6e) - Sort by date added from the command palette, View › Sort by, or a right-click on the file list header (4404edf,
feb67a9, 98ab349, dabd3fd, 04d76e7, b00faa8, 2ec02c8) - Show the date you sort by in the date column, and say when a drive can't sort by it (ac89a54, 01fbc07, 0914df5,
75cb97b) - Show what happens to files that already exist while a copy or move runs (4520fc8, b979943)
- Keep the progress dialog open after an operation, with a summary and Undo, through a new setting (df79bfc,
322fca5)
Changed
- List folders on APFS and HFS+ drives 1.5–2.5× faster (5b5dfcd, 92c6b07)
- Recover a broken dialog, pane, or Ask Cmdr chat on its own, leaving the rest of the window working (e0969d8,
3fc9a10, ba87787) - Move between notifications' buttons with Tab after ⌃F6, starting on the first action (16d818a)
- Use PageUp, PageDown, Home, and End in Search results and the rename review (047c5a9, e84a7dc)
Fixed
- Fix Cmdr crashing at startup on macOS Catalina (27f2d78)
- Fix the window crashing when a server lists the same share name twice (3ec1b46)
- Fix Ask Cmdr crashing the window with some local AI models (b13509b)
- Fix Pause not stopping a big file mid-copy on local disks and mounted shares (ceb65f1, 17924be)
- Fix deletes on a QNAP NAS with its network recycle bin on failing at random (e670fe8)
- Fix toast buttons breaking words in half in some languages (e1883ff)
- Fix focus rings hiding on segmented controls (aa6a15a, a7bf855)
- Fix the status bar briefly showing a file from the folder you just left (5daa83e)
- Fix a Linux drive renamed during its first index no longer getting live updates (ac6d00b)
Security
- Update the SMB library for an upstream fix to its signature checks (169ffc3)
Non-app
- Build each release while its CI runs, and drop its slowest build job (46bbad5, 1f204bb, 3520c90, bb1fd20)
- Prepare a repeatable move of the repo to the
getcmdrGitHub org (eb88331, 81883b0, bb91e34) - Open the website's /trust page with a compliance strip, the OpenChain badges, and every document a security review
asks for (2d3d0a6, c06ad5d)
Cmdr v0.55.0
A ton of good things! Some of the main ones:
- Restic backups: Browse your backup snapshots like folders. (Read-only)
- SMB: operations now wait for a shaky server to recover, then they continue and clean up properly in the end.
- Markdown files open formatted in the viewer, with working links.
- Huge data-safety sweep: I fixed dozens of rare ways an operation could lose or damage files.
Added
- Browse restic backups on any drive: open a repo's "Browse snapshots" row, unlock it once, then browse each snapshot or
latestread-only and copy files out to restore them, with the backed-up machine, size, tags, and paths on each
snapshot, new backups appearing live, and "Forget backup password" in the command palette (906d322, 5f38c06,
296e99e, 5fb3229, b1e3b1d, f236b9c, 3250e4b, f4e345f, 1a16f5a, be0c08f, 8b968cc, ccd016e,
eb6c33a, 6505396, b439ca3, c330c48, eb39424, 5d7abbd, 8688a14, 4099074, 8b38221, 5f94342,
c93269d, f98fc17, d626db1, 365f0f8, 4d33aff, 34da5a3, 7a395fe, 02481bd, 27a2fe3, 8e96214,
d594e28, 0c43420, 2dd96f8, 9aa1c3a, 3d1cc11, e4a2eb4, d69b69d, 235ea0b, bc8a84a, d759e2c,
48e16a0, 3749259, 7938905, 24c2ab9, 8c6bd6e, e2655f5, b18f536) - Open Markdown files formatted in the viewer, with pictures from any drive, web images on request, and links you can
follow with Back and Forward (c790f61, 0eae53c, 3e553d0, 7883921, 768e37f) - Remember your "files already exist" choice in the copy and move dialog with a "Remember this choice" box, contributed
by Jiri Slovacek (5ffbb3e, b8fde51, fad047b, 9691a9b, 097aebf) - Cancel a running transfer with Escape and pause it with Space (bf6a0f3, 55a5f6b, e1abeb9)
- Say "Lost the connection to {server}" when a server outage ends a copy, move, delete, compress, or zip edit
(d7f30b1, 8901bb7, 9579e72, 4e5ebf7, f779a3c) - Trust a NAS's self-signed WebDAV certificate on first use, like an SFTP host key, and manage it in Settings
(1b1160c) - Send the past five hours of redacted logs with feedback, through an opt-in box, and include five hours in error
reports too (5f0a7ff, 492faa8, 2f05d10, 404cea4) - Ask once before moving Locked items: move them still Locked, or leave them where they are (3db40ba, 4442916,
b9f8e19) - Cancel a share mount stuck waiting on macOS, and get the command that restarts its stuck sign-in helper (208106a,
5baad85, 6af4ce2, b220ada, 7b1986e) - Show what went wrong when a window crashes, with Send error report and Reload, instead of a bare "500" (340360b,
c8e2d21, 1e71584, fec62e2) - Let agents pattern-rename files with the Multi-Rename Tool's settings, as a preview or a proposal you approve
(6d3d14b)
Changed
- Ride out a dropped server in every copy, move, delete, compress, and zip edit: Cmdr waits, finishes, and removes its
temp files once the server is back (055da46, 7ced230, 07fce04, 05d83ea, 1cce884, 47775fa, 189012e,
41cdf98, 52a45dd, d790d4e, 9d9ee28, 285937d, 927660e) - Search Settings, the command palette, and keyboard shortcuts in any language and script, accents optional, including
everyday words like "colour" or "basurero" (2c75318, d673305, 24988ff, 256082e, 196d9e6, 2ed6723,
50ebdae, ac7f35c, d4611e3) - Edit zips that hold password-protected entries: they stay intact and still open with their password (6b6109d)
- Say a wrong archive or backup password right under the field, every time (aa7a705)
- Say why Rollback is off for an operation (e0fae29)
- Show a partly indexed folder's size as "at least" in the replace and delete dialogs (916c096)
Fixed
- Fix deleting a folder on an external drive, phone, server, or Windows or Samba share also deleting what its symlinks
and junctions point to (46d326c, 066a31e, 8ba693f, 80be9d4, c489745, 25903c9, 8572bde) - Fix a delete, Overwrite, or move of a folder emptying a drive mounted inside it: Cmdr now refuses (1b84ba5,
4abcee6, 641d514, c5cb00a, df7174d) - Fix an Overwrite cut off by a crash or a dropped share able to lose both the original and the new file (a2b2b00,
1dead42, 71317ee, 0bba82b, 1416cc3, 1820b56, 0119c7b, 43ad6da, 2eb5864) - Fix a file that changed size mid-copy, or an upload cut off by a network drop, landing truncated under its real name
(2f78bf7, e88b60f, 03d7437, a2ce8ed, 0528152, 8ec2db7) - Fix delete, copy, drag, F3, F4, tags, and other actions sometimes hitting the neighboring file right after the folder
changed, a quick filter, or a sort (3055253, 0c60d99, 14205d0, 6c3ea84, 68f8321, 29c2696) - Fix Copy or Move sometimes doing nothing when pressed right after a folder changed (58706da)
- Fix copies failing after a server reconnects, or on a broken pipe, instead of waiting for it (60622ca, e16379e,
86cf522, bd7ac27, 1d98849, d2a1e9f, 15fe1fa) - Fix a failed or canceled copy leaving half-written files on a share, or deleting a file someone saved at its name
meanwhile (5ee115c, 0ad03da, 170dbd1, f645e89) - Fix a copy hanging, even through Cancel, after you answered a folder merge question (12ed468, 6054233, 0939126,
5b744d1) - Fix copying small files to older Samba NASes dropping the connection (6bf93dc)
- Fix undo deleting the only copy left or a file edited since, or acting on the wrong item in case-sensitive folders or
the Trash (a442da1, fdd2905, ad814ae, 9dc5442, ebbd691, c26b795, 37b632b, 92bad49) - Fix settings, shortcuts, favorites, histories, saved servers, and trusted SSH hosts getting wiped when Cmdr couldn't
read their file at launch (881176c, 7a74e20, 6833eb4, 5591fb2, 2599576, 0d065b6) - Fix a paid license showing as unpaid after a damaged license file was reset (2a3f1f3)
- Fix a setting or shortcut changed in one window reverting when another window saves (1a21e83, f836df2)
- Fix editing a zip garbling older Japanese, Chinese, or Russian file names, dropping its comment or self-extractor
part, or opening an encrypted entry as its neighbor (60003e0, 1923982, 70e5971, 2842e57, e192876, 5f147ce,
864cdca) - Fix moving folders into or out of a zip losing files, and a failed zip edit on a phone or server leaving the archive
under a temp name (0ec2a5b, d217dcf, 43bd269, 5d0f8f9, c4a0457, 30367c1) - Fix phones and cameras mixing up same-named files, or acting on the wrong file after reconnecting (c149f50,
526ad63, f8b9417, cc0f3e2, 4f7b285, 90d6ecf) - Fix renaming onto a folder's name on WebDAV or Android deleting or burying that folder (790e162, 2c030b2,
5df045d) - Fix a WebDAV folder delete taking a file another app dropped into it at that moment (4e2e7f0, 323be14)
- Fix a long pause failing a WebDAV upload (a91c934)
- Fix S3 deleting a same-named file beside a folder on delete, move, or undo, and unfinished uploads staying billed
after an address change (aecb8e8, c46ae2e, 259835d) - Fix a mistyped password at server sign-in replacing the saved one, and Remember not saving the one that connected
(e9a46a0, 09211f3, 14d9d25, 02525fd) - Fix Linux without a keyring refusing to save passwords after moving to a new machine (8232efa, 6fcea50)
- Fix Cmdr crashing when a drive or share disappears while it reads a file there (f73c1da, e2beb45, f2f6a7b)
- Fix ejecting a drive failing while Cmdr had a git repo on it open (f0c7537, 4a288cb)
- Fix a drive index rebuild crashing Cmdr (6ff850f)
- Fix the drive index freezing, rebuilding after a rename, missing some changes, or keeping stray entries from copies to
phones and shares (16df0ec, a45f98d, d2ecae9, 3e82410, 40aefa4, d284870, ab88a2d) - Fix the app freezing on a language switch or when the main window gains focus (0a23c91)
- Fix updates on an install Cmdr can't write to asking for an admin password on every check: Cmdr now says once how to
update (a7b282d, 15dd7fa) - Fix edits to an "Open with" copy of a file in a zip getting deleted at the next launch: they go to the Trash now
(3eaebc7, 39819ee, f10e805, c337a15) - Fix the viewer's "Save as file" replacing unreadable characters with "�" (202ae19, 2f52716, fd415c6)
- Fix toggling a color tag wiping a file's other Finder tags when Cmdr couldn't read them (304f987)
- Fix renaming or writing inside a repo's
.gitview reaching git's real folders, and "Open terminal here" there
opening a missing path (5457484, b78f4b3, 1337252) - Fix "Ask about selection" attaching the wrong or only the visible files (c3a0ca7, a32bbe4)
- Fix the delete dialog failing to open for same-named files picked from search results (58aaad2)
- Fix the files/s rate showing wild numbers on big-file moves (9c83dbe)
- Fix Cmdr's launch stopping any process that mentioned its AI server's path, like a
tail -fof its log (5c63e7f) - Fix VoiceOver and Voice Control missing some button names and reading the rename field as part of its row (d565214,
a7b3186, 0a61984)
Security
- Hide every path, name, server, and account in error reports exactly, by marking each one where it's logged (8c4a5c5,
9d874da, b60b949, 15568f3, 858727b, 889e192, 2d14d41, d81dcf2, ffbd99a, 08b958d, f414e35,
8b730be, 5436b6e, 210e851, c742938, 0b7405a, 2192bfe, 5514dd0, 50af2d4, 9c80b78, 873440a,
b983257, e03215e, d38d0df, 5ae1fcf, 30a64e0, 8bf5b5a, ee53715, e14b05f) - Keep usage stats and crash reports off when the settings file can't be read (df5f916, fdbffdf)
- Refuse an SFTP host key marked revoked in known_hosts (5bbc629)
- Make "Forget saved password" and an unchecked Remember really forget an SMB share's password (9e74a92)
- Warn before a WebDAV server on an http address g...
Cmdr v0.54.0
Smaller things this time:
- CLI: Type
cmdr .in a terminal to open that folder in Cmdr. Automatically installed if you have Cmdr from Homebrew,
otherwise enable it in the top menu:Cmdr>Install “cmdr” command. - Safety work for the EU Cyber Resilience Act: a local security event log, flagging suspicious stuff, and a "delete all
data" feature. - Drag waiting operations in the queue to reorder them.
Also a few big refactors in the background that you shouldn't notice 😅 and a bunch of fixes!
Added
- Type
cmdr <path>in a terminal to show it in Cmdr, with flags for the pane and a new tab (2a5911f) - Install or uninstall the
cmdrcommand from the app menu, or get it with the Homebrew cask (61bb889, 1986b75,
b905b44) - Drag a waiting operation in the queue to change its place in line (67edbd0, 968e000, bfb64e1)
- Add "Delete all Cmdr data" to Settings › Updates & privacy: it removes everything Cmdr keeps on this Mac, then quits
(141d9e9, 644287b, 72a18ef, 261f1dc) - Keep a local security event log, with an off switch in Settings (902b238, f839049, 562e4c4)
- Tell you right away when Cmdr turns away a web page at its MCP server, an unsigned server reply, or a fake update
(99e40c7, 2721e28, fb272d4, 7940f8b) - Say in the restart toast and in What's new when an update fixes a security issue, with a link to the advisory
(ed6b98a, 89992ad, af0e346, f2d030f) - Turn the operation log off in Settings: undo then says it can't undo new operations (b63b2d7, bb670c5)
- Keep a copy of a damaged settings or history file, start fresh, and tell you once (fe24799, 5efce6b)
- Warn when a copy finishes but Cmdr can't confirm the files reached the disk (aadf2cd)
Fixed
- Fix a crash or full disk mid-save truncating your settings, shortcuts, or license file (71df138, 993eeca,
8747836) - Fix a server refusing a write during a move blaming your local source folder (433708e)
- Fix the file list going blank after the quick filter narrows it and clears (38fc7a3)
- Fix copying, overwriting, or compressing into Downloads raising a "new download" notification for Cmdr's own files
(07f149d, 6ee404d, 2d3b3ad) - Fix Rollback racing a quit or Cancel and deleting partial files those meant to keep (a5b218a)
- Fix Eject being offered on a drive a transfer just started on (ba73c53, aaaa185)
- Fix progress and scan counts freezing after an internal error mid-transfer (9dc1a06, 748d89b, 1b92667)
- Fix the Homebrew install command failing on Homebrew before 5.1: it's one command now (8f61ebf)
Security
- Move the license key from a plain-text file into the Keychain (e206f58)
- Keep usage stats and crash reports off when a damaged settings file resets (fe24799)
- Keep folder names like "12. Summer trip" fully out of error reports (7ca001e, 373bcda, 2499a88)
Non-app
- Move the copy and move engine, the operation log, the local disk backend, and file-name order into four Tauri-free
crates, with app and build timings flat (f263a8a, 96b81d0, 116306a, 026f55b, b76fcb4, e2fe3ae) - Fail the check on any new or grown Rust module cycle, and untangle seven (2d31da5, 75d56d4, bf3fe2d)
- Rate-limit admin routes and report rejected admin and webhook requests in the ops digest (9dfee8c)
- Declare a five-year security support period, publish fixed vulnerabilities, and expand /trust for the EU Cyber
Resilience Act (245ff60, a75ba62, 7066fd0, 316aed5, c7d61c6) - Keep each release's Cyber Resilience Act evidence for 10 years (b483b85, 22ff858)
Cmdr v0.53.0
The main things:
- Accessibility: VoiceOver works, we follow macOS's "Increase contrast", "Differentiate without color", and "Show
borders". Toast and everything else I found not to work with the keyboard not works. Also added a Help > Accessibility
guide. - A lot of work towards Cmdr working for big companies and getting some certifications, etc. that came with a lot of
security improvements. - Performance improvements: same-share SMB copies now happen on-server (4 GB duplicate takes seconds), and the git
commit browsing feature can now list 100k commits in a second!
Added
- Make Cmdr work with VoiceOver: file rows say their name, kind, position, and marked state, and menus, Settings,
search, the command palette, toasts, and progress bars speak as you go (630beb3, a63b0ee, 24cc4b6, 1943003,
f6251a5, 63b7caf, fdf4946, 865ba11, a3143f2, 7501520, b6c5e3f, 0ad6d21, c57cc6f, 131a59f,
807799e, 2edc673, f58df37, 2d18f0b, 966f0af, 1c9e0ac, 615a873, 2ce9db1, ed7435a, 6aa66fb,
b69f663, fa4f151, a363292, 3f8d463) - Follow macOS Increase contrast, Differentiate without color, and Show borders live, with stronger edges, text, and
focus rings (3c05c47, 514fe4e, f2ac5f9, 1dc10ce, 48e3f7d) - Reach each pane's tabs, location bar, and sort buttons with ⌃F5, and the newest notification with ⌃F6 (58612c3,
d60484e, 8c8cc79, d13b68c) - Add Edit > Undo move to trash, naming what it puts back (6926d6f, 265d004)
- Add a "Keep notifications until I close them" setting (6d96e83)
- Move tabs from the keyboard with ⌘⌃⇧← / ⌘⌃⇧→, or to the other pane from the command palette (14ddf8a)
- Move the pane divider with ⌃⌥← / ⌃⌥→ (188625f, c56940f)
- Rebind or turn off the viewer's single-letter keys in Settings (d7b3bd2)
- Add Help > Accessibility guide (1ca3ed3)
- Copy files within one SMB share on the server: a 4 GB duplicate on a NAS takes seconds (656edf7)
- Open a terminal with F9, also a new button on the function key bar (0ea7375)
- Say "report.pdf is opening in Preview…" while a file opens (da95466)
- Right-click a queue row for its actions and keys, with Dismiss on failed ones (a6e2faa, 2d4a99a)
- Point out the browsable
.gitfolder the first time you open a repo (fe548dd) - Let agents see which folders and files a transfer is on, and each drive's mount path (c0505fe, a162825, 70572a1)
- Let agents turn off usage stats and crash and error reports, but never turn them on (5949de6)
Changed
- Mark selected files with an edge bar and heavier text, and keep the accent color for the focused pane only (5e4de19,
973c9fd, 561af83, 9455be0, 7645b14, 2f48feb, e8afebc) - Let text size go up to 200% (5947017)
- Make tab close buttons, path segments, and the pane divider easier to hit, and keep tooltips up while you move onto
them (9bbc441, 171f5f5, 13eb4c2) - Move notifications to the bottom right while they'd cover the row you're on (93727e6, 30d756d, afcf568)
- List up to 100,000 commits in
.git/commits/in about a second, with files-changed counts filling in after
(de91e44, 96eaec0, 6d139f4) - Show a big SMB folder's loading count climb, and stop listing it when you navigate away (be16dc0)
- Say what each queue row copies and where, and open a paused copy expanded (769cbcb)
- Remember the progress dialog's height (bcee28c)
- Show "Running…" in Ask Cmdr's thread as soon as an approved suggestion starts (b1c84f9)
- Keep usage stats on our own server: they no longer pass through PostHog (d88257d)
- Round windows and dialogs like macOS does (b35e403, 11d43ac)
Fixed
- Fix reconnects hanging on a NAS that accepts the connection but never answers, and copies waiting out the whole outage
after it's back (863583b, 8335011) - Fix a share that guests can list but not open asking for the password on every visit (8968039)
- Fix renaming a file on an SMB share to another letter case: it was refused, or deleted when overwriting (aba9a20,
f678c50, 874011b) - Fix large copies to Nextcloud behind a proxy failing partway (e605e3f)
- Fix a pane inside a zip not showing copies, deletes, and renames until you left it (8b259c4)
- Fix edited zips keeping their old modified date (47fa590)
- Fix type-to-jump and the quick filter not starting on Cyrillic, Greek, and other non-Latin layouts (868bcce)
- Fix trashing a Locked file suggesting a permanent delete that fails too: Cmdr now says how to unlock it (29c2beb)
- Fix the metadata note missing what a server refused mid-copy (43ca8e4)
- Fix renames approved in Ask Cmdr's review coming back "interrupted" after a relaunch (432cb6b)
- Fix long path segments vanishing whole: they now shorten with a middle "…" (6b0fd9d)
- Fix the bottoms of letters like "g" and "p" getting cut off in the file list (931c74a)
- Fix the last row hiding under a scrollbar (19ae260)
- Fix the volume chip's tooltip covering the menu it opened (5c84f0e)
- Fix file icons switching back after toggling Increase contrast or Invert colors (4af4eb9)
- Fix "Reload" and "Inspect Element" appearing on right-click in Settings, the viewer, and the queue window (862654a)
- Fix window titles staying in English or the previous language (c92d156, 0eb45f5)
- Fix the git status tooltip and branch pill speaking English in other languages, and a stray space after "。" in
Chinese tooltips (2e8e380, 4086eda, 536ce49) - Fix some animations still moving with Reduce motion on (220f2ae)
- Fix Linux menus showing Super shortcuts where Ctrl ones work (cf4228c)
- Fix folder ranking lagging behind the index after quitting mid-scan (a41c53f)
Security
- Require Cmdr's Apple Developer ID signature on every update, beside the update signature (de66c51)
- Add a backup update-signing key, so a leaked or lost key can be replaced with one release (0029126)
- Stop a hostile file open in the viewer from changing settings (3cd24fa)
- Delete a plaintext OpenAI key that older versions left in the settings file (3aaf046)
- Keep SMB share passwords out of logs (36ba541)
- Update the TLS library for four security fixes (19dee72)
Non-app
- Split the release build so signing keys never share a machine with third-party build code, and refuse to sign an
update the updater would reject (c9fd205, d9b8a7b, 6bd271b) - Publish an accessibility conformance report and guide on getcmdr.com (bb179ff, 6be271d, 0d70df4, cc8ff19,
86f5aeb) - Publish a security incident procedure, an open source policy, and what happens to licenses if the company stops
(8b5324b, 354da64, 17e95d2) - File every crash, error report, and feedback on a board, with one three-hour digest email, a morning brief, and a
triage agent (e7aa4c7, b8c35ce, f4214b3, 6b8226f, 2312912, 369f699) - Scan every lockfile with osv-scanner and run OpenSSF Scorecard's checks locally (f177979, 0118f54, e5d22ab,
c2a55d6) - Move to smb2 0.30.0 (7389c37, f2ef6c3)
Cmdr v0.52.0
The big highlight is multi-rename, which I've been missing for a long time! It lets you rename many files at once,
with patterns, counters, search and replace, presets, a live preview, and Undo. Huge thanks to
Jiri Slovacek for the core functionality, which I then pimped with some fixes and a bunch of
UI polish.
Secondary highlight: proper file-level progress for copy/move/compress transfers, in a tree-view thing. Looks really
nice in my opinion.
Then also a truckload of fixes and improvements, mostly based on user feedback (thanks!) and my own testing.
Added
- Add Multi-rename (⌃M, alpha), contributed by Jiri Slovacek: name and extension masks, counters, search and replace
with regex, case changes, transliteration, a live preview, presets, per-field history, editing the new names in your
text editor, and one-step Undo (b3b2d58, 35fb93c, 83a359b, 450686a, a243220, c266397, 12fc47c,
cf26149, 6b3be9b, 5df8c2a, 1bb91e9, f2b3e4d, c26ea2e, ae9207c, c6a48a2, cf605a1, 2821a6c,
8c918db, 112a6d3, 5d92089, 233feac, 4cd0036, 9b3bd93, 087417e, 07b1f0d, 4292c05, 232e887,
50084d5, 1752f6d, 73c4074, c37ef50, 37b49cc, 802c552, 65612fc, 60ff2ca, 15b5227, 0d174c7,
45cc68e, 285f45e, 8fb4276, 520b846, 7eee055, 4d8b656, 5710c32) - Add a live file tree to copy, move, and compress progress, in the dialog and the queue: the folder and file in flight,
what landed, what got skipped, and what couldn't finish, plus how many files are left (a3130f0, 78181a6,
efd7824, f8c83f0, 3a5c604, 05187ec, 80753d2, 027537e, d138cdf, 29bc11f, 5963209, 2e8983f,
1e2dbff, 6aeded1, c4a0e39, eb1aeb7, 04cbb10, e37f393, e742fcb, f4f5733, 779f92e, 4789208,
8e46624, 8547331, f22e90d) - Keep creation dates, permissions, and Locked and Hidden on copies to and from servers and phones, wherever they can
store them: SMB, SFTP, S3, Nextcloud, and ADB (d8ee97a, 6195a6c, d5f0dd3, b0f191f, a69f0a5, ff0d892,
944c89c, b57edfc) - Say once after a copy or move which metadata the destination couldn't keep (389ceef, ad0bfb5, 80c4c26,
b2e7ac5) - Send a copy, move, compress, or trash straight to the background with F2 or the new Background button (8eaae4f,
fe9e76a, ca47d4c, 966ead5, db28267, de9df80, 5b90136, 3ca1290, ea71de9, 052cf32, 8ae9b18,
5cf0de6, 89b4c1a, 51a2e19, 2544f3b) - Drive the operation queue from the keyboard: arrows, Space, Enter, ⌫, one-letter row keys (S, P, C, B), and ⌥↑ / ⌥↓ to
reorder waiting jobs (5bb02e1, 8fd4ebf, f0c6ba7, f247252, e60c534, 415cba4) - Retry a failed background copy or move right from its queue row (5395936, e954068, f77bf6c)
- Wait up to 15 minutes for a NAS that drops off the network mid-copy, then finish the copy (a38e707, 0b3941a,
d54c4f2, b82717b, c35a393) - Ask whether to move the rest when files a queued operation was waiting on got moved or deleted meanwhile (e455495,
3184e9c, ea2fd5b, 87c691e) - Let Copy and Move take a full destination name: rename on the way, or copy beside the source, contributed by Gábor
Gyebnár (ce24aeb, 5f54ebc, 49a69f6, bbc6763, 9332cf7) - Answer "file already exists" and error prompts with one key (S Skip, O Overwrite, R Rename, and more), contributed by
Jiri Slovacek (34489fa, 7c76bb2, 6b84bc6, 42ecf4b) - Delete permanently with ⇧Delete and ⌥⌘⌫ too, contributed by Jiri Slovacek (07dea53, 796c4eb, 681e8de)
- Add a "Skip confirmation" setting that starts copy, move, and trash in one keypress (permanent deletes still ask)
(e133ff0) - Favorite folders on SFTP, WebDAV, and S3 servers and on phones, and keep favorites on offline shares: picking one
connects (6dbd79d, 0ab9512, 5f1efdc, 687477c, a6e20b1, 6ad6743, a3a9c8e, f6bca9e, 78d96c5,
d3af5a5) - Show favorites as a foldable section in the volume switcher and in the Dock menu (8fa8823, e577050, d0b2786)
- Change a saved server's address without losing its passwords, favorites, or tabs, with Eject and save for a NAS that
got a new IP (5aa41c1, 137817b, 54982ce, 46424a0, 1a5ce7d, 74003e6, a479dba, 62bed75, 9d86401,
e0a1e3d, 14beed5) - Extract Finder-made zips and macOS tars with their Finder tags and icons and without
__MACOSXclutter, and keep tags
when compressing (20a12be, d515b65, 9b2e79f) - Offer "Send error report…" on every failure, and on operations that take long (61717d5, 43f1bf8, 7c9278a,
4494adc) - Let agents send a copy, move, or trash to the background (1991166, 507ee74, a9cd624)
Changed
- Make Copy path and Copy filename copy every selected item, one per line (c6eeba3, 1ea4e50, 019d39b, 607f09b,
ca67c52, a80179f) - Copy, move, and compress folder by folder in name order, whatever the pane sorts by (bd8e945)
- Start each file sooner in copies between a server and your Mac, and keep one slow disk from holding up other copies
(9a20405, 407a0ed, c365eff, d50e6e9) - Make Nextcloud about five times faster per request (d37b8ba)
- Keep panes responsive while the index updates folder sizes or a pane re-sorts (dbfb855, c7b5859, 4c65f8b,
831a0ee) - Always offer a plain Cancel on the "file exists" prompt that keeps what's copied, as a full-size button (03e1a46,
cf78b1d) - Stop offering drive indexing for mounts that can't be indexed (NFS, AFP, WebDAV, FUSE), and ask to connect a phone
instead of restarting Cmdr (b4563cb, 799c778, d6f782e, d16f5e6, dae803f) - Hand an open volume switcher or favorites menu to the other pane with ⌥F1 / ⌥F2 (2b119a1)
Fixed
- Fix copies and moves across drives losing creation dates, tags, custom icons, permissions, and Locked and Hidden, on
folders too (82b7f6f, 6e04eb6, 75261bd, e4cb1e4, 9a51e4f, 249ce82, 9f6862a) - Fix copying a Locked file failing and leaving an undeletable temp file behind (eb10e06, 941e247, ee29321,
d3d272a) - Fix files with long names failing to copy or move, especially onto Synology shares (86c89ce, c14de08)
- Fix copies and zip edits on Finder-mounted SMB shares failing with "Couldn't flush destination to disk" (c03dbca,
d968321) - Fix copying a symlinked folder like ~/Dropbox to a NAS, phone, or server (1fd54c1)
- Fix copies from FAT, exFAT, and some SMB drives adding stray hidden
._files (3f47cad, 9b8419a) - Fix Finder refusing to open zips Cmdr made with folders inside (8d411b9)
- Fix large files on SMB shares timing out in the viewer, and files over 256 MiB refusing to open (f5c135b, b24eca2,
f49dd3d) - Fix Retry now, Cancel, and Disconnect doing nothing on a reconnecting server (95b16b3, f42387f)
- Fix adding a folder on a slow SMB server to favorites (309ac74, 066ee0e, b9522d8, 7cfb4ec, 9aad86d)
- Fix a crash when dragging some files from a phone or server to Finder (2f694e9)
- Fix a rare crash while rotating log files (8baff7e)
- Fix Cancel on a move's "file exists" prompt leaving the prompt on screen, contributed by Jiri Slovacek (af35957,
96f6695, 5986b9b) - Fix the error dialog naming a hidden temp file instead of the file it couldn't write (9dd8995)
- Fix a slow cancel claiming it's "finishing USB transfers" on SMB and local copies (6b3cb43, 50f61fe, cfc226a)
- Fix selection after copies: a ⌘A copy deselects files as they finish, and the other pane's files stay selected
(ac64cb4, c7ef21f, ffb6b6a) - Fix Space not closing Quick view, and ⇧Space closing and reopening it (039f8d1)
- Fix viewer zoom keys needing a click on the image first, contributed by Jiri Slovacek (0741561, f07c01e)
- Fix ⌘⌥ shortcuts like ⌘⌥R not firing on keyboard layouts where ⌥ types a symbol (debd848)
- Fix favorites and Go to folder landing on a remembered folder instead of a drive's or share's root (8205d72,
6542285, ef245b5) - Fix the copy dialog missing "into its own subfolder" on external drives, and refusing some cross-drive copies
(2c4892a) - Fix trusting a server's new host key rejecting its saved password (7462059)
- Fix an eject blocked by a background macOS process asking you to close files you didn't have open (c3111c7)
- Fix a file created as you open its folder staying missing until you navigate away (314eb0c)
- Fix a slow refresh occasionally showing an older listing over a newer one (abba69e)
- Fix a new local folder adding a phantom row to an SFTP pane (09164a0)
- Fix dialog buttons wrapping in longer translations (5363605, a23fc6d, f133618, b658512)
- Fix Voice Control not finding the function key bar, search chips, and Background buttons by their visible words
(19207e1, 9c6724c, 11487be) - Fix short toasts breaking mid-word, and tooltips drawing over open menus (bfd0c02, b7aadab)
- Fix password-protected or custom-port SMB shares mounted through GNOME on Linux opening the wrong folder (d00f6bf,
f26f1eb)
Security
- Keep Gatekeeper's quarantine on files extracted from a downloaded archive (792f15c)
- Keep private files and folders private while copying them (82b7f6f, 9a51e4f)
- Stop a tiny crafted
.xzor.zstarchive from reserving gigabytes of memory (4ee0701) - Update the network and SFTP libraries for upstream security fixes (6fe59c8, 287f74e)
Non-app
- Pin how copies preserve every metadata class with a test matrix that each fix flips (0f7ddfd, 6600e20, 0b55031,
e431847, b289e1f, 87eef5b, f27e8cf, 4dda6c3) - Extract the listing engine into its own Tauri-free crate (1646cc7, 733c4b6, 5ce7336, 357af15, c04f8cf,
fb8faed, 67d3e64) - Move to SvelteKit 3, Rust 1.99, Go 1.27.2, Vitest 5, pnpm 12, Tauri 2.12.2, and Svelte 5.57, and halve the git crate's
clean build (4538a46, fb29947, 90334fc, f44c721, 5011...