# espanso

*Category: productivity | Website: https://espanso.org/*

the only text expander you need


Do you know the feeling of trying something out just once and getting immediately hooked? That is what happens when you start using a text expander, at least that's what happened to me. I have been using a text expander for almost ten years now and it has become so integral to working with a computer for me that I cannot imagine ever going back. At it's core, text expansion is just replacing something you type with something else - usually this means typing something very short like `:br`and having it replaced with `best regards`for example. Maybe not the most useful thing at first glance but boy can it make a difference when you start embracing it as much as possible!

And I don't think I could envision a tool that is more useful than espanso. I'd have to think really hard to find something that I would want to improve. The funny thing is that I only discovered espanso a couple of years ago because I was looking for a cross-platform solution. Up until that day, I had been using a closed-source Windows only text expander which did do the job but it was also a pretty bloated mess and not the most modern feeling piece of software and worst of all, used a proprietary data format.

espanso is different, it's lightweight and doesn't get in your way. And the entire configuration is just yaml files that you can sync across machines without any problem. I keep mine with my dotfiles that I sync via github.

## How I use espanso

Whenever I catch myself typing something repeatedly, I just create an espanos shortcut right away. And the best part is that I use espanso to do this as quickly as possible:

I type `:esp` which expands to `nvim ~/.config/espanso/match/commandline.yml` so I can jump right into the file with neovim and edit the config

But wait, there is more, much more actually

## Learn to fly

Apart from plain text expansion, espanso has some other tricks up its sleeve:

- You can define the same trigger for multiple text snippets which will give you a nice little menu for selecting from these snippets whenever you type the shortcut.
- Run scripts and paste the result - You can trigger bash, python or other commandline scripts
- Define variables that you can reuse in your snippets, like your name, email, current day or time. Probably one of my most used shortcuts is `:tag` (German for day) which on the day of writing this post would expand to `20250626`which I use extensively when naming files. I also have `:today`(06/26/2025) or `:tomorrow`(06/27/2025) and so on.
- Create small forms that pop up for specific shortcuts where you can fill in the blanks
- use the content from your clipboard in expansions
- specify where your cursor should go in your text expansion
- Image support! This is one powerful feature! If you find yourself having to use the same images for specific situation often, like for example for presentations, you can just let espanso paste images when you type a shortcut.

A small collection of my favorite expansions:

- :gcp -> git clone <contents_of_clipboard>
- :ffmpeg -> selection of ffmpeg commands I use on a regular basis
- :yt -> yt-dlp --trim-filenames
- :kw -> Kalenderwoche 25 (for some reason, Germans keep insisting on defining stuff based around the week numbers even though most people have no clue what the current week number is)  

## Installation

### macOS

```bash
brew install espanso
```

### Linux

Depending on your distro and window manager, pick the method that is recommended from [here](https://espanso.org/docs/install/linux/).

### Windows

Download the installation package [here](https://espanso.org/docs/install/win/).


---

*Tags: text expansion, shortcuts*
*Supported OS: linux, macos, windows*
