# Beeper

> Beeper local cache: contact hints, room lookup, WhatsApp/iMessage traces, FTS search.

- Skill: `mouadja02/beeper` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mouadja02/beeper`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mouadja02/beeper/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: mouadja02 (https://skillmd.com/u/mouadja02)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mouadja02/beeper

---


# Beeper

> **Attribution:** Sourced from [steipete/agent-scripts](https://github.com/steipete/agent-scripts) by [Peter Steinberger](https://github.com/steipete).

Use this for local Beeper history questions, especially vague contact hints across iMessage/WhatsApp bridges.

## When to Use

- Searching local Beeper chat history across bridges (iMessage, WhatsApp)
- Looking up contacts by vague hints across bridged messaging services
- Querying the Beeper SQLite FTS index for message content

## Source

- DB: `~/Library/Application Support/BeeperTexts/index.db`
- FTS: `mx_room_messages_fts`

Start by inspecting accounts/rooms before broad searching.

## Common Queries

### Inspect accounts and rooms

```bash
sqlite3 ~/Library/Application\ Support/BeeperTexts/index.db \
  "SELECT id, name, bridge_type FROM mx_rooms LIMIT 20"
```

### Search messages (FTS)

```bash
sqlite3 ~/Library/Application\ Support/BeeperTexts/index.db \
  "SELECT snippet(mx_room_messages_fts) FROM mx_room_messages_fts WHERE mx_room_messages_fts MATCH 'search term' LIMIT 10"
```

### Find contact by name

```bash
sqlite3 ~/Library/Application\ Support/BeeperTexts/index.db \
  "SELECT id, name, bridge_type FROM mx_rooms WHERE name LIKE '%contact name%' LIMIT 20"
```

### Get messages from a specific room

```bash
sqlite3 ~/Library/Application\ Support/BeeperTexts/index.db \
  "SELECT timestamp, sender, body FROM mx_room_messages WHERE room_id = '<room-id>' ORDER BY timestamp DESC LIMIT 20"
```

### Cross-bridge contact search

```bash
sqlite3 ~/Library/Application\ Support/BeeperTexts/index.db \
  "SELECT r.name, r.bridge_type, COUNT(m.id) as msg_count 
   FROM mx_rooms r 
   LEFT JOIN mx_room_messages m ON r.id = m.room_id 
   WHERE r.name LIKE '%search%' 
   GROUP BY r.id 
   LIMIT 20"
```

## Notes

- This is read-only local history — Beeper app must be installed.
- FTS (Full-Text Search) is faster for content search; use direct tables for structural queries.
- `bridge_type` identifies the messaging platform (e.g., `whatsapp`, `imessage`, `signal`).

