πŸ’¬ Ghost Phrases

System-wide text expander – search below to find what you need
πŸ”
⚑ Expansion
Type a Shortcut, Get the Full Text
Type a saved shortcut like ;addr anywhere on your computer β€” in Notepad, a browser, an email, any text box β€” then press Space, Tab, or Enter. Ghost Phrases silently replaces the shortcut with its full text. No popup, no prompt, no interruption to your typing.
⚑ Expansion
Boundary Keys: Space, Tab, Enter
All three fire the expansion so it slots into your natural rhythm. The behaviour differs slightly afterwards: Space is swallowed, so the caret rests right after the last character of the expansion β€” no trailing space. Tab and Enter are passed through, so field navigation and newlines keep working normally.
⚑ Expansion
Case-Insensitive by Default
;addr, ;ADDR, and ;Addr all expand to the same text. Prefer strict matching? Flip Case-sensitive shortcuts in Settings and only the exact spelling will fire.
⚑ Expansion
Multi-Line Expansions
A single shortcut can expand to an entire paragraph, a signature block, or a whole email template. In Phrases.txt use ^ where you want a line break β€” Best regards,^John expands to two lines. Inside the Phrase Manager just type a real line break in the box.
⚑ Expansion
Numpad & Main Keyboard Both Work
Whether you type digits on the numpad or the top number row, Ghost Phrases sees them identically. Numpad +, -, *, /, and . all register correctly too β€” so shortcuts that include numbers fire regardless of which hand you're using.
⚑ Expansion
Date & Time Tokens
Any expansion can include live date/time tokens that are replaced at the moment of expansion:
  • $dddd β€” weekday name
  • $dd / $mm / $yyyy β€” day, month, year
  • $hh (24-hour) / $hh12 (12-hour) / $ss β€” time
  • %hh:mm:ss and %h:mm tt β€” full timestamp patterns
So a shortcut ;inv whose full text is Invoice $dd$mm$yyyy becomes Invoice 14092026 today, and something else tomorrow.
πŸ” Picker
Pop-up Picker ;p + Space DEFAULT
Forgot a shortcut? Type ;p then Space anywhere β€” the picker pops up on top of whatever you're working in. It's a search box with a list of every saved phrase. Change the trigger any time in Settings.
πŸ” Picker
Search Both Columns
Type into the picker's search box and it matches against both the shortcut and the full text. Searching "John" finds ;sig if its full text is "Best regards, John". Searching ";m" finds every shortcut starting with ;m. Clear the box to scroll the entire list.
πŸ” Picker
Keyboard-Driven
Type to filter, press ↓ to jump into the list, then ↑/↓ to move. Enter inserts the highlighted phrase. Esc or Cancel closes without inserting. Double-click any item to insert it directly.
πŸ” Picker
Insert Phrase (tray menu)
Right-click the tray icon β†’ Insert Phrase… opens the same picker without typing a trigger. The selected phrase is inserted into whatever window had focus just before the picker opened.
πŸ“‹ Manager
Phrase Manager
Right-click the tray icon β†’ Phrase Manager…. A window with a full list of every phrase on top, a shortcut field, and a multi-line full-text field below. Select an entry to load it into the editor, change it, then Save entry. Or click New / Clear to start a fresh one.
πŸ“‹ Manager
List View with Previews
The manager's list shows every shortcut and a one-line preview of its full text β€” long paragraphs are truncated with an ellipsis so the list stays readable. Double-click or select to load the entry into the edit fields.
πŸ“‹ Manager
Save Entry / Save & Close
Save entry writes the current fields to the in-memory list and refreshes the view β€” handy when you're adding several phrases in one sitting. Save & Close commits everything to Phrases.txt and closes. Cancel discards any changes made since you opened the window.
πŸ“‹ Manager
Editing an Existing Shortcut
Select an entry, change its shortcut or full text, and click Save entry. If you change the shortcut, the old one is removed automatically β€” no orphan entries. If the new shortcut already exists, it's overwritten (with the change reflected in the list). Shortcuts can contain any character except the sequence => β€” including ;, so PhraseExpress-style ;addr prefixes work fine.
βš™οΈ Settings
Popup Trigger
The single most useful setting. Default is ;p, but you can set it to @@, //ph, !g, or anything else. Whatever you choose, typing it followed by Space opens the picker. Blank = popup disabled entirely (shortcut expansions still work).
βš™οΈ Settings
Case-Sensitive Shortcuts
Off by default β€” ;addr and ;ADDR both fire. Turn it on if you want ;addr and ;Addr to be treated as different entries (useful when you have both a personal and work version of the same shortcut).
βš™οΈ Settings
Start with Windows
Adds (or removes) a small entry under HKCU\Software\Microsoft\Windows\CurrentVersion\Run so Ghost Phrases launches automatically at login and starts watching your keys right away. No admin rights required β€” it's a per-user setting.
βš™οΈ Settings
Show Balloon Notifications
The small tray bubbles that confirm "Phrases saved", "Phrases reloaded", and "Settings saved". Turn off if you want Ghost Phrases to be completely silent unless you specifically ask it to do something.
βš™οΈ Settings
Show Trigger in Tray Tooltip
Off by default. Turn on and hovering the tray icon shows "Ghost Phrases β€” trigger: ;p" so you always know what your current trigger is. Saves you opening Settings just to remember.
πŸ’Ύ Files
Phrases File: Phrases.txt
Every phrase lives in a plain-text file next to the exe. Open it in Notepad and edit by hand any time. Format:
  • shortcut=>full text β€” one entry per line
  • => is the separator; it's the only sequence a shortcut can't contain
  • ; and every other character are fine inside a shortcut β€” so ;addr, ;sig, #work all work as shortcuts
  • ^ in the full text = a line break
  • Lines starting with # are comments; blank lines ignored
  • Only the first => separates shortcut from body β€” the body can contain as many => as you like
πŸ’Ύ Files
Live Reload
Edit Phrases.txt in Notepad and save β€” Ghost Phrases notices within half a second and reloads the list silently. Your very next keystroke sees the new entry. No restart, ever. A Reload Phrases item is also in the tray menu if you ever want to force it.
πŸ’Ύ Files
Settings File: ghostphrases.ini
Stores the trigger, case-sensitivity, and behaviour toggles. Everything is editable in-app via the Settings dialog; hand-editing the file also works if you're the type who likes to. Changes take effect on the next keystroke.
πŸ’Ύ Files
Auto-Created on First Run
On the very first launch, Phrases.txt and ghostphrases.ini are created with four sample phrases β€” ;addr, ;mail, ;sig, and ;ty β€” plus sensible defaults, so you can try expansion immediately. Delete either file at any time to reset it.
πŸ–₯️ Tray
Tray Icon
Ghost Phrases lives quietly in the notification area. There's no main window β€” the tray icon is the app. Left-click does nothing (no accidental popups), right-click opens the menu, and double-click opens the Phrase Manager.
πŸ–₯️ Tray
Enabled Toggle
The first item on the tray menu. Unchecking it pauses Ghost Phrases instantly β€” no expansions, no popup trigger, no interference β€” while leaving the app running. Perfect when you're typing something where ;p would accidentally fire, or in an app that fights the keyboard hook. Check it again to resume.
πŸ–₯️ Tray
Reload Phrases
Forces a fresh read of Phrases.txt and shows a balloon confirming the count. You'll rarely need this thanks to live reload, but it's there as an escape hatch if the watcher ever seems stuck.
πŸ–₯️ Tray
Help Contents
Opens this document in your default browser. Fully self-contained β€” no internet connection needed, and the search box at the top filters live as you type.
πŸ–₯️ Tray
Exit
Completely shuts down Ghost Phrases β€” unhooks the keyboard, hides the tray icon, and releases the single-instance mutex. Nothing lingers in memory. Your phrases and settings are already on disk, so nothing to save.
⌨️ Shortcuts
Keyboard Reference
Ghost Phrases has no global hotkeys of its own β€” everything is driven by the trigger you type. Inside the picker and other dialogs:
  • Type trigger (;p) + Space β€” open the picker
  • ↓ from search box β€” jump into the results list
  • ↑ / ↓ in list β€” move selection
  • Enter β€” insert the highlighted phrase
  • Esc β€” cancel without inserting
  • Double-click any list item β€” same as Enter
βš™οΈ Advanced
System-Wide Hook
Ghost Phrases installs a low-level keyboard hook (WH_KEYBOARD_LL) so it can see keystrokes in every application β€” your browser, email client, IDE, chat, anywhere. It uses the same mechanism Windows itself uses for global hotkeys; no drivers, no services, no admin rights required.
βš™οΈ Advanced
Elevated Windows Caveat
If an application is running as Administrator and Ghost Phrases is not, Windows deliberately prevents the hook from seeing keystrokes in that window. This is a Windows security feature, not a bug. Workaround: run Ghost Phrases as Administrator too (right-click β†’ Run as administrator).
βš™οΈ Advanced
Antivirus Note
Low-level keyboard hooks sometimes attract attention from antivirus software, because they're technically the same mechanism keyloggers use. Ghost Phrases only reads the last few characters you typed since the last boundary, and only to check them against your own phrase list β€” nothing is logged, saved, or transmitted. If your AV flags it, add an exclusion.
βš™οΈ Advanced
Single Instance
Only one copy of Ghost Phrases can run at a time. Launching it again is a silent no-op β€” the existing instance keeps the hook and your phrases. This prevents double-expansions and conflicting keyboard hooks.
βš™οΈ Advanced
No Telemetry, No Network
Ghost Phrases never phones home. It doesn't check for updates, doesn't send analytics, and doesn't talk to the internet at all β€” except the two optional links in the About dialog (website, donation) which you have to click yourself. Fully offline by design.
πŸ”§ Hidden
The Typed Buffer
Ghost Phrases remembers only the last ~128 characters typed since the last Space/Tab/Enter. When a boundary key fires, it checks the tail of that buffer against your phrase list. Anything further back is discarded. This is why expansions happen on space boundaries only β€” it keeps memory tiny and avoids surprises.
πŸ”§ Hidden
SendInput Suppression Window
When Ghost Phrases types an expansion for you, it uses Windows' SendInput β€” the same API a virtual keyboard would use β€” and it injects characters as real virtual-key presses (via VkKeyScan) so web form fields that listen for keydown events accept them. A short suppression window (~280 ms) is armed just before the expansion is sent, so the hook doesn't hear its own output and loop forever.
πŸ”§ Hidden
US English Keyboard Mapping
Keystrokes are translated to characters using the US English layout β€” so ; comes from the key right of L, and + from Shift+Equals on the main row, or from the numpad directly. Both numpad and main-keyboard variants of every digit and arithmetic symbol are recognised.
πŸ”§ Hidden
Boundary Reset Keys
Pressing ←, β†’, ↑, ↓, Home, End, PgUp, PgDn, or Esc clears the typed buffer entirely. That way, if you type a partial trigger and then move the cursor somewhere else, Ghost Phrases won't fire an expansion at the wrong spot.
πŸ”§ Hidden
Backward Compatibility
The old shortcut;full text format still loads, so any phrases you saved before the => change aren't lost. Legacy lines that start with ; (the old shipped defaults) are handled correctly too. On the next save via the Phrase Manager, the file is rewritten in the new => format automatically.
πŸ‘» Bundle
The Ghost Bundle Family
Ghost Phrases is one of six small utilities under the Ghost Bundle umbrella:
  • Ghost Reader β€” distraction-free reader
  • Ghost Stamp β€” file timestamping & signing
  • Ghost Cast β€” multi-voice script studio
  • Ghost Notes β€” hierarchical notebook
  • Ghost Phrases β€” text expander (you are here)
  • Ghost Calc β€” standalone calculator with insert-into-app
Six utilities. One family. Each does one thing well and stays out of your way. πŸ’š
✨ No features match your search.

πŸ’¬ About Ghost Phrases

Ghost Phrases is a small system-wide text expander in the spirit of classic tools like PhraseExpress and Texter β€” the kind of utility that sits silently in your tray and then pays for itself every single day. It watches for a handful of characters you type, and turns them into the paragraph you actually wanted, without a dialog, a prompt, or a flicker of interruption. All your phrases live in a plain Phrases.txt you can back up by copying one file, share with a colleague, or edit in Notepad. No accounts, no cloud, no telemetry, no ads. Ghost Phrases is free, and it always will be. πŸ’š