Retext

Switch from TextExpander to Retext

Export your TextExpander groups, import them into Retext, and keep typing the same abbreviations. Dates, clipboard, cursor, fill-ins and nested snippets convert to Retext fields. Groups become tags.

Reads
TextExpander CSV export (.csv) or a TextExpander group file (.textexpander)
Where it runs
On your Mac. Nothing is uploaded.
Shortcut
File → Import Snippets… (⇧⌘I)

Step 1: Export from TextExpander

  1. 1

    Sign in to TextExpander.com

    Go to app.textexpander.com and choose Import/Export in the sidebar.

  2. 2

    Open the Export tab

    You'll see every group you can edit. You need Can Edit or Can Manage permission on a group to export it.

  3. 3

    Download each group

    Click the download icon next to a group. TextExpander saves it as a CSV file named after the group. Repeat for each group you want to bring over.

  4. 4

    Have a .textexpander file instead?

    Older TextExpander Mac versions saved groups as .textexpander files. Retext reads those too, so you can use a backup you already have.

Step 2: Import into Retext

  1. 5

    Open the importer

    In Retext, choose File → Import Snippets… (⇧⌘I), or go to Settings → Snippets → Import….

  2. 6

    Pick the file

    Retext works out the format from the file itself. Everything is read on your Mac. Nothing is uploaded.

  3. 7

    Review the preview

    Every snippet gets a row with its new trigger. Rows show placeholders that were kept as text, items that can't be imported and why, and any trigger you already use. Untick anything you don't want.

  4. 8

    Import

    Click Import. Your snippets work right away in every app. Type ;trigger to expand.

What carries over

TextExpander's date, time and clipboard fields map to Retext fields when they produce the same text. Anything else stays as literal text, and the preview tells you which ones.

In TextExpanderIn Retext
%B %e, %Y{date}

October 28, 2026

%1m/%1d/%y{date:short}

10/28/26

%@+7D before a date{date+7}

Date math, plus or minus days

%1I:%M %p{time}
%A{day}
%clipboard{clipboard}
%|{cursor}
%filltext:name=Name%{fill:Name}

The default value is dropped

%fillarea:name=Notes%{fill:Notes}

The default value is dropped

%snippet:abbr%{snippet:abbr}
%%%

Kept as text

These import, but the placeholder stays as written. The preview lists them on each row so you can edit them after.

  • • %fillpopup and %fillpart (popup menus and optional sections)
  • • %key:…% (simulated keystrokes)
  • • Date formats Retext doesn't have, such as %Y-%m-%d or a lone %Y

Not imported

These show in the preview as "can't import", with the reason.

  • • AppleScript, shell script and JavaScript snippets
  • • Rich text snippets import as plain text, so formatting and images are lost. The preview counts them.

Groups and tags

Each group becomes a tag. A CSV file's name is its group name, the same way TextExpander treats it.

Triggers and conflicts

Retext triggers always start with a semicolon, so leading punctuation in your abbreviations is dropped and the rest is lowercased.

TextExpander triggerRetext trigger
;sig;sig
,addr;addr
xmeet;xmeet

If you already have a snippet with the same trigger, the preview says so and you choose for each one:

  • Keep Both (the default) imports it under a new trigger with a source prefix, so ;sig becomes ;te-sig. A prefix is used instead of a suffix because ;sig-2 could never be typed: ;sig would fire first.
  • Skip leaves your existing snippet alone.
  • Replace swaps in the imported content. Your snippet keeps its trigger, and tags are merged.

Two snippets with the same trigger inside one file can be kept (renamed) or skipped. Triggers are also checked against Retext's rules (2 to 40 characters, no line breaks, no snippet that contains its own trigger), and anything that fails shows why.

The free plan holds 5 snippets. If your file has more, the preview shows how many fit and you pick which ones. Upgrade to Pro for unlimited snippets and import the rest. Replacing an existing snippet doesn't use a slot.

What you get after switching

Dictation

Hold a key and talk. Retext turns speech into text on your Mac, types it into the app you're in, and takes voice commands (beta) like "insert snippet sig", so your imported snippets work by voice too.

Autocomplete (beta)

Start typing a trigger and Retext shows the snippet as ghost text, with dynamic fields filled in. Press Tab to accept. You don't have to remember every abbreviation you imported.

Per-app snippets

Limit a snippet to the apps it belongs in, or keep it out of others, so the same trigger can say one thing in Mail and another in Slack.

Teams

Share a snippet library with your team, with owner, admin, editor and viewer roles, managed from the Mac app.

When to stay with TextExpander

Retext isn't the right move for everyone. Stay if:

  • •You also need snippets on Windows or in the TextExpander Chrome extension.
  • •You depend on script snippets (AppleScript, shell, JavaScript) or popup and optional-section fill-ins.
  • •Your company already manages shared groups, permissions and billing in TextExpander.

FAQ

›Can I export from the TextExpander Mac app?

TextExpander's current help documents exporting from TextExpander.com, which gives you a CSV per group. If you have a .textexpander file from an older Mac version, Retext imports that too.

›Will my fill-in fields still work?

Single-line and multi-line fill-ins (%filltext and %fillarea) become Retext {fill:Name} fields, which ask for the value when you expand. Default values are dropped. Popup menus and optional sections stay as text.

›What happens to my script snippets?

AppleScript, shell script and JavaScript snippets can't be imported. They show in the preview as "can't import" with the reason, so you know which ones to rebuild.

›Do I need to change my abbreviations?

Mostly no. Retext strips leading punctuation and puts a semicolon in front, so ;sig stays ;sig and ,addr becomes ;addr. If a trigger clashes with one you already have, you choose what happens.

›How many snippets can I import for free?

The free plan holds 5 snippets. The preview shows how many of yours fit, and you pick which ones. Pro has no limit.

Bring your TextExpander snippets with you

Download Retext, press ⇧⌘I, and pick your file. Your snippets work in every app on your Mac in a few minutes.

Related