Best text expanders for Mac and Windows, free and paid
Start with the Mac’s built-in Text Replacements, then choose Espanso, AutoHotkey, Raycast, TextExpander or Keyboard Maestro by system, price and what you need.

The short versionOn a Mac, start with Text Replacements in System Settings, which is free and syncs through iCloud but only swaps one fixed text for another. For more, choose by need: Espanso (free, Mac, Windows and Linux), AutoHotkey (free, Windows), Raycast’s free snippets if you already use it, TextExpander (Pro $60 a year) for sync across every device and teams, or Keyboard Maestro ($36 once) for Mac macros.
On a Mac, start with Text Replacements in System Settings: it’s free, it’s built in and it syncs to your iPhone, though each entry only swaps one fixed text for another. When you need more, pick by what you need rather than by a ranking. Espanso is free on Mac, Windows and Linux. AutoHotkey is free on Windows. Raycast’s free plan has snippets if you already use it as a launcher. TextExpander, at $60 a year for Pro, syncs to every device and shares with a team, and Keyboard Maestro, $36 once, runs Mac macros that go well beyond text. Every price and feature here was checked on October 28, 2026, on the makers’ own pages, for macOS 27 Golden Gate and Windows 11.
What a text expander does
A text expander watches what you type. When it sees an abbreviation you’ve set up, it deletes it and types the full text in its place. Type ;addr and your mailing address appears, in an email, a form, a chat or a document: anywhere there is a text cursor.
The saving is easy to count. “Thanks for getting in touch. I’ll reply by the end of the day.” is 62 characters; as ;ty it is three keystrokes. Most expanders can also fill in part of the text each time:
- today’s date or the time;
- whatever is on the clipboard;
- where the cursor lands once the text is in;
- a field you fill in before the text goes in, such as a name.
For something you copied a minute ago, clipboard history is the faster tool: Win+V on Windows (row 13 of the Windows Shortcut Sheet), or Cmd+Space then Cmd+4 in Spotlight on a Mac. A snippet is for the text you will type again next week.
Start with what’s built in
Text Replacements on a Mac
Every Mac has a simple text expander in System Settings. To add an entry:
- Choose Apple menu > System Settings, then click Keyboard in the sidebar (you may need to scroll down).
- Click Text Replacements.
- Click the Add button, type the abbreviation and the text to replace it with, then click Add.
- Click Done.
iCloud keeps your text replacements up to date on your other Apple devices, as long as iCloud Drive is set up and the same Apple Account is signed in on each. To back them up or move them to another Mac, select them in the Text Replacements window and drag them to the desktop: Apple’s guide to backing up and sharing text replacements says that makes a file named “property list.plist”, which you drag back onto the window on the other Mac.
The limits are where the apps begin. Apple’s Text Replacements guide says text replacements aren’t available in all apps. Each entry is one fixed text: there are no fill-in fields, no dates and no say over where the cursor lands.
On Windows: nothing like it
Windows has no text-replacement setting. The closest Microsoft tool is Keyboard Manager in PowerToys, Microsoft’s free utilities on the Kit: it can send a line of text when you press a shortcut, such as Ctrl+G, but not when you type an abbreviation, and only while PowerToys is running. For abbreviations on Windows, use one of the free apps below.
If you already use a launcher
Raycast’s free plan includes snippets, on Mac and Windows. Search for Create Snippet, give the snippet a keyword, and typing that keyword in any app replaces it with the text. Raycast’s dynamic fields add the date, the time, the clipboard, the cursor position and an argument that asks you for a value. Alfred’s snippets come with the Powerpack (£34 once), in plain or rich text, with dynamic fields for the date, the time, the clipboard and the cursor; expansion by keyword stays off until you turn on “Automatically expand snippets by keyword”. If you are still choosing a launcher, Raycast vs Alfred vs Spotlight compares the three.
The picks, by what you need
Free on Mac, Windows and Linux: Espanso
Espanso is free and open source, under the GPL-3 license, and runs on Windows, macOS and Linux. Its snippets, which it calls matches, live in plain text files: a trigger and the text that replaces it, in a file named base.yml. That makes Espanso more work to set up than an app with a window, and easy to carry from one system to another.
What you get for editing a file:
- forms, which ask for fields such as
[[name]]before the text goes in, with text, choice and list boxes (Espanso’s forms guide has examples); - a date variable, several triggers for one match, and an option that carries your capitals into the expansion;
- rich text, written as Markdown or HTML;
word: true, which expands a match only when it stands as a word of its own;- a search bar on Alt+Space (Option+Space on a Mac) for finding a snippet whose trigger you’ve forgotten.
Espanso has no sync of its own. Its documentation suggests moving the configuration folder into Dropbox or Google Drive and leaving a symbolic link where it was.
Free on Windows: AutoHotkey
AutoHotkey is a free, open-source scripting language for Windows, and its hotstrings are text expansion in one line. Put ::btw::by the way in a script, run it, and typing btw becomes “by the way”.
By default a hotstring waits for an ending character (Space, Enter, Tab or punctuation) before it fires, and doesn’t fire when the abbreviation follows a letter or a digit. The * option drops the ending character and ? lets it fire inside a word, both described in AutoHotkey’s hotstrings documentation. Hotstrings work while the script runs, so add it to your startup apps. AutoHotkey is the right pick if you also want to remap keys or build hotkeys, since the same script does all three.
Sync everywhere, and share with a team: TextExpander
TextExpander runs on Mac, Windows, Chrome, iPhone and iPad, and syncs snippets on every plan, the free one included. Its fill-ins cover single-line and multi-line fields, a date picker, popup menus and optional sections, and snippets can be plain or formatted text.
The plans, from TextExpander’s pricing page:
- Free: five snippets active at once, with one swap every two weeks;
- Pro, $60 a year: no limit on active snippets, plus dynamic content such as date math;
- Business, $120 a year per user: unlimited team members, snippet requests and guest sharing.
Five active snippets is a trial, not a working library, so TextExpander makes sense when the sync and sharing are what you’re paying for: a support team answering with the same replies, or one person on three systems and a phone.
Macros on a Mac: Keyboard Maestro
Keyboard Maestro is a Mac automation app at $36 once (version 11, macOS 10.13 or later, with a free trial). For text, a Typed String trigger runs a macro when you type a string, and the Insert Text action types or pastes the text, styled if you like, with tokens for the date. Its Prompt for Snippet action asks for fields before the text goes in.
You’d buy it for what comes after the text: the same macro can open an app, work through a website and then type the text. If you only need snippets, the free picks above do that. Macros sync between Macs through a sync file kept in Dropbox or a similar folder.
Side by side
| Checked October 28, 2026 | Runs on | Price | Fill-ins and dynamic text | Rich text | Sync |
|---|---|---|---|---|---|
| Text Replacements | Mac, with iPhone and iPad | Free, built in | None | No | iCloud |
| Raycast snippets | Mac, Windows | Free; sync with Pro, $8/month billed yearly | Date, time, clipboard, cursor, argument | Not always kept | Cloud Sync with Pro, Mac only so far |
| Alfred snippets | Mac | Powerpack, £34 once | Date, time, clipboard, cursor | Yes | Alfred’s settings sync, via a synced folder |
| Espanso | Mac, Windows, Linux | Free, open source | Forms, date, choice and list fields | Markdown or HTML | Config folder in Dropbox or Drive |
| AutoHotkey | Windows | Free, open source | With a few lines of script | No | None built in |
| TextExpander | Mac, Windows, Chrome, iPhone, iPad | Free for 5 active snippets; Pro $60/year | Fields, date picker, popups, optional sections | Formatted text | Built in, every plan |
| Keyboard Maestro | Mac | $36 once | Prompt for Snippet fields, date tokens | Yes, by pasting | Macro sync file in Dropbox |
Prices are in US dollars, except Alfred’s, which Alfred sets in pounds. Every app in the table, apart from the built-in Text Replacements, is on the Kit, with the systems it runs on.
Name abbreviations so they never fire by accident
An expander fires the moment it sees its string, so an abbreviation that is also a word, or part of one, goes off in the middle of a sentence. Keyboard Maestro’s Typed String trigger documentation gives the classic case: a trigger of “em” fires inside “them”, which is why it suggests “=em=” instead. A few rules keep that from happening:
- Start every abbreviation with a character words never start with. A semicolon is the easiest: on a US layout it sits on the home row, right of L, under your little finger. Raycast’s snippets manual suggests
!,;;or//, and Espanso’s examples start with a colon. - Use one prefix for everything. Then you only remember the word after it, and
;addr,;sigand;mtgread like what they type. - Never let one abbreviation start another. With
;addand;addr, an expander that fires as soon as it sees a match will turn;addinto text before you reach the r. - Let it wait for the end of a word. AutoHotkey does by default; in Espanso,
word: truedoes the same for a match. - Keep expansion out of password fields. Raycast ships with 1Password and Keychain Access on its list of apps where snippets don’t expand, and Alfred skips secure fields.
Tip: when an expansion comes out wrong, delete it a word at a time with Option+Delete on a Mac or Ctrl+Backspace on Windows, two of the text-editing shortcuts that work in almost every app.
Your first ten snippets
Make a snippet the second time you type the same thing in a week, not before. If you need a place to start, try these ten:
;sig: your sign-off and name, for the places that don’t add a signature, such as chat and web forms.;addr: your mailing address, on as many lines as you need.;mail: your work email address, for forms and introductions.;ph: your phone number, written the way you want people to dial it.;mtg: the link to your video meeting room.;date: a field that fills in today’s date, rather than fixed text, so it’s right every day.;ty: the line that tells someone you’ve got their message and when you’ll reply.;fu: a follow-up with a fill-in for the person’s name and the thing you’re following up on.;intro: two lines on who you are and what you do, for a first message.- A fix for the typo you always make, such as teh for the. It is the one entry that needs no prefix, because the typo is never a word you want.

What never goes in a snippet
Some text should never be one abbreviation away:
- passwords, PINs, recovery codes and one-time codes;
- card numbers, bank details and government ID numbers;
- API keys and access tokens.
The reason is where snippets live. Espanso keeps them in plain text files, Text Replacements syncs through iCloud, TextExpander syncs snippets on every plan, and Raycast’s Cloud Sync carries them between computers. A team library reaches everyone in the team. And an expansion types into whatever window is in front, so one slip puts it in a chat. A password manager fills secrets only into the field they belong to, which is the job a text expander was never built for.
Text that changes, such as prices or a returns policy, can go in a snippet, as long as one person owns keeping it current. More ways to hand the repetitive part of the day to the computer are in Automation.
Questions
Does a Mac have a built-in text expander?
Yes: Text Replacements, under System Settings, Keyboard, Text Replacements. Each entry turns a short string into a fixed text, it’s free, and iCloud keeps the list up to date on your other Apple devices. Apple notes that text replacements aren’t available in all apps, and there are no fill-in fields, dates or cursor placement; for those you need an app.
Is there a free text expander for Windows?
Yes. Espanso and AutoHotkey are both free and open source, and Raycast’s free plan includes snippets on Windows too. Windows itself has no text-replacement setting: Microsoft’s PowerToys Keyboard Manager can send a line of text when you press a shortcut, but not when you type an abbreviation.
Is TextExpander worth paying for?
It is if you need the same snippets on a Mac, a Windows PC, Chrome and an iPhone, with fill-in fields, or a team sharing one library: that is what it’s built for. Pro costs $60 a year and Business $120 a year per user. If it’s just you on one or two computers, Espanso or Raycast’s free snippets do the job, and TextExpander’s free plan (five active snippets) lets you try it first.
Is it safe to keep passwords in a text expander?
No. Snippets are kept as ordinary text, often synced to the maker’s servers or a cloud folder, and an expansion types into whatever window is in front. Keep passwords, card numbers and recovery codes in a password manager, which fills them only where they belong.
Sources
- Replace text and punctuation in documents on Mac, Apple Support
- Back up and share text replacements on Mac, Apple Support
- Remap keys and shortcuts with PowerToys Keyboard Manager, Microsoft Learn
- Forms, Espanso
- Pricing, TextExpander
- Hotstrings, AutoHotkey
- Typed String trigger, Keyboard Maestro Wiki
- Snippets, Raycast Manual
- Snippets, Alfred Help
spaceShortcut Sheets: the twenty keys to learn first in each appFind your app