Claude To Im
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
Reference for OpenClaw's discord tool: sending messages, reactions, stickers, emoji uploads, polls, threads and moderation in Discord channels and DMs.
$ npx skills add smallnest/goclaw --skill discord -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install smallnest/goclaw discord --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/builtin_skills/discord .claude/skills/discord && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .claude/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discordType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add smallnest/goclaw --skill discord -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install smallnest/goclaw discord --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/internal/builtin_skills/discord .agents/skills/discord && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .agents/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add smallnest/goclaw --skill discord -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install smallnest/goclaw discord --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/internal/builtin_skills/discord .cursor/skills/discord && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .cursor/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/smallnest/goclaw.git --path internal/builtin_skills/discord--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add smallnest/goclaw --skill discord -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install smallnest/goclaw discord --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/internal/builtin_skills/discord .gemini/skills/discord && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .gemini/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install smallnest/goclaw discordInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add smallnest/goclaw --skill discord -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/internal/builtin_skills/discord .github/skills/discord && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .github/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add smallnest/goclaw --skill discord -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install smallnest/goclaw discord --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smallnest/goclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/internal/builtin_skills/discord .opencode/skills/discord && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "discord" agent skill from https://github.com/smallnest/goclaw/tree/master/internal/builtin_skills/discord into .opencode/skills/discord/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
discordReference for OpenClaw's discord tool: sending messages, reactions, stickers, emoji uploads, polls, threads and moderation in Discord channels and DMs.
This skill documents the discord tool, which works through the bot token configured for OpenClaw. Action groups can be switched off with discord.actions settings; all are enabled by default except roles and moderation. Beyond what the examples show, the description lists thread, pin and search management, creating and editing channels and categories, reading permissions and member, role and channel info, setting bot presence, and moderation.
It explains which inputs each action needs. Reactions take a channelId, messageId and emoji. Sending messages, stickers and polls uses a to target of the form channel:ID or user:ID, and fetchMessage accepts a message link. Polls need a question and 2 to 10 answers, last 24 hours by default and at most 32 days. Media comes from a file:// path or an https URL.
Upload limits are spelled out: custom emoji must be PNG, JPG or GIF up to 256KB with optional role restrictions, and stickers need a name, description and tags with PNG, APNG or Lottie JSON files up to 512KB. A message can carry up to 3 stickers.
Read from SKILL.md and the folder at commit e05c79d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
discord.comtwitch.tvFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Discord Actions for OpenClaw loads about 2.9k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 824 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from smallnest/goclaw at commit e05c79d, republished under its MIT licence (© smallnest). 824 words, ~2,946 tokens.
.claude/skills/discord/SKILL.md (or your agent's skills folder).Use discord to manage messages, reactions, threads, polls, and moderation. You can disable groups via discord.actions.* (defaults to enabled, except roles/moderation). The tool uses the bot token configured for OpenClaw.
channelId, messageId, and an emoji.guildId, channelId, messageId, or a messageLink like https://discord.com/channels/<guildId>/<channelId>/<messageId>.to target (channel:<id> or user:<id>). Optional content text.question plus 2–10 answers.mediaUrl with file:///path for local files or https://... for remote.guildId, name, mediaUrl, optional roleIds (limit 256KB, PNG/JPG/GIF).guildId, name, description, tags, mediaUrl (limit 512KB, PNG/APNG/Lottie JSON).Message context lines include discord message id and channel fields you can reuse directly.
Note: sendMessage uses to: "channel:<id>" format, not channelId. Other actions like react, readMessages, editMessage use channelId directly.
Note: fetchMessage accepts message IDs or full links like https://discord.com/channels/<guildId>/<channelId>/<messageId>.
{
"action": "react",
"channelId": "123",
"messageId": "456",
"emoji": "✅"
}{
"action": "reactions",
"channelId": "123",
"messageId": "456",
"limit": 100
}{
"action": "sticker",
"to": "channel:123",
"stickerIds": ["9876543210"],
"content": "Nice work!"
}to can be user:<id> for DMs.{
"action": "emojiUpload",
"guildId": "999",
"name": "party_blob",
"mediaUrl": "file:///tmp/party.png",
"roleIds": ["222"]
}roleIds is optional; omit to make the emoji available to everyone.{
"action": "stickerUpload",
"guildId": "999",
"name": "openclaw_wave",
"description": "OpenClaw waving hello",
"tags": "👋",
"mediaUrl": "file:///tmp/wave.png"
}name, description, and tags.{
"action": "poll",
"to": "channel:123",
"question": "Lunch?",
"answers": ["Pizza", "Sushi", "Salad"],
"allowMultiselect": false,
"durationHours": 24,
"content": "Vote now"
}durationHours defaults to 24; max 32 days (768 hours).{
"action": "permissions",
"channelId": "123"
}Use discord.actions.* to disable action groups:
reactions (react + reactions list + emojiList)stickers, polls, permissions, messages, threads, pins, searchemojiUploads, stickerUploadsmemberInfo, roleInfo, channelInfo, voiceStatus, eventsroles (role add/remove, default false)channels (channel/category create/edit/delete/move, default false)moderation (timeout/kick/ban, default false)presence (bot status/activity, default false){
"action": "readMessages",
"channelId": "123",
"limit": 20
}{
"action": "fetchMessage",
"guildId": "999",
"channelId": "123",
"messageId": "456"
}{
"action": "fetchMessage",
"messageLink": "https://discord.com/channels/999/123/456"
}{
"action": "sendMessage",
"to": "channel:123",
"content": "Hello from OpenClaw"
}With media attachment:
{
"action": "sendMessage",
"to": "channel:123",
"content": "Check out this audio!",
"mediaUrl": "file:///tmp/audio.mp3"
}to uses format channel:<id> or user:<id> for DMs (not channelId!)mediaUrl supports local files (file:///path/to/file) and remote URLs (https://...)replyTo with a message ID to reply to a specific message{
"action": "editMessage",
"channelId": "123",
"messageId": "456",
"content": "Fixed typo"
}{
"action": "deleteMessage",
"channelId": "123",
"messageId": "456"
}{
"action": "threadCreate",
"channelId": "123",
"name": "Bug triage",
"messageId": "456"
}{
"action": "threadList",
"guildId": "999"
}{
"action": "threadReply",
"channelId": "777",
"content": "Replying in thread"
}{
"action": "pinMessage",
"channelId": "123",
"messageId": "456"
}{
"action": "listPins",
"channelId": "123"
}{
"action": "searchMessages",
"guildId": "999",
"content": "release notes",
"channelIds": ["123", "456"],
"limit": 10
}{
"action": "memberInfo",
"guildId": "999",
"userId": "111"
}{
"action": "roleInfo",
"guildId": "999"
}{
"action": "emojiList",
"guildId": "999"
}{
"action": "roleAdd",
"guildId": "999",
"userId": "111",
"roleId": "222"
}{
"action": "channelInfo",
"channelId": "123"
}{
"action": "channelList",
"guildId": "999"
}Create, edit, delete, and move channels and categories. Enable via discord.actions.channels: true.
Create a text channel:
{
"action": "channelCreate",
"guildId": "999",
"name": "general-chat",
"type": 0,
"parentId": "888",
"topic": "General discussion"
}type: Discord channel type integer (0 = text, 2 = voice, 4 = category; other values supported)parentId: category ID to nest under (optional)topic, position, nsfw: optionalCreate a category:
{
"action": "categoryCreate",
"guildId": "999",
"name": "Projects"
}Edit a channel:
{
"action": "channelEdit",
"channelId": "123",
"name": "new-name",
"topic": "Updated topic"
}name, topic, position, parentId (null to remove from category), nsfw, rateLimitPerUserMove a channel:
{
"action": "channelMove",
"guildId": "999",
"channelId": "123",
"parentId": "888",
"position": 2
}parentId: target category (null to move to top level)Delete a channel:
{
"action": "channelDelete",
"channelId": "123"
}Edit/delete a category:
{
"action": "categoryEdit",
"categoryId": "888",
"name": "Renamed Category"
}{
"action": "categoryDelete",
"categoryId": "888"
}{
"action": "voiceStatus",
"guildId": "999",
"userId": "111"
}{
"action": "eventList",
"guildId": "999"
}{
"action": "timeout",
"guildId": "999",
"userId": "111",
"durationMinutes": 10
}Set the bot's online status and activity. Enable via discord.actions.presence: true.
Discord bots can only set name, state, type, and url on an activity. Other Activity fields (details, emoji, assets) are accepted by the gateway but silently ignored by Discord for bots.
How fields render by activity type:
activityName is shown in the sidebar under the bot's name (e.g. "with fire" for type "playing" and name "with fire"). activityState is shown in the profile flyout.activityName is ignored. Only activityState is displayed as the status text in the sidebar.activityUrl may be displayed or embedded by the client.Set playing status:
{
"action": "setPresence",
"activityType": "playing",
"activityName": "with fire"
}Result in sidebar: "with fire". Flyout shows: "Playing: with fire"
With state (shown in flyout):
{
"action": "setPresence",
"activityType": "playing",
"activityName": "My Game",
"activityState": "In the lobby"
}Result in sidebar: "My Game". Flyout shows: "Playing: My Game (newline) In the lobby".
Set streaming (optional URL, may not render for bots):
{
"action": "setPresence",
"activityType": "streaming",
"activityName": "Live coding",
"activityUrl": "https://twitch.tv/example"
}Set listening/watching:
{
"action": "setPresence",
"activityType": "listening",
"activityName": "Spotify"
}{
"action": "setPresence",
"activityType": "watching",
"activityName": "the logs"
}Set a custom status (text in sidebar):
{
"action": "setPresence",
"activityType": "custom",
"activityState": "Vibing"
}Result in sidebar: "Vibing". Note: activityName is ignored for custom type.
Set bot status only (no activity/clear status):
{
"action": "setPresence",
"status": "dnd"
}Parameters:
activityType: playing, streaming, listening, watching, competing, customactivityName: text shown in the sidebar for non-custom types (ignored for custom)activityUrl: Twitch or YouTube URL for streaming type (optional; may not render for bots)activityState: for custom this is the status text; for other types it shows in the profile flyoutstatus: online (default), dnd, idle, invisibleKeep it conversational! Discord is a chat platform, not documentation.
| text |)## Headers for casual chat (use bold or CAPS for emphasis)code for technical termsquotes for referencing
<> to suppress embeds❌ Bad:
I'd be happy to help with that! Here's a comprehensive overview of the versioning strategies available:
## Semantic Versioning
Semver uses MAJOR.MINOR.PATCH format where...
## Calendar Versioning
CalVer uses date-based versions like...✅ Good:
versioning options: semver (1.2.3), calver (2026.01.04), or yolo (`latest` forever). what fits your release cadence?© smallnest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in internal/builtin_skills/discord of smallnest/goclaw.
Open the folder on GitHubat commit e05c79d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in smallnest/goclaw, which our catalogue first saw on October 7, 2026.
Discord Actions for OpenClaw next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Discord Actions for OpenClaw this skillsmallnest/goclaw | 598 | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Claude To Imop7418/Claude-to-IM-skill | 2.9k | — | ~3.4k | Automated safety check: Notes | MIT | |
| Openloomi Connectorsmelandlabs/openloomi | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Use Avibeavibe-bot/avibe | 620 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Traul Message Searchdandaka/traul | 113 | — | ~3.9k | Automated safety check: Notes | AGPL-3.0 | |
| Discord App Setupvellum-ai/vellum-assistant | 1.4k | — | ~4.2k | Automated safety check: Pass | MIT |
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
melandlabs/openloomi
openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…
avibe-bot/avibe
Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state.
dandaka/traul
Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.
vellum-ai/vellum-assistant
Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration
daheiai/easy-openclaw
OpenClaw 配置优化向导。采用“第 0 层测试观测(可选)+ 前 3 轮优化 + 第 4 轮接入扩展”流程:基础推荐层(含联网搜索与权限模式)、渠道增强层(Discord/Feishu/Telegram 分支优化)、Skills 推荐层(可执行可跳过)、新增渠道接入引导(可跳过)。用于帮助用户快速完成 OpenClaw 初始化或优化配置。用户说到“优化…
smallnest/goclaw
Scrapes sites, handles JavaScript-heavy pages and extracts structured data with Crawl4AI, through its crwl CLI or Python SDK, including schema-based extraction without an LLM.
smallnest/goclaw
Looks up action manuals with verified selectors for multi-step website tasks, then drives the browser with the actionbook CLI in a dedicated or an existing Chrome session.
smallnest/goclaw
Controls an Android device over ADB in a loop of screenshot, vision analysis, tap and verification, so the agent acts on real on-screen coordinates.
smallnest/goclaw
Upload images to Feishu/Lark. An agent skill from smallnest/goclaw.
smallnest/goclaw
Helps you find, install, update and remove skills in the goclaw agent framework, using the goclaw skills commands and outside skill sources.
Works with
Categories
Reference for OpenClaw's discord tool: sending messages, reactions, stickers, emoji uploads, polls, threads and moderation in Discord channels and DMs. This skill documents the discord tool, which works through the bot token configured for OpenClaw.actions settings; all are enabled by default except roles and moderation.
Discord Actions for OpenClaw fits situations like: posting a message, poll or sticker to a Discord channel or DM from an agent; uploading a custom emoji or sticker to a server; checking the bot's permissions in a channel before acting.
Run `npx skills add smallnest/goclaw --skill discord -a claude-code`. Or copy the skill folder (internal/builtin_skills/discord in smallnest/goclaw) into .claude/skills/discord in your project. Claude Code loads it when a task matches its description.
Run `npx skills add smallnest/goclaw --skill discord -a codex`. Or copy the skill folder (internal/builtin_skills/discord in smallnest/goclaw) into .agents/skills/discord in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add smallnest/goclaw --skill discord -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/discord, .gemini/skills/discord, .github/skills/discord and .opencode/skills/discord in your project.
SKILL.md names no scripts, command-line tools or credentials: Discord Actions for OpenClaw is instructions for the agent only. Our summary lists: An OpenClaw setup with the discord tool; A Discord bot token configured for OpenClaw.
SKILL.md names 2 domains. In commands or code: discord.com and twitch.tv; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Discord Actions for OpenClaw is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Discord Actions for OpenClaw: Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars), Openloomi Connectors (melandlabs/openloomi, 1k stars), Use Avibe (avibe-bot/avibe, 620 stars) and Traul Message Search (dandaka/traul, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
smallnest (a GitHub user) maintains it in smallnest/goclaw, which has 598 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on March 27, 2026.
Source: smallnest/goclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.