Skip to main content

Using Keyed

How expansion works

Keyed tracks the last handful of characters you typed in a ring buffer. On every keystroke it checks whether the buffer ends with one of your abbreviations. If it does — and you are at a word boundary — it deletes the abbreviation and inserts the expansion.

Expansion uses synthetic Unicode key events, not the clipboard. Your pasteboard is never touched.

Case-aware expansion

Keyed detects the case of the abbreviation you typed and applies it to the expansion:

TypedExpansion (addr1 Main St)
addr1 Main St
Addr1 Main St (Title Case preserved)
ADDR1 MAIN ST

If your expansion already contains proper capitalisation, Keyed preserves it rather than flattening.

Placeholders

Drop these tokens into any expansion — they resolve at the moment the snippet fires.

PlaceholderResolves to
{date}Today's date
{time}The current time
{datetime}Date and time
{clipboard}The current clipboard contents
{cursor}Leaves the insertion point here after expanding

Example:

Meeting notes — {date}

Attendees:

{cursor}

After expansion, the caret sits on the empty line under Attendees:.

Snippets can be organised into groups (work, personal, code, etc.). Groups appear in the sidebar of the main window and make filtering easier as your library grows.

The search field above the list does case-insensitive matching on abbreviation, expansion, and group name.

Pinned snippets

Pin a snippet to make it available from the menu bar popover for one-click insertion — handy for longer templates you do not want to hand a short abbreviation. Pinned snippets bypass the abbreviation match entirely; they resolve placeholders and {cursor} just like typed expansions.

Per-app exclusions

Some apps should never receive expansions — password managers, terminals, anything where silent character substitution would be harmful. Keyed ships with a sensible default exclusion list and lets you add or remove apps from Settings → Excluded apps.

Importing

Keyed can import existing libraries from:

  • CSV — columns abbreviation, expansion (plus optional group). Quoted fields, escaped quotes, and embedded newlines are handled per RFC 4180.
  • TextExpander — point Keyed at a .textexpander file and it will parse the plist.

Duplicates are detected on import and surfaced before anything is written.

Usage counts

Every expansion increments a usage count on the snippet. Sort by usage to find the snippets that earn their keep — and the ones to retire.