
Claude To Im
Run the claude-to-im bridge so Claude Code or Codex sessions reply on Telegram, Discord, Feishu, QQ, or WeChat while you are away from your desk.
Overview
Claude-to-IM is an agent skill most often used in Build (also Operate) that sets up and runs a daemon bridging Claude Code or Codex to Telegram, Discord, Feishu, QQ, or WeChat for mobile session chat.
Install
npx skills add https://github.com/op7418/claude-to-im-skill --skill claude-to-imWhat is this skill?
- Subcommands: setup, start, stop, status, logs, reconfigure, doctor
- Supports Telegram, Discord, Feishu/Lark, QQ, and WeChat forwarding from Claude Code or Codex
- User state and config live at ~/.claude-to-im with skill assets under ~/.claude/skills or ~/.codex/skills
- Parses natural language intents in English and Chinese (桥接, 消息推送, 诊断, 查看日志)
- Explicitly not for building standalone bots or greenfield IM SDK integrations—that stays normal app code
- 5 IM targets: Telegram, Discord, Feishu/Lark, QQ, WeChat
Adoption & trust: 6.4k installs on skills.sh; 2.7k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are heads-down in a local agent session but need to read and reply from your phone without rebuilding a custom messaging bot.
Who is it for?
Solo developers who already use Claude Code or Codex locally and want Telegram, Discord, Feishu, QQ, or WeChat as a remote control pane.
Skip if: Greenfield bot products, webhook servers, or SDK-heavy IM features—those are regular programming tasks outside this bridge skill.
When should I use this skill?
User mentions claude-to-im, bridge, 消息推送, 桥接, mobile Claude, or wants setup/start/stop/status/logs/reconfigure/doctor for the IM bridge.
What do I get? / Deliverables
The bridge daemon is configured, running, and forwarding Claude replies to your chosen IM channel—with logs and doctor output when something breaks.
- Running or stopped bridge daemon with persisted config
- Status, log excerpts, or doctor diagnostic summary in chat
Recommended Skills
Journey fit
Canonical shelf is Build because installing and operating the bridge is part of wiring your local agent dev environment, not Idea research or Launch SEO. Agent-tooling fits: it extends how you interact with the same coding session from mobile IM apps via a managed daemon and config under ~/.claude-to-im.
How it compares
Use for operating the claude-to-im bridge daemon, not for authoring standalone chatbot backends.
Common Questions / FAQ
Who is claude-to-im for?
Indie builders on Claude Code or Codex who want their active coding session reachable from mobile IM apps without writing a new integration from scratch.
When should I use claude-to-im?
During Build/agent-tooling when wiring mobile access; during Operate/support when restarting the daemon or reading logs; whenever you say setup, start, status, doctor, 桥接, or 消息推送 for this bridge.
Is claude-to-im safe to install?
Check the Security Audits panel on this page; the skill uses shell and filesystem access under your home directory and connects to external messaging networks—review tokens, channel IDs, and logs before sharing machines.
SKILL.md
READMESKILL.md - Claude To Im
# Claude-to-IM Bridge Skill 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. ## Command parsing 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. ## Runtime detection Before executing any subcommand, detect which environment you are running in: 1. **Claude Code** — `AskUserQuestion` tool is available. Use it for interactive setup wizards. 2. **Codex / other** — `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. ## Config check (applies to `start`, `stop`, `status`, `logs`, `reconfigure`, `doctor`) Before running any subcommand other than `setup`, check if `~/.claude-to-im/config.env` exists: - **If it does NOT exist:** - In Claude Code: tell the user "No configuration found" and automatically start the `setup` wizard using AskUserQuestion. - In Codex: tell the user "No configuration found. Please create `~/.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. - **If it exists:** proceed with the requested subcommand. ## Subcommands ### `setup` Run an interactive setup wizard. This subcommand requires `AskUserQuestion`. If it is not available (Codex envi