RELEASE
HISTORY

Every update, feature, and fix — documented.

// NEW_FEATURES
  • +Move your Wordy library between Macs - Import a Wordy JSON file with snippets, folders, saved variables and rewrite prompts together. This works between different iCloud accounts, too. Review every addition, replacement and restored item before applying it. See the migration guide.
  • +Share a folder with what it needs - Right-click a folder and choose Export Folder… to include its snippets and, if you choose, the nested snippets and saved variables they depend on. Wordy points out missing references before you export.
  • +Find nested snippets as you write - Choose + Insert → Nested Snippet… in Builder or Source, search by title, shortcut or content, and inspect a preview before inserting. Navigate with the arrow keys and Return.
  • +Move placeholders by dragging - Drag a chip to reposition that occurrence, hold Option to copy it, and undo a move in one step. Dragging between editors copies the placeholder while keeping the original.
// IMPROVEMENTS
  • ~A more complete library export - Export Library… now carries saved variables and rewrite prompts alongside snippets, folders, ordering, regex settings and app-specific rules and text. Settings, credentials and local history stay on each Mac. Older Wordy JSON exports can still be imported.
  • ~Review imports before changing your library - New items are selected, identical items are skipped, and different or previously deleted items require an explicit choice. Conflicting shortcuts or names are flagged. A recovery backup is saved before import, and large previews stay responsive.
  • ~Settings are easier to navigate - A persistent sidebar separates General, Keyboard Shortcuts, Library & Sync, AI & Translation, License and Updates. Library backup and iCloud controls now sit together, with clearer choices for Wordy JSON and TextExpander CSV.
  • ~One grouped Insert menu in Builder and Source - Find inputs, reusable fields, dates and times, saved variables, counters, transforms and actions in the same places. Source retains its configuration forms and checks invalid field definitions before inserting them.
  • ~More useful previews - See transformed text, nested snippet content and links, and try sample inputs inherited from nested snippets. Counters show their expected values without advancing. JavaScript and shell placeholders clearly show that their results require Test or expansion.
  • ~More dependable saving and sync - Snippets, folders, variables and rewrite prompts save together. Local saves continue while iCloud is busy, all four collections merge through sync, and unreadable cloud data produces an error without replacing your local library.
  • ~Better recovery when saving fails - Wordy waits for pending saves before quitting and stays open if the final save fails. A library that cannot be loaded offers Retry Loading and Show Library Files, with editing paused until it can be read.
  • ~Seven-day licensed offline access - After a successful online check, activated licenses work offline for up to seven days, or until the license expires if sooner. This replaces the 30-day allowance in 1.4.4. Existing activations need one online verification after upgrading. Use Settings → License → Check License to verify and view the offline deadline. Read about offline access and recovery.
  • ~Protected license storage and clearer recovery - Verified license state is stored in this Mac's Keychain. Interrupted activation and deactivation retain their recovery state across restarts, with clearer errors and controls to resolve them without repeated activation attempts.
// BUG_FIXES
  • *Fixed fill-in and Quick Search insertion stopping when a browser recreates its text field as Wordy removes the trigger. App, permission, secure-input and cancellation checks still apply.
  • *Fixed insertion failure explanations being cleared or replaced by another insertion. The recovery alert now keeps the reason for that specific attempt.
  • *Fixed Rewrite and Translate processing only part of an oversized selection. Selections over 5,000 characters now show an explanation, and replacement stops if the original field, text or selection can no longer be verified. The result remains available to copy.
  • *Fixed opening or dismissing AI panels changing the clipboard. Replacement preserves rich and multiple-item clipboard contents and keeps anything you copied more recently.
  • *Fixed repeated identical counter placeholders consuming unused values, extra cursor markers shifting the final position, and explicitly empty date inputs becoming today's date.
  • *Fixed preview samples losing track of defaults, cleared values and input type changes. Regex capture samples stay separate from fill-in fields with the same name. Notes from unchecked optional sections remain on the form, and unresolved syntax stays visible with a diagnostic.
  • *Fixed Source-mode placeholder selection and caret placement around emoji, combining characters and Unicode snippet shortcuts. Extreme negative date offsets no longer crash placeholder rendering.
  • *Fixed script work continuing after a timeout and shell commands stalling on large output. JavaScript workers and shell descendants are terminated when they time out, captured output is bounded, and expensive regex matching is stopped when it exceeds its execution budget.
  • *Fixed closely spaced saves reusing recovery snapshots, paused-sync recovery pointing at an assumed backup name, and older folder backups failing to load.
  • *Fixed a failed API-key update losing the previous saved key. Pending key saves are included when Wordy waits to finish saving before quitting.
  • *Fixed license and trial expiry not updating the running app, incomplete records enabling expansion, and overlapping license operations restoring outdated state. Pending deactivation keeps expansion paused until resolved.
  • *Fixed the Settings sidebar divider stopping below the title bar and shortcut recording continuing after leaving the section or window.
// NEW_FEATURES
  • +A new visual snippet editor - Your snippet is now shown as one piece of text, with every placeholder displayed as a readable chip. Dates read as "Tomorrow" or "In 7 days", fill-in fields show their names, and values captured by a regex trigger appear as green "From trigger" chips.
  • +One Insert menu for everything - Add fill-in fields, dates, times, the clipboard, saved variables, nested snippets, counters, text transforms, the cursor position, optional parts, links, notes, JavaScript and shell commands right where your cursor is. No more popup editors.
  • +The fill-in form, built as you write - The right side of the editor now shows the form your snippet will ask for. Rename a field, change its type, set a default, list dropdown choices or mark it as required in place, and every use of that field in the text updates with it.
  • +Try values and see the result live - Type a sample value into any field, capture group or the clipboard, and the Result preview shows exactly what will be typed, with your values highlighted. It never runs commands or opens links.
  • +Helpful warnings before you save - The Result preview points out placeholders that will not work where they are, such as a script inside a link or a link with no address.
  • +A "Then open" list for links - Links your snippet opens after typing now sit in a numbered list under the text. Edit each address, add or remove URL parameters one at a time, and reorder or remove links without touching the raw syntax.
  • +Safer text insertion - Before a slow snippet runs, or when you open Quick Search, Wordy remembers where the text should go. If you have switched to another app, or a password field or secure input is now active, Wordy stops and offers "Copy Result" instead of typing into the wrong place. The alert explains why it stopped.
// IMPROVEMENTS
  • ~A tidier editor header - Title and Trigger are clearly labelled. Folder, regex trigger, app scope and per-app versions now live behind the gear button, and Test snippet, Version history and Delete snippet are in the "…" menu.
  • ~Save only lights up when something has changed, and leaving a snippet with unsaved changes now asks whether to keep editing or discard them.
  • ~The preview is always available - In narrower windows it moves behind Write and Preview tabs instead of disappearing, so it works in the default window size with the sidebar open.
  • ~Snippets in a folder named Code, or that look like code, are shown in a monospace font.
  • ~Any fill-in field can be switched to any other type. A date switched to a dropdown starts with two example choices.
  • ~The fill-in window has a new preview that matches the editor. Your text comes first with unfilled values dimmed, then any links it will open, and it updates as you type.
  • ~The fill-in window opens larger, can be resized from any edge or its corner grip, keeps its size for the next form, and no longer moves when you drag inside it.
  • ~Quick Search now replaces text you have selected, including when the snippet produces no text.
  • ~Pausing Wordy, or starting another expansion, cancels an insertion that is still waiting, so a late result can never land in the wrong place.
  • ~Better compatibility with browsers and Electron apps - When an app cannot describe its text field, Wordy types into the same app instead of stopping.
  • ~Raw placeholder syntax is still one click away. Use Source to edit it directly and "Done with Source" to return to the visual editor.
// BUG_FIXES
  • *Fixed short snippets losing accented letters and other Unicode characters.
  • *Fixed the clipboard being overwritten if you copied something while a snippet was expanding.
  • *Fixed {{cursor}} not moving the cursor in some browsers.
  • *Fixed file paths containing ? or # being split as if they were web addresses.
  • *Fixed typing ? at the end of a web address removing its existing parameters.
  • *Fixed optional parts inserted from the menu sharing the same label.
  • *Fixed regex capture groups being confused with built-in placeholders of the same name.
  • *Fixed dropdown choices dropping keystrokes while you typed them.
  • *Fixed replacing a placeholder with unclosed braces removing nearby text.
  • *Fixed spaces and blank lines before trailing links being lost.
// NEW_FEATURES
  • +Drag snippets into your preferred order - Use the new handle beside each snippet to arrange your library the way you want. A clear yellow line shows exactly where the snippet will be placed.
  • +Your order is shared between All Snippets and folders - Folders keep the same relative arrangement as your main snippet list.
  • +Move snippets without dragging - Right-click a snippet to move it to the top, up one place, down one place, or to the bottom.
  • +Your display order does not affect text expansion - Rearranging snippets cannot change how their triggers work.
  • +Search works in both All Snippets and individual folders - When a folder is selected, results are limited to that folder automatically.
  • +Search with multiple words - Wordy matches every word across the snippet name, trigger, and replacement text, regardless of capitalisation.
  • +See how many matches were found - A clear result count such as "12 of 84 snippets" tells you how much of your library is showing.
  • +Clear the search before rearranging snippets so their position is always unambiguous.
// IMPROVEMENTS
  • ~Your custom snippet order syncs through iCloud - Your arrangement travels alongside your snippets, so it is the same on every Mac.
  • ~Existing snippet libraries are upgraded automatically; no manual setup is required.
  • ~For a consistent order everywhere, update Wordy to 1.4.3 on every Mac you use.
  • ~Safer app updates - Wordy's built-in updater has been updated to Sparkle 2.9.5, adding the latest security protections and improving update-window behaviour for menu bar apps.
// NEW_FEATURES
  • +More reliable expansion - Wordy now handles more real-world snippets correctly, including fill-in answers with dollar signs, backslashes, file paths, mixed-case date words, and snippets that include JavaScript or shell commands.
  • +Better optional sections - Optional parts of a snippet now feel clearer and easier to use. If an optional section contains extra fields, Wordy only asks for them when that section is switched on.
  • +Safer iCloud sync - If you edit snippets on two Macs around the same time, Wordy is better at keeping both changes instead of letting one replace the other. For the best protection, update Wordy to 1.4.2 on every Mac you use.
  • +Smarter AI snippet creation - The AI assistant now understands more Wordy features, including global variables, opening links or files, and date pickers, so it can build more useful snippets from plain-English requests.
// IMPROVEMENTS
  • ~Fill-in forms are smoother - Optional sections now appear as clear cards, nested fields hide when they are not needed, and focus moves more naturally when the form opens.
  • ~Wordy stays responsive while a snippet is preparing - Snippets that run a command now work in the background, so the app should not feel stuck while you are filling in a form.
  • ~A new recovery safeguard helps Wordy get unstuck automatically if a command takes too long, instead of needing a restart before expansion works again.
  • ~Clipboard handling after expansion is safer, especially when you trigger another snippet immediately after the first one.
  • ~Licensing is more forgiving during temporary server problems. If the licensing service has a short outage, Wordy keeps working within the normal offline grace period instead of assuming your license has expired.
  • ~The built-in updater has been refreshed to keep future Wordy updates running smoothly.
// BUG_FIXES
  • *Fixed fill-in answers like $100 or C:\Users\me so special characters are no longer lost or changed during expansion.
  • *Fixed optional sections that contain fields, so unchecked sections stay out of the final text and checked sections ask for the right details.
  • *Fixed Title Case so names and product words keep their expected casing, such as iPhone 15 PRO.
  • *Fixed date shortcuts like {{date:Short}} and {{date:Long}} so they expand to dates correctly.
  • *Fixed a rare case where a damaged snippets file could be mistaken for a new install. Wordy now keeps a recoverable copy instead of replacing it with the demo snippets.
// NEW_FEATURES
  • +Important for multi-Mac users - Update Wordy to 1.4.0 on every Mac before turning on iCloud sync on a Mac that has not synced before. Older versions may replace that Mac's local snippets with the version already stored in iCloud without asking first. Wordy 1.4.0 adds a new safety check that warns you before a large sync change is applied. Learn more →
  • +New sync safety guard - Wordy now pauses iCloud sync if an incoming update would remove a large number of snippets. You'll see a yellow warning in the menu bar with a clear "Sync paused" message, so you can review the change before anything is replaced.
  • +Review before applying - When sync is paused, you can apply the incoming iCloud version, reveal the saved copy in Finder, or cancel and keep your current snippets.
  • +Automatic local backups - Wordy now keeps recent local backups of your snippet data, giving you a recovery point if something unexpected happens.
  • +iCloud snapshots - Before Wordy uploads new sync data to iCloud, it now saves recent snapshots of the previous iCloud version.
  • +iCloud unreachable notification - If Wordy cannot reach iCloud for several minutes after launch, macOS will show a notification so you know sync is paused and can check your iCloud connection.
// IMPROVEMENTS
  • ~Safer first-time sync - Wordy now does extra checks before treating a new install's sync data as safe to upload.
  • ~Backwards-compatible sync data - Existing Wordy data files continue to load normally after updating.
// BUG_FIXES
  • *Fixed a rare first-sync data loss issue - A fresh Wordy install can no longer overwrite existing iCloud snippets with the starter default snippets.
Wordy snippet editor showing per-app scope rules and per-app replacement variants side by side
// NEW_FEATURES
  • +Per-app snippet variants — One trigger, different text per app. Type ;hi in Mail and get "Hey there, thank you for your email." Type the same ;hi in Slack and get "Hey Team." A new tab bar above the replacement editor shows a Default tab and a + button — click + to pick an app, tweak the text for that app, done. Apps without a variant fall back to the default. Learn more →
  • +Per-app snippet scope — Restrict a snippet to fire only in specific apps, or block it in specific apps. The new App Scope card in the editor has three modes: Everywhere, Only in these apps…, or Except in these apps…. Right-click any snippet in the list to quickly restrict, block, or reset it for the app you were just using. Learn more →
  • +App picker with search — Adding an app pulls up a searchable picker showing apps that are currently running, your 10 most recent picks, and a Browse… option to choose any app from your Applications folder. The search field is ready to type in the moment it opens.
  • +Variants and scope work together — You can limit where a snippet fires and customize its text per app at the same time. For example, allow ;sig only in Mail and Slack, with different signatures for each.
// IMPROVEMENTS
  • ~Redesigned snippet list — A new Scope column sits between Trigger and Folder and shows where each snippet fires at a glance (e.g., "Mail only", "Except Terminal", "2 variants"). Hover to see the full app list. The combined Name/Abbreviation column is now two separate Name and Trigger columns, and the small "Plain text / Rich text / Regex" label under names has been removed for a cleaner look.
  • ~Wordy won't trigger inside itself — Typing a trigger while editing a snippet in Wordy no longer fires that snippet. Edit freely without accidental expansions.
  • ~Everything syncs — Variants and scope rules ride the existing iCloud sync, so configuring on one Mac propagates to all your devices. Variants for apps you don't have on a given Mac simply sit dormant.
  • ~Full version history — Edits to any variant are captured in snippet version history, so you can always roll back to an earlier version of any app's text.
  • ~Nothing to migrate — All existing snippets keep working exactly as before. Variants and scope are opt-in per snippet.
// BUG_FIXES
  • *Fixed an issue where tapping a snippet in the list didn't always select it on the first click.
// NEW_FEATURES
  • +Redesigned Settings — Settings is now organized into tabs (General, AI, License, Import/Export) instead of one long scrollable page. Each tab resizes the window to fit its content, keeping things clean and focused.
  • +Sidebar and snippet list animations — Folders, navigation items, and snippet rows now respond to hover, press, and selection with smooth transitions for a more polished feel.
  • +Button animations — Buttons throughout the app have a subtle weight-shift effect on hover and press, making interactions feel more tactile.
  • +Fill-in form animations — The fill-in popup now has entrance animations, a shake effect for validation errors, and smoother button transitions.
// IMPROVEMENTS
  • ~Update screen now shows what's new — When a new version is available, the update dialog displays the changelog for that release so you can see exactly what's changed before updating.
// BUG_FIXES
  • *Fixed an issue where clicking a snippet in the list wouldn't always select it properly.
// BUG_FIXES
  • *Fixed multi-line snippet expansion in terminals — Expanding multi-line snippets (e.g., shell scripts with awk) in Terminal, iTerm, or other terminal emulators would type each line individually with Return keys between them, causing the shell to execute each line instead of pasting the block. Wordy now uses clipboard paste (Cmd+V with save/restore) for any expansion containing newlines or exceeding 100 characters, matching Espanso's proven approach. Short single-line expansions still use direct keystroke injection to avoid clipboard clobbering.
  • *Fixed fill-in form expansions silently failing in Chromium browsers — Fill-in form expansions (e.g., .sem → URL with email field) in Brave, Chrome, and Edge address bars would play the expansion sound but produce no output. Chromium's omnibox reports AX value as settable but silently ignores the write. Wordy now verifies the value was actually updated by reading it back, and falls back to clipboard paste when the write was ignored.
// NEW_FEATURES
  • +Inline AI rewrite — Select text in any app, press Ctrl+Shift+R, and rewrite it with Claude. A floating panel shows your original text, lets you type a custom instruction or pick from saved prompts, and displays the result. Click Replace to paste rewritten text back or Copy to clipboard. Learn more →
  • +Custom rewrite prompts — Save, edit, reorder, and delete your own rewrite prompts. Prompts sync across devices via iCloud alongside your snippets and folders. Six presets are included (Fix Grammar, Make Concise, Make Professional, Make Casual, Simplify, Summarize) and are fully editable.
  • +Iterative refinement — After a rewrite, click Refine to rewrite the result again with a new instruction. Chain multiple rewrites without starting over.
  • +Configurable rewrite hotkey — The rewrite shortcut (default Ctrl+Shift+R) can be rebound in Settings → Shortcuts, just like translation and quick search hotkeys.
// IMPROVEMENTS
  • ~Target app name in fill-in popup — The fill-in form header now shows the destination app (e.g., "greeting → Google Chrome") so you know where the expanded text will go.
  • ~Target app name in rewrite panel — The rewrite panel header shows the source app (e.g., "Rewrite → Safari") so you know where the rewritten text will go.
  • ~Solid background for rewrite panel — The rewrite panel now uses a solid opaque background matching the fill-in form style, replacing the translucent vibrancy effect.
  • ~Rewrite panel stays visible on focus loss — The panel no longer disappears when clicking on another app. Dismiss it with ESC or the close button.
  • ~Readable keyboard shortcuts — Hotkeys now display as "Ctrl+Shift+R" instead of "⌃⇧R" throughout Settings and the app.
// BUG_FIXES
  • *Fixed inaccurate "All Time" average expansions per day after old events were pruned — the stat now uses the correct start date instead of producing inflated numbers.
  • *Fixed fill-in form expanding old clipboard content in web apps (Gmail, Zendesk, Electron) — a race condition caused the previous clipboard contents to be pasted instead of the expansion text.
  • *Fixed translation Replace pasting old clipboard content in web apps — the clipboard was being restored too quickly for slower web apps to read it.
  • *Fixed rewrite Replace pasting old clipboard content in web apps — same race condition as translation, now resolved.
// NEW_FEATURES
  • +Cross-app fill-in fields — When you trigger a snippet with fill-in fields in one app (say, Chrome) and happen to switch to a different app while filling in the form, Wordy now remembers where you started and puts the text in the right place. No more accidental expansions in the wrong window.
  • +The fill-in popup now shows the destination app in its title (e.g., "Fill In - greeting → Google Chrome") so you always know where your text will end up.
// IMPROVEMENTS
  • ~Smarter text injection — Wordy now uses the best available method for each app automatically. Native macOS apps (TextEdit, Mail, Notes, etc.) get silent background injection, while web apps like Gmail and Zendesk get a targeted paste that works correctly with their input fields.
  • ~Faster app switching — Instead of waiting a fixed amount of time before inserting text, Wordy now detects when the target app is ready and acts immediately. This makes expansions snappier, especially on slower machines.
// BUG_FIXES
  • *Fixed single-character expansions (like .ar → →) failing on the first try in Terminal — Wordy now gives the terminal enough time to process the change before sending the replacement character.
  • *Fixed clipboard contents being partially lost after an expansion. If you had rich content copied (e.g., formatted text or HTML), Wordy now preserves all of it when restoring your clipboard.
  • *Fixed rare crashes that could occur when Wordy was figuring out whether a text field belongs to a web app.
  • *Fixed garbled output when expanding snippets containing emoji or accented characters into native text fields.
  • *Fixed an edge case where text injection via paste could silently fail without falling back to the standard method.
  • *Removed harmless but noisy font warnings that appeared in the log on launch.
// BUG_FIXES
  • *Fixed a timing issue where Wordy could send text to the wrong app. Instead of guessing when an app is ready, Wordy now waits until it confirms the target app is actually in focus before inserting text — making expansions much more reliable.
  • *Fixed a bug where snippets with fill-in forms would play the confirmation sound but no text would appear. The form window was briefly stealing focus at exactly the wrong moment — this is now resolved.
  • *URLs inside snippets (using open:) no longer interfere with text insertion. They now open after the text has been placed, so the browser can't jump in and steal focus mid-expansion.
// NEW_FEATURES
  • +Smarter text replacement — Wordy now selects and replaces your trigger text in one step instead of deleting it character by character. It's faster, more reliable, and if anything goes wrong, your original text stays put so you can easily try again.
  • +Automatic app detection — Wordy now figures out the best way to expand text in each app on the fly. Standard macOS apps get the faster replacement method, while terminals, Electron apps, and remote desktop clients automatically use the classic approach. No setup or configuration needed.
// IMPROVEMENTS
  • ~Noticeably faster expansions in apps that use the classic deletion method — up to 66% quicker than before.
// BUG_FIXES
  • *Fixed an issue where pressing Return or Tab wouldn't trigger regex-based snippets — only Space was working. All three keys now work as expected.
  • *Fixed a bug where snippets containing nested placeholders (like a note referencing a shell command) were incorrectly treated as slow expansions, causing unnecessary delays.
// BUG_FIXES
  • *Fixed a bug where snippets would stop inserting text after using one that opens URLs or browser tabs. You'd hear the expansion sound, but nothing would appear. This is now fully resolved — snippets expand reliably regardless of what previous snippets did.
// BUG_FIXES
  • *Fixed an issue where snippets with fill-in fields could stop expanding after using a snippet that opens a URL. The browser would sometimes steal focus at the wrong moment, causing the next snippet's text to end up in the wrong app.
// BUG_FIXES
  • *Fixed expansion system freezing after inject() early return — two early-return paths in TextInjector.inject() (no frontmost app, or frontmost app is Wordy itself) skipped calling onInjectionComplete, leaving isInjecting permanently true and causing all subsequent keystrokes to be silently dropped. Both paths now fire the completion callback.
// BUG_FIXES
  • *Fixed snippet expansion pasting clipboard content instead of snippet — removed the clipboard-based injection path which had a race condition during the paste window. All text is now injected via CGEvent Unicode events regardless of length or content.
  • *Fixed surrogate pair splitting at chunk boundaries — emoji and other non-BMP characters could be corrupted when a UTF-16 surrogate pair was split across two CGEvent chunks. Chunk boundaries now respect surrogate pairs.
// NEW_FEATURES
  • +Text injection now uses CGEvent key simulation for fast, clipboard-free expansion
  • +Automatically falls back to clipboard paste for long text (500+ chars) or emoji/supplementary Unicode characters
  • +European diacritics and accented characters use the fast CGEvent path
  • +{{shell:...}} and {{js:...}} placeholders now resolve asynchronously — no more UI freezes
  • +New folder creation shows a popover with name and color picker — choose from 8 preset colors or pick a custom color
// IMPROVEMENTS
  • ~Held modifier keys (Shift, Cmd, etc.) are released before injection to prevent garbled output
  • ~Keyboard monitoring pauses during injection to prevent re-triggering
  • ~Cached regex compilation for named capture groups (avoids recompiling on every expansion)
  • ~Nested snippet resolution captures the snippet array once instead of re-reading on each level
  • ~Added unit test target with 51 tests covering the expansion pipeline, text injector, and slow placeholder detection
// BUG_FIXES
  • *Fixed thread-safety issue with keystroke buffer access in KeyboardMonitor
  • *Fixed fill-in panel stealing focus unnecessarily via NSApp.activate
// NEW_FEATURES
  • +New AI Translation — select text in any app and press Option+T to translate it using Claude AI
  • +Floating preview panel shows original text and translation side by side
  • +Choose from 28 target languages with a quick picker
  • +Replace pastes the translation over the original selection
  • +Copy copies the translation to clipboard
  • +Configurable hotkey in Settings → Global Hotkeys
  • +Requires an Anthropic API key (same key used for AI snippet generation)
// NEW_FEATURES
  • +New {{open:URL_OR_PATH}} placeholder that opens URLs, apps, or files after snippet expansion
  • +Opens in the default browser or app via macOS — works with https://, file paths, and .app bundles
  • +Supports dynamic URLs with nested placeholders: {{open:https://jira.com/browse/{{clipboard}}}}
  • +Resolves to empty string — combine with text insertion or use standalone
  • +Multiple {{open:...}} per snippet allowed
  • +Works with fill-in forms, quick search, and direct expansion
  • +Tilde paths (~/Documents/...) expanded automatically
  • +Available in the Insert Placeholder menu under Advanced > "Open URL / Path..."
  • +Syntax highlighted in brown in the snippet editor
// IMPROVEMENTS
  • ~Snippet editor opens instantly — eliminated Keychain I/O that ran on every snippet selection (10–80 ms per click)
  • ~Snippet list and editor views are now preserved instead of destroyed and recreated on each navigation, avoiding full NSTextView reconstruction
  • ~Back button in the snippet editor has a larger click target for easier navigation
  • ~Shell command blocklist now uses regex patterns, making it resistant to bypass tricks like variable expansion, absolute paths, and string concatenation
  • ~Clipboard placeholder resolution uses a thread-safe container to prevent potential memory issues on timeout
  • ~iCloud sync version counter uses timestamp-based versioning to prevent cross-device collisions
  • ~Fill-in form window uses a proper state machine to prevent race conditions between submit and close
  • ~Secure input app detection caches results for 2 seconds to reduce subprocess spawning
  • ~LicenseStore gracefully handles missing Application Support directory instead of force-unwrapping
  • ~Regex triggers that match empty strings are now rejected to prevent firing on every keystroke
// BUG_FIXES
  • *Fixed suggestion count mismatch — menu bar could show "Suggestions 1" while the suggestions sheet showed no results due to sub-phrase deduplication not being applied to the count
  • *Fixed sidebar click targets — clicking the gap between a folder name and its snippet count now correctly selects the folder
  • *Fixed version history losing intermediate edits during rapid saves
// NEW_FEATURES
  • +New {{datepicker:Name}} placeholder type for fill-in forms — shows a graphical calendar picker when the snippet expands
  • +Optional custom date format for date picker: {{datepicker:Name:yyyy-MM-dd}}
  • +Required flag support for date picker: {{datepicker:Name::required}}
  • +Date picker available in the Insert Placeholder menu under Date & Time
  • +Snippet version history — automatically saves a snapshot before each snippet edit, keeps the last 5 versions per snippet
  • +New History button in the snippet editor to browse and restore previous versions, persisted across app restarts
  • +Snippet suggestions — detects repeated multi-word phrases as you type and surfaces suggestions in the menu bar dropdown after 3+ repetitions
  • +Menu bar icon changes to a lightbulb when suggestions are available, with one-click "Create Snippet" to turn a suggestion into a snippet
  • +Deduplicates overlapping sub-phrases for cleaner suggestion results
  • +Toggle snippet suggestions on/off in Settings > General
  • +Fully isolated suggestion detection — no impact on typing performance
  • +New "Test" button in the snippet editor header to preview how a snippet expands — supports fill-in fields, regex snippets with placeholder capture group values, and includes a Copy button for the result
  • +Regex pattern field now highlights syntax with distinct colors — named capture groups, escape sequences, character classes, and quantifiers are color-coded
// IMPROVEMENTS
  • ~Redesigned fill-in form to use a horizontal two-column layout — fields on the left, live preview on the right, replacing the previous stacked vertical layout
  • ~Added draggable vertical divider between fields and preview columns with a grip handle and left-right resize cursor (default 45% fields / 55% preview, adjustable 25%-70%)
  • ~Both columns scroll independently — fields scroll when there are many inputs, preview scrolls when snippet content is long
  • ~Increased window size to accommodate side-by-side layout (860x500 default, 700x400 minimum)
  • ~Removed horizontal resize divider between fields and preview that was used in the old vertical layout
// IMPROVEMENTS
  • ~Fill-in form preview now displays actual clipboard content instead of [clipboard]. Falls back to [clipboard] when the clipboard is empty or contains non-text data.
// NEW_FEATURES
  • +New app logo
// NEW_FEATURES
  • +Complete UI Redesign — The entire app has been restyled with a bold, monospace-heavy developer-tool aesthetic. New centralized design system with dark/light mode support and yellow accent color.
  • +Custom Folder Colors — Folders can now have arbitrary custom colors beyond the 8 presets. Colored pill badges show folder names throughout the snippet list.
  • +Redesigned Fill-in Forms — Numbered fields, new "MEMORIZE" toggle for remembering values, inline placeholder preview with colored pills, and keyboard hints.
  • +Table-Style Snippet List — New three-column layout (Name, Abbreviation, Folder) with themed search and "NEW SNIPPET" button.
// IMPROVEMENTS
  • ~Redesigned sidebar with numbered items, monospace uppercase typography, and tinted active selection with accent border.
  • ~Themed Quick Search with monospace font and accent-colored result highlighting.
  • ~Themed Statistics views with styled card backgrounds, mono values, and accent chart styling.
  • ~All windows now use the new design system — Settings, Global Variables, License Activation, Import, and Permission Request.
  • ~AI components restyled with subtle pill buttons and themed prompt/preview sheets.
  • ~Editor improvements: themed text fields, placeholder highlighter with accent color, and new native dropdown component.
// NEW_FEATURES
  • +Notes in Fill-in Forms — Add reference information to your fill-in forms with {{note:...}}. Notes display in the form with an info icon but are stripped from the final output. Perfect for including email addresses, instructions, or context when filling out forms.
  • +Auto-Update Checking — Wordy now checks for updates automatically and notifies you when a new version is available. View release notes and install updates with one click. Configure in Settings → Updates or check manually from the menu bar.
// BUG_FIXES
  • *Fixed the way the app starts on system startup - making it more reliable.
// NEW_FEATURES
  • +AI Snippet Generation — Let Claude AI write your snippets for you. Describe what you need in plain English and Wordy generates the trigger, replacement text, and placeholders automatically.
  • +Create with AI — Click the sparkles button in the snippet editor to generate a new snippet from a natural language description. Claude builds it complete with the right placeholders, fill-in fields, and formatting.
  • +Improve with AI — Click the wand button to enhance an existing snippet. Ask Claude to add fill-in fields, use date math, shorten the trigger, make sections optional, or any other improvement.
  • +Preview & Refine — Review every AI suggestion before it touches your snippet. See the proposed title, trigger, replacement, and regex status. Apply, refine your prompt to iterate, or discard.
  • +Model Selection — Choose your preferred Claude model in Settings → AI: Sonnet 4.5 (default) for best quality or Haiku 4.5 for faster responses.
  • +Secure API Key Storage — Your Anthropic API key is stored in the macOS Keychain, never written to disk as plaintext. Remove it anytime to disable AI features entirely.
// IMPROVEMENTS
  • ~Regex Triggers UI — When "Use as regular expression" is enabled, the editor now shows two separate fields: Trigger displays the human-readable format (e.g., ;jira<project>-<number>[space]) while Pattern shows the actual regex. This makes it clearer what you need to type versus the underlying pattern.
// NEW_FEATURES
  • +Refreshed Window Design — The main Manage Snippets window now features a modern translucent sidebar that blurs the content behind it, giving the app a more refined macOS-native feel. The detail panel appears as an elevated card with rounded corners and a subtle shadow, creating a clear visual hierarchy between navigation and content.
  • +Translucent sidebar with vibrancy effect
  • +Elevated detail panel with rounded corners
  • +Collapsible sidebar with toolbar toggle
  • +Unified transparent titlebar
// NEW_FEATURES
  • +Native macOS text expander living in your menu bar
  • +Create snippets with custom triggers that expand instantly
  • +Organize snippets into folders for easy management
  • +Regex-powered triggers for dynamic expansions
  • +Global variables for reusable content across snippets
  • +Fill-in fields for interactive snippet completion
  • +Light and dark mode support
// END_OF_LOG