A text expander for the Mac
Type less.
Say the same thing.
Type a short abbreviation, press Tab, and the whole thing appears: the follow-up with the date worked out, the signature, the paragraph you have typed a hundred times. Everything stays on your Mac.
macOS 15 or later, Apple silicon and Intel. 14-day trial, no account.
How it fires
One prefix, one key. Nothing fires by accident.
The trigger character is one setting for the whole app, and the key that fires a snippet is swallowed, so a stray Tab is never left in your text.
The prefix, typed once
A snippet is stored as sig. You type ;sig. The prefix lives in Settings, not on every snippet you own, and a snippet or a group can opt out or bring its own.
The abbreviation
Plain, or a regular expression with capture groups you can use in the expansion. Case-sensitive, case-blind, or adapting the output to how you typed it: sig, Sig, SIG.
The expansion key
Tab out of the box, because nothing else types a Tab mid-sentence. Space, Return, punctuation or any character can join it, app-wide, per group, or per snippet.
Tokens
Anything in braces is a token. Anything it does not recognize is a question.
Dates that do arithmetic, the clipboard with modifiers, one snippet inside another, keys pressed at the caret, and a form for whatever is left.
{cursor}Where the caret ends up{date +3d}Three days from now. Units: s m h d w M y, chainable{clipboard}Whatever you last copied{date +1w MMM d}Next week, in the shape you want{clipboard|trim|uppercase}Modifiers, chainable: trim, capitalize, titlecase, urlencode, jsonescape, firstline{time}Now, in any format{snippet:sig}Another snippet, by abbreviation or by name, eight deep{Name}A fill-in: the form asks before it expands{key return}A real key press at the caret, not a character{#Calendar}…{/}An optional section, ticked by default. Untick it and its fill‑ins go too
A snippet can also be a shell command, an AppleScript, a JavaScript, or an instruction to Anthropic or OpenAI with your own key. Scripts are off until you turn them on, and an AI snippet needs your own API key. The whole list is in the docs.
Your snippets, your machine
There is no account, because there is no server.
Your snippets live on your Mac in plain, readable JSON, backed up daily. Expando makes three kinds of network call, and you can turn off each one.
- What you type is held in a 64-character buffer in memory, written nowhere, gone when the app quits.
- Nothing expands in a password field, on the lock screen, or while another app holds Secure Input.
- Export writes Expando JSON, a TextExpander group, CSV, plain text or Markdown, so leaving is as easy as arriving.
Coming from somewhere else
Import, and keep typing what you already type.
Groups, labels, abbreviations, timing, case, fill-ins, scripts and formatting all come across. Macros turn into Expando's tokens where there is an equivalent and are flagged where there is not.
The import asks one question: keep your abbreviations firing exactly as they do now, or move them onto Expando's prefix and Tab. Keeping is the default, because changing every trigger in your library without asking would be the worst thing an import could do.
Reads
Writes
Import only ever adds. Duplicates are tagged, anything untranslated is tagged for review with a note, and a backup is taken before a single thing is written.
When it does not fire
Nothing silently does nothing.
The complaint every expander earns is "it stopped working" with no way to see why. Expando shows the reason where you are looking: the menu bar changes state, the menu names the app responsible, and every attempt is in a log you can read.
- When another app holds the keyboard for a password, the menu names it and offers a way to release it.
- A completed abbreviation followed by the wrong key is recorded as a near miss and said in as many words.
- Two snippets on one trigger, or a short one shadowing a longer one, are flagged in the list with the fix.
- A shortcut another app already holds is found, and a free one is offered.
Expanding in every appWatching for its own abbreviations and nothing else.
Paused for a passwordThe menu names the app holding the keyboard, and how to release it.
Waiting for a permissionWhich one, and a link to the exact System Settings pane.
Expansion is offTurned off in this app, or by you, until you say otherwise.
Pricing
One price, paid once.
One price for every Mac on your Apple ID. No subscription and no account, and it works offline.
- Every Mac on your Apple ID
- 2 years of free updates
- Works offline
- 14 days free first, everything on
- 14-day refund, no questions
Sold by High5 Labs through Paddle. Get the newsletter to hear the day it opens.
| Expando | TextExpander | |
|---|---|---|
| Price | $33 once | $60–$120 a year |
| Account | None | Required |
| Snippets | On your Mac | In their cloud |
| Stop paying | Keeps working | 5 snippets stay on |
Hear what’s new.
The Expando newsletter: the day it opens for sale, new features as they land, and the occasional discount. Every email has a one‑click unsubscribe.