Skip to content
Textfold

Textfold vs Espanso: a native Mac editor instead of YAML files

Espanso is a free, open-source text expander that you configure with YAML files. Textfold covers the same everyday needs in a native Mac app with a visual editor — and it can import your Espanso matches.

By Jeyanth Kanagaraju · Updated

The short answer

Choose Espanso if you want something free and open source, use Windows or Linux as well as macOS, or rely on regex triggers and shell or script extensions. Editing YAML is part of the deal, and for many developers that's a plus.

Choose Textfold if you'd rather manage snippets in a Mac app: a sidebar of groups, an editor that colors placeholders and previews the result, a Try it box, drag-to-reorder and one-click options for when a snippet should fire. Snippets are still plain text files, so you can edit them by hand too.

At a glance

TextfoldEspanso
PriceFree for 10 snippets; Pro is a one-time purchaseFree, open source (GPL-3.0)
PlatformsMacmacOS, Windows, Linux
Editing snippetsNative editor with live preview, or any text editorYAML files in a text editor
FormsYesYes
Search to insertYes (⌃⌥Space)Yes (search bar)
App-specific snippetsYes, per snippetYes, through app-specific configs
Regex triggers, scripts, shell commandsNoYes
Undo an expansionEsc within 5 secondsBackspace right after expanding

Day to day: editing snippets

In Espanso a snippet is a trigger and a replace entry in a match file. In Textfold it's a small text file — abbrev: ;sig, a line of three dashes, then the text — which the editor writes for you. Placeholders like {date+7d} and {field:Name} are colored as you type, typos are flagged, and the preview shows exactly what will be inserted. You can still open the folder in your editor of choice or keep it in git.

Importing from Espanso

  1. Find your match file — usually ~/Library/Application Support/espanso/match/base.yml.
  2. In Textfold, open Edit Snippets… → arrow next to + → Import Snippets… (part of Pro) and choose the file.
  3. Textfold translates {{date}} and clipboard variables, the $|$ cursor marker, [[field]] forms, and the word and propagate_case options. Regex triggers and shell or script variables are listed as skipped.
  4. Quit Espanso (or disable those matches) so the two don't both expand.

See the import documentation for every supported format.