A deliberate flow
- Open Manage Snippets from Settings or the menu bar. Create a snippet, edit its template and description, then review the local preview.
- Type its trigger in an editable field. The default ⌃⌥E shortcut checks at most 32 UTF-16 code units before the caret, only when pressed. Alternatively, ⌃⌥Space opens the palette so you can choose a snippet.
- AYVI revalidates the target and text before insertion. If Accessibility writing is unavailable, a consent-gated clipboard fallback may be offered.
Triggers use ASCII characters and are 2 to 32 characters long. They can be global, assigned to a category/language, or scoped to selected apps. Matching ignores letter case.
Examples
These fixed examples run entirely in this browser. They take no input and send no request.
sout → System.out.println({cursor});
trycatch → wrap a selection in a try/catch block
Choose a fixed example. No network request.
sout is a built-in Java snippet. trycatch can wrap an existing selection with {selection}. An email sign-off can also be saved as an ordinary text snippet; it is not bundled company content.
Templates with placeholders
Placeholders resolve locally during insertion. Fill-in fields with the same name share a value; Escape closes a form without changing the target.
{cursor}- Places the caret at that point. At most once per template.
{selection}- Inserts the current selection into the template. With no selection, the configured fallback is used.
{input:Name},{input:Name=Default}- Prompts for text, optionally prefilled with a default.
{choice:Name=a|b|c}- Prompts for a choice among two to twenty options.
{date},{date:Format},{time}- Inserts the local date or time.
{clipboard}- Inserts clipboard contents when this token is explicitly used in a chosen snippet. A notice appears before first use.
Ordinary code braces need no escaping. Only known placeholder names are recognized; {{cursor}} outputs the literal text {cursor}.
Privacy and control
- Snippet expansion does not continuously monitor keystrokes and uses no
CGEventTap. Only the explicit shortcut reads the bounded text before the caret. The palette needs no before-caret read. - Password fields of type
AXSecureTextFieldare excluded before reading and writing. The target app, focused element and text are rechecked before changes. - Snippets stay on this Mac in an encrypted local store with a separate keychain key. They are not sent to a provider or written to diagnostic logs.
- “Save as Snippet” creates an unsaved draft from the current Accessibility selection after an explicit click. Cancel saves nothing; it does not read the clipboard or call a provider.
- Insertion does not execute code or send Return. Terminal has additional confirmation and multiline safeguards.
The separate local snippet suggestions in the AYVI question field are independent and only suggest expansions in that input field.
Verification status and limits
Automated tests cover parsing, templates, storage, validation and insertion paths. They do not replace a practical test in every target app.
| Area | Documented status |
|---|---|
| Management and local storage | Management was checked in Settings; a custom entry remained after reopening the window. |
| Save a selection | The main TextEdit flow was checked: open draft, cancel without saving, reopen and save. |
| Shortcut expansion and palette | Interaction in real target apps has not been systematically checked. |
| TextEdit, Mail, Notes, Safari, Chrome, IntelliJ, VS Code, Xcode, Terminal and iTerm | Snippet expansion is not currently confirmed compatible; see Compatibility and the manual test matrix in the repository. |
The app supports macOS 14 or later. There is no public download and no guarantee that a snippet expands in every app or input field.