Channel Manager
clacky-ai/openclacky
Configure IM platform channels (Feishu, WeCom, Weixin, Discord, Telegram, DingTalk) for openclacky.
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.
$ npx skills add op7418/Claude-to-IM-skill --skill claude-to-im -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install op7418/Claude-to-IM-skill claude-to-im --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .claude/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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.
$ npx skills add op7418/Claude-to-IM-skill --skill claude-to-im -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install op7418/Claude-to-IM-skill claude-to-im --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .agents/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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 op7418/Claude-to-IM-skill --skill claude-to-im -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install op7418/Claude-to-IM-skill claude-to-im --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .cursor/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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.
$ npx skills add op7418/Claude-to-IM-skill --skill claude-to-im -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install op7418/Claude-to-IM-skill claude-to-im --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .gemini/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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 op7418/Claude-to-IM-skill claude-to-imInstalls 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 op7418/Claude-to-IM-skill --skill claude-to-im -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .github/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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 op7418/Claude-to-IM-skill --skill claude-to-im -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install op7418/Claude-to-IM-skill claude-to-im --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "claude-to-im" agent skill from https://github.com/op7418/Claude-to-IM-skill/tree/main into .opencode/skills/claude-to-im/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-to-im", 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.
claude-to-imBridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
Claude To Im is an agent skill from 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. Use for: setting up, starting, stopping, or diagnosing the claude-to-im bridge daemon; forwarding Claude replies to a messaging app; any phrase like "claude-to-im", "bridge", "消息推送", "消息转发", "桥接", "连上飞书", "手机上看claude", "启动后台服务", "诊断", "查看日志", "配置". Subcommands: setup, start, stop, status, logs, reconfigure, doctor. Do NOT use for: building standalone bots, webhook…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 58 other files, including scripts and reference files (for example `CLAUDE.md`, `README.md` and `README_CN.md`).
It sits in Productivity & Automation, covering Messaging and chat bots. It works with Telegram, Feishu (Lark), Discord and WeChat. The repository describes itself as: Bridge Claude Code / Codex to IM platforms — chat with AI coding agents from Telegram, Discord, or Feishu/Lark. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 536908f. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditAskUserQuestionGrepGlobFrom allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (JavaScript, PowerShell and Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npmbashcodexFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
open.feishu.cnq.qq.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude To Im loads about 3.4k tokens when it runs, and up to ~8.3k if it reads all its reference files. Until then it costs about 151 tokens; SKILL.md has 1,774 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, AskUserQuestion, Grep, GlobAutomated 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); the scripts in this folder are not scanned.
The full file from op7418/Claude-to-IM-skill at commit 536908f, republished under its MIT licence (© op7418). 1,774 words, ~3,432 tokens.
.claude/skills/claude-to-im/SKILL.md (or your agent's skills folder). This skill also uses 55 other files; get the full folder from GitHub.You are managing the Claude-to-IM bridge.
User data is stored at ~/.claude-to-im/.
The skill directory (SKILL_DIR) is at ~/.claude/skills/claude-to-im.
In Codex installs it may instead be ~/.codex/skills/Claude-to-IM-skill.
If neither path exists, fall back to Glob with pattern **/skills/**/claude-to-im/SKILL.md or **/skills/**/Claude-to-IM-skill/SKILL.md and derive the root from the result.
Parse the user's intent from $ARGUMENTS into one of these subcommands:
| User says (examples) | Subcommand |
|---|---|
setup, configure, 配置, 我想在飞书上用 Claude, 帮我连接 Telegram, 帮我接微信 | setup |
start, start bridge, 启动, 启动桥接 | start |
stop, stop bridge, 停止, 停止桥接 | stop |
status, bridge status, 状态, 运行状态, 怎么看桥接的运行状态 | status |
logs, logs 200, 查看日志, 查看日志 200 | logs |
reconfigure, 修改配置, 帮我改一下 token, 换个 bot | reconfigure |
doctor, diagnose, 诊断, 挂了, 没反应了, bot 没反应, 出问题了 | doctor |
Disambiguation: status vs doctor — Use status when the user just wants to check if the bridge is running (informational). Use doctor when the user reports a problem or suspects something is broken (diagnostic). When in doubt and the user describes a symptom (e.g., "没反应了", "挂了"), prefer doctor.
Extract optional numeric argument for logs (default 50).
Before asking users for any platform credentials, read SKILL_DIR/references/setup-guides.md internally so you know where to find each credential. Do NOT dump the full guide to the user upfront — only mention the specific next step they need to do (e.g., "Go to https://open.feishu.cn → your app → Credentials to find the App ID"). If the user says they don't know how, then show the relevant section of the guide.
Before executing any subcommand, detect which environment you are running in:
AskUserQuestion tool is available. Use it for interactive setup wizards.AskUserQuestion is NOT available. Fall back to non-interactive guidance: explain the steps, show SKILL_DIR/config.env.example, and ask the user to create ~/.claude-to-im/config.env manually.You can test this by checking if AskUserQuestion is in your available tools list.
start, stop, status, logs, reconfigure, doctor)Before running any subcommand other than setup, check if ~/.claude-to-im/config.env exists:
setup wizard using AskUserQuestion.~/.claude-to-im/config.env based on the example:" then show the contents of SKILL_DIR/config.env.example and stop. Don't attempt to start the daemon — without config.env the process will crash on startup and leave behind a stale PID file that blocks future starts.setupRun an interactive setup wizard. This subcommand requires AskUserQuestion. If it is not available (Codex environment), instead show the contents of SKILL_DIR/config.env.example with field-by-field explanations and instruct the user to create the config file manually.
When AskUserQuestion IS available, collect input one field at a time. After each answer, confirm the value back to the user (masking secrets to last 4 chars only) before moving to the next question.
Step 1 — Choose channels
Ask which channels to enable (telegram, discord, feishu, qq, weixin). Accept comma-separated input. Briefly describe each:
/perm ... commands./perm ... commands or quick 1/2/3 replies. Voice messages only use WeChat's own speech-to-text text; raw voice audio is not transcribed by the bridge.Step 2 — Collect tokens per channel
For each enabled channel, collect one credential at a time. Tell the user where to find each value in one sentence. Only show the full guide section (from SKILL_DIR/references/setup-guides.md) if the user asks for help or says they don't know how:
/claude-to-im start, (E) configure events (im.message.receive_v1) and callback (card.action.trigger) with long connection mode, (F) publish second version + admin approve.user_openid, NOT QQ number. If the user doesn't have openid yet, they can leave it empty.cd SKILL_DIR && npm run weixin:login~/.claude-to-im/runtime/weixin-login.html and tries to open it automatically in the local browser.~/.claude-to-im/data/weixin-accounts.json. Running the helper again replaces the previously linked account.CTI_WEIXIN_MEDIA_ENABLED only controls inbound image/file/video downloads. For voice messages, the bridge only accepts the text returned by WeChat's built-in speech-to-text. If WeChat does not provide a transcript, the bridge replies with an error instead of downloading/transcribing raw audio.Step 3 — General settings
Ask for runtime, default working directory, model, and mode:
claude (default), codex, autoclaude — uses Claude Code CLI + Claude Agent SDK (requires claude CLI installed)codex — uses OpenAI Codex SDK (requires codex CLI; auth via codex auth login or OPENAI_API_KEY)auto — tries Claude first, falls back to Codex if Claude CLI not found$CWDcode (default), plan, askStep 4 — Write config and validate
mkdir -p ~/.claude-to-im/{data,logs,runtime,data/messages}~/.claude-to-im/config.env with all settings in KEY=VALUE formatchmod 600 ~/.claude-to-im/config.envSKILL_DIR/references/token-validation.md for the exact commands and expected responses for each platform. This catches typos and wrong credentials before the user tries to start the daemon. For Weixin, a successful QR login already counts as validation./claude-to-im start to start the bridge."startPre-check: Verify ~/.claude-to-im/config.env exists (see "Config check" above). Without it, the daemon will crash immediately and leave a stale PID file.
Run: bash "SKILL_DIR/scripts/daemon.sh" start
Show the output to the user. If it fails, tell the user:
doctor to diagnose: /claude-to-im doctor/claude-to-im logsstopRun: bash "SKILL_DIR/scripts/daemon.sh" stop
statusRun: bash "SKILL_DIR/scripts/daemon.sh" status
logsExtract optional line count N from arguments (default 50).
Run: bash "SKILL_DIR/scripts/daemon.sh" logs N
reconfigure~/.claude-to-im/config.envSKILL_DIR/references/setup-guides.md if they ask for help/claude-to-im stop then /claude-to-im start to apply the changes."If the user wants to switch Weixin accounts during reconfigure, run cd SKILL_DIR && npm run weixin:login again. Each successful scan replaces the previously linked local account.
doctorRun: bash "SKILL_DIR/scripts/doctor.sh"
Show results and suggest fixes for any failures. Common fixes:
cd SKILL_DIR && npm installcd SKILL_DIR && npm run buildsetupcd SKILL_DIR && npm run weixin:loginFor more complex issues (messages not received, permission timeouts, high memory, stale PID files), read SKILL_DIR/references/troubleshooting.md for detailed diagnosis steps.
Feishu upgrade note: If the user upgraded from an older version of this skill and Feishu is returning permission errors (e.g. streaming cards not working, typing indicators failing, permission buttons unresponsive), the root cause is almost certainly missing permissions or callbacks in the Feishu backend. Refer the user to the "Upgrading from a previous version" section in SKILL_DIR/references/setup-guides.md — they need to add new scopes (cardkit:card:write, cardkit:card:read, im:message:update, im:message.reactions:read, im:message.reactions:write_only), add the card.action.trigger callback, and re-publish the app. The upgrade requires two publish cycles because adding the callback needs an active WebSocket connection (bridge must be running).
~/.claude-to-im/config.env — survives across sessions.© op7418, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 55 other files (scripts, references) in the repository root of op7418/Claude-to-IM-skill.
Open the folder on GitHubat commit 536908f
Claude To Im 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 |
|---|---|---|---|---|---|---|
| Claude To Im this skillop7418/Claude-to-IM-skill | 2.9k | — | ~3.4k | Automated safety check: Notes | MIT | |
| Channel Managerclacky-ai/openclacky | 1.2k | — | ~6.1k | Automated safety check: Notes | MIT | |
| Channel Manageropen-octo/octo-agent | 125 | — | ~6.2k | Automated safety check: Pass | MIT | |
| Use Avibeavibe-bot/avibe | 622 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Easy Openclawdaheiai/easy-openclaw | 112 | — | ~1.7k | Automated safety check: Notes | None | |
| Message Push0xranx/golembot | 322 | — | ~984 | Automated safety check: Pass | MIT |
clacky-ai/openclacky
Configure IM platform channels (Feishu, WeCom, Weixin, Discord, Telegram, DingTalk) for openclacky.
open-octo/octo-agent
Configure IM platform channels (Feishu, Weixin/WeChat, WeCom, DingTalk, Discord, Telegram) for octo.
avibe-bot/avibe
Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state.
daheiai/easy-openclaw
OpenClaw 配置优化向导。采用“第 0 层测试观测(可选)+ 前 3 轮优化 + 第 4 轮接入扩展”流程:基础推荐层(含联网搜索与权限模式)、渠道增强层(Discord/Feishu/Telegram 分支优化)、Skills 推荐层(可执行可跳过)、新增渠道接入引导(可跳过)。用于帮助用户快速完成 OpenClaw 初始化或优化配置。用户说到“优化…
0xranx/golembot
Send proactive messages to IM groups or individual users via the gateway Send API.
nexu-io/nexu
Send feedback to the Nexu team. An agent skill from nexu-io/nexu.
Works with
Categories
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. Claude To Im is an agent skill from 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.
Claude To Im fits situations like: diagnosing the claude-to-im bridge daemon; forwarding Claude replies to a messaging app; any phrase like claude-to-im; : building standalone bots.
Run `npx skills add op7418/Claude-to-IM-skill --skill claude-to-im -a claude-code`. Or copy the skill folder (the op7418/Claude-to-IM-skill repository) into .claude/skills/claude-to-im in your project. Claude Code loads it when a task matches its description.
Run `npx skills add op7418/Claude-to-IM-skill --skill claude-to-im -a codex`. Or copy the skill folder (the op7418/Claude-to-IM-skill repository) into .agents/skills/claude-to-im 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 op7418/Claude-to-IM-skill --skill claude-to-im -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-to-im, .gemini/skills/claude-to-im, .github/skills/claude-to-im and .opencode/skills/claude-to-im in your project.
Going by SKILL.md and its folder, Claude To Im needs JavaScript, PowerShell and a shell for the scripts in its folder, the command-line tools its instructions call (npm, bash and codex) and credentials named OPENAI_API_KEY. Our summary lists: Node.js; A Bash shell; PowerShell; A credential in OPENAI_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, AskUserQuestion, Grep, Glob.
SKILL.md names 2 domains. As links in the text: open.feishu.cn and q.qq.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Claude To Im is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Claude To Im: Channel Manager (clacky-ai/openclacky, 1.2k stars), Channel Manager (open-octo/octo-agent, 125 stars), Use Avibe (avibe-bot/avibe, 622 stars) and Easy Openclaw (daheiai/easy-openclaw, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
op7418 (a GitHub user) maintains it in op7418/Claude-to-IM-skill, which has 2,888 GitHub stars. The repository was last updated on March 23, 2026.
Source: op7418/Claude-to-IM-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.