Anthropic shipped Claude Code Channels on 2026-03-20 as a research preview that lets external systems push events into a running Claude Code session. ClaudSkills hooks into the official plugins (Telegram, Discord, iMessage) with a single meta-skill so the install command "install fastmcp-server from claudskills" works from any of them.
If you already have Claude Code v2.1.80+ and a personal Telegram bot, this is the whole flow:
# 1. Install Anthropic's official Telegram Channel
/plugin install channel-telegram@anthropics/claude-plugins-official
# 2. Install the ClaudSkills install-skill meta-skill
mkdir -p ~/.claude/skills/claudskills-install
curl -fsSL https://claudskills.com/skills/claudskills-install/SKILL.md \
-o ~/.claude/skills/claudskills-install/SKILL.md
# 3. Restart Claude Code, then from your bot DM:
# "install fastmcp-server from claudskills"
The full setup with pairing and Channel-platform selection is in Setup procedure below.
A Channel is an MCP server that runs locally on the same machine as Claude Code, communicates over stdio (Claude Code spawns it as a subprocess), and pushes events into the running session via the notifications/claude/channel method. The protocol is part of the MCP standard with the Anthropic-specific claude/channel capability declared in the server's constructor.
Anthropic ships four Channels in the research preview:
| Channel | What it does |
|---|---|
| Telegram | Wraps your personal Telegram bot. DMs to the bot land in your Claude Code session as <channel source="telegram" chat_id="…"> tags. |
| Discord | Same shape for a Discord bot. Server messages or DMs forward to Claude Code; Claude can reply back through a reply tool. |
| iMessage | Mac-only. Detects your handle from the Messages database and forwards iMessage threads to Claude Code. No bot setup needed. |
| fakechat | Local demo with a tiny web UI. Useful for testing the Channels protocol without external dependencies. |
All four are open-source and live at anthropics/claude-plugins-official on GitHub.
The natural question for ClaudSkills was whether to ship a custom Channel plugin that listens for install commands and pushes them into Claude Code. We considered this and ruled it out for four reasons:
--dangerously-load-development-channels during the research preview. Users would have to opt in to a non-standard launch flag for every session. The flag bypasses the allowlist that protects against malicious Channel plugins; making it part of the normal install flow felt wrong.claudskills-install skill.So instead, ClaudSkills publishes one open-source skill at claudskills.com/skills/claudskills-install/. It's a normal SKILL.md file with a description that tells Claude when to use it, an allowed-tools declaration that gives it permission to write to ~/.claude/skills/, and a body that walks Claude through the verify-fetch-write procedure.
This walkthrough uses Telegram since it's the most common pick. The Discord and iMessage flows are similar — see the plugin READMEs for platform-specific steps.
claude --version to check)channelsEnabled organization policy. Solo users on the Personal plan have it on by default./newbot — takes about 90 seconds. You'll get a bot token; keep it handy./plugin install channel-telegram@anthropics/claude-plugins-official
Claude Code installs the plugin from the official marketplace and registers its MCP server. Run /plugin docs channel-telegram to see the plugin's docs.
Open the Channel-installed Telegram bot's config (the plugin prompts for it). Paste your bot token from step zero. The plugin starts polling the Telegram API for messages.
To gate access (anyone with your bot's username could DM otherwise), the plugin uses a pairing flow: DM your bot from the device you want to use; the bot replies with a pairing code; approve the code in your Claude Code session by typing it back. Your Telegram user ID is added to the allowlist. Subsequent messages from other senders are dropped silently.
mkdir -p ~/.claude/skills/claudskills-install
curl -fsSL https://claudskills.com/skills/claudskills-install/SKILL.md \
-o ~/.claude/skills/claudskills-install/SKILL.md
Verify the file is at least 200 bytes (smaller is a stub — re-fetch if so) and the frontmatter parses by running head -10 ~/.claude/skills/claudskills-install/SKILL.md.
Skills are discovered at session start. Quit and relaunch your Claude Code session so it picks up the new skill.
DM your bot:
install fastmcp-server from claudskills
You should see your Claude Code session receive the message, recognize the install intent, and run the claudskills-install skill — which fetches the SKILL.md from claudskills.com and writes it to ~/.claude/skills/fastmcp-server/. Confirm with ls ~/.claude/skills/fastmcp-server/ in your terminal.
If your Telegram Channel is configured with a reply tool, Claude DMs you back with the install confirmation.
Telegram (your bot DM)
↓ "install fastmcp-server from claudskills"
Anthropic's Telegram Channel plugin (local subprocess)
↓ MCP notification: method=notifications/claude/channel
Claude Code session
↓ sees the message wrapped as <channel source="telegram" chat_id="…">
Claude (the LLM)
↓ recognizes install intent, finds claudskills-install in ~/.claude/skills/
↓ runs the meta-skill's procedure
↓ curl -fsSL https://claudskills.com/skills/fastmcp-server/SKILL.md
↓ writes to ~/.claude/skills/fastmcp-server/SKILL.md
Skill installed
↓ Claude calls the Telegram Channel's reply tool
↓ which DMs you back: "Installed fastmcp-server"
The architecture only requires:
No custom Channel server, no separate auth flow, no new infrastructure on ClaudSkills' side.
Confirm the meta-skill is installed: cat ~/.claude/skills/claudskills-install/SKILL.md should print the frontmatter. If it's missing or stub-sized, re-fetch with the curl command above.
If the file is present but Claude still doesn't trigger the skill: check that user-invokable: true is in the frontmatter (it is by default), and confirm you've restarted Claude Code since installing the skill. Skills discovered after session start aren't loaded until the next session.
Some Channel configurations don't enable the reply tool. Reply-back is optional — if you only want one-way install commands, this is expected behavior. To enable replies, edit the Channel plugin's config to add the reply tool (the official Telegram plugin includes this; some custom configurations don't).
/plugin installYour organization admin needs to enable Channels via the channelsEnabled policy. See Anthropic's enterprise controls docs.
Skills are discovered at session start. After an install, run /quit and restart Claude Code, or open a fresh terminal session. The auto-discovery doesn't re-scan ~/.claude/skills/ mid-session.
The MAS build of Claude Code runs sandboxed and needs explicit folder access to ~/.claude/skills/. Either grant it the first time it asks (Files & Folders permission prompt), use a non-sandboxed Claude Code build, or use the ClaudSkills desktop app which handles the sandbox prompt explicitly.
claude/channel capability, and emits notifications/claude/channel events when something happens. Official plugins ship for Telegram, Discord, iMessage, and a fakechat demo. Requires Claude Code v2.1.80 or later.claudskills-install meta-skill that fetches any SKILL.md from claudskills.com and writes it to ~/.claude/skills/. Once you install the meta-skill once, any Channel-wired Claude Code session — Telegram, Discord, iMessage — can install ClaudSkills skills via natural language commands.--dangerously-load-development-channels flag during the research preview, since they aren't on Anthropic's allowlist. A meta-skill ships through the normal catalog with no flag, works across every official Channel, and is simpler to evolve.~/.claude/skills/. If install fails with EPERM, use a non-sandboxed Claude Code or the ClaudSkills desktop app which handles sandboxing explicitly.SKILL.md files, not affiliated with, endorsed by, or sponsored by Anthropic.