Cross-platform Text Expander written in Rust.
Visit the Documentation.
Features
- Works on Windows, macOS and Linux
- Works with almost any program
- Works with Emojis 😄
- Works with Images
- Includes a powerful Search Bar 🔎
- Date expansion support
- Custom scripts support
- Shell commands support
- App-specific configurations
- Support Forms
- Expandable with packages
- Built-in package manager for espanso hub
- File based configuration
- Support Regex triggers
- Experimental Wayland support
Static Matches
Single-line Expansions
- trigger: "hello"
replace: "world"Multi-line Expansions
- trigger: "hello"
replace: "line1\nline2"Dynamic Matches
Using Variables
- trigger: "now"
replace: "It's {{mytime}}"
vars:
- name: mytime
type: date
params:
format: "%H:%M"Preconfigured Choices
- name: output
type: choice
params:
values:
- "Every moment is a fresh beginning."
- "Everything you can imagine is real."
- "Whatever you do, do it well."Run CLI Command
- name: getip
type: shell
params:
cmd: "curl ifconfig.me"
shell: cmdGlobal Variables
Declarations
global_vars:
- name: "global1"
type: "shell"
params:
cmd: "echo global var"
- name: "greet"
type: "echo"
params:
echo: "Hey"Usage
- trigger: ":hello"
replace: "{{greet}} Jon"Word Triggers
Autocorrect Typos
- trigger: "ther"
replace: "there"
word: trueCase Propagation
- trigger: "alh"
replace: "although"
propagate_case: true
word: true- If you write
alh, the match will be expanded toalthough. - If you write
Alh, the match will be expanded toAlthough. - If you write
ALH, the match will be expanded toALTHOUGH.
Cursor Hints
Insert $|$ where you want the cursor to be positioned. Limited to one cursor hint.
- trigger: ":div"
replace: "<div>$|$</div>"Match Disambiguation
Takes all matches with the same trigger and displays a dialog to let you choose.
- trigger: ":quote"
replace: "Every moment is a fresh beginning."
- trigger: ":quote"
replace: "Everything you can imagine is real."
- trigger: ":quote"
replace: "Whatever you do, do it well."