macOS 13+ · Swift native · Open source

Type short.
Paste long.

A native macOS text expander. Set a trigger like ;email — the moment you type it anywhere, KeyPaste swaps it for the full text, with live data: clipboard, date, a fresh UUID, cursor placement.

Free & open source (AGPL-3.0). Not yet notarized — a quick one-time step to open it is shown below. Apple Developer ID lands in v1.0.

Everything in a 5 MB menu-bar app

Instant fire

Expansion the moment your typed buffer matches a trigger. No boundary key, no delay.

🧩

Live templates

{{clipboard}}, {{date}}, {{uuid}}, relative dates {{date:+1d}} and custom formats.

🎯

Per-app scope

One trigger, two meanings: ;addr gives your work address in Mail, home in Messages.

↩︎

Cursor & keys

{{cursor}} parks the caret in multi-line snippets; {{enter}}/{{tab}} press keys after the paste.

📦

Snippet packs

One-click installs: Dates & Times, Identifiers, SQL, Python, HTML/Markdown, Lorem Ipsum.

🔒

Privacy-first

Runs entirely on your Mac. No network, no telemetry, no account. Plain-JSON storage you own.

Install in three steps

KeyPaste isn't notarized yet, so macOS asks once before the first launch. Here's the whole dance — it takes under a minute.

  1. 1

    Download & open

    Open KeyPaste.dmg, drag KeyPaste.app to /Applications. On first launch you'll see "can't be opened — unidentified developer." Right-click the app → Open → confirm. One time only.

  2. 2

    Grant Accessibility

    System Settings → Privacy & Security → Accessibility → enable KeyPaste, then quit and relaunch. This lets it watch for your triggers and deliver the paste.

  3. 3

    Make your first trigger

    Click the menu-bar icon → Edit Triggers… (⌘N). Tip: prefix triggers with ; (e.g. ;email) so they don't fire mid-word.

KeyPaste menu-bar dropdown
The menu-bar dropdown — your whole control surface.

Prefer to build it yourself? git clone and run ./scripts/build-app.sh — full instructions in the README.

A real app, not a config file

Trigger list
Trigger list
Trigger editor with live preview
Editor with live preview
Settings
Settings
Fire statistics
Fire statistics
Community · open packs

Don't start from a blank list

Install a ready-made pack in one click and import it straight into KeyPaste — signatures, dates, SQL, Markdown, git & DevOps commands, Python and JS boilerplate. 70+ triggers and growing.

Everyday Python JavaScript SQL Markdown Git DevOps

Why KeyPaste

KeyPasteTextExpanderEspanso
PriceFree · open source$40 / yearFree
Native macOS (Swift)ElectronRust CLI
Per-app scope✓ (paid)
No account / no cloudCloud
Visual editorYAML files
Privacy: zero telemetry

Stop retyping the same things.

Free, native, private. Set a trigger in a minute.