# espanso/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/espanso-espanso).**

13,163 stars · 388 forks · Rust · gpl-3.0

## Links

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

## Topics

`espanso` `linux` `macos` `productivity` `productivity-tools` `rust` `text-expander` `windows`

## Description

Espanso is a cross-platform text expander and desktop automation tool that monitors system-wide keystrokes to replace short trigger keywords with longer text blocks, images, or dynamic script outputs. It functions as a background service, enabling users to automate repetitive typing tasks across any application on their local system.

The tool distinguishes itself through context-aware automation, which allows users to define specific rules that enable or disable expansion behavior based on the currently active window. It also features a centralized package management system for organizing and distributing reusable snippet collections, as well as a searchable interface that allows users to locate and trigger expansions without needing to memorize specific keywords.

Beyond basic text replacement, the system supports the execution of external scripts to inject real-time data and the insertion of visual assets into documents or forms. Configuration is managed through structured text files, and the system includes built-in support for reverting accidental expansions and ensuring consistent performance across various development environments.

## Tags

### Data & Databases

- [Text Expanders](https://awesome-repositories.com/f/data-databases/text-pattern-matching/text-search-and-replace/text-expanders.md) — Replaces short keywords with long blocks of text to speed up repetitive typing tasks.

### Development Tools & Productivity

- [Text Snippet Managers](https://awesome-repositories.com/f/development-tools-productivity/text-snippet-managers.md) — Monitors keystrokes to automatically replace trigger keywords with predefined text snippets. ([source](https://espanso.org/docs/get-started/))
- [Global Input Listeners](https://awesome-repositories.com/f/development-tools-productivity/global-input-listeners.md) — Monitors system-wide keyboard events to trigger text expansion actions regardless of the active application focus.
- [Snippet Management Tools](https://awesome-repositories.com/f/development-tools-productivity/snippet-management-tools.md) — Enables distribution and installation of reusable snippet collections through a centralized package manager. ([source](https://espanso.org/docs/get-started/))
- [Application Settings](https://awesome-repositories.com/f/development-tools-productivity/application-settings.md) — Allows defining custom expansion rules that apply only when specific applications are active. ([source](https://espanso.org/docs/get-started/))
- [Script Execution Engines](https://awesome-repositories.com/f/development-tools-productivity/script-execution-engines.md) — Triggers external commands upon detecting keywords to insert dynamic output into the active window. ([source](https://espanso.org/docs/get-started/))
- [Automation Services](https://awesome-repositories.com/f/development-tools-productivity/automation-services.md) — Provides a background service to toggle text replacement and automation rules globally. ([source](https://espanso.org/docs/get-started/))
- [Package Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/package-dependency-managers.md) — Manages the installation and resolution of external snippet collections through a centralized package management system.
- [Subprocess Execution](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/server-cli/subprocess-execution.md) — Spawns isolated external processes to generate dynamic content for injection into the input stream.

### Software Engineering & Architecture

- [Cross-Platform Utilities](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-utilities.md) — Functions as a cross-platform utility that monitors keystrokes to replace triggers with text, images, or scripts.
- [Dynamic Content Injection](https://awesome-repositories.com/f/software-engineering-architecture/inline-data-structures/splat-expansion/dynamic-content-injection.md) — Expands triggers into long text blocks, images, or dynamic script outputs to automate repetitive typing. ([source](https://espanso.org/docs/get-started/))
- [YAML Configuration Schemas](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/yaml-configuration-schemas.md) — Uses structured YAML files to define mapping rules between trigger keywords and replacement content.
- [Context-Aware Tooling](https://awesome-repositories.com/f/software-engineering-architecture/context-aware-tooling.md) — Provides context-aware automation by enabling or disabling rules based on the active application.

### Operating Systems & Systems Programming

- [Desktop Automation](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-automation.md) — Acts as a background service that automates repetitive typing tasks and executes custom scripts system-wide.
- [Keystroke Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/keystroke-emulators.md) — Simulates native keystrokes to insert expanded text into target application windows with high compatibility.

### DevOps & Infrastructure

- [Package Managers](https://awesome-repositories.com/f/devops-infrastructure/package-managers.md) — Manages collections of pre-defined text triggers to extend functionality without manual snippet configuration. ([source](https://espanso.org/docs/get-started/))

### Programming Languages & Runtimes

- [Dynamic Scripting Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/scripting-languages/dynamic-scripting-runtimes.md) — Triggers external scripts to inject real-time data and custom outputs into active text fields.

### Web Development

- [Content Insertion Utilities](https://awesome-repositories.com/f/web-development/content-insertion-utilities.md) — Replaces trigger keywords with images or media files to streamline visual content insertion. ([source](https://espanso.org/docs/get-started/))
