Agent skill
message-push
Send proactive messages to IM groups or individual users via the gateway Send API. Use when the user says to send, post, notify, forward, or tell someone a message on Feishu, Slack, Telegram, Discord, DingTalk, or WeCom.
Install this agent skill to your Project
npx add-skill https://github.com/0xranx/golembot/tree/main/skills/message-push
SKILL.md
Message Push
You can send messages to IM channels proactively -- to groups or individual users -- without waiting for an incoming message.
Recognizing Push Intent
Watch for phrases like:
- "send this to the ops group"
- "tell Alice in DM that..."
- "post this summary to #general"
- "notify the team on Feishu"
- "forward this to chat oc_xxx"
Sending Workflow
Follow these steps when the user requests a message push:
- Identify the target -- determine the channel name and chatId from the user's request
- Discover available channels -- call
GET /api/channelsto confirm the channel exists and supports sending - Compose the message -- draft the text content, following im-adapter formatting guidelines
- Confirm with the user -- if this is the first time sending to this chat, show the draft and ask for approval
- Send the message -- call
POST /api/sendwith the channel, chatId, and text - Report the result -- tell the user whether the send succeeded or failed
Send API
curl -X POST http://localhost:$PORT/api/send \
-H "Content-Type: application/json" \
-d '{
"channel": "feishu",
"chatId": "oc_xxxx",
"text": "Hello from the bot!"
}'
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
channel |
string | yes | Channel name: feishu, dingtalk, wecom, slack, telegram, discord |
chatId |
string | yes | Chat/group/conversation ID on the target platform |
text |
string | yes | Message content (Markdown supported) |
Response
200 { "ok": true }-- message sent successfully404-- channel not found (check available channels)501-- channel does not support proactive send503-- no channel adapters available
Error Handling
If the send fails, check the HTTP status code:
- For
404, runGET /api/channelsand inform the user which channels are actually available - For
501, explain that the target channel adapter does not support proactive sending - For
503, inform the user that no IM adapters are currently running
Discovering Available Channels
Before sending, check which channels are available:
curl http://localhost:$PORT/api/channels
Returns:
{
"channels": [
{ "name": "feishu", "canSend": true },
{ "name": "slack", "canSend": true }
]
}
Finding Chat IDs
Chat IDs are platform-specific. Common ways to find them:
| Channel | How to find chatId |
|---|---|
| Feishu | Group settings > Group ID (starts with oc_) |
| Slack | Channel ID from URL (C prefix) or user ID (U prefix) for DMs |
| Telegram | Chat ID from message events (negative for groups) |
| Discord | Channel ID from URL or developer mode |
| DingTalk | Conversation ID from webhook or API |
| WeCom | Chat ID from API |
If the user references a group by name rather than ID, check group memory files in memory/groups/ -- the group key format is {channel}-{chatId}.
Guidelines
- Always confirm with the user before sending to a new chat for the first time
- For DMs, make sure the recipient has interacted with the bot before (most platforms require this)
- Keep messages concise -- follow the im-adapter formatting guidelines
- If the user says "send to the group" without specifying which one, check the current conversation context or ask
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
code-review
Reviews code changes, pull requests, and diffs for correctness, security, performance, and style. Use when the user submits a PR for review, asks to review a diff or code snippet, or requests a quality check on recent changes.
meeting
Meeting notes assistant — organizes transcripts into structured minutes, extracts action items, and tracks attendee decisions. Use when the user asks to summarize a meeting, take meeting notes, write up minutes, create a meeting recap, list attendees, or extract action items from a call.
ops
Content operations assistant — drafts blog posts, social media copy, and marketing materials, compiles data briefings, and tracks competitor activity. Use when the user asks to write a blog post, draft social media content, create marketing copy, generate a weekly report, compile operational metrics, update the publishing schedule, or monitor competitors.
research
Research assistant — gathers information, performs competitive analysis, and generates structured research reports. Use when the user asks to research a topic, compare options, analyze competitors, investigate a question, compile findings, or produce a market or technical report.
faq-support
Answers common customer questions from a knowledge base and escalates to a human agent when unable to help. Use when the user asks a frequently asked question, submits a support ticket or help desk request, or needs assistance with account, billing, or product issues.
data-analysis
Loads CSV, Excel, and JSON data files, performs statistical analysis, and generates charts and reports. Use when the user asks to analyze a dataset, compute statistics, create visualizations, find trends, or produce a data report.
Didn't find tool you were looking for?