A macOS messaging analytics app for Beeper — visualize your conversations across every platform, with on-device AI.
See who you talk to most, discover your active hours, find ghosting patterns, explore group dynamics, and get AI-powered conversation summaries.
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.
Deeper uses Apple Intelligence (on-device) to summarize your conversations — no cloud, no API keys, no data leaves your Mac. The Foundation Models framework runs entirely on your Apple Silicon, keeping everything private by design.
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
- Per-person response time — average reply time for you and the other person
- Apple Intelligence summary — on-device AI conversation summary with animated glow border
- Per-person phrase analytics — word cloud and stats for words you use with each person
- 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
- Word frequency analysis — top words and phrases you use most
- Word cloud — visual representation of your most-used words
- Stats — total words, unique words, average message length
- Date range filtering — filter by week, month, quarter, or all time
- Response time leaderboard — see who responds fastest and who keeps you waiting
- Your response times — average time you take to reply per person
- Their response times — average time others take to reply to you
- Date range filtering — filter by week, month, quarter, or all time
- 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
- Date range filtering — filter by week, month, quarter, or all time
- On-device conversation summary — summarizes your recent messages with each person using Apple's Foundation Models, running entirely on your Apple Silicon — nothing leaves your Mac
- System language detection — responds in your macOS system language automatically
- Animated glow border — Apple Intelligence-style rainbow gradient animation
- Graceful availability handling — shows specific status for downloading, not enabled, or unsupported devices
- No API keys needed — uses the built-in on-device LLM, no cloud services or subscriptions required
- Grouped sidebar — organized into Overview, Contacts, and Analytics sections
- Data caching — split into multiple cache files for efficient memory usage
- Sync button — ⌘R to refetch all data
- Secure auth — Bearer token stored in macOS Keychain
- Liquid Glass UI — native macOS 26 design with
.glassEffect() - Date range filtering — week, month, quarter, or all time across analytics views
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 |
| Today / This Week | Time-scoped message stats |
| People | All contacts ranked by message volume, filterable by connection type, AI summaries |
| Groups | Most active groups, largest groups, per-platform group lists |
| Platforms | Chat distribution, groups vs DMs breakdown, platform detail cards |
| Phrases | Word frequency analysis and word cloud with date range filter |
| Response Time | Response time leaderboard with date range filter |
| Reels | Instagram Reels sharing leaderboard with date range filter |
- 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/
│ ├── AnalyticsModels.swift # Phrase, response time, timestamped data 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
│ ├── BeeperOAuthService.swift # OAuth authentication service
│ ├── DataStore.swift # Central data cache + sync engine
│ ├── PersonMerger.swift # Cross-platform contact merging
│ ├── ReelsAnalyzer.swift # Instagram Reels analysis
│ ├── WebSocketManager.swift # Live WebSocket feed
│ └── KeychainHelper.swift # Secure token storage
│
├── ViewModels/
│ ├── DashboardViewModel.swift # HourlyActivityPoint model
│ ├── PeopleViewModel.swift # People view model
│ ├── PlatformsViewModel.swift # Platforms view model
│ └── ReelsViewModel.swift # Reels view 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, AI summary, response times
├── Groups/
│ └── GroupsView.swift # Group analytics and leaderboard
├── Platforms/
│ └── PlatformsView.swift # Platform distribution charts
├── Phrases/
│ └── PhrasesView.swift # Word frequency analytics + word cloud
├── ResponseTime/
│ └── ResponseTimeView.swift # Response time leaderboard
├── Reels/
│ └── ReelsView.swift # Instagram Reels leaderboard
├── TimeRange/
│ └── TimeRangeView.swift # Today / This Week stats
├── Welcome/
│ └── WelcomeView.swift # Welcome / onboarding screen
└── 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) - On-device AI — conversation summaries run on Apple Silicon via Foundation Models, never sent to the cloud
- 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.
