discord-send
npx machina-cli add skill lycfyi/community-agent-plugin/discord-send --openclawDiscord Send
Send messages to Discord channels using your user token.
Persona Context
REQUIRED: Before executing this skill, load your configured persona:
python ${CLAUDE_PLUGIN_ROOT}/../community-agent/tools/persona_status.py --prompt
This outputs your persona definition. Apply it when composing messages:
- Voice: Write in first person as the persona ("I recommend..." not "The system suggests...")
- Style: Match the persona's communication style (formal/friendly/technical)
- Personality: Reflect the persona's traits in how you write
- Signing: Sign messages with persona name if appropriate for the context
When to Use
- User asks to "send to Discord"
- User asks to "post in #channel"
- User asks to "reply to Discord message"
- User wants to "respond to that Discord conversation"
- User wants to post a message they composed
How to Execute
Send a message to a channel:
python ${CLAUDE_PLUGIN_ROOT}/tools/discord_send.py --channel CHANNEL_ID --message "Your message here"
Reply to a specific message:
python ${CLAUDE_PLUGIN_ROOT}/tools/discord_send.py --channel CHANNEL_ID --message "Your reply" --reply-to MESSAGE_ID
Parameters
| Parameter | Required | Description |
|---|---|---|
| --channel | Yes | Target channel ID |
| --message | Yes | Message content (max 2000 chars) |
| --reply-to | No | Message ID to reply to |
Finding Channel IDs
Use discord-list skill to find channel IDs:
python ${CLAUDE_PLUGIN_ROOT}/tools/discord_list.py --channels SERVER_ID
Finding Message IDs
Message IDs can be found in:
- The messages.md files (in message headers)
- Discord's Developer Mode (right-click → Copy ID)
- The sync_state.yaml (last_message_id)
Output
On success, returns:
- Message ID
- Channel ID
- Timestamp
- Reply target (if applicable)
Limitations
- Maximum message length: 2000 characters
- Rate limited (automatic backoff)
- Requires valid user token in
./.env(in cwd)
Warning
Using a user token to send messages may violate Discord's Terms of Service. Use responsibly and at your own risk.
Source
git clone https://github.com/lycfyi/community-agent-plugin/blob/main/plugins/discord-user-connector/skills/discord-send/SKILL.mdView on GitHub Overview
Discord Send lets you post and reply in Discord channels using a user token. It supports sending new messages and replying to existing ones, up to 2000 characters per message. The skill relies on a loaded persona to tailor voice and signing for each message.
How This Skill Works
The skill calls a CLI tool (discord_send.py) with required parameters like --channel and --message. If replying, you can add --reply-to with the target MESSAGE_ID. On success it returns the Message ID, Channel ID, and Timestamp, after validating the token in .env and applying backoff for rate limits.
When to Use It
- User asks to send to Discord
- User asks to post in a channel
- User asks to reply to a Discord message
- User wants to respond to that Discord conversation
- User wants to post a message they composed
Quick Start
- Step 1: Load your persona status with the provided script
- Step 2: Run the send command: python ${CLAUDE_PLUGIN_ROOT}/tools/discord_send.py --channel CHANNEL_ID --message "Your message here"
- Step 3: If replying, add --reply-to MESSAGE_ID: python ${CLAUDE_PLUGIN_ROOT}/tools/discord_send.py --channel CHANNEL_ID --message "Your reply" --reply-to MESSAGE_ID
Best Practices
- Load your persona before sending to ensure voice and signing align with context
- Provide the correct channel ID and keep messages within the 2000-character limit
- Use --reply-to to accurately target a specific message when replying
- Keep your user token secure (store in .env and do not expose it)
- Respect Discord rate limits and handle automatic backoff gracefully
Example Use Cases
- Post a daily standup update to #team-updates
- Reply to a customer question in #support with a fix
- Announce a deployment to #deployments
- Share a project status in #project-alpha
- Respond to an ongoing conversation in #general with a follow-up