Espanso turns short triggers into full text. Type :email and it expands to your email address. Here’s how.

Installation

# macOS
brew install --cask espanso

# Windows
winget install Espanso.Espanso

# Linux
sudo snap install espanso

Start the service: espanso start. Enable auto-start: espanso service register.

Your First Match

Configuration lives in ~/.config/espanso/match/base.yml (Linux/Mac) or %APPDATA%/espanso/match/base.yml (Windows). Add:

matches:
  - trigger: ":email"
    replace: "yourname@example.com"

  - trigger: ":sig"
    replace: |
      Best regards,
      Your Name
      Software Developer

  - trigger: ":date"
    replace: "{{mydate}}"
    vars:
      - name: mydate
        type: date
        params:
          format: "%Y-%m-%d"

Dynamic Matches

# Shell command output
- trigger: ":ip"
  replace: "{{output}}"
  vars:
    - name: output
      type: shell
      params:
        cmd: "curl -s ifconfig.me"

# Clipboard content
- trigger: ":clip"
  replace: "{{clipboard}}"

Package Ecosystem

Espanso has community packages: espanso install basic-emojis. Type :smile for 😊. Browse packages at hub.espanso.org.

Tips

  • Prefix triggers with : or ; to avoid accidental expansion
  • Keep a cheatsheet of your triggers until muscle memory kicks in
  • Sync your match/ folder via Dropbox/Syncthing to share expansions across machines