SnipKey icon SnipKey
macOS 13+ · Swift 5.9+ · Open Source

Turn reusable text into a single trigger.

SnipKey is a macOS menu bar text expansion tool. Type #trigger in any app to open a cursor-following completion panel and expand saved text without breaking your flow.

Works in any app Triggers globally across the system, not just inside one editor.
Keyboard-first flow Selection, confirmation, and expansion are designed to keep typing uninterrupted.
Built for upkeep Variables, search, import/export, and history features keep snippets manageable.
Capabilities

Organized around trigger, choose, expand, and maintain.

The page follows the real usage flow first, cuts unnecessary decoration, and explains the most important capabilities before anything else.

Trigger stage: capture keywords quickly

SnipKey listens for triggers prefixed with # across the system, so it works in any app that accepts text input.

Global trigger Menu bar resident Low interruption

Selection stage: a cursor-following panel

Use arrow keys to move, Tab or Enter to confirm, and Esc to cancel.

Cursor-following Keyboard-driven Usage-based ranking

Expansion stage: templates with variables

Embed {date}, {time}, {clipboard}, and {cursor} directly inside snippet content.

Dynamic variables Context insertion Cursor placement

Maintenance stage: native settings UI

Grouping, search, create, edit, delete, and JSON import/export all live in one native settings window.

Three-column settings Search management JSON import/export
Workflow

After setup, daily use comes down to four actions.

The shortest path comes first, so new users understand the flow before digging into details.

  1. 1
    Open Settings

    Launch the app from the menu bar and start managing your reusable text snippets in Settings.

  2. 2
    Create a Key

    Create a Key such as account and enter the replacement text or variable-based template you want to insert.

  3. 3
    Trigger it in any app

    Go back to chat, docs, email, or any other text field, then type #account to see matching candidates.

  4. 4
    Confirm and expand

    Confirm with Tab, Enter, or a terminating character, and SnipKey replaces the typed trigger automatically.

Quick Start

Start with the signed development app for more stable permissions.

This section keeps only the shortest path. The full setup details still live in the repository docs.

Recommended path

  • Bind Accessibility permission to a stable app identity instead of a rebuilt executable path.
  • If an Apple Development certificate is already available, you can run tests and launch the app directly.
  • Signing details and environment notes stay in the repository docs so the landing page does not become a full tutorial.
Signed dev app More stable permissions Better for long-term use
make signing-help
make bootstrap-personal-team
make run

# If an Apple Development certificate is already available:
make test
make run

Full signing instructions live in docs/development-signing.md

Data & Maintenance

Keep local data paths explicit for backup and migration.

Listing the important paths directly saves users from hunting through the repo the first time they need them.

Key data file

~/Library/Application Support/SnipKey/snippets.json

Clipboard history

~/Library/Application Support/SnipKey/clipboard-history.json