indexable-inc/index-bak/beeper
Claude Code and agent skill by indexable-inc/index-bak
- community
Checking that the SKILL.md file is still in the repository.
Send and read chat messages on any network Beeper bridges (Signal, WhatsApp, Telegram, Discord, Instagram, X, iMessage) through the Beeper Desktop API on localhost. Use whenever the user wants to message someone on Signal or another non-iMessage network, search chats, or read a conversation. Covers the OAuth PKCE token dance, the URL-encoded chatID gotcha, and delivery confirmation.
Install
npx vskill@latest install indexable-inc/index-bak/beeperSKILL.md
Beeper Desktop API
Beeper Desktop serves a REST API at http://127.0.0.1:23373 while the app runs. The live spec is at /v1/spec. Do not drive the Electron UI with agent-browser for messaging; the API is faster and does not race the user's focus.
Accounts list one entry per bridged network (local-signal_* is Signal, whatsapp, telegram, discordgo, sh-imessage, ...).
Finding a chat and reading it
Take .items[].id (not .chatID, which is null in search results) plus .network and .title to pick the right conversation. The id contains ! and : and MUST be URL-encoded when used in a path:
Sending
POST {"text": "..."} to /v1/chats/{chatID}/messages. Markdown is accepted and converted per network. Build the payload with jq -n --arg rather than interpolating into a JSON string.
A 200 with pendingMessageID means queued, not delivered. Confirm by re-reading the last message (limit=1) and checking isSender == true with your text.
Disclose AI authorship in every outbound message: open with something like "Andrew's AI assistant here (Claude, via Claude Code)". The recipient is a person expecting a person.
When the token is stale (401 "Invalid token")
The API mints tokens via OAuth PKCE with in-app approval; there is no long-lived secret to copy. Re-run the dance and save the result back to ~/.config/beeper/token:
POST /oauth/registerwith `{"client_name":..., "redirect_uris":
["http://127.0.0.1:18742/callback"], "grant_types":["authorization_code"], "response_types":["code"], "token_endpoint_auth_method":"none"}`.
- Start a one-shot localhost listener on the redirect port, then
openthe
/oauth/authorize URL with scope=read+write and an S256 code_challenge. Beeper pops an approval dialog; the user clicks once.
- Exchange the code at
/oauth/tokenwith thecode_verifier, write
access_token to ~/.config/beeper/token (mode 600).
Discovery lives at /.well-known/oauth-authorization-server if the endpoints move.
Gotchas
/v0/*paths 404: that prefix serves only the MCP transport (/v0/mcp).
All REST is under /v1/.
- An unauthenticated request to a real
/v1route returns 401; a 404 means
the route is wrong, not the auth.
Fleet/kernel helpers do not cover Beeper; iMessage-specific work has its
own skill (imessage) that sends through Messages.app instead.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/beeper/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/indexable-inc/index-bak/beeper)