Espanso
Cross-platform text expander that works everywhere.
Open the official app on espanso.org
This tool is hosted by its maintainers. Click below to open espanso.org in a new tab — it's their official demo.
Browse text & tools tools →What's next with Espanso?
Choose how you want to get started.
Use it free
Open the official tool or demo — no account needed.
Self-host it
Run the open-source version on your own infrastructure.
What is Espanso?
Espanso is a privacy-first, cross-platform text expander designed to automate repetitive text input by replacing keywords with predefined content. Its primary purpose is to streamline workflows for users who frequently type standardized phrases, such as code snippets, email templates, or security-related text. Developers, writers, and security professionals leverage Espanso to reduce manual typing, minimize errors, and enhance productivity. The tool addresses the inefficiency of repetitive typing by allowing users to define triggers that expand into longer text in real-time, making it ideal for tasks requiring frequent input of boilerplate content. Espanso operates as an open-source project hosted on GitHub, written in Rust for performance and reliability. It supports Windows, macOS, and Linux, ensuring broad accessibility. Users benefit from its ability to handle both simple text replacements and complex scenarios, such as expanding emojis into images or generating dynamic content like IP addresses and dates. By prioritizing privacy and cross-platform compatibility, Espanso caters to individuals and teams seeking a flexible, secure alternative to proprietary text expansion tools.
How it works
Espanso is an open-source text expander that replaces typed keywords with predefined text in real-time. It is designed for users who repeatedly input standardized phrases, such as code snippets, email templates, or security payloads, enabling faster and more efficient workflows. The tool's primary purpose is to eliminate manual typing by automating repetitive text input. It is particularly useful for developers, writers, and security professionals who need to generate consistent content without errors or delays. Espanso allows users to define triggers that expand into longer text, such as converting 'ip' into the current IP address or 'date' into today's date. It also supports emoji expansion, replacing text like ':cowboy hat face:' with the corresponding emoji 🤠. Additionally, it can generate dynamic content like XSS payloads or code snippets, making it versatile for both productivity and specialized tasks.
How to use it
- 1Download the Espanso installer from its GitHub repository. 2. Run the installer and follow the setup prompts to configure the tool. 3. Open the configuration file (e.g., `snippets.yaml`) to define triggers and their expansions. 4. Launch Espanso and begin typing keywords to see real-time replacements. Practical tips include using unique keywords to avoid conflicts and organizing snippets into categories for easier management.
What it can do
- text expander
Use cases
Assumptions and limitations
Assumptions
- source: https://github.com/espanso/espanso
- license: GPL-3.0 — free to use
- privacy: Self-hosted — you control your data
Limitations
- Limited support for complex macros or conditional logic in snippet expansions.
- Requires manual configuration, which may have a steep learning curve for new users.
- Does not integrate natively with all applications, potentially limiting cross-program functionality.
- The configuration file format (YAML) may pose challenges for users unfamiliar with its syntax.
- Lacks built-in features like auto-suggestions or contextual awareness for trigger words.
Understanding the result
Cross-platform text expander that works everywhere.
Tool details
- Clearly flagged when a network request is needed.
- No account, no sign-up, and no tracking of your content.
- Powered by (GPL-3.0).
- Built with
- (espanso/espanso)
- License
- GPL-3.0
- Runs locally
- No — requires a network request
- Verification
- Not yet verified
- Input
- Query
- Output
- Text
Built with espanso/espanso. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.
- Built with
- License
- GPL-3.0
Open-source project
OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.
References
- / — GitHub Repository
Upstream project · GitHub
- GPL-3.0 License
Upstream project
Frequently asked
How does Espanso handle dynamic content like IP addresses or dates?
Espanso uses built-in modules to dynamically generate content such as IP addresses, dates, or system information when a trigger is typed. For example, typing 'ip' expands to the user's current IP address, and 'date' inserts the current date in the desired format. These expansions are computed in real-time during typing, ensuring accuracy and up-to-date results.
How does Espanso work across different operating systems?
Espanso is written in Rust, allowing it to compile natively for Windows, macOS, and Linux. The tool uses platform-specific system integrations to monitor keyboard input and trigger expansions, ensuring consistent behavior across all supported OSes. Its cross-platform design avoids reliance on browser-based or cloud-hosted services, maintaining privacy and performance.
How do I create a custom snippet for expanding 'hello' to 'Hello, world!'?
To create a snippet, edit the `snippets.yaml` file in Espanso's configuration directory. Add a block like: ``` - trigger: hello expansion: Hello, world! ``` Save the file and restart Espanso. Typing 'hello' will now expand to 'Hello, world!' as you type, with the expansion happening in real-time.
How does Espanso compare to alternatives like TextExpander or AutoHotkey?
Espanso differs from TextExpander by being open-source, cross-platform, and focused on privacy. Unlike AutoHotkey, which requires scripting knowledge, Espanso uses a simpler YAML-based configuration for snippets. While TextExpander offers advanced features like auto-suggestions, Espanso prioritizes flexibility and customization for developers and power users.
What should I do if Espanso doesn't trigger expansions after installation?
Ensure Espanso is running and the configuration file (`snippets.yaml`) is correctly formatted. Check for typos in trigger keywords and verify that the file is located in the expected directory (e.g., `~/.config/espanso/` on Linux/macOS). If issues persist, reinstall the tool or consult the GitHub repository's troubleshooting guide.