Textem

A lightweight, native macOS client for Google Messages — free and open-source. The tiny-footprint alternative to paid wrappers and dead Electron apps.

Download View on GitHub

macOS 13+ · a few MB (system WebKit, no bundled Chromium)

Native notifications + badge

Dock unread badge and native banners — click to jump to the thread.

Menu bar & background

Menu-bar presence, launch at login, run in background, menu-bar-only mode.

Multiple accounts

Isolated sessions per Google account with a quick switcher. No other client does this.

Shortcuts

Zoom, find in page, new conversation, copy latest 2FA code, global show/hide hotkey.

Private by design

Zero telemetry, local-only session, notarized release. Just a native shell around the web client.

Free & open-source

MIT-licensed. Every feature paid apps lock behind “Pro”, at no cost.

Signing in: choose “Enter your password” and a non-passkey second step (Google prompt, SMS/email code, or authenticator). Passkeys don’t work inside an embedded web view — it’s a platform limitation, not a bug. You only sign in once.

Getting set up

Sign in once and Textem stays paired. Here’s the smooth path:

  1. Choose “Enter your password” on Google’s sign-in screen — not the passkey option.
  2. Pick a non-passkey second step: a Google prompt (“Tap Yes” on your phone), an SMS or email code, or an authenticator app.
  3. Match the emoji to finish pairing. On your phone, open Messages → Settings → Device pairing → “Switch to Google Account pairing,” then confirm the emoji that matches what Textem shows.

Troubleshooting

It only offers a passkey, or won’t let me sign in

Passkeys can’t work inside an embedded web view — that’s an Apple platform limitation for sites we don’t own, not a bug in Textem. On the sign-in screen choose “Enter your password” and a non-passkey second step (Google prompt, SMS/email code, or authenticator).

My phone doesn’t show “Switch to Google Account pairing”

Google is rolling this out gradually, so some accounts don’t have it yet. It’s a server-side rollout that can’t be forced from Textem. Make sure the Messages app on your phone is fully updated, and check again as the rollout expands.

It keeps asking me to re-confirm, or the pairing won’t stick

That’s usually cross-site cookie partitioning. Textem already relaxes tracking prevention on its own data store so Google’s cookies aren’t split between accounts.google.com and messages.google.com. If it still loops, quit Textem fully and reopen it — don’t force-quit while you’re mid-sign-in — then try once more.

Is my data private?

Yes. Textem is just a native shell around Google’s own web client: your session lives locally on your Mac, there’s zero telemetry, and nothing sits between you and Google — no third-party account, no relay server.