From sundial-org-awesome-openclaw-skills-4
Manages Beeper Desktop chats, messages, searches, contacts, and reminders via rr CLI. Useful for programmatic access to Beeper local API like listing/sending messages.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4This skill uses the workspace's default tool permissions.
Use `rr` when the user explicitly wants to operate Beeper Desktop via the local API (send, search, list chats/messages, reminders, focus).
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Use rr when the user explicitly wants to operate Beeper Desktop via the local API (send, search, list chats/messages, reminders, focus).
Prefer --agent for agent use (forces JSON, envelope, no-input, readonly).
Safety
--agent for safe agent defaults: rr --agent --enable-commands=chats,messages,status chats list--readonly to block writes: rr --readonly chats list --json--enable-commands to allowlist: rr --enable-commands=chats,messages chats list --json--envelope for structured errors: rr --json --envelope chats get "!chatid"Setup (once)
rr auth set <token>rr auth status --checkrr doctorCommon commands
rr accounts list --jsonrr capabilities --jsonrr contacts search "<account-id>" "Alice" --jsonrr contacts search "Alice" --account-id="<account-id>" --jsonrr contacts resolve "<account-id>" "Alice" --jsonrr contacts resolve "Alice" --account-id="<account-id>" --jsonrr chats list --jsonrr chats search "John" --jsonrr chats search --inbox=primary --unread-only --jsonrr chats search --last-activity-after="2024-07-01T00:00:00Z" --jsonrr chats search "Jamie" --scope=participants --jsonrr chats resolve "Jamie" --jsonrr chats get "!chatid:beeper.com" --jsonrr chats create "<account-id>" --participant "<user-id>"rr chats create "<account-id>" --participant "<user-a>" --participant "<user-b>" --type group --title "Project Chat" --message "Welcome!"rr --account="imessage:+123" chats list --jsonrr accounts alias set work "slack:T123"rr messages list "!chatid:beeper.com" --jsonrr messages list "!chatid:beeper.com" --download-media --download-dir ./media --jsonrr messages search "dinner" --jsonrr messages search --sender=me --date-after="2024-07-01T00:00:00Z" --media-types=image --jsonrr messages send "!chatid:beeper.com" "Hello!"rr messages send "!chatid:beeper.com" "Thanks!" --reply-to "<message-id>"rr messages send "!chatid:beeper.com" --text-file ./message.txtcat message.txt | rr messages send "!chatid:beeper.com" --stdinrr messages tail "!chatid:beeper.com" --interval 2s --stop-after 30s --jsonrr messages wait --chat-id="!chatid:beeper.com" --contains "deploy" --wait-timeout 2m --jsonrr messages context "!chatid:beeper.com" "<sortKey>" --before 5 --after 2 --jsonrr focus --chat-id="!chatid:beeper.com" --draft-text="Hello!"rr focus --chat-id="!chatid:beeper.com" --draft-text-file ./draft.txtrr focus --chat-id="!chatid:beeper.com" --draft-attachment="/path/to/file.jpg"rr assets download "mxc://example.org/abc123" --dest "./attachment.jpg"rr reminders set "!chatid:beeper.com" "2h" / rr reminders clear "!chatid:beeper.com"rr chats archive "!chatid:beeper.com" / rr chats archive "!chatid:beeper.com" --unarchiverr focusrr search "dinner" --jsonrr status --jsonrr status --by-account --jsonrr unread --jsonin_groups for participant matches.Pagination
rr chats list --cursor="<oldestCursor>" --direction=before --jsonrr messages list "!chatid:beeper.com" --cursor="<sortKey>" --direction=before --jsonrr messages search "project" --limit=20 --jsonrr messages search "project" --cursor="<cursor>" --direction=before --jsonrr search "dinner" --messages-limit=20 --jsonrr search "dinner" --messages-cursor="<cursor>" --messages-direction=before --jsonNotes
~/.config/beeper/config.json. BEEPER_TOKEN overrides.BEEPER_ACCOUNT sets the default account ID (aliases supported).rr contacts resolve is strict and fails on ambiguous names; resolve by ID after contacts search when needed.--scope=participants to find by name.display_name for single chats (derived from participants).is_sender, is_unread, attachments, and reactions.downloaded_attachments is only populated when --download-media is used.rr messages send returns pending_message_id (temporary ID).--json (and --no-input) for automation.BEEPER_URL overrides API base URL; BEEPER_TIMEOUT sets timeout in seconds.--force; --no-input/BEEPER_NO_INPUT fails without --force.--fail-if-empty on list/search commands to exit with code 1 if no results.--fields with --plain to select columns (comma-separated).! triggers history expansion. Prefer single quotes, or disable history expansion (set +H in bash, setopt NO_HIST_EXPAND in zsh).rr version --json returns features array for capability discovery.rr capabilities --json returns full CLI capability metadata.AUTH_ERROR, NOT_FOUND, VALIDATION_ERROR, CONNECTION_ERROR, INTERNAL_ERROR.