---
title: "TextExpander Alternative on Mac: Local Snippets, No Subscription"
description: "A free TextExpander alternative for Mac with local text expansion, AI rewrites, and clipboard history. Imports your .textexpander library so switching keeps your snippets."
date: 2026-05-20
author: "Ben Racicot"
tags: ["TextExpander", "Text Expander", "Alternative", "Privacy", "macOS", "Productivity"]
type: "article"
canonical: "https://modelpiper.com/blog/textexpander-alternative-mac"
---

# TextExpander Alternative on Mac: Local Snippets, No Subscription

> A free TextExpander alternative for Mac with local text expansion, AI rewrites, and clipboard history. Imports your .textexpander library so switching keeps your snippets.

## TL;DR

ToolPiper is a free TextExpander alternative for Mac. It does typed-trigger text expansion with dynamic values and cursor placement, adds AI transforms TextExpander has no equivalent for (select text, tap right Command, the model rewrites it on your Mac), and imports your existing .textexpander library so switching keeps your snippets. The catch: ToolPiper is macOS-only and has no cloud sync or shared team libraries. If you need Windows/iOS sync or a team snippet library, TextExpander still wins.

TextExpander charges you about $40 a year, billed annually, to replace text. Type `;addr`, get your address. Type `;sig`, get your signature. It's a macro engine, and a good one - but it's a subscription for something that is, mechanically, a lookup table that pastes strings into text fields.

I ran the math on that subscription before writing this. Forty dollars a year, every year, for a feature that hasn't fundamentally changed since the early 2010s. The expansion engine is solid and the cloud sync is genuinely useful. But the recurring cost for static text replacement is the tension that sends most people looking for an alternative in the first place.

**ToolPiper does the expansion on a free download, imports your .textexpander library on day one, and adds AI transforms that run on your Mac.** Type a trigger, get text - same muscle memory. Select a paragraph, tap the right Command key, and a local language model rewrites it. That second part is the thing TextExpander doesn't do at all.

This article is fair about where TextExpander still wins. If you sync snippets across a Mac, a Windows laptop, an iPhone, and a browser, or you run a shared team library, keep reading to the honest-tradeoffs section - those are real strengths and ToolPiper doesn't match them yet.

## What does a text expander actually do?

A text expander watches what you type, recognizes short abbreviations you've defined, and replaces them with longer text. Type a trigger like `;addr` and the expander deletes those characters and inserts your full mailing address in their place.

That's the whole concept. The value is in the time saved typing things you type constantly, like addresses, signatures, boilerplate replies, code snippets, and meeting links. A good text expander matches the longest trigger first (so `;email` and `;em` don't collide), handles cursor placement (drop a marker where you want the cursor to land after expansion), and resolves dynamic values like today's date at the moment you expand.

ToolPiper does all of that. Typed delimiter-plus-abbreviation triggers, longest-trigger-first matching, cursor placement via a `%|` marker, and case-sensitivity modes (sensitive, ignore, or adapt to how you typed the trigger). The trigger has to be flanked by whitespace or punctuation to fire, so a snippet bound to `;fix` never triggers in the middle of the word `;fixed`.

## How is ToolPiper different from TextExpander?

ToolPiper is a free download that does the same trigger-based text expansion as TextExpander, then adds two things TextExpander has no equivalent for. It rewrites selected text using a language model on your Mac, and it ships a built-in clipboard manager with history and OCR. The trade-off is that ToolPiper is macOS-only with no cloud sync or team libraries.

The static-expansion overlap is close to complete. Where the two diverge is the AI layer and the pricing model.

**The AI transform is the real wedge.** Select a sentence, tap the right Command key (a press-and-release under 250ms), and ToolPiper replaces the selection with a rewritten version. It tries Apple's on-device model first via Foundation Models, then falls back to ToolPiper's local language model over loopback for longer inputs. Twelve transforms ship built in. The set covers `;fix`, `;formal`, `;casual`, `;concise`, `;expand`, `;simplify`, `;bullets`, `;summary`, `;tldr`, `;active`, `;email`, and `;rewrite`. You can chain them - `;fix ;formal` runs in document order, fix first then formal, up to four stages, and aborts on empty output so a bad transform never eats your text.

TextExpander's snippets are static. They paste what you stored. There's no model in the loop, so there's no "clean up this paragraph" or "make this more formal" - those aren't things a lookup table can do. That's not a knock on TextExpander, it's just a different category of tool. ToolPiper happens to do both categories in one app.

## What dynamic values does ToolPiper support?

ToolPiper resolves 11 dynamic values at the moment you expand a snippet: the date in several formats, the time, your name, your email, the computer name, and the frontmost app name. These are computed live, not stored.

Type `;today` for the long-form date, `;date` for short, `;time` for the current time, `;now` for date and time together, `;iso` or `;timestamp` for ISO 8601, `;name` for your full user name, `;login` for the short user name, `;myemail` for your license email, `;host` for the computer name, and `;app` for whatever app is in front. Drop any of these inside a larger snippet and they resolve when you fire it. A meeting-note template that stamps the date and the app you're in writes itself.

## Can I import my TextExpander snippets?

Yes. ToolPiper imports TextExpander's .textexpander export file directly, along with Raycast JSON exports and generic CSV. Your triggers, expansion text, and cursor-placement markers carry over, so switching doesn't mean retyping your library.

This is the part that makes switching low-risk. Export your snippets from TextExpander to a `.textexpander` file, open ToolPiper's import dialog, and your library lands intact. The static snippets work immediately. The dynamic-value snippets map to ToolPiper's own dynamic utilities where they line up. The AI transforms are new - you create those fresh, but the twelve bundled ones cover the common cases out of the box.

If you came to TextExpander from Raycast snippets at some point, ToolPiper reads Raycast's JSON export too. And if your library lives in a spreadsheet somewhere, CSV import handles that. The goal is that **you don't rebuild your snippet library to switch - you bring it.**

## How does the AI rewrite stay private?

The AI rewrite runs on your Mac. ToolPiper sends the selected text to Apple's on-device model or to its own local language model over a loopback connection, gets the rewrite back, and replaces your selection. The text never leaves the machine, and you can confirm that by watching network traffic while you trigger a transform.

This matters more than it sounds like it should. The obvious alternative to ToolPiper's local transforms is pasting your text into ChatGPT or Claude to clean it up. That works, but every paragraph you paste is a paragraph that travels to a server you can't audit. For a casual sentence, who cares. For a client email, a contract clause, or anything with a name in it, the calculus changes.

With ToolPiper, the transform runs locally, so the question of what a remote service does with your text doesn't come up - there's no remote service. We're not asking you to trust a privacy policy. The verification path is a packet inspector. Run one, trigger a `;fix`, and watch nothing leave your Mac. The structural fact about cloud rewriting tools is that the text has to arrive at their servers for them to process it. We let you check that ours doesn't.

One precise note, because we'd rather be exact than oversell. The action-snippet selection capture checks the focused element's accessibility role and **refuses to read secure or password text fields**, failing closed if accessibility access is denied or the check times out at 250ms. The action pipeline never reads your clipboard either - the selection is the only input. App-aware suppression for typed snippet triggers is not built yet, so we don't claim snippets never fire inside a password manager. The action-snippet path is the one that probes secure fields today.

## What else does ToolPiper do that TextExpander doesn't?

ToolPiper bundles a clipboard manager and push-to-talk dictation, neither of which TextExpander has. The clipboard manager keeps a searchable history (200 items by default, configurable from 50 to 2000) with image OCR and source-app tracking, and the dictation drops spoken text into the focused field on-device.

It's a clipboard manager. ToolPiper keeps a browsable history of what you copy - 200 items by default, configurable from 50 up to 2000 - with fuzzy search across the text, any OCR-extracted text, the source URL, and the source app. Copy a screenshot and Apple Vision OCRs it so the text inside the image becomes searchable. It tracks where you copied from, including the browser tab URL for Safari, Chrome, Firefox, Arc, Brave, Edge, and Vivaldi. Items auto-categorize into eight types: text, URL, email, code, JSON, file path, color, and number.

The history is privacy-aware on capture. Concealed, password, one-time-password, and transient pasteboard items are skipped, and 1Password, Keychain, LastPass, and Dashlane are on the ignore list by default, so your password-manager autofills don't pile up in clipboard history.

There's also push-to-talk dictation. Hold the right Option key, speak, release, and the transcript lands in the focused field at roughly 140ms end-to-end latency, running on Apple's Neural Engine. The push-to-talk, voice chat, and snippet expansion paths are interlocked so they can't collide. That's a different workflow than text expansion, but it's the same idea - get text into a field faster - and it's covered in our [push-to-talk dictation](/blog/push-to-talk-ai-mac) writeup. None of this is in TextExpander's scope, which is fine. TextExpander is a focused expansion tool. ToolPiper bundles the adjacent jobs.

## When is TextExpander still the right call?

TextExpander wins when you need cross-platform cloud sync (Mac, Windows, iOS, and web), a shared team snippet library, or a hosted service with an admin console. ToolPiper is macOS-only and local, so it can't match any of those three. If you need them, TextExpander earns its subscription.

Three cases, and they're real.

**You sync across platforms.** TextExpander runs on Mac, Windows, iOS, and the web, with cloud sync keeping your snippets identical everywhere. ToolPiper is macOS-only and local - no sync. If you type the same snippets on a Mac at work and a Windows machine at home, or you need them on your phone, TextExpander does something ToolPiper does not.

**You share a team library.** TextExpander's shared and team snippet libraries let a whole organization pull from one source of truth - support teams use this heavily for canned responses that stay consistent and update centrally. ToolPiper has no team-sharing layer. Your snippets are yours, on your Mac.

**You specifically want a hosted, managed service.** Some teams want the snippet library backed up and managed off their machines, with an admin console and billing they already understand. That's a legitimate preference, and it's what the subscription buys.

If none of those describe you - if you're one person on a Mac who wants fast expansion and would rather not pay annually for it - the free local tool is the better fit. If they do describe you, TextExpander earns its fee.

## ToolPiper vs TextExpander

Here's the honest side-by-side. The cells where TextExpander wins are marked plainly, because pretending otherwise would make the rest of the table untrustworthy.

## Get ToolPiper

ToolPiper is a free download (DMG) from [modelpiper.com](https://modelpiper.com). It needs macOS 26 or later and Apple Silicon (M1 or newer). It's not on the Mac App Store because the Accessibility and CGEvent APIs that text expansion needs aren't compatible with the App Store sandbox - the same reason TextExpander, Raycast, Alfred, and Keyboard Maestro all ship outside it. Install it, grant Accessibility once, import your `.textexpander` file, and your library is live.

_This is part of a series on [text, clipboard, and snippet workflows on macOS](/workflow/text-clipboard) and the broader case for [local-first AI on macOS](/blog/local-first-ai-macos). If you want the deeper dive on the expansion engine itself, see [local text expansion on Mac](/blog/text-expander-mac-local)._

## FAQ

### Can I import my TextExpander snippets?

Yes. ToolPiper imports TextExpander's .textexpander export file directly, plus Raycast JSON exports and generic CSV. Your triggers, expansion text, and cursor-placement markers transfer over. Static snippets work immediately after import. The AI transforms are ToolPiper-specific, so you'd create those fresh, but twelve come bundled (;fix, ;formal, ;concise, and more).

### Is there a free TextExpander alternative for Mac?

Yes. ToolPiper is a free download for Mac that does typed-trigger text expansion, dynamic values, and cursor placement - the core of what TextExpander does - with no subscription. It also adds AI rewrites and a clipboard manager. The trade-off versus TextExpander is no cloud sync and no shared team libraries. Espanso is another free, open-source option, though it's configured through YAML files rather than a graphical interface.

### Does TextExpander work offline?

TextExpander expands snippets offline, but its cloud sync and shared libraries need an internet connection to stay current across devices. ToolPiper works fully offline because it stores and runs everything locally - expansion, dynamic values, and even the AI transforms run on your Mac with no network call.

### How much does TextExpander cost compared to ToolPiper?

As of May 2026, TextExpander is a subscription at roughly $3.33 per month billed annually, about $40 per year. ToolPiper is a free download. The recurring cost is the main reason people look for an alternative, though TextExpander's fee does buy cross-platform cloud sync and team libraries that ToolPiper doesn't offer.

### Can ToolPiper do AI text rewrites like ChatGPT?

Yes, and locally. Select text, tap the right Command key, and ToolPiper replaces the selection with a rewritten version using Apple's on-device model or its own local language model. Twelve transforms ship built in, including ;fix for grammar, ;formal, ;concise, and ;bullets, and you can chain them up to four stages. The text never leaves your Mac, unlike pasting into ChatGPT.

### Is ToolPiper safe to use in password fields?

The AI action-snippet feature is. When you trigger a transform, ToolPiper checks the focused element's accessibility role and refuses to read secure or password text fields, failing closed if accessibility access is denied. Clipboard capture also skips concealed and one-time-password items and ignores 1Password, Keychain, LastPass, and Dashlane by default. App-aware suppression for typed snippet triggers is not built yet, so the secure-field protection applies to the action-snippet selection path specifically.

### Why isn't ToolPiper on the Mac App Store?

Text expansion needs Accessibility APIs and CGEvent keyboard monitoring, both of which are incompatible with the Mac App Store sandbox. This is the same reason TextExpander, Raycast, Alfred, and Keyboard Maestro are all distributed outside the App Store. ToolPiper ships as a free direct-download DMG from modelpiper.com instead.
