orbitBack to Orbit ↗
Orbit by SabaiDev

Orbit documentation

Everything you need to install Orbit, link your WhatsApp accounts, work across them from one native Mac window, and connect your own AI assistant through local MCP with permissions you control.

Overview

Orbit is a native SwiftUI and AppKit application for macOS that brings several WhatsApp Personal and WhatsApp Business app accounts into one workspace. It has no web view, no Electron and no browser UI. Each account runs in its own isolated helper process with its own session and message database on your Mac. No Orbit server sits between you and WhatsApp.

Orbit is an independent product by SabaiDev. It is not affiliated with WhatsApp, Meta, Anthropic or OpenAI. It connects through an unofficial WhatsApp multi-device integration; see Known limitations.

Install and update

Requirements

There is no Windows, iOS or Linux version. A Windows waitlist on the product page measures interest; it is not a release commitment.

First launch

  1. Download the disk image from the product page and drag Orbit into Applications.
  2. Open Orbit. The preview build is signed with SabaiDev’s Developer ID but not yet notarized by Apple, so macOS blocks it the first time.
  3. Open System Settings › Privacy & Security, scroll to the message about Orbit and click Open Anyway. You only need to do this once.

To check the download, compare its SHA-256 checksum with the one published for the release: run shasum -a 256 ~/Downloads/Orbit-*.dmg in Terminal.

Updates

Once a day, the direct-download build reads the public release catalog on orbit.sabaidev.la and offers a newer version when one exists. The check sends no account or message data. Orbit never installs anything by itself: the download opens in your browser, and you replace the app yourself. Copies installed from the Mac App Store are updated by the App Store.

The direct download and a Mac App Store copy use separate local storage. Switching may require relinking your accounts, and history and drafts are not transferred. Keep your original copy until you have checked the new one.

Link accounts

With a QR code

  1. In Orbit, add an account and give it a name (for example “Work” or “Shop”).
  2. On your phone, open WhatsApp › Settings › Linked Devices › Link a Device.
  3. Scan the QR code shown in Orbit. The account connects and starts syncing recent history.

With a phone number

If scanning is inconvenient, choose Link with phone number instead, enter the number with its country code, then on the phone choose Link a Device › Link with phone number instead and type the 8-character code Orbit shows. The link appears on your phone as “Orbit” in Linked Devices.

Managing accounts

The workspace

Messages and media

Composing

On this Mac

These helpers use Apple’s frameworks on your Mac. Nothing is sent to Orbit or an AI provider.

Delivery status

Checks follow WhatsApp’s own evidence: one grey check for sent, two grey for delivered, two blue for read. Pending, unknown and failed messages never claim to be sent. Group message info lists confirmations per participant.

Typing and recording

The conversation header shows when a contact is typing or recording audio. Orbit shares your own typing indicator by default; turn off Settings › Privacy › Share typing indicator to stop. You still see theirs. Online and last-seen status are not shown.

Reactions, replies and actions

Media

Locations, contacts and polls

Disappearing and view-once messages

Voice

⌘K is the single search across Orbit: accounts, conversation names, phone numbers, and text in messages stored on this Mac. Matching ignores case and accents and covers message bodies, file names and link details. Results keep their account label; selecting a message opens nearby context with the hit highlighted.

⌘F searches the current conversation. Loaded results appear immediately, then older stored messages are checked in the background.

Browsing search results never clears unread counts or sends read receipts. Search covers history cached on this Mac, not your full WhatsApp archive.

Today

The menu bar icon opens Today (⌘1). On Pro and Studio with the assistant enabled, a Kepler tab sits next to it (⌘2). The icon changes while an assistant request waits for your approval, and shows a dot while an agent is running.

Sorting on this Mac

On Pro and Studio, on a Mac with Apple Intelligence (Apple silicon, macOS 26 or later, Apple Intelligence turned on), Apple’s on-device model sorts Today. It checks whether the people in Waiting actually expect an answer: a “thanks!” doesn’t. It also finds the promises in your sent messages. Messages and results never leave your Mac. Results are saved in the account’s folder on this Mac so they aren’t worked out again; turning sorting off deletes them. The model doesn’t read Lao or Thai, and Orbit doesn’t guess. Those chats keep the basic rule, and Ask Kepler can read them for you. Turn sorting off in Controls › Today › Sort on this Mac.

Notifications and unread counts

Read receipts

Choose when contacts see blue ticks: after you reply (default), when you open the conversation, or never. Replies mark only incoming messages that arrived before you started sending.

Hotspot Mode

On a metered connection, Hotspot Mode pauses automatic image and avatar downloads, high-quality link thumbnails and optional history backfill. Text messaging, cached history and downloads you request explicitly keep working.

Keyboard shortcuts

ShortcutAction
⌘KSearch accounts, conversations and messages
⌘FSearch the current conversation
⌘NOpen contacts to start a conversation
⌘1All Accounts
⌘2 … ⌘9Sidebar accounts 1 to 8
⌘0Default text size
Return / ⌘ReturnSend
⇧ReturnNew line
⌘CCopy selected messages (in selection mode)
@ then TabMention a group participant
← / →Previous or next item in the media viewer
⌘1 / ⌘2Menu bar: Kepler or Inbox tab
⌘NMenu bar Kepler: new conversation
⌘YMenu bar Kepler: conversation history
EscLeave selection mode, clear search, or go back in the menu bar
⌘,Settings
⌘QQuit (saves drafts, stops helpers)

Appearance

Settings offers System, Mocha, Graphite, Pearl and custom palettes, message fonts, text sizes, density, panel and detail visibility, transparency and background opacity. Message bubbles stay opaque for legibility. With Reduce Transparency or Increase Contrast enabled in macOS, surfaces stay opaque. Settings save immediately.

Kepler assistant

Kepler is Orbit’s assistant, available on Pro and Studio in the direct-download build, as a panel beside your conversation and as a tab in the menu bar. Ask it about your chats, have it translate a conversation or draft replies. It runs your own Claude Code on this Mac; your AI sign-in stays with Claude Code and Orbit never sees it.

Set up

  1. Install Claude Code and sign in to it.
  2. In Orbit, open Settings › Assistant and click Enable Assistant.
  3. Choose which accounts the assistant can use. Orbit lists exactly what it will change (turning MCP on, adding those accounts) before applying it.

Agents and identities

Settings › Assistant has three tabs: Engine, Agents and Identities.

Conversations

Prepare replies and see what Kepler read

How it stays safe

Codex appears in Settings as “Not supported yet”. Kepler is not part of the Mac App Store build.

Local MCP

MCP (Model Context Protocol) is an open standard that lets AI assistants call tools. Orbit includes a local MCP server so an assistant you already use (for example Claude Desktop or Claude Code) can work with your WhatsApp accounts. Local MCP is included in Pro and Studio. For an overview, see WhatsApp MCP server for Mac.

How a request travels:

AI host → orbit-mcp adapter (stdio) → private Unix socket → Orbit app
        → permission check / your approval → account helper → WhatsApp

An assistant host may forward the content you permit to its AI provider. That processing follows the host provider’s policies, not Orbit’s. Grant only the accounts and scopes you need.

Connect an assistant

Claude Desktop (one click)

  1. Open Settings › MCP, choose the accounts Claude can use and a preset.
  2. Click Connect Claude Desktop. Orbit adds an orbit entry to Claude Desktop’s configuration, keeps your other settings and saves one backup.
  3. Quit and reopen Claude Desktop, then ask it to list your Orbit accounts.

Presets can raise a global limit from Deny to Ask so Claude can request an action, never straight to Allow.

Other MCP hosts

  1. In Settings › MCP › Advanced, click Add Client… and name it after your host.
  2. Set its accounts, read scopes, action permissions, folders and optional expiry. New clients start with no read or write permissions.
  3. Copy the generated configuration into your host and restart its MCP connection. The token is shown only once; a lost token means creating a new client.

The generated configuration looks like this:

{
  "mcpServers": {
    "orbit": {
      "command": "/Applications/Orbit.app/Contents/Helpers/orbit-mcp",
      "env": { "ORBIT_MCP_TOKEN": "<shown once in Orbit>" }
    }
  }
}

Claude Code approval hook

Settings › MCP can add a hook to ~/.claude/settings.json so Claude Code shows the exact message (and its translation when provided) and asks you before an assistant sends, edits, forwards, deletes or schedules a message, or removes an account. Other settings are kept, with a backup next to the file. Restart Claude Code to apply it.

ChatGPT and other remote hosts may need a secure tunnel to reach a local MCP server. A ChatGPT session has not been verified.

Permissions

Permissions work at two layers. The owner limits in Settings › MCP apply to every client. Each named client then gets its own grant, which can never exceed those limits. Denial at either layer wins; Ask at either layer requires your approval.

Action policies

Seven independent policies, each set to Ask, Allow or Deny:

PolicyCoversDefault
SendsText, attachments, replies, edits, forwardsAsk
ReactionsAdding and removing reactionsAsk
WorkspaceAccount, chat, window and preference controlsAsk
FilesStaging, previews, Finder reveal, exportsAsk
DestructiveDeleting conversations, removing accountsAsk
Linking codesShowing a QR code to link a new accountAsk
QuitQuitting OrbitDeny

Privacy and notification-preview changes and group administration always require approval, even when the related policy is Allow.

Read scopes and grants

Actions and approvals

Every write returns an action ID immediately. The assistant then polls orbit_get_action for its state:

StateMeaning
awaiting_approvalWaiting for you in Orbit’s approval sheet. Expires after five minutes.
runningApproved and executing.
succeededDone. For a send, WhatsApp acknowledged it; this does not mean delivered or read.
rejectedYou declined, or a policy denied it.
expiredNot approved in time, or Orbit restarted while it was pending.
failedThe operation reported an error.
unconfirmedThe outcome could not be confirmed (for example Orbit quit mid-action). Never replayed automatically.

Tool reference

The current version of Orbit exposes twenty-three tools. Your host’s tools/list returns the exact JSON schemas; unknown fields are rejected.

ToolWhat it does
orbit_capabilitiesTools, actions, policy state, supported preferences and limits for this client
orbit_list_accountsGranted accounts with labels and connection status
orbit_queryRead cached chats, messages, contacts, message info and drafts
orbit_searchLiteral search across granted accounts, with sender, type and date filters
orbit_inboxAll, unread, awaiting reply and mentions
orbit_contactsList contacts; resolve a name or number exactly, reporting ambiguity instead of guessing
orbit_contextUp to 20 messages before and after a given message
orbit_composeShow an interactive approval card for a text message in hosts that render MCP App widgets; you edit, send or cancel it in the card (sent through the card-only orbit_send_approved)
orbit_messageSend text or attachments, reply, react, edit, forward, star, revoke for everyone, delete on this device, set drafts, load more or refresh history, download attachments
orbit_filesStage a local file, list handles, preview images, reveal in Finder, export, release
orbit_exportsPreview or create a JSON or text export of a conversation page
orbit_schedulesList, create, reschedule and cancel scheduled text messages
orbit_groupsList, inspect, create and administer groups: members, admins, name, description, photo, invite links, join and leave
orbit_chatPin, archive, mute, mark read or unread, rename locally, set image, delete
orbit_accountStatus, rename, reconnect, add, remove, show linking QR, colour and image
orbit_uiOpen a chat or account, show or arrange the window, open settings, help, search, contacts or details, quit
orbit_preferencesRead and change appearance, palette, notification and read-receipt settings
orbit_eventsPoll a metadata-only event stream with a cursor
orbit_get_actionCheck the state and result of an action
orbit_actionsList recent activity; cancel pending requests
orbit_outboxList, inspect and cancel send attempts still being prepared
orbit_diagnosticsContent-free account and cache readiness and counts

Limits worth knowing

Files and exports

Scheduled messages

Other languages

On Pro and Studio, a connected assistant (or Kepler) can translate permitted conversations and draft replies in your contact’s language, in native script or romanized. Quality depends on the assistant. For English, French and Thai, Orbit can also translate on your Mac: see On this Mac. Keep sending on Ask every time to approve each message before it leaves.

Plans and billing

PlanAccountsLocal MCP and KeplerPrice (USD / 30 days)
Free1No$0
Plus3No$7.99
Pro5Yes$19.99
Studio20Yes$49.99

Plans are for one operator; there is no shared team access. Account allowances are commercial tiers.

Buy and activate

  1. Choose a plan on the pricing section (or from Orbit’s Settings › Plan). Checkout is hosted by Whop.
  2. In Orbit, open Settings › Plan › Sign In with Browser and sign in with the same Whop account you paid with.
  3. The plan activates. A purchase does not link a WhatsApp account; link accounts as usual.

If your plan lapses, existing MCP client settings and scheduled messages are kept until you reactivate. Cancellation and the 14-day first-payment refund are described in the terms.

The Mac App Store is a separate channel that uses Apple purchases, Restore Purchases and Manage Subscriptions. Whop and App Store subscriptions do not transfer between channels.

Data and privacy

Keep a chat out of AI

Choose Keep Out of AI in a chat’s menu. From then on:

Settings › Privacy › Kept out of AI lists these chats; Allow AI restores one. The list stays on this Mac and isn’t synced to WhatsApp. Translation, transcription and reading text in images still work, because they run on your Mac only when you ask. Requests waiting for your approval in that chat are closed straight away, and scheduled sends to it are cancelled when due. What an assistant already received, files it staged earlier and earlier Kepler conversations about the chat aren’t withdrawn.

Never share a QR linking code, session database, MCP token, Whop token, Keychain item or encryption key. Full details are in the privacy notice.

Known limitations

Troubleshooting

macOS says Orbit can’t be opened

Open System Settings › Privacy & Security and click Open Anyway next to Orbit.

An account is orange or logged out

Check the phone has internet and WhatsApp still lists the link under Linked Devices. If the link was removed, use Remove and Link Again.

No notifications

Orbit must be running (it stays in the menu bar when the window closes). Check macOS notification permission for Orbit, that snooze is off, and that the chat is not muted.

A conversation is missing older messages

Orbit shows what is cached on this Mac. Scroll up to load more, or request history from the phone; WhatsApp may not return everything.

My assistant doesn’t see Orbit

  1. Keep Orbit running and confirm MCP is enabled in Settings › MCP.
  2. Confirm your plan is Pro or Studio.
  3. Restart the host (quit and reopen Claude Desktop) and ask it to list Orbit accounts.
  4. If it still fails, check that the host uses this client’s current token and that the client has accounts and read scopes.

My assistant’s request is stuck

Look for Orbit’s approval sheet or the pending-request button in the menu bar. Pending requests expire after five minutes. If the result is unconfirmed, check the conversation yourself before trying again.

Kepler says it isn’t signed in

Sign in to Claude Code from Settings › Assistant (Sign in opens Terminal), then try again.

My plan didn’t activate

Sign in from Settings › Plan with the same Whop account used at checkout. If it still shows Free, contact support with your Whop email (not your token).

Support

Email [email protected] with the Orbit version, macOS version, the area (linking, history, MCP, Kepler or billing) and steps to reproduce. Leave out private conversation content and redact identifiers from screenshots. See also the support page, privacy notice and terms.