explaingit

espanso/espanso

13,806RustAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Text expansion
      Trigger replacement
      Script output insertion
    Features
      Regex triggers
      App-specific config
      Package manager hub
      Search bar
    Tech Stack
      Rust
    Use Cases
      Email signatures
      Code snippets
      Date insertion
      Emoji shortcuts
    Platforms
      Windows
      macOS
      Linux
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Define a short keyword that expands to your full email signature or a boilerplate code snippet in any app

USE CASE 2

Install pre-made expansion packs from the espanso hub to add common triggers for coding, markdown, or emoji

USE CASE 3

Set up app-specific expansions that only fire inside a particular program, like different shortcuts in your text editor versus browser

Tech stack

Rust

Getting it running

Difficulty · easy Time to first run · 30min

Configuration is file-based with no GUI, users comfortable editing plain text files will find setup straightforward.

Free to use and modify, but if you distribute a modified version you must also release its source code under the same GPL-3.0 license.

In plain English

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.

Copy-paste prompts

Prompt 1
Help me set up espanso to expand ':sig' into my full email signature including name, title, and contact info.
Prompt 2
Show me how to create an espanso match that inserts today's date whenever I type ':date'.
Prompt 3
I want espanso to only expand certain triggers inside VS Code. How do I set up an app-specific espanso config?
Prompt 4
How do I use espanso's regex trigger to match variations of a pattern and use the captured text in the expansion?
Prompt 5
Walk me through installing an espanso package from the espanso hub to get a set of pre-built emoji shortcuts.
Open on GitHub → Explain another repo

← espanso on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.