Espanso detects specific keywords as you type and automatically replaces them with custom text, saving time and reducing repetitive typing. It can expand common phrases, insert code snippets, run scripts, and even make it easier to use emojis across your entire system.

Features

Smarter typing

No more copy and pasting, create templates once and let Espanso do the rest for you. Customer support replies, sales pitches, medical reports, you name it. Espanso got you covered.

Every sentence, one search away

Don't remember a shortcut? No worries. Just press ALT+Space and Espanso's search bar will open, letting you search for the perfect snippet.

Dates, Emojis 🚀, and more...

Don't wrap your head around dates. Espanso makes it easy to use them, both past and future ones. Bring emojis 🤠 in all your favorite apps, one shortcut away.

Endless extensibility

Extend Espanso's capabilities with packages, or create your owns and share them with the community on the Espanso Hub. Need to insert mathematical notation? Or perhaps german accents? We got a package for them. We even got the shrug ¯\_(ツ)_/¯

Shell and Script support

For advanced use-cases, you can extend Espanso's snippets with shell commands or custom scripts. No more copy-pasting from the terminal, inject the output into applications directly.

Form support

Use forms to handle complex workflows, creating templates that can be reused with ease. You can even forward form values into custom scripts, opening up endless possibilities.

System-wide integration

Espanso works with most applications, so you can boost your productivity everywhere.

File-based configuration

Espanso follows a Unix-like configuration philosophy, using simple files. Though a GUI is planned in the future.

Open-source license

Espanso is open-source, licensed under the GPL-3 license.

Cross-platform support

Espanso supports Windows, Linux and macOS.

More Features

  • 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

What's New

  • Remove homebrew-espanso tap by @AucaCoyan in #2487
  • Update flake by @github-actions[bot] in #2489
  • Add rust-toolchain step by @AucaCoyan in #2490
  • Fix ci yaml by @AucaCoyan in #2492
  • Fix ci again by @AucaCoyan in #2495
  • Update flake by @github-actions[bot] in #2503
  • Fix subcommand help displaying main help instead of specific help (#2483) by @gcailly in #2500
  • Fix json label replace (#1702) by @gcailly in #2501
  • Fix empty triggers causing expansion on every word separator (#1616) by @gcailly in #2508
  • Fix numpad Enter not confirming choices in search menu (#1618) by @gcailly in #2507
  • Restore launching from app bundle on macos by @n8henrie in #2505
  • Fix utf8 bom parsing (#2510) by @gcailly in #2512
  • Fix "kdotool missing or not available" on macOS (#2509) by @gcailly in #2514
  • Prefer the GHA-provided rust tooling by @n8henrie in #2521
  • Add support for .yaml extension for config and match files (#2184) by @gcailly in #2519
  • Revert default back to yml extension by @AucaCoyan in #2523
  • Feat: Add max_regex_buffer_size config option by @aldair-meneses in #2504
  • Update biomejs formatting and format the code by @AucaCoyan in #2524
  • Fix date extension crash on invalid format (#993) by @gcailly in #2516
  • Replace markdown library to fix nested lists rendering (#2217) by @gcailly in #2515
  • Add timezone support to date extension (#2225) by @gcailly in #2526
  • Update developer docs by @AucaCoyan in #2527
  • Release v2.3.0 by @AucaCoyan in #2528