Espanso
Cross-platform Text Expander written in Rust.
Visit the Documentation.
Features
Section titled “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
Section titled “Static Matches”Single-line Expansions
Section titled “Single-line Expansions”- trigger: "hello" replace: "world"Multi-line Expansions
Section titled “Multi-line Expansions”- trigger: "hello" replace: "line1\nline2"Dynamic Matches
Section titled “Dynamic Matches”Using Variables
Section titled “Using Variables”- trigger: "now" replace: "It's {{mytime}}" vars: - name: mytime type: date params: format: "%H:%M"Preconfigured Choices
Section titled “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
Section titled “Run CLI Command”- name: getip type: shell params: cmd: "curl ifconfig.me" shell: cmdGlobal Variables
Section titled “Global Variables”Declarations
Section titled “Declarations”global_vars: - name: "global1" type: "shell" params: cmd: "echo global var" - name: "greet" type: "echo" params: echo: "Hey"- trigger: ":hello" replace: "{{greet}} Jon"Word Triggers
Section titled “Word Triggers”Autocorrect Typos
Section titled “Autocorrect Typos”- trigger: "ther" replace: "there" word: trueCase Propagation
Section titled “Case 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
Section titled “Cursor Hints”Insert $|$ where you want the cursor to be positioned. Limited to one cursor hint.
- trigger: ":div" replace: "<div>$|$</div>"Match Disambiguation
Section titled “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."