# federico-terzi/espanso

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/federico-terzi-espanso).**

14,002 stars · 423 forks · Rust · GPL-3.0

## Links

- GitHub: https://github.com/federico-terzi/espanso
- Homepage: https://espanso.org
- awesome-repositories: https://awesome-repositories.com/repository/federico-terzi-espanso.md

## Description

Espanso is a cross-platform text expander and automation tool written in Rust. It replaces short keywords with longer predefined text strings across different operating systems to increase typing speed and consistency.

The tool utilizes regular expressions to detect complex typing patterns for dynamic replacement and allows for the execution of custom shell scripts to inject real-time data. Users can restrict expansions to specific software environments, ensuring that keywords only trigger within designated applications.

The system includes a manager for installing and updating curated collections of predefined snippet packages. Configuration is handled via structured files that map keywords to their corresponding expansions.

## Tags

### Data & Databases

- [Text Expanders](https://awesome-repositories.com/f/data-databases/text-pattern-matching/text-search-and-replace/text-expanders.md) — Replaces short trigger keywords with longer predefined text blocks across different platforms to increase typing speed. ([source](https://github.com/federico-terzi/espanso#readme))

### Business & Productivity Software

- [Text Expansion Utilities](https://awesome-repositories.com/f/business-productivity-software/text-expansion-utilities.md) — Automates the insertion of predefined text templates into active documents across different applications.

### Operating Systems & Systems Programming

- [Cross-Platform Input Simulation](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-platform-input-simulation.md) — Interacts with OS-specific APIs to capture keyboard input and simulate key presses across different operating systems.
- [Application-Specific Hotkeys](https://awesome-repositories.com/f/operating-systems-systems-programming/application-specific-hotkeys.md) — Implements context-aware triggers that only expand keywords when a specific application is focused.

### Programming Languages & Runtimes

- [Rust-Implemented Tooling](https://awesome-repositories.com/f/programming-languages-runtimes/rust-implemented-tooling.md) — Implemented as a high-performance tool in Rust to ensure memory safety and efficient event handling.
- [String Pattern Replacements](https://awesome-repositories.com/f/programming-languages-runtimes/string-pattern-replacements.md) — Replaces matched text patterns with new strings or the results of executed functions.

### User Interface & Experience

- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Processes user input events through asynchronous loops to identify trigger patterns for text expansion.

### Part of an Awesome List

- [Regex Pattern Matching](https://awesome-repositories.com/f/awesome-lists/devtools/regex-and-pattern-matching/regex-pattern-matching.md) — Evaluates input streams against regular expression patterns to determine when a keyword should be replaced.
- [Automation Tools](https://awesome-repositories.com/f/awesome-lists/productivity/automation-tools.md) — Cross-platform text expander written in Rust.

### Development Tools & Productivity

- [External Command Execution](https://awesome-repositories.com/f/development-tools-productivity/external-command-execution.md) — Runs system programs and captures their output to inject dynamic content into the active text field.
- [Dynamic Content Injection](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/keyboard-automation/keyboard-input-automation/dynamic-content-injection.md) — Inserts dynamic data, such as shell script outputs, into the text stream via keyboard shortcuts.
- [Custom Run Scripts](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/custom-run-scripts.md) — Provides named shortcuts for shell commands to automate repetitive tasks or inject dynamic data. ([source](https://github.com/federico-terzi/espanso#readme))
- [Regex Triggers](https://awesome-repositories.com/f/development-tools-productivity/text-snippet-managers/snippet-matching/regex-triggers.md) — Fires snippet expansion when typed text matches a regular expression pattern, enabling dynamic trigger matching.

### Security & Cryptography

- [Context-Aware Triggers](https://awesome-repositories.com/f/security-cryptography/application-network-restrictions/app-specific-rule-targeting/context-aware-triggers.md) — Limits text expansions to specific applications so keywords only trigger within designated software environments. ([source](https://github.com/federico-terzi/espanso#readme))
