Raycast as a Text Expander in 2026: Replace TextExpander for Free
Published March 9, 2026 • 10 min read
TextExpander costs $3.33/month. aText is $4.99 one-time but hasn't been updated in a while. Typinator runs $24.99. Espanso is free but requires YAML config files. Meanwhile, if you're already running Raycast on your Mac, you have a fully capable text expansion engine built in — and it costs nothing.
Raycast Snippets let you type a short keyword like ;;sig and instantly expand it into your full email signature, a code template with today's date pre-filled, or a PR description with your cursor positioned exactly where you need to start typing. This guide walks through everything you need to ditch your paid text expander and switch to Raycast. If you're new to what Raycast is, start there first.
Why Developers Are Dropping TextExpander for Raycast
TextExpander was the gold standard for text expansion on macOS for over a decade. But the landscape has shifted. Here's why developers are making the switch:
- No extra app running — if you use Raycast as your launcher, snippets are already there. One fewer menu bar icon, one fewer process consuming memory.
- No subscription — Raycast Snippets are free on the free plan. Unlimited snippets, unlimited expansions.
- Same core features — keyword triggers, auto-expansion, dynamic placeholders for date/time/clipboard/cursor. That covers 90% of real-world usage.
- Better developer experience — Raycast is built for developers. The snippet creation UI is fast, keyboard-driven, and doesn't require navigating a bloated settings panel.
The only area where TextExpander still wins is advanced features like fill-in forms (popup fields when a snippet fires), nested snippets (snippets that reference other snippets), and JavaScript macros. If you rely on those daily, TextExpander is still the right tool. For everyone else, Raycast is more than enough.
Setting Up Text Expansion in Raycast
Getting started takes under a minute. If you've already installed Raycast, you're ready to go.
- Open Raycast with
Cmd+Space(or your configured hotkey) - Type "Create Snippet" and hit Enter
- Give your snippet a name (e.g., "Email Signature")
- Set a keyword trigger (e.g.,
;;sig) - Enter the expanded text — this is what replaces the keyword
- Hit Save
Now type ;;sig in any app on your Mac — VS Code, Slack, Mail, Chrome, Terminal — and the keyword vanishes, replaced by your full snippet content. No confirmation dialogs. No delay. It just works.
The ;; prefix is the default convention, but you can use any prefix you want. Pick something you'd never type normally so snippets don't fire by accident.
Dynamic Placeholders: The Power Behind the Snippets
Static text replacement is table stakes. What makes Raycast Snippets genuinely useful for developer workflows are dynamic placeholders — variables that resolve at expansion time. For a deeper dive into all snippet capabilities, check out our complete Raycast Snippets guide.
Date & Time
{date}— current date in your system locale{date:YYYY-MM-DD}— ISO format (e.g., 2026-03-10){date:MMMM D, YYYY}— long format (e.g., March 10, 2026){time:HH:mm}— 24-hour time (e.g., 14:30)
Clipboard
The {clipboard} placeholder injects whatever you last copied. Copy a URL, type ;;mdlink, and it expands into [{cursor}]({clipboard}) — a markdown link with the URL already filled in and your cursor positioned for the link text.
Cursor Position
{cursor} tells Raycast where to place your cursor after expansion. Essential for any template where you need to type into a specific spot.
Random UUID
{uuid} generates a fresh UUID every time the snippet fires. Useful for test fixtures, placeholder IDs, and mock data.
Best Snippet Examples for Developers
After using Raycast as my primary text expander for over a year, these are the snippets I trigger most often. Steal any that fit your workflow.
Code Boilerplate
;;log→console.log('{cursor}', );— labeled debug log;;imp→import { {cursor} } from '';— ES module import;;af→const {cursor} = async () => { };— async arrow function;;try→ try/catch block withconsole.error;;ust→const [{cursor}, set] = useState();— React useState;;uef→useEffect(() => { {cursor} }, []);— React useEffect;;pyf→def {cursor}():\n pass— Python function stub
Git Commands & PR Templates
;;commit→feat({cursor}):— conventional commit prefix;;fixc→fix({cursor}):— fix commit prefix;;wip→WIP: {cursor} [skip ci];;pr→ full PR template with "What changed," "Why," "How to test," and "Screenshots" sections, date auto-filled via{date:YYYY-MM-DD};;lgtm→LGTM! Looks good to merge. Nice work on {cursor}.
Email & Canned Responses
;;email→ your email address;;sig→ full email signature with name, title, and links;;thanks→Thanks for the quick response! {cursor};;ooo→ out-of-office reply template with{date}return date;;followup→Hi {cursor},\n\nJust following up on our conversation from {date:MMMM D}. Let me know if you have any questions.\n\nBest,
Meeting & Daily Workflow Templates
;;standup→## Standup {date:YYYY-MM-DD}\n**Yesterday:** {cursor}\n**Today:**\n**Blockers:** None;;meeting→ meeting notes template with date, attendees, agenda, action items;;retro→ sprint retro template with "Went well," "Could improve," "Action items";;now→{date:YYYY-MM-DD} {time:HH:mm}— instant timestamp;;todo→- [ ] {cursor}— markdown checkbox
Raycast vs TextExpander vs aText: Full Comparison
Here's how Raycast stacks up against the most popular paid text expansion tools in 2026.
| Feature | Raycast | TextExpander | aText |
|---|---|---|---|
| Price | Free | $3.33/mo | $4.99 one-time |
| Platform | macOS | macOS, Windows, iOS | macOS |
| Auto-expansion | ✓ | ✓ | ✓ |
| Date/time variables | ✓ | ✓ | ✓ |
| Clipboard variable | ✓ | ✓ | ✓ |
| Cursor positioning | ✓ | ✓ | ✓ |
| Fill-in forms | — | ✓ | ✓ |
| Nested snippets | — | ✓ | — |
| JavaScript/script macros | — | ✓ | — |
| Rich text / images | — | ✓ | ✓ |
| Cloud sync | Pro plan | ✓ | iCloud |
| Team sharing | Teams plan | ✓ | — |
| Bundled with launcher | ✓ | — | — |
| Snippet import | ✓ | ✓ | ✓ |
The takeaway: Raycast matches TextExpander on every core text expansion feature. TextExpander's advantages — fill-in forms, nested snippets, scripting — are power-user features that most developers never touch. If you're paying $40/year for TextExpander and primarily expanding boilerplate text, you're overpaying.
How to Import Your TextExpander Snippets into Raycast
Already have a library of TextExpander snippets? You don't need to recreate them manually. Here's the migration process:
- Export from TextExpander: Open TextExpander → File → Export → choose CSV format. This captures your abbreviations, content, and labels.
- Import into Raycast: Open Raycast → type "Import Snippets" → select your CSV file.
- Map the fields: Match TextExpander's columns (abbreviation = keyword, content = snippet body, label = name) to Raycast's fields.
- Review and adjust: Simple text snippets import cleanly. Snippets using TextExpander-specific fill-in fields (
%filltext%) or nested references won't translate automatically — you'll need to simplify those or rebuild them using Raycast's{cursor}and{clipboard}placeholders. - Test a few snippets in different apps to confirm they work as expected.
For Espanso users, export your YAML config and manually recreate snippets in Raycast. There's no direct import path, but Espanso configs are human-readable so the process is straightforward for small libraries.
Organizing Snippets with Categories
Once you have 30+ snippets, organization matters. Raycast lets you group snippets into categories (also called collections). A solid structure for developers:
- Code — language-specific boilerplate, console.log patterns, function templates
- Git — commit prefixes, PR templates, branch naming conventions
- Communication — email signatures, Slack responses, code review comments
- Meetings — standup templates, retro formats, meeting notes structures
- Personal — address, phone, email, commonly shared links
Categories don't change how snippets behave — keywords still work the same everywhere. But when you open "Search Snippets" in Raycast, you can filter by group instead of scrolling through an unsorted list. It also makes it easier to export and share specific collections with teammates.
Cloud Sync & Pro Features for Snippets
Raycast Snippets on the free plan are stored locally on your Mac. That's fine if you use a single machine. But if you work across a personal MacBook and a work Mac (or recently migrated machines), your snippets won't follow you automatically.
Raycast Pro adds cloud sync for snippets, so every snippet you create or edit is instantly available on all your Macs. Combined with Pro's other features — AI Commands, unlimited extensions, custom themes — it's a worthwhile upgrade for power users.
The best current Raycast Pro deal gets you 80% off with a free 14-day trial. No coupon code needed — the discount applies automatically through our link.
Tips for Getting the Most Out of Raycast Text Expansion
- Keep keywords short and mnemonic —
;;sigbeats;;emailsignature. The point is speed. - Use a consistent prefix strategy —
;;c-for code,;;g-for git,;;e-for email. You'll remember keywords faster. - Combine clipboard + cursor — copy relevant context, then trigger a snippet that uses both
{clipboard}and{cursor}for templating on the fly. - Audit quarterly — delete snippets you haven't used in 3 months. A lean library is a fast library.
- Use Search Snippets as a reference — forgot a keyword? Open Raycast, type "Search Snippets," and browse or search your full library.
- Pair with Clipboard History — Raycast's clipboard history lets you grab older copied text and then trigger a snippet that uses
{clipboard}. Powerful combo.
For more ways to optimize your Raycast workflow, check out our Raycast Pro review and our roundup of the best extensions for developers.
Pricing: What You Actually Need to Pay
Here's the honest breakdown for text expansion specifically:
- Single Mac, personal use: Raycast Free. You get unlimited snippets with all dynamic placeholders. Cost: $0.
- Multiple Macs, need cloud sync: Raycast Pro. Snippets sync across all your machines. Plus you get AI, themes, and more. Cost: starts at $8/mo (or significantly less with the current discount).
- Team-wide snippet libraries: Raycast Teams. Shared snippets auto-sync to all team members. Cost: per-seat pricing.
Compare that to TextExpander at $3.33/mo for individual use or $8.33/mo for teams — just for text expansion. With Raycast, text expansion is one feature among dozens in a tool you're likely already using.
Frequently Asked Questions
Can Raycast fully replace TextExpander?
For most users, yes. Raycast Snippets handle keyword-triggered text expansion, dynamic placeholders (date, time, clipboard, cursor position), and snippet organization — all for free. TextExpander still has an edge with fill-in forms, nested snippets, and JavaScript macros. But if you primarily use text expansion for boilerplate code, email templates, and quick shortcuts, Raycast covers everything you need without a subscription.
Is Raycast text expansion free?
Yes. Raycast Snippets are completely free with no limits on the number of snippets you can create. Keyword triggers, auto-expansion, dynamic placeholders, and snippet groups all work on the free plan. Raycast Pro adds cloud sync so your snippets stay in sync across multiple Macs, and Teams plans enable shared snippet libraries for organizations.
How do I import TextExpander snippets into Raycast?
Export your TextExpander snippets as a CSV file, then use Raycast's import feature in the Snippets settings. Map the CSV columns (abbreviation, content, label) to Raycast's fields and review the imported snippets. Simple text snippets migrate cleanly. Snippets using TextExpander-specific features like fill-in fields or nested expansions may need manual adjustment.
What dynamic placeholders does Raycast support?
Raycast Snippets support several dynamic placeholders: {date} and {date:FORMAT} for current date in any format, {time} and {time:FORMAT} for current time, {clipboard} to insert clipboard contents, {cursor} to set cursor position after expansion, and {uuid} to generate random UUIDs. These placeholders can be combined in a single snippet for powerful templates.
Does Raycast text expansion work in every app?
Raycast Snippets work in virtually every macOS application that accepts text input — code editors like VS Code and IntelliJ, terminals like iTerm2 and Warp, browsers, email clients, Slack, Notion, and more. Raycast monitors your keystrokes system-wide and replaces the keyword trigger with the expanded text as soon as it detects a match.