Msglet Join the waitlist

Sends 300 personal texts. While you make coffee.

Msglet is a Mac app that drives Messages.app to send personalised SMS through the iPhone in your pocket. From your number. Through your carrier plan. With each recipient's name in each message. No cloud, no account, no per-message fee. Pause, close the lid, walk away — it resumes where it stopped.

macOS 12+ iPhone required Notarised by Apple One-time licence

02

The three things that make this different.

Everyone else either charges per message, hides your identity behind a shortcode, or makes you tap Send three hundred times. Msglet does none of those.

  1. i

    Sends while you sleep.

    Drop your CSV, write your message, click Send, and walk away. Msglet paces the queue with randomised, human-like gaps, drives Messages.app for you, and works through three hundred names while you do anything else. Every comparable tool we've found still makes you tap Send on every single message.

  2. ii

    Resumes after a crash.

    Every send writes to a local SQLite database the instant your iPhone acknowledges it. Force-quit, sleep, kernel panic, power cut — reopen the app, click Resume, and it picks up exactly where it stopped. Already-sent contacts are skipped automatically. Nothing is ever sent twice.

  3. iii

    Your contacts never leave your Mac.

    There is no server. No cloud upload. No account. No telemetry. The CSV sits in memory; the campaign history lives in a SQLite file you can open with any database browser. We could not see your customer list if we tried — there is nowhere for it to go.


03

How it works.

Three steps. The whole thing fits on one screen. No onboarding tour.

  1. 1.

    Drop a CSV — or import your Contacts.

    Three ways in: a CSV file with name + phone columns; a vCard (.vcf) exported from Contacts.app (plain file I/O, no macOS permissions required); or a live sync straight from Contacts.app (one-time permission grant). Msglet auto-detects common English and Greek headers (First Name, Όνομα, Phone, Τηλέφωνο, dozens more), normalises numbers to E.164, and flags bad rows in red with a specific reason. The list stays loaded across app restarts.

    # clients.csv
    first_name,last_name,phone
    Μαρία,Παπαδοπούλου,6944014122
    Δημήτρης,Νικολάου,6977018160
    Γιώτα,Καραγιάννη,6981090933
  2. 2.

    Write one personal message.

    Type once, with {first_name} for the variables. Live preview shows you exactly what each recipient will receive — Greek characters, emoji, line breaks, everything. The segment counter switches between GSM-7 and UCS-2 the moment you type a Greek letter, so you know what every SMS will cost before you send.

    "Γεια σου {first_name}, σου θυμίζω το ραντεβού σου την
    Πέμπτη στις 16:00. Πέτρος."
    
    → 132 / 70 chars · UCS-2 · 2 segments per recipient
  3. 3.

    Click Send. Walk away.

    Msglet paces the queue, calls Messages.app for each row, lets Apple pick iMessage or SMS per recipient, and logs the result. You can pause, cancel, or edit the template mid-flight (only pending rows get the new text; already-sent messages are never rewritten). Failed sends surface the actual error and retry with one click.

     312 recipients · human-paced (4–11s · break every 9–22)
     est. 62 min · finish 15:04
     route: SMS (default · green bubble · delivers to Android too)

04

Built for people who actually have to do this work.

The features below come from real users running real multi-week campaigns. Each one closes a hole the obvious tool has.

Follow-up rounds.

Send the invitation, wait two days, write back to the people who replied yes — never to the ones who replied stop. Msglet keeps the whole conversation as one campaign with multiple rounds: status-aware pre-checking, bulk Block selected forever, undo, reopen from history, separate template per round. Nobody else does this.

Permanent block list.

Cross-campaign, cross-CSV, cross-everything. A blocked number cannot receive any message Msglet ever sends again. Unblock from Settings; state flips back the instant you do.

Already-messaged badges.

Anyone who received a message inside the configurable cool-down window (7 / 30 / 90 / 365 days, or forever) is greyed out and locked by default. Override with one click, or change the window globally.

Inline editing & Greek search.

Fix a typo in a name or a phone number without leaving the table. Search is diacritic-insensitive — type γιοτα and you'll find Γιώτα, Γιότα, ΓΙΏΤΑ. Sounds small. Saves an hour.

Smart import merge.

Drop next month's CSV (or re-sync your Contacts) and Msglet asks: "this looks like an updated version — merge new entries, or treat as fresh?" Your selections, edits, and exclusions for everyone in both lists survive intact.

Workspaces — multiple lists, one app.

Keep "Seminar invites May", "Weekly client reminders", and "Family group" as three separate workspaces. Each bundles its own source (CSV file, vCard import, or live Contacts sync), recipient list, per-row markings, and template into a single named unit. Switch between them with one click — no contacts ever cross over, no checkbox ever resets, no template gets confused.

Human-paced, SMS by default.

Each send waits 4–11 s; a longer 29–62 s break kicks in every 9–22 messages — and both intervals re-randomise, so the traffic shape reads like a person, not a script. Route is SMS by default (green bubble, delivers to Android too); iMessage is an opt-in mode for lists you know are 100% iPhone.

Multi-week workflow, persisted.

Pick a hundred names this week, send to thirty, pause. Close the laptop. Open it again next Tuesday. Everything is exactly where you left it — the same selection, the same template draft, the same recipients still queued, the same ones already sent, the same blocked numbers honoured. Msglet assumes you are running a campaign over weeks, not minutes. Every other tool assumes the opposite.

Mid-campaign template edit.

Forgot to sign your name? Pause, fix the template, click Apply to pending. Only the rows that haven't been sent yet pick up the new text. Already-sent messages are never rewritten.


05

Privacy is not a feature.
It is the architecture.

There is no server.

Msglet is a local Mac app. It does not have a backend because it does not need one. There is no API to hit, no database to query, no dashboard to log into. The product runs entirely on your machine and talks to exactly one other thing: the iPhone paired to your Apple ID, via Apple's own Continuity SMS bridge.

Your data lives in your files.

Contacts (CSV-imported or pulled from Apple Contacts with your permission), campaigns, sent timestamps, error reasons — all of it sits in plain SQLite files on your Mac. Keep one big list, or split into separate databases per use case so your clients, donors, and event invitees never mix. Open them with any SQLite browser. Move them. Back them up. Delete them. They are your files.

Zero outbound network requests.

In normal operation Msglet makes no network calls. No analytics beacon. No telemetry ping. No update check that includes your identifiers. Block it at the firewall and it still works exactly the same.

Your number is the sender ID.

The recipient sees a message from you, on the number they already have for you, in the same thread as the last time you texted them. They can reply, and the reply lands in Messages.app like any other text. There is no shortcode, no alpha sender, no rented number, no NOREPLY.


06

What Msglet is not.

Stated up front, not buried in the fine print. If any of these are what you need, Msglet is the wrong tool.


07

Frequently asked.

Do I need an iPhone?

Yes. Msglet drives Messages.app on your Mac, and Messages.app sends SMS through your iPhone via Apple's Continuity SMS forwarding. Without an iPhone signed into the same Apple ID, the SMS route doesn't exist.

Will macOS warn me when I install Msglet?

No. Msglet is signed with an Apple Developer ID certificate and Apple-notarised, so it opens cleanly the first time you run it — no "Msglet is damaged" message, no Gatekeeper override, no right-click-to-open trickery. Verify any time from Terminal with codesign -dv /Applications/Msglet.app.

Will my carrier let me send 300 SMS?

Probably yes, if your plan includes a few hundred SMS per month, which most consumer and business plans do. Msglet's default 10-second pacing is tuned to stay well under typical carrier anti-spam thresholds. For very large lists (1000+), split into two or three batches across days.

Does Msglet read my Apple Contacts?

Three options — pick whichever you're most comfortable with. (1) Drop in a CSV. (2) Export a vCard from Contacts.app (File → Export → Contacts vCard) and point Msglet at the .vcf — plain file I/O, no macOS permissions needed. (3) Live sync. Msglet reads Contacts.app directly via AppleScript; macOS asks you to allow it once, and after that it's one click. Whichever you pick, the contact list lives in Msglet's own local SQLite database and is never sent anywhere. You can revoke any granted permission from System Settings.

Can I keep separate lists for different uses?

Yes — they're called workspaces. Create as many as you need ("Seminar invites May", "Weekly client reminders", "Family group") and switch between them with one click. Each workspace bundles its own source (CSV, vCard, or live Contacts), recipient list, per-row markings, and template; nothing ever mixes between them. They live as separate SQLite files on your Mac. Useful when you want to keep audiences and tone cleanly apart.

What happens if my Mac crashes mid-send?

Every successful send is persisted to disk the instant the iPhone acknowledges it. Already-sent rows stay sent. Pending rows stay pending. Reopen the app; click Resume; the campaign picks up exactly where it stopped.

Can I send to non-iPhone users?

Yes — by default. Msglet sends as regular SMS through your iPhone's carrier, which delivers to Android, landline-SMS, and iPhone recipients alike. Green bubble for everyone, failures visible in Messages.app like normal. There's also an opt-in iMessage mode for lists you know are 100% iPhone-active (typing indicators, no segment costs) — but it'll silently drop anyone not on iMessage, so don't pick it for mixed lists.

Can I edit my message after sending starts?

Yes. Pause the campaign, edit the template, click "Apply to pending". Only the rows that haven't been sent yet pick up the new text. Already-sent messages are never rewritten.

What languages are supported?

Anything Unicode can encode — English, Greek (first-class), Cyrillic, Arabic, Chinese, emoji, mixed scripts. The segment counter switches between GSM-7 (160 chars/segment) and UCS-2 (70 chars/segment) automatically, so you always see the real cost before sending.

How is this different from other personalised-SMS tools?

Most comparable tools are iOS-only, charge a yearly subscription, make you tap Send on every message, and store your contacts in their cloud. Msglet runs on your Mac, sends unattended, is a one-time licence, and your data never leaves the machine.

Is Msglet legal for marketing texts?

The same rules that apply to a text you send by hand apply to one Msglet sends. TCPA in the US, GDPR and ePrivacy in the EU, and equivalents elsewhere — you need consent. Msglet is for messages the recipient is expecting and welcome to receive.

Can I get my data back if I uninstall?

Your CSVs are yours — we never touched the original files. Your campaign history lives in plain SQLite files on your Mac, one per database you've created. Open them, move them, archive them, delete them. Standard open format.


08

Found a bug?
Got an idea you can't shake?

Hi — it's Petros. I made this. The inbox is small and a person (me) reads every message. If something's broken, or you've thought of something Msglet should do, write. You'll hear back within a day or two — promise.

Or just write to hello@msglet.app — same inbox, same person.


09

Pricing.

Coming soon. One-time licence. No per-message fees. No subscription. We are finalising the tiers — the waitlist gets early-access pricing and the founder's-edition price.

Comparable apps charge around $200 a year, forever. SMS gateways and texting platforms run €240–600 a year for a small business. Msglet is one payment. Ever.


10

Get the early-access price.

Drop your email. We'll write once — when the licence pricing is set and the first build is ready to ship.

One email. No newsletter. No tracking pixel. You can ask us to delete you at any time at hello@msglet.app.