Back to blog
release notes updates macros import shortcuts

What's New in TypeSnap 1.4

TypeSnap 1.4 adds a configurable Quick Search shortcut, Markdown and Code snippets, {{selected}} and {{if}} macros, a Macro Builder, optional on-device AI, Shortcuts actions, and importers for Raycast, Espanso, Alfred and aText.

By Aaron Hampton 7 min read

TypeSnap 1.4.0 is out today. It adds new snippet types, new macros, a way to build macros without memorizing syntax, Shortcuts support, and four new importers. Here is what changed and how to use each piece.

Change the Quick Search shortcut

Quick Search has always opened with Command-Shift-T. A customer wrote in to tell me that is also Chrome’s shortcut for Reopen Closed Tab, so every time they reached for a closed tab, TypeSnap’s search window opened instead. The shortcut shouldn’t have been fixed in place, so now it isn’t.

You can now set your own shortcut in Settings > General > Global Search Shortcut. Click the shortcut, press the new combination, and you’re done. Command-Shift-T is still the default, and a Reset button takes you back to it.

TypeSnap checks what you record. The shortcut needs Command or Control and at least two modifier keys, so it doesn’t swallow a key you type in normal text. It also tells you if macOS already uses that combination, or if one of your snippets has the same hotkey.

Markdown and Code snippets

There are two new content types in the snippet editor’s Content Type menu.

Markdown snippets are written in plain Markdown and inserted as formatted text. Headings, bold, italic, strikethrough, links, inline code, bullet lists, blockquotes and fenced code blocks are supported, and the editor shows a preview as you write. If you already keep templates in Markdown, you can paste them in as they are.

Code snippets are inserted with syntax highlighting in a monospaced font. Pick a language from the Language menu next to the content type, or leave it on Auto-Detect. There are 19 languages, including Swift, JavaScript, TypeScript, Python, Shell, SQL, Go, Rust, HTML, CSS, JSON and YAML. In apps that accept formatted text, the colors come with it.

{{selected}}: use the text you’ve highlighted

The new {{selected}} macro inserts whatever text is currently selected in the app you’re using. That lets a snippet wrap or rework your selection instead of only adding new text.

Because typing an abbreviation would replace your selection, give these snippets a keyboard shortcut. Here is one I use to turn selected text into a Markdown link, using the URL I copied a moment earlier:

[{{selected}}]({{clipboard}})

Select the words, press the snippet’s shortcut, and the selection is replaced with the finished link.

{{if}}: output that changes with your answers

Fill-in fields now pair with {{if}} blocks, so a snippet can say different things depending on what you pick. Here is a support reply that changes its last line based on the plan:

Hi {{input:Name}},

Thanks for upgrading to {{select:name=Plan:options=Pro,Team:default=Pro}}.
{{if:Plan == Team}}You can invite your teammates from the Members page.{{else}}Your license key is on its way by email.{{/if}}

Pick “Team” and the reply ends with the invite line. Pick “Pro” and it ends with the license line instead. You can chain branches with {{elseif:...}}, and conditions support ==, !=, contains, and, or and not. A bare field name like {{if:IncludeNotes}} is true when the field has a value.

Fill-ins: live preview and inline values

The fill-in window now has a Preview section that shows the finished text as you type, including which {{if}} branch will be used. You see the result before it lands in your document.

You can also skip the window entirely by typing the values right after the abbreviation. If ;greet has one fill-in field, typing ;greet<Ada> expands it with “Ada” filled in. For more fields, separate the values with <, like ;greet<Ada<Acme>. This works for snippets that expand after a space or punctuation. For snippets set to expand as soon as you finish typing, turn on the “wait briefly” setting described below.

The Macro Builder

You no longer need to remember macro syntax. In the snippet editor, click Insert Macro… to open the Guided Macro Builder. Choose a type (text input, dropdown, optional section, date and time, If/Else, AI prompt, or utilities like {{cursor}}, {{clipboard}} and {{selected}}), fill in a short form, and it shows the exact macro it will insert along with a description of what it does.

If you select some text in the editor before opening the builder, optional sections and If/Else blocks wrap that text instead of inserting an empty block.

Optional on-device AI with {{ai:...}}

The {{ai:...}} macro sends a prompt to a language model when the snippet expands and inserts the reply. It only runs on your Mac. TypeSnap supports two providers:

  • Apple Intelligence, using Apple’s on-device model. This needs a Mac where Apple Intelligence is available and turned on.
  • Ollama, a local model server you install yourself. TypeSnap only talks to it on your own machine (127.0.0.1 or localhost) and refuses any other address, so your text is never sent to a cloud service.

Choose the provider in Settings > Advanced: Apple Intelligence with Ollama as a fallback (the default), Apple Intelligence only, Ollama only, or Disabled. For Ollama, install it, pull a model (TypeSnap’s default model name is llama3.2, so ollama pull llama3.2 works without changing anything), and leave the endpoint at http://127.0.0.1:11434 unless you changed it.

Prompts can use $selected, $clipboard and the names of your fill-in fields. Paired with a keyboard shortcut, this snippet fixes the selected text in place:

{{ai:Fix the spelling and grammar in $selected. Keep my wording otherwise.}}

Nothing happens unless a snippet contains an {{ai:...}} macro. If the model can’t be reached or takes longer than 20 seconds, TypeSnap shows an error instead of typing anything into your document.

Apple Shortcuts actions

TypeSnap now shows up in the Shortcuts app with four actions:

  • Expand Snippet returns a snippet’s expanded text, and can paste it into the active app. You can pick a snippet or type its abbreviation, including inline values like ;greet<Ada>.
  • Create Snippet adds a snippet from an abbreviation, label and content, with an optional group name.
  • Search Snippets finds snippets by abbreviation, label, tag or content.
  • Get Clipboard History Item returns an entry from TypeSnap’s clipboard history.

Import from Raycast, Espanso, Alfred and aText

File > Import Snippets… now reads exports from four more apps, alongside TextExpander and TypeIt4Me:

  • Raycast: the JSON file from Raycast’s snippet export. Guide
  • Espanso: your .yml or .yaml match files. Guide
  • Alfred: an .alfredsnippets collection or JSON file. Guide
  • aText: a CSV or JSON export. Guide

Placeholders are converted to TypeSnap macros where there’s an equivalent (Raycast arguments become fill-in fields, for example), and the import summary lists anything it skipped or that you should check. Raycast and Alfred allow snippets with no keyword. Those come in disabled, with a placeholder abbreviation starting with ;;, so they never fire on an ordinary word. Give them a real abbreviation and turn them on when you’re ready. The import page has every supported app in one place.

Two new expansion settings

Both are in Settings > Expansion and both are off by default, so nothing changes unless you turn them on.

Match case of typed abbreviation. With this on, typing BTW inserts “BY THE WAY” and Btw inserts “By the way”. It applies to snippets whose case setting is Auto. Code snippets and inserted values such as the clipboard are left alone.

Wait briefly when a longer abbreviation could follow. If you have ;em set to expand as soon as you type it and also have ;email, ;em would fire before you could finish ;email. With this on, TypeSnap waits a quarter of a second when a longer abbreviation could still be coming. It also lets you type inline fill-in values for those snippets.

How to get the update

If you already have TypeSnap, choose TypeSnap > Check for Updates… and it will install 1.4.0. You can also download TypeSnap 1.4.0 directly and drag it into Applications.

Everything in this release works during the free trial. A license is $17.99 once, with no subscription, and every 1.4 feature is included. The full list of what TypeSnap does is on the features page.

Try TypeSnap free for 7 days or buy once for $17.99.

If something in 1.4 doesn’t work the way you expect, email me. The Quick Search change above started exactly that way.

Stop typing the same things over and over

TypeSnap expands your snippets instantly. One-time purchase, no subscription.

Ready to type less?

Try your own snippets in the apps you use. All features, free for 7 days. Buy once for $17.99 if it earns its place.

Download the free 7-day trial

Already tried it? Buy a license — $17.99

Direct Mac download Local text expansion Made by an indie developer