FAQ

Home > FAQs > vs text expanders

OpenCues vs text expanders (espanso, TextExpander)

Text expanders (espanso, TextExpander, OS shortcuts) replay stored snippets when you type a trigger: ;addr becomes your address, instantly and offline. OpenCues is keyboard-first in the same way, but its fills are computed, not stored.

Static replay vs computed answers

A classic expander mostly replays what you saved earlier (espanso's script extension can inject command output, though no model is involved). A blank can answer things you never wrote down: 5 miles in km _, weather tokyo _, nvda _, translate to japanese _, or draft an email to my landlord _. For the classic expander use case (your own details), OpenCues' identity context plays the same role, with a twist: in safe mode your stored values never even reach the model.

Where expanders win

Honestly: instant, offline, deterministic output, OS-wide coverage including native apps OpenCues has no host for yet. If all you need is snippet replay, an expander is the simpler tool, and the two coexist fine.

Where OpenCues goes further

Everything computed: live system state you can cycle (volume _), whole-draft rewrites, continuous editing agents, and word alternatives as you compose. Plus the same config works across every host, hot-reloading as you edit it.

One more parallel: extensibility. espanso has its package hub, and OpenCues cues and blanks are the same idea as markdown files with optional scripts, shareable at project level, specified by an open standard anyone can implement.

Where expanders struggle

Keyboard-hook injection is deterministic but blunt: expansions are typed keystrokes, occasionally misfiring in apps that intercept input, and the only revert espanso offers is backspacing the last expansion. The deeper limit is the model-shaped hole: an expander cannot answer, transform, or fetch anything you did not save in advance, and every trigger is one more thing to memorise.

By the numbers

On raw economics espanso matches the one-step, zero-end-lag flow exactly, for anything you saved in advance, and its backspace-reverts-last is a real product-side undo. The difference is what the step can summon: a snippet library versus a model, live data, and rewrites. Counts and sequences in the full comparison.

Related: OpenCues vs espanso · Identity context · Control your system from text · GitHub repo