Use Organik Apps Pebble Connector for the coordinated Mac release: one free MIT app for Notesy, Beepster, Reminderz and Pome. Setup and migration. Existing Beepster watch pairing is retained. Standalone connector details below describe the older implementation and remain useful for source builds or rollback.
Beepster is a readable, reliable, open-source Beeper client for Pebble Time 2. It brings recent chats, complete message text, voice dictation, saved replies, themes, bitmap emoji, and inline photo previews to the watch without putting a Beeper credential on the watch or phone.
Beepster supports touch navigation and configurable physical-button replies; tapping a chat message only focuses it. Download the watch app and signed, notarized Mac Connector using the installation guide. Feedback is welcome: share your experience or report a problem.
- A Pebble Time 2 (
emery) paired with the Pebble mobile app - A Mac that can remain online with Beeper Desktop running
- Tailscale on the Mac and phone, signed into the same private tailnet
- A dedicated Beeper Desktop API access token
No iMessage bridge such as imsg is required. Beeper Desktop supplies the supported messaging
networks; iMessage itself requires Beeper Desktop to run on macOS. The release Connector bundles
its gateway runtime, so end users do not need Terminal, Git, Node.js, or developer tools.
The Connector window can be closed after setup; its login background service continues running.
- Install Beepster — complete Mac, Tailscale, watch, and pairing walkthrough
- Feedback and first-run checks — help improve Beepster safely
- 0.21.0 release notes — safer dictation, stable conversation position, and read-status compatibility
- Hermes and OpenClaw setup — optional integrations and compatibility
- Use Beepster — controls, replies, themes, media, and limitations
- Troubleshoot — symptom-based fixes and the private health checker
- Privacy and security model
- Contribute
- Cursor-paginated access to the complete selected Beeper inboxes through a 12-chat rolling watch window, with persistent pinning, contact and sender-name normalization, and service icons
- Automatic linking of split Apple email/phone chats matched to one Mac Contacts record, with a user-controlled alias fallback
- Persistent service filtering, with all networks enabled by default
- Chronological history that opens on the newest message and pages up to 60 messages
- In-thread message text with continuous finger-following scrolling and fixed one-line button scrolling
- Phone-configurable press/hold actions and Double Back in both inbox and chat views
- Confirmed conversation archiving and per-user message deletion as configurable button actions (iMessage message deletion is temporarily disabled; iMessage conversation archiving still works)
- Voice dictation with confirmation and delivery tracking
- Up to eight text-or-emoji quick replies, followed by 15 user-chosen, reorderable bitmap emoji
- Full-width, aspect-preserving photos and video posters, including Instagram media
- Short, reduced-detail GIF loops with bounded-memory fallback and YouTube thumbnail cards
- Bitmap reactions grouped by sender beneath messages when supplied by Beeper
- HTML cleanup for rich Instagram messages
- Six presets and saved custom themes using five font families and five sizes
- Twemoji bitmap rendering in chats, including multi-codepoint families, flags, and skin tones
- Explicit setup, loading, empty, timeout, offline, and retry states
- Self-contained, Keychain-backed Mac Connector with one-pass setup, combined phone pairing, end-to-end readiness checks, advanced repair controls, and idempotent reply transport
- Optional Hermes and OpenClaw approval controls in explicitly linked Telegram conversations, with request descriptions, highlighted choices and deliberate hold-center activation. Always approve is shown only when supported and requires additional confirmation.
Full-length animation, video playback, and multiple attachments per message remain unsupported. See the roadmap and UX requirements.
Pebble watch (C)
⇅ AppMessage
PebbleKit JS on phone
⇅ private HTTPS with a narrow Beepster gateway credential
Beepster gateway on Mac
⇅ localhost with separate, Mac-only credentials
Beeper Desktop API OpenClaw Gateway (optional approvals only)
The Mac gateway resolves contacts, sanitizes rich text, resizes media, tracks delivery, caches safe fallbacks, and keeps the Beeper token in the macOS Keychain. The phone is a transport adapter; the watch owns presentation and interaction state. See Architecture.
Requirements: macOS, Pebble SDK 4.33.1 or newer, Pebble Tool 5, and Node.js 20 or newer for the standalone gateway. Development and the full test suite require Node.js 24, matching the Connector's bundled runtime; Store mode uses the built-in node:sqlite module.
npm --prefix gateway ci
npm test
npm run build
npm run checknpm run check runs JavaScript syntax checks, the gateway/transport test suite, a credential scan, and a
complete Emery build. Personal builds are ignored by Git because they contain a private settings
URL. Release packaging instructions are in Publishing.
Beepster is an independent community project. It is not affiliated with, endorsed by, or sponsored by Beeper, Automattic, Pebble, or Core Devices. Beeper and Pebble are trademarks of their respective owners and are used only to describe compatibility.
The complete watch, phone, gateway, setup page, and artwork source is available under the MIT
license. Bundled fonts retain their SIL Open Font License texts in resources/fonts/licenses.
Thank you to ChatGPT and Codex, especially ChatGPT 5.6 Sol and ChatGPT 6 Astra, and to the people at OpenAI who build these tools, for allowing a nerd with an idea to make cool stuff.
We also thank the developers and communities behind the apps, libraries, fonts and tools we build on. Full acknowledgments.
The Pome-style tabbed settings and theme editor are described in Phone settings.
On a touch-capable watch, tap a different menu item to highlight it and read its scrolling title. Tap the highlighted item again to open or activate it; there is no need to tap quickly. Physical Select still activates the highlighted item. Approval and denial controls ignore taps, including when highlighted. Use the physical buttons for those decisions.
