Skip to content

system-wide · offline

Type less.
Do More.

Type ;trigger and space. Get a full reply. fns expands your triggers everywhere — Mail, Slack, Notion, terminal — with dynamic date and clipboard placeholders too.

system-wide · offline · no cloud sync required

How it works

Snippets — type the trigger, your saved text appears

`;daily` expands into Notion with full markdown formatting intact. Support replies, email signatures, frequent paragraphs — from a short trigger.

Placeholders insert input, clipboard, and date automatically

Pass a reason into the `;csSorry` trigger as input and it flows into the body. Dynamic placeholders like `;date` and `;clip` too.

Snippet templates built in, ready to use

An example of picking and adding a snippet template that ships with fns. Common patterns are there from the start — no setup needed.

AI Snippets — type the trigger, an LLM writes for you

An example of adding a new AI Snippet. Like `;polish` to refine a rough draft, or generate a reply that fits the email you received.

Reads the screen you're looking at right now

Run an AI Snippet on a Notion page and it reads the current document and summarizes it — Rewrite all mode replaces the whole thing.

Questions

How is this different from macOS built-in text replacement?

macOS text replacement is limited to simple substitutions in Apple apps. fns works system-wide — including Electron apps, terminals, and browsers — and supports multi-line snippets, dynamic placeholders, and cursor positioning.

Does it work in every app?

Yes. fns injects text at the system input level, so it works in any app that accepts keyboard input: native apps, Electron apps, web browsers, and terminals.

Can I import from TextExpander or Espanso?

Import from TextExpander's CSV export and Espanso YAML files is supported. There's an import wizard in fns preferences.

Does it sync across Macs?

Snippets sync via iCloud Drive if you have it enabled, with no extra setup. You can also export and import a JSON backup manually.

What placeholders are supported?

{{date}} (today's date, formatted), {{time}}, {{clip}} (clipboard contents), and {{cursor}} (places the cursor after expansion). More coming in future updates.

Save 30 minutes a day.

Define five triggers this afternoon. You'll wonder why you waited.