๐Ÿ“ฆ f / deeper

โ˜… 53 stars โ‘‚ 3 forks ๐Ÿ‘ 53 watching โš–๏ธ MIT License
๐Ÿ“ฅ Clone https://github.com/f/deeper.git
HTTPS git clone https://github.com/f/deeper.git
SSH git clone git@github.com:f/deeper.git
CLI gh repo clone f/deeper
Loading files...
๐Ÿ“„ README.md

Deeper icon

Deeper

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 screenshot


What is Deeper?

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

Download the latest .dmg from Releases

Or install with Homebrew:

brew install f/tap/deeper

Requires macOS 26 Tahoe or later. Beeper Desktop must be running.

Features

Dashboard

  • 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

People

  • 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

Groups

  • 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

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

Phrases

  • 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

  • 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

Reels

  • 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

Apple Intelligence (On-Device)

  • 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

General

  • 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

Getting Your API Token

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.

How It Works

  • 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.
TabWhat you'll see
DashboardStats overview, connection categories, hourly activity chart, platform ranking
Today / This WeekTime-scoped message stats
PeopleAll contacts ranked by message volume, filterable by connection type, AI summaries
GroupsMost active groups, largest groups, per-platform group lists
PlatformsChat distribution, groups vs DMs breakdown, platform detail cards
PhrasesWord frequency analysis and word cloud with date range filter
Response TimeResponse time leaderboard with date range filter
ReelsInstagram Reels sharing leaderboard with date range filter

Building from Source

Requirements

  • macOS 26+
  • Xcode 26+
  • Swift 6.0+
  • Beeper Desktop running locally

Build

git clone https://github.com/f/deeper.git
cd deeper/Deeper
open Deeper.xcodeproj

Build and run with โŒ˜R in Xcode.

Build DMG

cd deeper/Deeper
chmod +x build.sh
./build.sh

The DMG will be at build/release/Deeper.dmg.

Project Structure

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

Supported Platforms

Deeper detects platforms from Beeper bridge account IDs:

PlatformBridge Keywords
iMessageimessage, imessagecloud
WhatsAppwhatsapp
Instagraminstagram
Telegramtelegram
Signalsignal
X (Twitter)twitter
Facebook Messengerfacebook, messenger
Discorddiscord
Slackslack
LinkedInlinkedin
Google Messagesgmessages, googlechat
SMSandroidsms

Privacy

  • 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

License

MIT License. See LICENSE for details.