HN Hall of Fame Weekly email

Show HN: Espanso: detect a typed keyword and replace it while you're typing

espanso.org Software & code Software projects Software engineering Candidate
Screenshot of espanso.org captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 4 calendar years, with breakout response in 2 of them.

submissions
5
submitters
5
observed span
2019–2022
peak thread · 76 comments
127 pts
latest 20+ return · 2022-08-26
106 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Interesting, I built a similar system for my Vim setup that I slowly adopted over time. I realised that semicolons are almost always followed by whitespace or newlines in normal use, so I started defining a whole range of shortcuts with `;` as a prefix. As the key is directly on the homerow it's also quick and easy to use. For example I have `;out` defined to expand to the correct stdout print function depending on the programming language used…

I was wondering how this was done technically, i.e. how it gets the current text content, and how it would do the text replacement. From a quick glance, it looks like for getting the text, it listens to all the keyboard events globally. I can imagine many potential problems and shortcomings with this approach, but on the other side, this is probably the most simple and most generic solution, working for almost every application. For sending the text, it does…

This is a great app, so much so I’ve been donating for a while. I recommend anyone to try and donate if they like it!

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
240

reference only — not used in Hall rules or ranking

Total comments
118

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2019-12-08Espanso: Cross-Platform Text Expander Written in Rustpcr91030350
2020-02-07Espanso – Cross-Platform Text Expander Written in Rustc0restraint10
2020-04-22Show HN: Cross-platform Text Expander written in Rustfedericoterzi11
2021-02-03Show HN: Espanso: detect a typed keyword and replace it while you're typingFirst breakout · Best threadHipstaJules12776
2022-08-26Espanso Cross-Platform Text ExpanderLatest 20+ point returnenbugger10641