How to Create Text Macros on Your Mac
Learn how to create text macros on Mac without writing code. Build macros that insert dates, fill in templates, transform text, and automate repetitive typing.
A macro is just a small automation. You press a button (or type a trigger), and something happens that would otherwise take multiple steps. On a Mac, the most practical macros are text macros: type a short abbreviation, and it expands into something useful.
You don’t need Automator, AppleScript, or a computer science degree. A text expansion app handles the heavy lifting.
The simplest macro: static text
Start here. Pick something you type all the time and turn it into a snippet.
In TypeSnap, you’d create a new snippet, set the trigger to something like ;addr, and set the content to your full mailing address. Now every time you type ;addr, the address appears. That’s a macro.
A few starter ideas:
;emailfor your email address;phonefor your phone number;zoomfor your recurring Zoom link;sigfor your email signature
These are simple but they add up. If you type your email address five times a day, that’s 1,800 times a year you’re doing it the hard way.
Date and time macros
Static text is a starting point, but macros get interesting when they’re dynamic. TypeSnap’s date macros let you insert dates that calculate themselves:
Today is {{date}}inserts the current dateDue by {{date+14d}}inserts a date two weeks from nowMeeting on {{date format="EEEE, MMMM d"}}inserts something like “Tuesday, February 18”
This is useful for invoices, meeting notes, project updates, and follow-up emails. The date is always correct because it’s calculated at the moment you expand the snippet.
Fill-in macros
Sometimes you need the same template but with different details each time. Fill-in fields handle this.
Say you send a lot of follow-up emails after meetings. You could create a snippet with the trigger ;followup:
Hi {{field:Name}},
Thanks for the meeting today. As discussed, here are the next steps:
{{field:Next steps}}
I'll follow up on {{date+7d format="EEEE, MMMM d"}} if I haven't heard back.
Best,
Aaron
When you type ;followup, TypeSnap prompts you to fill in the name and next steps before expanding. The date calculates itself. You get a polished email in a few seconds instead of a few minutes.
Clipboard macros
TypeSnap can pull in your clipboard contents and use them inside a snippet. This opens up a whole category of macros.
Copy a URL, then type a trigger that wraps it in a Markdown link:
[{{field:Link text}}]({{clipboard}})
Or copy someone’s name and expand a greeting:
Hi {{clipboard}}, thanks for reaching out!
The clipboard becomes an input to your macro, which means you can build two-step workflows: copy the thing, then trigger the expansion.
JavaScript macros (for when you need real logic)
If you outgrow the built-in features, TypeSnap supports JavaScript snippets. These can do things like:
- Generate a random UUID
- Format a phone number from your clipboard
- Calculate business days between two dates
- Convert text to uppercase, lowercase, or title case
- Build a Markdown table from comma-separated input
You write the JavaScript directly in the snippet editor. When the snippet fires, the script runs and its output gets inserted.
This is the “no limits” option. If you can write it in JavaScript, it can be a macro.
Macros that only fire in specific apps
Not every macro makes sense everywhere. A code review template belongs in your browser or GitHub Desktop, not in iMessage.
TypeSnap lets you restrict snippets to specific applications. A snippet for inserting HTML boilerplate only triggers in your code editor. A canned support reply only triggers in your email client. Everything else stays out of the way.
Getting started
The best approach is to start small. Pick three things you type repeatedly and make them into macros. Use them for a week. Once you see how much time they save, you’ll naturally start creating more.
TypeSnap runs entirely on your Mac with no subscription and no cloud dependency. Your macros stay on your machine.
What to read next
- Date & Time Macros: Dynamic Snippets That Stay Current - deep dive into date formatting
- JavaScript Snippets: Programmable Text Expansion - for when you need full logic
- Fill-In Fields: Snippets That Ask Before They Expand - interactive templates
Stop typing the same things over and over
TypeSnap expands your snippets instantly. One-time purchase, no subscription.