February 2022 Software of the Month — Typinator

I suggest this thread would focus on Typinator as the “February 2022 Software of the Month” topic, but because the are lots of other options in the “text-expansion” category, then please add your thoughts about TextExpander, Espanso, aText, Keyboard Maestro, and the expansion features Apple provides in macOS / iOS / iPadOS.

“Text Expansion” and more

I think putting these products into a single category, text-expansion, might have been accurate a number of years ago but that description in most cases is too limiting. I’ve used all the products listed above, apart from Espanso, and other than the Apple text-expansion features the modern versions provide a bundle of services. Typinator, TextExpander, KM and aText share a core feature set, and then each have features that do not overlap with the others. It’s an interesting space.

Typinator’s Features

Here are Typinator’s features (from the product link, above):

Why Typinator?

This is my personal opinion. I prefer Typinator for these reasons:

  • It’s not subscription
  • It’s Mac-only — seems like an odd reason to prefer, but I’ve see the developer, Ergonis, state that macOS is their only platform and will not develop for iOS. Never say never, but I like that sure focus on the platform I use the most.
  • The Typinator control window is compact but full of robust features. It’s a lot less fussy than Keyboard Maestro. (Not disparaging KM — on the whole it is vastly more feature rich than Typinator — I’m just focusing here on the case where Typinator and KM have overlapping function.)
  • It is highly reliable. In 10 years I have never experienced a Typinator crash.
  • For “expansion” macros that incorporate either input dialogs or code snippets (Applescript or other), or both, it is really easy to create these in Typinator. I can explain more in a later post.

I’m a big fan of Typinator. It’s fast, reliable and has top customer support. I’m baffled it’s never been mentioned on MPU (at least not in my knowledge). More people need to know about it.

1 Like

I use Typinator for exactly the same reasons. I’m only using 10 % of the applications functionality but I’ve been a paying upgraders since version 3 and I know if Egonis says they have a feature. I know it works reliably and I can use it when I’m ready.

I imagine it will become super powerful when I learn how to leverage scripts. I used to worry about iOS but the reality is most apps I need to automate text in tend to have Mac and iOS versions so I just do the heavy lifting on the Mac side.

Another thing I do is simply use keyboard text replacement to duplicate my most basic Typinator shortcuts


Love Typinator and been using it for years. I probably am not using it to its full capacity. I would appreciate folks sharing some of the “coolest” or “most nuanced” workflows with Typinator. It just works for me.

One of the main ways I use Typinator is in terms of HTML code. I do almost everything in markdown (to later be converted into HTML by my webdesign app) but markdown is not complete for all things I need. I would never remember HTML … but I easily remember the shortcut setup for inserting an image at xx%, for example.


Moved to Typinator from Keyboard Maestro in terms of text snippets. I don’t have a thousand of snippets, but to manage it in Keyboard Maestro is not so speedy compared to Typinator.


I switched to Typinator many months ago because of Text Expander crashes, and was pleasantly surprised by its speed. Expansion is almost instant.

One side benefit of switching text expansion tools is it can inspire you to dive into your usage, and use features that may have also been in the previous tool you used, but that you previously ignored. With Typinator, I am embedding snippets in other snippets, which I had largely forgotten about in Text Expander. For example, I have a few snippets that refer to my firm’s various offices, and instead of redoing that portion of the snippet each time, I made a separate snippet with this info, and embed it in new snippets.


I also switched from TextExpander to Typinator. My main reason for the switch was Typinator’s ability to handle regex expansions. If I type ‘xd’, then I get today’s date in the format 2022 02 03. However, if I type ‘xd-’, then I get a pop-up asking for a number (e.g., 5), and Typinator spits out 2022 01 29, which is five days before today. I can also do ‘xd+’ to add days to today’s date.

Another example: Sometimes I have to refer to specific paragraphs of a document, so I created a regex snippet that lets me type, for example, ‘p12’ which expands to ‘paragraph 12’.

My main dislikes regarding Typinator are the UI (I prefer TextExpander’s) and setting up app-specific expansions, which I find much more straightforward in something like Keyboard Maestro or TextExpander.


Excellent summary @anon41602260 -thanks

Regarding Typinator vs TextExpander, do you have to choose one or the other?

As long as I do not duplicate macro names, can the two co-exist?

I think this is on by default, but you can assign different noises for different sets, which allows you auditory feedback on sets that more “correction” oriented vs “expansion” oriented. I didn’t expect that I would like this, but I do.

I use Alfred’s text expansion, which is pretty awesome. Plus I don’t have to manage multiple apps. On iOS, I use Apple’s text expansion. Alfred and Apple’s text expansion are in sync, so things work great for me on both platform!!


Do you sync these manually or is there an automated way to do so?

1 Like

AFAIK, you can use TextExpander and Typinator side by side – it’s not the macro names that would conflict it is the keyboard shortcuts that might conflict. But that’s just configuration management. Of course the feature sets are so close I guess the question would be “why have both”?

1 Like

I always add text expansion to Apple’s expansion, then trigger a sync via Alfred, takes a sec. One could write a cron or file watcher and sync them every time they change, but I didn’t bother to do that as I don’t add snippets very often.

In case anyone is interested, here’s the script. Put it in a workflow and done!


The reason for both would be if I want to try out Typinator and decide if there are any features which would convince me to switch. In the interim I would want to still keep the setup I have.

Have you personally settled on Typinator or TextExpander and why did you choose that one?

1 Like

Very deep tl;dr “advanced” Typinator, below.

In another topic here I wrote this about Typinator

Here’s why I think Typinator in many of my personal use cases is a better choice for me. (I won’t be prescriptive about this; just descriptive.)

For example this Typinator expansion .daily which generates the beginning content for my Obsidian daily note:

{{MyUUID={/AppleScript do shell script "uuidgen"}}}{{myVault=?What vault}}NoteID: {{MyUUID}}
Tags: {{myTages =?What tags}}

%%  My Link: [{{?Link Text<{".dw"}>}}]({{MyLink=obsidian://advanced-uri?vault={Scripts/Encode URI.scpt {{myVault}}}&uid={{MyUUID}}}}{{MyLink}})  %%

For background, I explained here how I used the Advanced Obsidian URI plugin to create note-specific links of the form

obsidian://advanced-uri?vault=<enter-your-vault-name>&daily=true&heading=Log%20Notes&mode=append&data=%0A%23%23%23%20[[date|%A %B %e, %Y %I:%M %p]]:%20[[title]]%0A%0A[[body]]

The Typinator expansion has macOS generate a UUID

{{MyUUID={/AppleScript do shell script "uuidgen"}}}

then it prompts for the name of the current vault and any tags I want to add to the YAML front matter of the note

{{myVault=?What vault}}NoteID: {{MyUUID}}
Tags: {{myTages =?What tags}}

and then it puts the link into a comment (bracketed with %%…%%). I do this because I like copy that link into lots of other places external to Obsidian and it’s helpful to me to have the obsidian://… link in front of me to make copying easier.

%%  My Link: [{{?Link Text<{".dw"}>}}]({{MyLink=obsidian://advanced-uri?vault={Scripts/Encode URI.scpt {{myVault}}}&uid={{MyUUID}}}}{{MyLink}})  %%

This part of the snippet creates a dialog to prompt for name of the current daily note, which happens to be the same as the date generated by my .dw expansion (e.g., 2022-02-03 Thu) so that expansion is called from this expansion. Then the relevant parts of the link are URI encoded by calling a built-in script “Encode URI”.

Not shown, above, are two additional parts of the snippet that grab and parse JSON from the Hebcal and Sefaria sites to add dozen or so textual references and links relevant to that date to the first part of my daily note.

This is really dense, sorry :frowning_face:

I used to have a really long KM macro with a lot of actions to put this all together. I was amazed when I experimented with doing this sort of macro (“expansion” is not the best term here) in Typinator how easy it was to compose the macro with the bits and pieces that other expansions could do for me, and how much simpler it is to create dialog boxes with Typinator, and how fast the whole things works. And how easy it is to move the formatting, spacing, etc., around to get the result looking just as I want.

Once I type .daily the result is added to the note in a literal second. Even with all the outbound JSON calls.

The limitation Typinator imposes is that you have to type a string to initiate an expansion. Shortcuts and function keys are not triggers. For that, you need KM, or Alfred, etc.


I used TextExpander first, when it was released in 2006. Later (2016?) when it went subscription I decided I didn’t need expansion on iOS, didn’t like the price (how naïve we were about subscription costs back then). I had already bought Typinator in a bundle or other promotion, so I exported my TE expansions, imported them to Typinator, and broke the tie to TE.

I switched to Typinator from TextExpander in 2018 and have never looked back. It’s a superlative app and the support provided by the developer is absolutely first rate (even to the extent of assisting with complex RegEx based expansions).

I use it for hundreds of basic text expansions but also for things like:

  • ensuring there is only one space after certain punctuation (as opposed to two spaces);
  • automatically including the superscripted degree sign in temperatures (like 20°C);
  • automatcally replacing smart quotation marks with straight quotation marks when, for example, it converts 20in to 20";
  • automatically punctuating “a.m.” and “p.m.” in time expressions.

I cannot envisage working without Typinator.



Thanks! This is good stuff, no apology needed!

There is some interoperability between Typinator and KeyCue that I saw on their website. E.g. you can have KeyCue pop up a menu of available shortcuts/expansions. Not exactly shortcut keys though.
Of course if you had Keyboard Maestro, you could probably use a shortcut key to type a phrase to be expanded by Typinator.

Anywho, this looks good. I’ve use KM and aText and lately espanso, but want something with a better interface. KM seems like death by a thousand cuts to create a shortcut. For espanso you have to edit a file, and it has a habit of disabling itself when it sees a password field, then not re-enabling. Finally, I think I didn’t like the interface for aText.

So Typinator looks good, and the price is a bit spendy but tolerable (~$28). I think KeyCue and PopChar X are overpriced, as is the bundle of all three (~$76).

1 Like

Unfortunately, this happens with Typinator too. I’ve discussed this with Ergonis a few times, and they also have an extensive write-up on their Typinator FAQ page. The root issue is that 1Password and other apps in some situations invoke secure keyboard input and do not release it when it is no longer needed. My view is that Typinator should ignore this – if I want to use a keyboard expansion app in a password field on my own computer than why should Typinator interfere? The developer does not agree with me.