home / skills / openclaw / skills / beepctl

beepctl skill

/skills/blqke/beepctl

This skill helps you manage multi-platform messaging from the terminal using beepctl to search, archive, and send messages across apps.

This is most likely a fork of the beepctl skill from blqke
npx playbooks add skill openclaw/skills --skill beepctl

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
5.8 KB
---
name: beepctl
description: Use when sending messages, searching chats, or managing conversations across messaging platforms (Telegram, WhatsApp, Slack, iMessage, etc.) via Beeper Desktop API.
homepage: https://github.com/blqke/beepctl
metadata: {"clawdbot":{"emoji":"🐝","requires":{"bins":["beepctl"]},"install":[{"id":"npm","kind":"npm","package":"beepctl","global":true,"bins":["beepctl"],"label":"Install beepctl (npm)"}]}}
---

# beepctl

CLI for [Beeper Desktop API](https://developers.beeper.com/desktop-api) — unified messaging from your terminal. Control all your messaging platforms (Telegram, WhatsApp, Slack, iMessage, etc.) through one interface.

📖 **Setup & installation:** see [GitHub repo](https://github.com/blqke/beepctl)

## Quick Start

```bash
beepctl accounts                    # List connected accounts
beepctl chats list                  # List recent chats
beepctl chats list --search "John"  # Find a chat
beepctl search "meeting" --after "1d ago"  # Search messages
beepctl send <chat-id> "Hello!"     # Send a message
```

## Commands

### Auth Management
```bash
beepctl auth show           # Check auth status and token
beepctl auth set <token>    # Set API token
beepctl auth clear          # Clear saved token
```

### Accounts
```bash
beepctl accounts            # List all connected accounts
```

### Browse Chats
```bash
beepctl chats list                        # List inbox (non-archived)
beepctl chats list --limit 20             # Limit results
beepctl chats list --search "John"        # Filter by name
beepctl chats list --inbox archive        # Archived chats only
beepctl chats list --inbox low-priority   # Low-priority chats
beepctl chats list --inbox all            # All chats
beepctl chats list --type group           # Filter by type (single/group/any)
beepctl chats list --unread-only          # Unread chats only
beepctl chats list --activity-after "1d ago"  # Recent activity filter
beepctl chats show <chat-id>              # Detailed chat info with participants
beepctl chats create <account> <users...> # Create new chat
```

**Inbox filters:** `primary` (default), `archive`, `low-priority`, `all`

### List Messages
```bash
beepctl messages <chat-id>              # Recent messages from a chat
beepctl messages <chat-id> --limit 10   # Limit results
beepctl messages work --after "1d ago"  # Use alias + time filter
beepctl messages <chat-id> --before "1h ago"  # Messages before a time
```

### Search Messages
```bash
beepctl search "query"                    # Search across all chats
beepctl search "query" --limit 10         # Limit results
beepctl search "meeting" --after "1d ago" # Time filter
beepctl search "hello" --chat work        # Filter by chat/alias
beepctl search "files" --media file       # Filter by media type
beepctl search "dm" --chat-type single    # Filter by chat type
beepctl search "update" --sender others   # Filter by sender (me/others)
beepctl search "msg" --account <id>       # Filter by account
beepctl search "todo" --include-low-priority   # Include low-priority chats
beepctl search "important" --exclude-muted     # Exclude muted chats
```

**Combine filters:**
```bash
beepctl search "deploy" --chat work --sender others --after "1d ago" --media link
beepctl search "hello" --chat work family  # Multiple chats (space-separated)
beepctl search "test" --chat id1,id2,id3   # Multiple chats (comma-separated)
```

**Time formats:** `1h ago`, `2d ago`, `3w ago`, `1mo ago`, `yesterday`, `today`  
**Media types:** `any`, `video`, `image`, `link`, `file`

### Aliases
Create shortcuts for frequently used chat IDs:

```bash
beepctl alias list                    # List all aliases
beepctl alias add work <chat-id>      # Create alias
beepctl alias show work               # Show alias value
beepctl alias remove work             # Remove alias
beepctl send work "Using alias!"      # Use alias in any command
```

### Archive Chats
```bash
beepctl archive <chat-id>              # Archive a chat
beepctl archive <chat-id> --unarchive  # Unarchive
beepctl archive work                   # Use alias
beepctl archive <chat-id> --quiet      # No confirmation message
```

### Send Messages

⚠️ **NEVER send messages without explicit user approval first!**
Always show the message content and recipient, then ask for confirmation.

```bash
beepctl send <chat-id> "Hello!"                    # Send message
beepctl send myself "Quick note"                   # Send to self
beepctl send <chat-id> "Reply" --reply-to <msg-id> # Reply to message
beepctl send <chat-id> "msg" --quiet               # No confirmation output
```

### Focus (Bring to Foreground)
```bash
beepctl focus                           # Bring Beeper to foreground
beepctl focus <chat-id>                 # Open a specific chat
beepctl focus <chat-id> -m <msg-id>     # Jump to specific message
beepctl focus <chat-id> -d "draft"      # Pre-fill draft text
beepctl focus <chat-id> -a /path/file   # Pre-fill draft attachment
```

### Send Media
`beepctl send` only supports text. To send media, use focus with draft:

```bash
beepctl focus <chat-id> -a /path/to/image.png -d "Caption"
# Then press Enter in Beeper to send
```

### Contacts
```bash
beepctl contacts search <account> <query>  # Search contacts on an account
```

### Download Attachments
```bash
beepctl download <mxc-url>              # Download attachment (mxc:// URLs)
beepctl download <mxc-url> -o /path     # Save to specific path
```

### Reminders
```bash
beepctl reminders set <chat> 30m       # Remind in 30 minutes
beepctl reminders set <chat> 1h        # Remind in 1 hour
beepctl reminders set <chat> 2d        # Remind in 2 days
beepctl reminders set <chat> tomorrow  # Remind tomorrow
beepctl reminders clear <chat>         # Clear reminder
```

## Tips

- Chat IDs look like: `!gZ42vWzDxl8V0sZXWBgO:beeper.local`
- Use aliases to avoid typing long chat IDs
- The special alias `myself` sends to your own chat

Overview

This skill provides a command-line interface for the Beeper Desktop API to manage messaging across platforms (Telegram, WhatsApp, Slack, iMessage, etc.) from your terminal. It centralizes account listing, chat browsing, message searching, sending, and conversation management into a single, scriptable tool. Use it to automate searches, backups, and cross-platform workflows without opening multiple apps.

How this skill works

The skill talks to the Beeper Desktop API using a configured API token and exposes common operations as CLI commands. It inspects connected accounts, chat metadata, messages, attachments, and aliases, and performs actions like send, archive, focus, download, and reminders. Filters and time expressions let you refine searches and listings across all linked messaging platforms.

When to use it

  • Search messages across all platforms from scripts or the terminal
  • Send or queue messages after confirmation without switching apps
  • Archive, unarchive, or manage inbox filters programmatically
  • Download attachments or export chat histories for backups
  • Create aliases and shortcuts for long chat IDs to simplify automation

Best practices

  • Always set and verify the API token before running commands (beepctl auth show).
  • Require explicit user confirmation before sending messages; display recipient and content first.
  • Use aliases for repetitive tasks to avoid pasting long chat IDs and reduce errors.
  • Combine time filters and sender/chat filters when searching to narrow results and speed queries.
  • Use focus with drafts/attachments to prepare media messages safely since send only supports text.

Example use cases

  • Automated nightly search for meeting notes across work chats and save results to a file.
  • Send scheduled reminders to a project chat by scripting beepctl reminders set and reminders clear.
  • Archive low-priority chats in bulk after review using chats list with filters and archive commands.
  • Download attachments referenced in a set of messages for offline backup using beepctl download in a loop.
  • Create aliases for frequent chats and use them in CI/automation to send status updates or alerts.

FAQ

How do I authenticate the CLI?

Set your API token with beepctl auth set <token> and verify with beepctl auth show.

Can I send images or files directly with send?

No. beepctl send supports text only. Use beepctl focus with -a and draft text to prefill media and send from Beeper.

How do I search messages from a specific time range?

Use --after and --before with natural time formats like "1d ago", "1h ago", "yesterday" to filter search and messages commands.