- Il est possible de pousser des messages externes, des notifications et des webhooks vers une session en cours via un serveur MCP
- Le point clé est de pouvoir envoyer directement des messages à Claude Code depuis Telegram ou Discord sur smartphone pour lui donner des tâches et recevoir les résultats
- La communication bidirectionnelle est prise en charge, ce qui permet à Claude de lire les événements et d’envoyer des réponses sur le même canal, sous la forme d’un pont de chat
- Les événements n’arrivent que tant que la session est ouverte ; pour un fonctionnement permanent, il faut donc exécuter Claude dans un processus en arrière-plan ou un terminal persistant
- Les offres Team/Enterprise sont désactivées par défaut, et un administrateur doit les activer explicitement dans les managed settings
Vue d’ensemble des channels
- Les channels sont des serveurs MCP qui poussent des événements externes vers une session Claude Code, ce qui permet à Claude de réagir à des résultats de CI, des messages de chat ou des événements de monitoring même lorsqu’on n’est pas devant le terminal
- Cas d’usage concret : même loin de son ordinateur, on peut envoyer directement des commandes à Claude Code depuis l’application Telegram ou Discord sur son téléphone, puis recevoir les résultats dans cette même conversation après exécution
- La fonctionnalité est en research preview et nécessite une connexion à
claude.ai ; l’authentification via Console ou clé API n’est pas prise en charge
- Les événements n’arrivent que tant que la session est ouverte ; pour un usage continu, une exécution en arrière-plan ou dans un terminal persistant est nécessaire
Channels pris en charge
- À l’heure actuelle, deux plugins sont officiellement pris en charge : Telegram et Discord ; tous les plugins de channel nécessitent le runtime Bun
- Le flux d’installation est commun :
/plugin install <name>@claude-plugins-official → configuration des identifiants avec la commande / <name>:configure → redémarrage avec claude --channels plugin:<name>@claude-plugins-official
- Pour Telegram, il faut un token de bot généré via BotFather, puis procéder à l’appairage après
/telegram:configure <token>
- Guide de configuration Telegram : README
- Pour Discord, il faut créer un bot avec Message Content Intent activé dans le Developer Portal, puis procéder à l’appairage après
/discord:configure <token>
- Guide de configuration Discord : README
- Il est également possible de construire directement un channel personnalisé pour les systèmes sans plugin
Quickstart - démo fakechat
- fakechat est un channel de démonstration officiellement pris en charge ; il exécute une interface de chat en localhost et ne nécessite ni authentification ni configuration de service externe
- Prérequis : Claude Code doit être installé et authentifié avec un compte
claude.ai, Bun doit être installé, et pour les utilisateurs Team/Enterprise, l’administrateur doit activer les channels
- Étapes d’installation :
- installer le plugin avec
/plugin install fakechat@claude-plugins-official
- quitter Claude Code puis redémarrer avec
claude --channels plugin:fakechat@claude-plugins-official
- ouvrir l’interface fakechat sur
http://localhost:8787 et saisir un message
- Les messages arrivent dans la session Claude Code sous forme d’événements
<channel source="fakechat">, puis Claude exécute la tâche et appelle l’outil reply pour afficher la réponse dans l’interface de chat
- En l’absence du terminal, si une invite d’autorisation apparaît, la session est mise en pause ; pour un fonctionnement sans surveillance, on peut la contourner avec le flag
--dangerously-skip-permissions, mais il est recommandé de ne l’utiliser que dans un environnement de confiance
- Il est possible de passer plusieurs plugins à
--channels séparés par des espaces
Sécurité
- Tous les plugins de channel approuvés maintiennent une liste d’autorisation des expéditeurs (sender allowlist), et les messages provenant d’expéditeurs non enregistrés sont automatiquement ignorés
- Telegram et Discord construisent cette liste via un mécanisme d’appairage : on envoie un DM au bot, qui répond avec un code ; lorsque ce code est approuvé dans la session Claude Code, l’ID est ajouté
- Le simple fait d’être enregistré dans
.mcp.json ne permet pas de pousser des messages ; il faut impérativement aussi être explicitement indiqué dans le flag --channels
- Les serveurs activés sont contrôlés directement par session via
--channels, et dans les offres Team/Enterprise, la disponibilité est gérée à l’échelle de l’organisation via le paramètre channelsEnabled
Contrôle Enterprise
- La fonctionnalité channels est contrôlée par le paramètre
channelsEnabled des managed settings
- Les offres Pro/Max (hors organisation) ont les channels activés par défaut, et l’utilisateur choisit d’y participer session par session via
--channels
- Pour les offres Team/Enterprise, les channels restent désactivés tant qu’un administrateur ne les a pas explicitement activés
- Un administrateur peut les activer via claude.ai → Admin settings → Claude Code → Channels, ou en définissant
channelsEnabled sur true dans les managed settings
- Même lorsqu’ils sont désactivés, la connexion au serveur MCP et l’utilisation des outils restent possibles, mais les messages de channel n’arrivent pas et un avertissement s’affiche au démarrage
Research preview
- La fonctionnalité est actuellement en research preview avec un déploiement progressif, et la syntaxe du flag
--channels ainsi que le contrat de protocole peuvent évoluer selon les retours
- Pendant la période de preview,
--channels n’accepte que les plugins figurant sur une allowlist gérée par Anthropic
- Si un plugin hors allowlist est passé, Claude Code démarre normalement mais le channel n’est pas enregistré, et la raison est affichée dans la notification de démarrage
- Pour tester un channel développé soi-même, utiliser le flag
--dangerously-load-development-channels
- Les problèmes ou retours peuvent être signalés via le dépôt GitHub de Claude Code
Étapes suivantes
- Mise à disposition d’un guide pour construire des channels personnalisés pour les systèmes sans plugin
- Une fonctionnalité Remote Control permettant de piloter une session locale depuis un mobile plutôt que via le transfert d’événements
- Une fonctionnalité Scheduled Tasks effectuant un polling basé sur un minuteur au lieu d’événements push
5 commentaires
« La maison d'à côté a lancé du poulet à l'ail, alors celle d'en face a sorti du garlic chicken. »
Lancement du poulet généreux
Commentaires sur Hacker News
J’ai été surpris que l’intégration Telegram arrive avant Slack ou Teams
En regardant de plus près, Telegram compte 1 milliard d’utilisateurs actifs mensuels, bien plus que Slack (50 millions) ou Teams (300 millions)
Ça m’a rappelé la surprise que j’avais eue en découvrant autrefois que Snapchat avait deux fois plus d’utilisateurs que Twitter
À l’inverse, Telegram est perçu comme un outil utile et moins fatigant
C’est le premier choix qui me vient à l’esprit pour envoyer des notifications du serveur vers le mobile
C’est aussi simple que ntfy.sh, mais sans casser chaque semaine sur iOS
Je ne l’utilise pas pour la messagerie proprement dite, mais comme plateforme de déploiement de bots, c’est parfait
En quelques lignes, on peut implémenter toutes sortes de fonctions : commandes qui agissent comme des boutons, entrée/sortie d’images, etc.
iMessage est fermé, WhatsApp est payant, et Discord comme Slack sont trop lourds
Telegram a une architecture qui traite les bots comme des citoyens de première classe, ce qui le rend vraiment simple à utiliser
Pi dispose déjà de plus de 700 packages tiers, et de nouvelles extensions peuvent même être générées avec une seule ligne de prompt
Ce changement est une bonne nouvelle pour le projet claws
Avant, un changement des conditions d’utilisation d’Anthropic faisait que l’usage de jetons OAuth était en infraction, tandis que l’usage de clés API coûtait cher
Désormais, MCP permet officiellement de connecter différents canaux
Sur le plan architectural, c’est l’inverse de l’ancien claws : Claude Code exécute directement le serveur MCP, ce qui inverse complètement le contrôle
J’ai modifié un fork de nanoclaw pour qu’il s’exécute en PID 1 dans un conteneur Docker, et c’est assez intéressant de pouvoir lire les logs directement depuis le stdout de Claude Code
Claude se dirige vers une architecture centrée sur les sessions en local
Pour l’instant, on peut construire des intégrations en s’appuyant sur les identifiants personnels de l’utilisateur, puis peut-être migrer plus tard vers son propre écosystème
Puisque le réseau interne est déjà verrouillé, il n’y a pas besoin d’une couche de sécurité API externe supplémentaire
Le point pénible, c’est qu’il faut quand même gérer séparément les permissions pour chaque utilisateur
En ce moment, les fonctionnalités autour de Claude Code donnent une impression de sorties trop précipitées, ce qui est déroutant
Je n’aime pas beaucoup Anthropic comme entreprise, mais les modèles Claude eux-mêmes sont vraiment excellents et donnent une impression très humaine
Je me demande si les autres entreprises pourront atteindre ce niveau
Pour l’instant, on est obligé d’utiliser un écosystème fermé, mais j’aimerais qu’ils se concentrent sur les améliorations de fond du modèle
La fonctionnalité « channels » ressemble presque exactement à ce que je faisais au travail en faisant tourner nanoclaw
C’est une structure d’automatisation en boucle qui déclenche Claude Code sur événements, puis récupère retour et analyse
Je ne vois pas pourquoi MCP est nécessaire, mais je vais essayer tout de suite
La limite actuelle reste la dépendance au terminal
Ce serait bien de pouvoir faire tourner Claude Code comme démon en arrière-plan
Ctrl-Zpuis la commandebg, ou garder la session avec tmuxJe m’y connecte avec des clients desktop et mobile pour effectuer des tâches dans le style d’openclaw
La fonction « remote control » de CC est similaire, mais pour l’instant elle est réservée au Mac
Claude a vite rattrapé son retard
Le cœur d’OpenClaw, ce sont les channels, les heartbeats et l’écosystème open source
L’étape suivante sera sans doute un hébergement cloud en exécution continue
Le code lui-même est surconçu et truffé de bugs, ce qui le rend difficile à maintenir
/loopAvec la fonctionnalité channels, j’ai créé agent-http, qui encapsule Claude Code derrière une API HTTP
On peut désormais y accéder en mode headless via la même API, sans passer par du scraping de terminal
Avant, il fallait le SDK Agents et un jeton API, alors que maintenant un simple abonnement suffit
Anthropic donne l’impression de lancer de nouveaux produits expérimentaux chaque semaine
La plupart risquent probablement de disparaître d’ici un an
Un logiciel doté de fonctions distantes finit toujours par introduire un risque d’exploitation comme porte dérobée
Les solutions de sécurité d’entreprise doivent donc être capables de distinguer une instance légitime de Claude Code d’une instance malveillante
Mais si une seule session conserve la conversation pendant longtemps, des problèmes comme le context rot ou le lost-in-the-middle risquent d’apparaître… Est-ce que l’utilisateur devra lancer périodiquement
/clean? Ou bien ils vont ajouter une fonction de mémoire et basculer automatiquement d’une session à l’autre… ?Cela semble être une option un peu plus adaptée aux développeurs que Cowork Dispatch.
On dirait vraiment que ça devient comme OpenClaw maintenant