espanso: A FOSS, Cross-Platform, Configurable Text Expander

Text expanders or snippet tools can boost your productivity in a major way. The purpose of a text expander is to save you time whenever you need to type the same sentence, phrase or paragraph over and over.

There are many text expanders apps available, but rarely you’ll find one that’s free, open source, cross platform, highly configurable and also allows you to sync between devices.

Install espanso on Linux

NOTE: Currently espanso supports X11 systems only.

  • using SNAP sudo snap install espanso --classic
  • using DEB package< wget  ;  sudo apt install ./espanso-debian-amd64.deb
  • installing on Arch/Arch-based distros:
    • espanso-bin – Pre-compiled version for x64 systems.
    • espanso – Builds from the latest (stable) release.
    • espanso-git – Builds from latest commit ( in master branch ).


    NOTE: If you are using a 64 bit machine, you should prefer espanso-bin as it is much faster to install. If you have a 32 bit system, or prefer compiling espanso from sources, you should use the espanso package instead.


    Once espanso is installed, start it with espanso start


Install espanso on macOS

The easiest way to install espanso on macOS is by using Homebrew.

1. brew tap federico-terzi/espanso


2. brew install espanso


3. Because espanso uses the macOS Accessibility API to work, you need to authorize it with espanso register


3.1 click on “Open System Preferences”


3.2 In the “Privacy” panel click on the Lock icon to enable edits and then check “espanso”


4. Now start espanso with espanso start


5. If everything goes well, you should see the espanso icon appear in the status bar



Install espanso on Windows

Download the installer here. Because espanso is not digitally signed, you may experience a warning from Windows Smartscreen. In this case, just click on “More info” and then on “Run anyway”



espanso uses a file-based configuration approach. All configuration files reside in the espanso directory, whose location depends on your OS:

  • Linux: $XDG_CONFIG_HOME/espanso (e.g. /home/user/.config/espanso)
  • macOS: $HOME/Library/Preferences/espanso (e.g. /Users/user/Library/Preferences/espanso)
  • Windows: {FOLDERID_RoamingAppData}\espanso (e.g. C:\Users\user\AppData\Roaming\espanso)


The file you will need to edit is default.yml. The default.yml file contain the main espanso configuration and uses the widely spread YAML syntax. It can be used to change various settings as well as creating custom matches. More info here.



espanso packages

You can expand espanso’s capabilities with third party packages. See the hub for available packages.

Install a package with espanso install package-name and restart espanso with espanso restart


Uninstall a package with espanso uninstall package-name and restart espanso with espanso restart


espanso shortcuts

There are times when you may want to disable espanso to avoid an unwanted expansion. This can be easily accomplished by quickly double pressing the ALT key ( Option on macOS ). You should then see a notification showing “Espanso disabled”.

At this point, espanso will be disabled and will not expand any match. To re-enable it, double press the ALT key again.


For more in-depth info and troubleshooting check out the official website.