TL;DR — Quick Summary
Espanso expands text snippets system-wide. Type abbreviations, get full text — emails, code templates, dates, shell commands. Cross-platform, open-source, written in Rust.
Espanso expands text everywhere. Type triggers, get full text — system-wide snippets.
Installation
# macOS
brew install espanso
# Start daemon
espanso start
Configuration
# ~/.config/espanso/match/base.yml
matches:
- trigger: ":email"
replace: "me@example.com"
- trigger: ":sig"
replace: "Best regards,\nJohn Doe"
- trigger: ":date"
replace: "{{date}}"
vars:
- name: date
type: date
params:
format: "%Y-%m-%d"
- trigger: ":ip"
replace: "{{output}}"
vars:
- name: output
type: shell
params:
cmd: "curl -s ifconfig.me"
Commands
espanso start # start daemon
espanso restart # reload config
espanso stop # stop daemon
espanso status # check status
espanso edit # edit config
Summary
- Espanso expands text snippets system-wide
- Works in any application (browser, editor, terminal)
- Dynamic variables: dates, shell commands, clipboard
- YAML configuration, simple trigger syntax
- Written in Rust — cross-platform (macOS, Linux, Windows)