Zmina
Get Zmina

Changelog

What's new in Zmina.

Every release and notable change, in one place. Follow by RSS, or get an email when a release ships. No account either way.

Zmina 1.4

Zmina 1.4 gives copied files a preview. History and Smart Paste now show you what a file is, instead of a path: pictures and documents appear as a thumbnail, and most text files show their text, with secrets masked.

  • A single file appears under its own name, and shows its size when it is still where you left it. It used to read “1 file”.
  • Copying several files lists each one by name, with its size and a thumbnail where Zmina can show one.
  • A long text file shows its beginning and says so, with a button to open the whole file.
  • A file that changed after you copied it, or one on another drive, says so and offers to read it.
  • A file that is no longer where you copied it, or that Zmina could not read at all, says so instead of showing only its path. One Zmina is not allowed to read says so too, and suggests copying it again.

Screenshots that are also saved to a file

Screenshots copied from apps like CleanShot X now show as pictures, with the picture actions offered on them. Pasting one back gives both the picture and the saved file, while that file is still there. History names the saved file and says when it is gone.

Site-aware suggestions in Chrome and Edge

Zmina now recognizes which site you copied from in Chrome and Edge. Only Safari was recognized before, so a copy from a site Zmina knows got general suggestions instead of the ones that site calls for. This applies to what you copy or open from now on.

Copying from Word, Excel or PowerPoint on the web also gets suggestions shaped for that app now, whether you opened the file from the Office start page or from OneDrive.

Also changed

  • “Convert to Markdown table” now joins a cell that contains line breaks into a single line, and says how many cells it joined. A table row ends at the line break, so the cell cannot carry one.

Also fixed

  • A copy from a spreadsheet where a cell contains a line break now converts as one row. The cell used to split at the break, sliding the rest of the row into the wrong column.
  • “Convert to Markdown table” is now offered for spreadsheet copies holding a cell with line breaks. Zmina used to miss them.
  • A copy from Numbers or Google Sheets now keeps a quotation mark inside a cell, such as an inch mark after a number. It used to swallow the rest of the row.
  • A private key copied without its last lines, such as one cut short, shortened with ”…”, or quoted in a reply, is now recognized as a secret: it is masked, and “Redact secrets” removes it. This applies to keys you copy or open from now on.
  • “Redact secrets” no longer deletes the text between a cut-short private key and a complete one later in the same copy, unless that text could still be part of the cut-short key.
  • A copy from Google Sheets or Google Slides is now recognized as coming from that app, rather than from Google Docs. Pasting into a Sheet no longer offers “Convert to Markdown table”.
  • Messenger is now recognized at its Facebook address, where Meta sends you since it retired messenger.com.
  • Pasting a copy of several files, after one of them was moved or deleted, no longer adds a second entry to your history.

Privacy

  • Viewing a copied file in History or Smart Paste now reads the file to show its preview, and a picture is drawn from a temporary copy that Zmina deletes when it is done. Choosing “Load preview” on a file that changed since you copied it, or on one on another drive, may ask for your permission to read it.
  • Zmina now records a file system identifier for up to 12 files in each copy, only for files on the startup disk, so it can tell later whether a copied file is still the same file. It does not store the files’ contents, and nothing leaves your computer.
  • A screenshot copied from an app that also saves it as a file, such as CleanShot X, is now kept in your history as a picture, like any other copied picture. Zmina used to keep only where the file was saved.

Free for anyone still in the trial, and free for everyone who already bought Zmina. Update from inside the app, or download 1.4.

Zmina 1.3

Zmina 1.3 keeps shapes, equations and other objects you copy from apps like PowerPoint, Keynote and Pages. Paste one back from History and you get the original object, still editable, instead of a flat picture. Objects Zmina used to skip entirely now appear in History.

  • History and Smart Paste show a picture of the object, so you can tell one clip from another. ⌥↵ pastes that picture on its own when you want the flat version.
  • A few objects carry nothing Zmina can draw. Those show a card naming the app they came from.
  • Some objects also carry text, such as the formula behind a Keynote equation. Zmina reads it, so search finds the clip by its text, and the usual text actions are offered on it. Applying one leaves the object alone and saves the result as a new text clip, so ↵ still pastes the object.
  • Where Zmina could draw the object, the actions list also offers “Save picture as .png file”, “Paste picture as .png file” and “Open in viewer”. Each one works on the picture, not the object.
  • An object takes more room on your disk than a piece of text does, and History shows you how much when you open one. An object too large to keep whole is kept as a picture instead.

Currency amounts

Zmina now recognizes currency amounts in the text you copy, such as $1,234.56, 1.234,56 €, EUR 300 and CHF 1’234.56. History marks a clip that has them, and typing has:money in search finds those clips. A clip already in your history picks this up when you open it.

Five actions come with it:

  • “Sum amounts” totals the amounts, one line per currency. It never converts between currencies.
  • “Mask amounts” replaces every figure with its marker and three stars, leaving nothing of the number.
  • “Extract amounts” rewrites the clip to the amounts alone, one per line.
  • “Strip currency markers” turns each amount into the plain number a spreadsheet will take.
  • “Amounts as 1,234.56” and “Amounts as 1.234,56” switch a whole list between the two ways of writing amounts. Only the digits move. The markers, spacing and signs stay as they are.

New actions for copied text

  • “Clean up formatting” replaces what Word, PDFs and web pages leave behind with plain keyboard characters: curly quotes and apostrophes, hyphens and dashes that are not the ordinary one, the single-character ellipsis, letter pairs a PDF copy fuses together, and non-breaking or odd-width spaces. It also removes invisible characters, such as zero-width spaces and soft hyphens. It leaves en and em dashes as they are.
  • “Replace em dashes with -” turns long dashes into ordinary hyphens and tidies the spacing around them. “Clean up formatting” leaves long dashes alone, so use this one when you want them gone.
  • “Remove leading indentation” takes the margin off text copied from a terminal or a chat window, where every line starts with the same few spaces. It removes only the indentation the lines have in common, so anything nested inside keeps its shape.
  • “Remove quote prefixes” strips the quote markers off text copied from an email reply, a Markdown quote or a terminal pager: the ”>” in front of a quoted message, and the vertical bars some tools draw down the left edge. Lines that were not quoted stay as they are. Where those characters are the content rather than a margin, such as in a Markdown table or a directory tree, the action stays away entirely.
  • A new action takes the spaces and dashes out of a number or code written on one line, for a form that will not accept them: a card number, a phone number, an IBAN, a license key, a one-time code. It is named for what it will take out, so it reads “Remove spaces”, “Remove dashes” or “Remove spaces and dashes”. Ordinary writing, dates, command-line flags, negative numbers and ranges are left alone.

Paste as a file from History

History can now paste a clip into another app as a file, the way Smart Paste already could. Where the app you are pasting into accepts attachments (Slack, Discord, Mail and the like), the actions list offers “Paste as .txt file”, a typed variant named after what the clip is, such as “Paste as .json file”, and, for an image, “Paste as .png file” or “Paste as .jpg file”. Long text prefers the file over pasting inline. Apps that cannot take an attachment, such as a terminal or an editor, are not offered it, and neither is it offered before you have allowed Zmina to paste for you.

Also changed

  • “Summarize numbers” reads a list written the European way. A clip of 1,50 and 2,50 and 1.234,56 now summarizes as the three numbers it is, instead of six. Text where the reading is ambiguous is unchanged.
  • The “Purge secrets on quit” setting now says what Zmina can and cannot find for you. It marks the secrets it reads in an item’s text, so a secret inside a copied object is one to mark yourself, and a picture cannot be marked at all. What the setting does is unchanged.

Also fixed

  • “Deduplicate lines” treated a blank line as a line worth removing, so it offered itself on ordinary writing that only had paragraph breaks. Blank lines are now left alone, so the action appears only where something really is repeated. A gap can widen where a repeated line came out from between two blank lines.
  • In History, queueing only a save action on a text clip, such as “Save as .txt file”, made the clip’s text disappear from the preview. The text now stays on screen, and the line above it says “original” rather than “result”.
  • The D hint, which switches the preview between the result and a diff, was offered even where there was nothing to switch to. In History and Smart Paste it is now dimmed until the actions you have queued produce text. In Smart Paste, pressing D while it was dim also changed the view, so the next preview you opened appeared as a diff for no clear reason.
  • The scrollbar in History measured only the clips it had loaded, so on a long history it shrank and slid upward every time you scrolled far enough to load more. It now measures your whole history and stays put as you scroll. While you search, it still describes what has loaded.
  • A failed update showed only a “Try again” button. It now says whether Zmina could not reach the update server, the download did not finish, or the new version could not be installed, and says so where your installed copy is untouched.
  • An update check that stalled on a bad connection, such as a captive portal or a VPN that had dropped, could block every later check until Zmina was relaunched. A stalled check or download now gives up after a short wait and reports the error.
  • Entering a license on the trial-expired screen closed the window with no word either way. It now confirms the activation, naming the plan and the address it is registered to.
  • Summoning Smart Paste or History over a browser that was briefly not responding could take a second or more. Reading the page address now gives up after a fraction of a second.
  • If Zmina’s history database could not be opened or upgraded at launch, for example a damaged file or a disk that filled up during the upgrade, Zmina quit silently. It now explains what went wrong and where the file is before it quits.
  • Pasting or copying from Zmina just before the Mac went to sleep, or across a clock correction, could leave a duplicate of that clip in History. Zmina now recognizes its own writes on wake too.
  • Clicking the paste button in Smart Paste a second time while a slow transform was still running could paste the result twice. The second click is now ignored.
  • Clearing a large history, or the hourly cleanup on one, could freeze the History window while it caught up. It now catches up in a single step.
  • “Export my history” built the whole export in memory before writing it, so a very large history could bring Zmina down partway through. It now writes clip by clip, and a failed export no longer leaves a half-written file under the name you chose.
  • A History window left hidden for a long stretch kept every clip captured in the meantime in memory, and slowed a little with each one. It now keeps only as much as it shows.
  • Launching Zmina after a long stretch unused, with automatic history cleanup on, could leave it with no menu bar icon while it cleared out old clips. The cleanup now runs in the background and Zmina is ready straight away.

Free for anyone still in the trial, and free for everyone who already bought Zmina. Update from inside the app, or download 1.3.

Zmina 1.2.1

Zmina 1.2.1 is mostly about how windows open.

  • Windows could flash white when they opened. They now show their background color from the first frame. If a window takes longer to load, you will see a spinner instead of an empty window.
  • History opens right away. It used to sit empty for about half a second first. If it loads slowly, you now get the search bar, list and footer while your items are still loading.
  • Smart Paste could flash the Zmina logo for a moment as it opened. It doesn’t anymore.

Zmina also reads three things correctly that it used to get wrong:

  • A file path with an @ in it is not an email address. Copying something like resources/tray/icon@2x.png used to make Zmina think the item held personal information, so it offered to anonymize it or pull the addresses out of it.
  • Zmina now recognizes code you copy from Signal or Messages. Short snippets used to get no actions at all, and longer ones could offer to remove duplicate lines.
  • Zmina now recognizes LibreOffice Calc. It reads a copied range as a table, so the table actions show up. It still does not recognize a spreadsheet you have never saved to a file.

Also in this release:

  • An image’s dimensions and file size now show on its History row, in the bar above the selected image, and in the Smart Paste header. Smart Paste used to show them only under the thumbnail, and History only while an action was waiting to run.
  • Zmina could quit silently right after launch if you had a license but had never accepted the license terms. It now shows you the terms instead.

Free for anyone still in the trial, and free for everyone who already bought Zmina. Update from inside the app, or download 1.2.1.

Zmina 1.2

Zmina 1.2 recognizes around 70 more apps, on the desktop and on the web:

  • Notes: Apple Notes, Evernote, OneNote, Google Keep, UpNote, Logseq, Joplin, Craft, Anytype, Simplenote and more
  • Markdown writing: iA Writer, Ulysses, Zettlr, Byword, MWeb
  • Spreadsheets: Excel, Airtable, LibreOffice Calc
  • Chat: Telegram, Zulip, Element, Rocket.Chat, Google Chat, Messenger, Viber, LINE, WeChat, KakaoTalk, Zoom, Keybase, and the AI assistants
  • Mail: Spark, Superhuman, Missive, Thunderbird, Proton Mail, HEY, Fastmail, Canary Mail and more
  • Also Bitbucket

Paste into one of these and Zmina suggests actions that app can show, like a code block or a markdown table. Apps it did not recognize got none of those. Text you copy from one of these apps is read with that app in mind too, so Zmina may label it differently and suggest different actions than before.

Esc now closes the History window and puts you back in the app you were using. Your search, filters and place in the list are still there next time you open it. Esc from the search field or the action panel goes back to the list first, and ⌘W still closes History right away. ⌘W and the close button used to leave Zmina in front with nothing on screen, so your typing went nowhere until you switched apps yourself. They put you back in your app now too.

Faster and smaller

  • The installed app is about a quarter smaller. The download is a bit smaller too.
  • Each window now loads only its own interface, so windows open faster and use less memory.
  • Smart Paste no longer waits for a large History search to finish before it opens, and it stays responsive on very large clipboard items.
  • Typing and moving through the History list stay smooth while a very large item is selected, and holding an arrow key through the list no longer analyzes every row it passes.

Also fixed

  • Smart Paste did nothing when you had not copied anything yet, so the shortcut looked broken. It now opens and tells you what to do, including when your clipboard was filled before Zmina started.
  • Smart Paste could open empty, usually when you summoned it right after Zmina started. It now opens on the item you copied. If it cannot read your history, it says so instead of doing nothing.
  • Some apps Zmina already knew stopped being recognized: Numbers and Pages after Apple renamed them, and Beeper, Tana and Writerside because they install under a longer name than the one they advertise. All of them are recognized again.
  • A web address that only mentioned another site, in a redirect link for example, could make Zmina think you were on that site, so the suggestions were for the wrong app. Zmina now reads the site the page is actually loaded from.
  • A window title ending in something that looked like a filename, such as an issue called “Fix crash in main.py”, made Zmina read your copied text as that language. Only apps that edit files are read this way now.
  • Code copied from a markdown file was labelled “markdown”, so putting it in a code block produced a fence named markdown instead of the snippet’s real language. In Zed and the JetBrains IDEs, Zmina could not tell which file you were in, so the code block and markdown table suggestions were missing while you edited a .md file.
  • Copying from a browser that has stopped responding no longer stalls clipboard capture for minutes.

Privacy

  • Redacting a secret left part of it in the text, even though Zmina said it worked. Only the first 36 characters of a GitHub installation token were covered, and current OpenAI keys were usually covered only up to the first dash or underscore inside the key. Both are covered in full now.
  • More kinds of credentials are recognized as secrets in items you copy or open from now on: GitHub user access tokens, OpenAI service account and admin keys, temporary AWS session credentials, GitLab routable tokens, Slack app-level and rotation tokens, Stripe webhook signing secrets, and Docker organization access tokens.
  • In History, a secret now stays fully masked when the text before it contains curly quotes, emoji or accented letters. Before, the mask could slide and leave the start of the secret readable.

Free for anyone still in the trial, and free for everyone who already bought Zmina. Update from inside the app, or download 1.2.

Zmina 1.1

Zmina 1.1 adds editing. The Smart Paste popup can now change the text before it lands: press ⌘E (or click the edit hint), make your change, and save with ⌘↵ (or ⌘S). The item you copied stays untouched. The edit is stored as a new history item linked to it, and it is what goes on your clipboard, so ⌘V, the popup, and the next summon all mean the edit. Suggested actions refresh to match the new text.

Unsaved text survives the popup going away. Switch apps or close the popup mid-edit and the next summon reopens the editor with your typing intact. The draft lives until your next copy replaces it, and Esc inside the editor is the one gesture that discards it.

Also in this release:

  • Pressing the Smart Paste shortcut while the popup is already open now puts it away instead of resetting it. Press again and it returns with your queued actions and any unsaved edit intact.
  • History advertises editing: a ⌘E hint sits beside the view controls on editable items, and the save and cancel hints in both edit footers are now clickable buttons.
  • Fixed: in History, clicking empty window chrome while editing an item no longer silently discards everything you typed.
  • An edit saved from the popup keeps the “marked as secret” flag of the item it came from, so edited copies of secret items stay covered by the same purge rules.

Free for anyone still in the trial, and free for everyone who already bought Zmina. Update from inside the app, or download 1.1.

Zmina 1.0

Zmina 1.0 is out. Being the first release, there is nothing to compare it against: all of it is new. So rather than list it here, the site covers what it does, from Smart Paste and History down to the full catalog of actions.

macOS 14 or later. Free for 14 days, then $35 once, with every future update included.

Nothing you copy leaves your Mac. No account, no telemetry, no trackers, the same as the site.

The Zmina site is live

The public Zmina site went live today. It includes the first interactive Smart Paste demos, the feature breakdown, and the launch waitlist.

Like the app itself, the site runs with no analytics and no trackers of any kind.