espanso
A Privacy-first, Cross-platform Text Expander written in Rust
Espanso is a cross-platform text expander that replaces short trigger words with full text, code snippets, or script output in any application on Windows, macOS, and Linux, no more retyping the same things over and over.
Espanso is a text expander that runs in the background on Windows, macOS, and Linux. A text expander watches what you type and, when you type a specific short keyword, replaces it with something longer: a full sentence, a block of code, an emoji, a date, or even the output of a script or shell command.
The practical uses are broad. If you frequently type your email address, a standard greeting, or a code snippet you use every day, you define a short trigger word and espanso substitutes the full text every time you type it, in any application. It works system-wide, so the same expansions apply whether you are writing in a browser, a text editor, or any other program.
Configuration is file-based, meaning you set up your expansions by editing plain text files rather than through a graphical interface. Espanso also has a built-in package manager connected to a public hub where other users share their expansion packs, so you can install pre-made collections of triggers without building them all yourself. It supports regex-based triggers for more flexible matching, app-specific configurations so certain expansions only fire in particular programs, and a search bar for finding and inserting expansions manually.
The project is written in Rust and licensed under GPL-3.0. It was created by Federico Terzi and is maintained in spare time, with donations accepted through the project page. There is a community subreddit for support questions and general discussion.
Where it fits
- Define a short keyword that expands to your full email signature or a boilerplate code snippet in any app
- Install pre-made expansion packs from the espanso hub to add common triggers for coding, markdown, or emoji
- Set up app-specific expansions that only fire inside a particular program, like different shortcuts in your text editor versus browser