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, and nothing fires by accident.
Other expanders make you spell the trigger into every abbreviation. Expando keeps it in one place and swallows the key that fires it, so the Tab is never left behind 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, its fill-ins go with it{1}Capture groups, and{name}for named ones, when the abbreviation is a regular expression{random a|b|c}One of these, picked for you
A snippet can also be a shell command, an AppleScript, a JavaScript, or an instruction to Anthropic or OpenAI with your own key. All of those are off until you turn them on. The whole list is in the docs.
Your snippets, your machine
There is no account, because there is no server.
Your snippets live in plain, readable JSON in ~/Library/Application Support/Expando, backed up daily and kept for thirty days. Expando makes exactly three kinds of network call, and every one of them is yours to turn on.
- 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.
- Everything Expando can read it can also write: Expando JSON, a TextExpander group, CSV, plain text, Markdown. 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.
Every TextExpander macro and feature, and what Expando does about it
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.
- Secure Input held by another app is named in the menu, with a one-click relaunch of that app.
- 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 global shortcut another app already holds is found and moved for you.
ReadyWatching for its own abbreviations and nothing else.
Secure Input is heldThe menu says which app, and offers to relaunch it.
A permission is missingWhich one, and a link to the exact System Settings pane.
PausedTurned off in this app, or by you, until you say otherwise.
Pricing
A tool, bought the way a tool is bought.
One price for every Mac you own. No subscription, no account with us, and it keeps working whether or not you are online.
- Every Mac you own
- Free updates through this major version
- Works offline, and stays working offline
- 14 days free first, everything on
- 30-day refund, no questions
Sold by High5 Labs LLC through Paddle. Ask before it opens and the launch price is lower.
| Expando | A subscription expander | |
|---|---|---|
| Price | $29, once | $40 to $100 a year, per person |
| Account | None | Required |
| Where the snippets live | Your Mac, in readable JSON | Their cloud |
| Works with no network | Yes | Usually, until the license check |
| Stops working if you stop paying | No | Yes |
| Export | Five formats | Varies |
Not on sale yet. The people who ask first pay less.
Expando is finished enough to use and not finished enough to sell. Leave an address and you get the signed beta build before anybody else, and a launch price only this list gets. We'll email you when it opens.