A macOS messaging analytics app for Beeper — visualize your conversations across every platform.
See who you talk to most, discover your active hours, find ghosting patterns, and explore group dynamics.
Download · Features · How It Works · Build
Deeper connects to your local Beeper Desktop app and turns your messaging data into beautiful, interactive analytics. It merges contacts across platforms (iMessage, WhatsApp, Instagram, Telegram, Signal, X/Twitter, and more), analyzes sent vs received message patterns, and visualizes everything with native macOS charts and Liquid Glass effects.
All data stays on your machine. Deeper talks only to your local Beeper Desktop instance — nothing is sent to any server.
Download the latest .dmg from Releases
Or install with Homebrew:
brew install f/tap/deeperRequires macOS 26 Tahoe or later. Beeper Desktop must be running.
- At-a-glance stats — accounts, total chats, unread count, messages sent today
- Connection categories — two-way connected, they ghost me, I ghost them
- Most Active Hours — interactive line chart per platform with toggleable filters
- Platform ranking — bar chart of chat distribution across platforms
- Cross-platform merging — contacts with the same name on different platforms are merged into a single profile
- Smart deduplication — different users with the same name on the same platform stay separate
- Sent/received breakdown — see message reciprocity per person
- Connection type badges — two-way, they ghost, I ghost, inactive
- Category filters — filter by connection type
- Detail view — per-person platform breakdown, reciprocity percentage, connection analysis
- Most active groups — ranked by message volume with sent/received counts
- Largest groups — bar chart by member count
- Per-platform breakdown — collapsible group lists with member counts, unread badges, muted/pinned indicators
- Group distribution — donut chart of groups across platforms
- Chat distribution — donut chart across all platforms
- Groups vs DMs — grouped bar chart per platform
- Platform detail cards — chat count, unread, DMs, groups, top contacts per platform
- Instagram Reels leaderboard — who you share the most Reels with
- Sent vs received chart — horizontal bar chart of Reels exchanges
- Summary stats — total Reels sent, received, unique people
- Data caching — fetches everything once, instant tab switching
- Sync button — ⌘R to refetch all data
- Secure auth — Bearer token stored in macOS Keychain
- Liquid Glass UI — native macOS 26 design with
.glassEffect()
Deeper requires a Beeper Desktop API token to access your messaging data. Here's how to set it up:
- Open Beeper Desktop and go to Settings
- Navigate to the Developers tab in the sidebar
- Toggle Beeper Desktop API to On (this enables the local API on port
23373) - Enable Start on launch so the API is always available
- Scroll down to the Approved Connections section
- Click the + button on the right to generate a new API token
- Copy the generated token — you'll paste it into Deeper on first launch
The API runs entirely on your local machine at
http://localhost:23373. No data leaves your computer.
- Open Beeper Desktop — Deeper connects to Beeper's local API at
localhost:23373. - Enter your token — Paste your Beeper auth token on first launch. It's stored securely in Keychain.
- Explore your data — Deeper fetches all your chats, merges contacts, analyzes messages, and presents interactive dashboards.
| Tab | What you'll see |
|---|---|
| Dashboard | Stats overview, connection categories, hourly activity chart, platform ranking |
| People | All contacts ranked by message volume, filterable by connection type |
| Groups | Most active groups, largest groups, per-platform group lists |
| Platforms | Chat distribution, groups vs DMs breakdown, platform detail cards |
| Reels | Instagram Reels sharing leaderboard |
- macOS 26+
- Xcode 26+
- Swift 6.0+
- Beeper Desktop running locally
git clone https://github.com/f/deeper.git
cd deeper/Deeper
open Deeper.xcodeprojBuild and run with ⌘R in Xcode.
cd deeper/Deeper
chmod +x build.sh
./build.shThe DMG will be at build/release/Deeper.dmg.
Deeper/
├── Deeper.xcodeproj
├── build.sh # Universal build + DMG script
└── Deeper/
├── DeeperApp.swift # App entry point, Settings scene
├── ContentView.swift # Sidebar navigation, DataStore wiring
│
├── Models/
│ ├── BeeperModels.swift # API response types (Chat, Message, User)
│ ├── MergedPerson.swift # Cross-platform person model
│ ├── PlatformInfo.swift # Platform enum, bridge detection
│ └── GroupStats.swift # Group analytics models
│
├── Services/
│ ├── BeeperAPIClient.swift # REST API client with pagination
│ ├── DataStore.swift # Central data cache + sync engine
│ ├── PersonMerger.swift # Cross-platform contact merging
│ ├── ReelsAnalyzer.swift # Instagram Reels analysis
│ └── KeychainHelper.swift # Secure token storage
│
├── ViewModels/
│ └── DashboardViewModel.swift # HourlyActivityPoint model
│
└── Views/
├── Dashboard/
│ ├── DashboardView.swift # Main dashboard with charts
│ ├── DashboardPeopleCard.swift # Connection category cards
│ ├── StatCard.swift # Stat card component
│ └── FlowLayout.swift # Wrapping layout for tags
├── People/
│ ├── PeopleView.swift # People list with category filters
│ └── PersonDetailView.swift # Person detail with platform breakdown
├── Groups/
│ └── GroupsView.swift # Group analytics and leaderboard
├── Platforms/
│ └── PlatformsView.swift # Platform distribution charts
├── Reels/
│ └── ReelsView.swift # Instagram Reels leaderboard
└── Settings/
└── SettingsView.swift # Token input and connection setup
Deeper detects platforms from Beeper bridge account IDs:
| Platform | Bridge Keywords |
|---|---|
| iMessage | imessage, imessagecloud |
whatsapp |
|
instagram |
|
| Telegram | telegram |
| Signal | signal |
| X (Twitter) | twitter |
| Facebook Messenger | facebook, messenger |
| Discord | discord |
| Slack | slack |
linkedin |
|
| Google Messages | gmessages, googlechat |
| SMS | androidsms |
- 100% local — Deeper only connects to
localhost:23373(Beeper Desktop) - No telemetry — no analytics, no tracking, no external requests
- Token in Keychain — your Beeper auth token is stored in macOS Keychain, not in plaintext
- Open source — audit the code yourself
MIT License. See LICENSE for details.
