Skip to content
Automation
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.

From plugin
golembot
32613 skills

Claude Code

$ npx -y skills add 0xranx/golembot --skill message-push --agent claude-code

SKILL.md

message-push.SKILL.md
name: message-push
description: "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."

Message Push

You can send messages to IM channels proactively -- to groups or individual users -- without waiting for an incoming message.

Recognizing Push Intent

Note: if the user asks you to send a FILE or IMAGE (e.g. a generated document, chart, photo), do NOT use this skill — instead save to `temp_file/` and emit `[SEND_IMAGE: ...]` / `[SEND_FILE: ...]` markers (see the im-adapter skill). This skill only sends TEXT messages.

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:

1. **Identify the target** -- determine the channel name and chatId from the user's request 2. **Discover available channels** -- call `GET /api/channels` to confirm the channel exists and supports sending 3. **Compose the message** -- draft the text content, following im-adapter formatting guidelines 4. **Confirm with the user** -- if this is the first time sending to this chat, show the draft and ask for approval 5. **Send the message** -- call `POST /api/send` with the channel, chatId, and text 6. **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 successfully
  • `404` -- channel not found (check available channels)
  • `501` -- channel does not support proactive send
  • `503` -- no channel adapters available

Error Handling

If the send fails, check the HTTP status code:

  • For `404`, run `GET /api/channels` and 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
Read more
@0xranx
Ships withgolembot

Any Agent × Any Provider × Anywhere. Connect Cursor, Claude Code, OpenCode, or Codex to Slack, Telegram, Discord, Feishu, DingTalk, WeCom, WeChat — with any LLM provider.

Stars on GitHub

Momentum

stars in total
326
Star history of 0xranx/golembot on GitHub, a chart by star-history.com

Other skills on golembot.

escalation

escalation

Escalate unresolvable or sensitive requests to a human agent by recording an escalation entry. Use when the user asks to speak to…

@0xranx@0xranxInstall Skill
general

general

Handle everyday conversation, answer questions, manage files, take notes, run scripts, and maintain persistent memory across…

@0xranx@0xranxInstall Skill
im-adapter

im-adapter

Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram. Controls response length,…

@0xranx@0xranxInstall Skill
kb-guide

kb-guide

Search, read, create, and update knowledge base entries via MCP-connected KB tools. Use when the user asks to look up…

@0xranx@0xranxInstall Skill
multi-bot

multi-bot

Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other…

@0xranx@0xranxInstall Skill
task-manager

task-manager

Creates and manages scheduled tasks, cron jobs, recurring reminders, and timers via the Task HTTP API. Use when the user asks to…

@0xranx@0xranxInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n13d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about message-push.

Which coding agents can use message-push?
message-push installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.