Cursus
Imaginez : vous êtes dans un train. Votre ordinateur resté à la maison mouline sur un refactoring de 30 minutes. Votre téléphone vibre : Telegram affiche un résumé envoyé par votre propre bot Claude Code. Les tests passent, voici ce qui a changé, voici ce qui a cassé. Vous tapez la prochaine instruction, verrouillez le téléphone et reprenez votre lecture.
Deux fonctionnalités de Claude Code rendent cette boucle possible. Auto Mode supprime les demandes d’approbation qui freineraient autrement la session. Les Channels transfèrent les messages de Telegram, Discord ou iMessage dans la session en direct comme si vous les aviez saisis vous-même.
Ce tutoriel explique pas à pas comment tout configurer depuis zéro et exécuter une boucle écriture‑test‑débogage depuis votre téléphone.
Si vous débutez avec les LLM d’Anthropic, nous vous recommandons de commencer par notre cours Introduction to Claude Models.
Prérequis
Pour suivre ce tutoriel, vous aurez besoin :
- de Claude Code v2.1.83 ou ultérieure (Auto Mode nécessite la v2.1.83, Channels la v2.1.80)
- du runtime Bun installé (prérequis pour tous les plugins Channels ; Node et Deno ne fonctionnent pas)
- d’un abonnement Claude en offre Max, Team ou Enterprise, ou d’un accès API. Auto Mode n’est pas disponible avec Pro, aucun add-on ne l’active (et il n’est pas accessible via du hors-forfait non plus)
- d’un compte Telegram sur votre téléphone
- de Python 3.10 ou ultérieur sur la machine hôte
- d’une machine qui peut rester éveillée pendant votre absence (capot d’ordinateur portable ouvert, PC de bureau allumé, ou serveur)
Qu’est-ce que l’Auto Mode de Claude Code (et pourquoi l’associer aux Channels) ?
Claude Code demande votre approbation avant toute action qui sort du projet. Les données d’Anthropic montrent que les utilisateurs approuvent 93 % de ces demandes de toute façon. À ce niveau, ces invites ajoutent de la friction sans améliorer la sécurité.
Auto Mode remplace ce schéma par un classifieur. Chaque appel d’outil est envoyé à un modèle Claude distinct (Sonnet 4.6) qui examine l’action et l’autorise ou la bloque. Les longues exécutions sans surveillance cessent de s’arrêter pour approbation toutes les trente secondes.
Le classifieur fonctionne sur un modèle différent de celui qui écrit le code. Un modèle principal détourné ne peut pas l’induire en erreur pour faire passer un mauvais appel. Une sonde séparée analyse les sorties d’outils (contenus de fichiers, récupérations web, stdout du shell) pour détecter les tentatives d’injection d’invite avant qu’elles n’atteignent le contexte de Claude.

Tous les appels d’outils ne passent pas par le classifieur. Les lectures, recherches textuelles, navigations dans le code et modifications de fichiers au sein du répertoire projet suivent une voie rapide sans examen. Les commandes shell, récupérations web, tout accès à un fichier hors du projet et tout lancement de sous-agent passent par le classifieur.

Anthropic a publié les chiffres dans l’annonce d’Auto Mode. Sur 10 000 appels réels, le pipeline a produit 0,4 % de faux positifs. Sur 52 actions trop ambitieuses sélectionnées, le taux de faux négatifs était de 17 %. Remplacer --dangerously-skip-permissions par Auto Mode est un gain évident. Remplacer une revue humaine soignée ne l’est pas : le classifieur en manque une sur six.
Lorsque le classifieur bloque un appel, Claude reçoit le refus comme résultat d’outil. Claude doit alors chercher une alternative plus sûre, pas contourner le blocage. Après trois blocages consécutifs ou vingt au total, Auto Mode vous rend la main. Les exécutions sans interface claude -p se terminent.
Auto Mode vs bypassPermissions
J’ai commencé à utiliser Auto Mode en m’attendant à une version plus intelligente de bypassPermissions. Mon reproche avec bypass : tout passait, y compris la lecture des fichiers .env, les éditions de configs, etc.
Auto Mode corrige cela. Les opérations sur des fichiers sensibles et les suppressions explicites sont refusées par défaut. Pour passer outre, il faut nommer le fichier dans l’invite, ce qui autorise le classifieur à valider l’édition. C’est mieux que bypass, qui ne vérifiait rien.
Autre surprise : Auto Mode est un mode de prise de décision, pas seulement d’autorisations. J’avais l’habitude d’enchaîner des compétences Claude Code à la suite, un pipeline pour implémenter ou déboguer une fonctionnalité. Avec bypassPermissions, Claude s’arrêtait entre les étapes et demandait la permission d’avancer.
J’aimais ce rythme : la pause était mon moment de revue ou de feu vert. En Auto Mode, Claude décide seul s’il a assez de contexte pour passer à l’étape suivante. Les points de contrôle que j’utilisais ont disparu. Vous apprécierez soit la vitesse, soit vous regretterez les pauses avec validation humaine.
Autre écart surprenant, mais dans l’autre sens : sous bypassPermissions, si je demandais à Claude de modifier sa propre config ou ses compétences, il refusait et me demandait quand même. En Auto Mode, Claude a plus de liberté ici : les fichiers de compétences, les réglages .claude/ et sa configuration sont modifiables sans demander. Utile pour des skills auto-entretenues, mais risqué si vous voulez que Claude ne touche pas à sa config.
Auto Mode vs autres modes d’autorisations
Quatre modes sont fournis avec Claude Code, sur un spectre entre « tout approuver » et « ne rien approuver ». Le tableau ci-dessous en donne le résumé. La documentation officielle propose la version détaillée.
|
Mode |
Ce qui s’exécute sans demander |
Idéal pour |
Profil de risque |
|
|
Lectures uniquement |
Travaux sensibles, revue de chaque action |
Le plus faible. Chaque écriture, shell et réseau déclenchent une invite |
|
|
Lectures, éditions de fichiers, commandes système courantes (mkdir, mv, cp) |
Itérer sur du code que vous relisez a posteriori |
Faible. Shell et réseau demandent toujours |
|
Lectures uniquement ; Claude propose un plan mais n’exécute rien |
Explorer une base de code, valider les changements avant toute écriture |
Le plus faible. Rien ne s’exécute sans changer de mode |
|
|
|
Tout, avec vérifications en arrière-plan par classifieur |
Tâches longues, travail à distance et asynchrone, réduction de la fatigue d’invites |
Modéré. 0,4 % de faux positifs, 17 % de faux négatifs sur actions trop ambitieuses |
|
|
Uniquement les outils pré-approuvés via permissions.allow ; tout le reste est refusé automatiquement |
Pipelines CI verrouillés et scripts automatisés où l’ensemble d’outils autorisé est connu à l’avance |
Faible, mais des allowlists mal configurées peuvent bloquer en silence des opérations légitimes |
|
|
Tout sauf les chemins protégés |
Uniquement dans des conteneurs ou VM isolés |
Le plus élevé. Pas de classifieur, aucun filet de sécurité |
Ma recommandation : utilisez default pour les dépôts sensibles où chaque écriture doit être revue, auto pour vos propres projets, et bypassPermissions uniquement dans un conteneur jetable avec un rayon d’impact contenu.
Comment les channels complètent l’ensemble
Les channels Claude Code sont des serveurs MCP qui envoient des événements dans votre session en cours. Nous utiliserons le plugin Telegram, et les plugins Discord et iMessage fonctionnent de la même manière. Vous envoyez un DM au bot, le plugin transfère le message dans la session, et Claude travaille sur vos fichiers locaux. Une réponse revient via le bot en fin de tour.
Claude ne vous envoie un message qu’à la fin du tour. Pas de streaming en cours de tour, pas d’aperçu en direct de ce que Claude fait sur l’hôte. Quoi que Claude exécute pendant le tour, c’est exécuté. Vous le découvrez quand le résumé arrive. C’est pourquoi le mode d’autorisations compte davantage via un channel qu’au terminal.
Les channels peuvent acheminer des demandes d’autorisation vers le téléphone en mode default ou acceptEdits. Vous répondez yes ou no depuis Telegram. Pour quelques demandes, ça passe. Sur une vraie boucle build‑test‑debug, il y en a des dizaines : valider chacune devient vite pénible.
L’extrême opposé est pire. --dangerously-skip-permissions supprime les invites, mais via un channel, vous perdez la vue en direct des appels d’outils du terminal. Rien ne vous avertit qu’une commande risquée vient de tourner. Au terminal, bypass permet au moins de suivre le flux et d’appuyer sur Esc. Sur Telegram, vous tapez une invite et n’apprenez le résultat qu’à la fin du tour.
Auto Mode se situe entre les deux. Pas de spam d’invites. Le classifieur bloque seul les actions manifestement dangereuses. Le message de fin de tour vous donne un compte rendu révisable de ce qui a tourné. Pour le travail à distance, c’est le bon compromis.
Le projet de démonstration
J’ai conçu une petite démo appelée libcache. C’est un CLI Python qui récupère des métadonnées de livres via l’API OpenLibrary et met en cache les réponses sous ~/.cache/libcache/.
La pile est volontairement classique : uv gère les dépendances, typer pilote le CLI, httpx effectue les requêtes HTTP, et pytest exécute les tests.
Trois points importants pour libcache :
-
Plusieurs fichiers : une construction from scratch en mode
defaultmultiplierait les demandes d’autorisation. -
Une frontière HTTP, donnant un vrai cas au classifieur.
-
Assez rapide pour que tout l’échafaudage tienne en un seul tour Telegram.
Configuration d’Auto Mode et des Channels Telegram
Trois éléments, dans l’ordre : machine hôte éveillée, plugin appairé, Auto Mode actif. Si l’un des trois échoue, le reste ne fonctionnera pas.
Préparer la machine hôte
Claude Code est un processus local. Quand la machine se met en veille, le processus ne reçoit plus d’événements. Le plugin Telegram n’a plus où livrer vos messages. Les événements n’arrivent que lorsque la session est ouverte.
Sur macOS, ouvrez un terminal séparé et lancez :
caffeinate -d
L’option -d empêche l’écran de se mettre en veille. Sur Linux, vous pouvez masquer les cibles de veille :
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Réversible avec unmask.
Pour tout ce qui dépasse un après-midi, exécutez la session dans tmux. Il maintient votre shell actif malgré les fenêtres fermées ou les déconnexions SSH. Lancez une nouvelle session :
tmux new -s claude
Démarrez Claude à l’intérieur, détachez avec Ctrl+B puis D, et rattachez plus tard :
tmux attach -t claude
Encore un point avant de lancer. Tout outil CLI que Claude pourrait appeler depuis Telegram doit d’avance être authentifié sur l’hôte. Les connexions interactives ne peuvent pas s’effectuer depuis le téléphone. Vérifiez gh, le CLI GitHub que nous utiliserons aujourd’hui :
gh auth status
S’il n’est pas authentifié, lancez gh auth login et terminez le flux navigateur. Faites de même pour tout autre CLI que vous souhaitez que Claude atteigne (aws, gcloud, docker, registres de packages) selon vos projets.
Installer et configurer le plugin Telegram
Installez Bun si ce n’est pas déjà fait. Sur macOS ou Linux :
curl -fsSL https://bun.sh/install | bash
Sur Windows :
powershell -c "irm bun.sh/install.ps1 | iex"
Vérifiez l’installation :
bun --version
Créez ensuite le bot Telegram.
Ouvrez BotFather dans Telegram, envoyez /newbot, choisissez un nom d’affichage et un nom d’utilisateur se terminant par bot (par exemple libcache_dev_bot). Copiez le jeton renvoyé par BotFather.

De retour dans une session Claude Code, installez le plugin :
/plugin install telegram@claude-plugins-official
Si Claude Code indique que la marketplace ne le propose pas, ajoutez-le à la main puis réessayez :
/plugin marketplace add anthropics/claude-plugins-official
Une fois l’installation terminée, rechargez les plugins pour faire apparaître les outils Telegram :
/reload-plugins
Configurez le bot avec le jeton de BotFather :
/telegram:configure <your_bot_token_here>
Le jeton est écrit dans ~/.claude/channels/telegram/.env.

Après /telegram:configure, quittez complètement Claude Code (appuyez sur Ctrl+D ou saisissez /exit) et relancez. /reload-plugins n’est pas toujours fiable pour afficher le code d’appairage au premier DM.
Relancez la session, ouvrez le bot dans Telegram et envoyez /start. Le bot répond avec un code d’appairage à 6 caractères.

De retour dans Claude Code, associez avec le code :
/telegram:access pair <code>
L’appairage est symétrique. Les deux côtés doivent accepter avant que la session ne prenne les messages.

Dernère étape. Verrouillez le bot sur votre seul compte :
/telegram:access policy allowlist
Toute personne hors allowlist qui envoie un DM au bot est ignorée, sans code d’appairage.

Lancement avec Auto Mode et Channels activés
Depuis un répertoire de projet, lancez Claude avec les deux indicateurs :
claude --channels plugin:telegram@claude-plugins-official --permission-mode auto
Une session existante peut passer en Auto Mode à la volée : appuyez plusieurs fois sur Shift+Tab jusqu’à voir auto dans la barre d’état. Pour faire d’Auto Mode le mode par défaut à chaque lancement, ajoutez ceci à ~/.claude/settings.json :
{ "permissions": { "defaultMode": "auto" } }

En entrant en Auto Mode, Claude Code ignore les règles d’autorisation trop larges de settings.json. Les autorisations globales Bash(*), les interpréteurs génériques comme Bash(python*) et les autorisations globales Agent sont supprimées à l’entrée et restaurées à la sortie. Les règles précises comme Bash(pytest) restent inchangées.
Vérifiez la configuration. Envoyez n’importe quel message au bot et attendez une réponse. Demandez ensuite à Claude d’écrire un petit fichier dans le projet et constatez qu’il arrive sans invite. Si les deux fonctionnent, tout est prêt.
Auto Mode et Channels en action
Voyons comment lancer tout cela concrètement depuis Telegram.
Une invite, de nombreux appels d’outils, zéro approbation
Envoyez une première invite depuis Telegram. L’important, c’est le type de tâche : une tâche qui, en mode default, générerait une douzaine d’invites d’approbation. Pour libcache, l’invite ressemblait à :
Create a Python CLI that fetches book metadata from OpenLibrary and caches it to disk, use uv for deps, typer for the CLI, httpx for requests, pytest for tests, scaffold the directory and add a README, and when you're done, summarize what you built in under 80 words.
La terminaison « summarize in under 80 words » est une petite habitude liée aux channels. Les réponses de fin de tour arrivent sur le téléphone, et ce n’est pas l’endroit idéal pour lire de longs extraits.
Le plugin transmet le message du téléphone à la session en cours sur l’hôte. Il arrive dans le terminal sous forme de bannière ← telegram · <sender>: ....

Les écritures de fichiers dans le projet suivent la voie rapide et évitent le classifieur. Les installations de dépendances, le premier pytest et le final git init passent par le classifieur et sont autorisés par défaut. Rien ne s’interrompt et le tour s’exécute d’une traite.

Sur le téléphone, le résumé est le seul signal de retour pendant le tour.

Taper de longues invites sur un téléphone est fastidieux. La dictée vocale fait l’affaire, et des invites concises et déclaratives suffisent. « Scaffold libcache, OpenLibrary + cache disque, moins de 80 mots » suffit.
La boucle d’itération : demander, exécuter, répondre, recommencer
Chaque relance suit la même boucle. Un message depuis Telegram, un tour de travail, un résumé en retour. Le résumé est le point de vue de Claude, pas l’état réel. Demandez à Claude d’exécuter les tests et de coller la sortie brute :
uv run pytest -v
Demandez-lui de faire un cat d’un fichier précis. Demandez des tailles de fichiers, des comptes de lignes, ou l’historique récent des commits :
git log --oneline
Auto Mode exécute les appels de vérification par les mêmes voies rapides que le reste. Le coût de la demande est faible. Le résultat est une affirmation que vous pouvez vérifier depuis l’écran verrouillé, sans retourner à l’ordinateur.

Un tour de plus pour prouver que la boucle atteint des systèmes externes réels. Depuis le téléphone :
push libcache to a new public GitHub repo called libcache, clean commit, decent message, send me the URL when it's up.
Claude utilise le CLI gh authentifié plus tôt et répond avec l’URL du dépôt.

Quand Auto Mode fonctionne, la boucle est fluide et discrète. La section suivante couvre les cas où il résiste.
Quand Auto Mode fait barrage
Auto Mode vous interrompt de deux manières.
Le classifieur bloque strictement un petit ensemble de schémas :
-
les pipes
curl | bash -
les force-push sur
main -
les suppressions massives de stockages cloud.
Plus fréquent et plus doux, Claude lui-même marque une pause sur les actions reconnues comme irréversibles. Dans les deux cas, c’est identique sur le téléphone : pas de bandeau rouge ni de modale, juste du texte normal. Claude nomme l’action, liste les commandes et vous demande une phrase de confirmation précise avant de continuer.
Une demande destructrice du type « supprime le projet, détruis aussi le dépôt GitHub » déclenche cette pause d’irréversibilité. La réponse détaille les commandes et propose des alternatives plus sûres : archiver, local uniquement ou distant uniquement. Elle attend une phrase choisie par Claude, pas un oui/non.

La même capture montre un effet de bord : en cours de suppression, Claude a rencontré une portée manquante sur le CLI gh (le jeton n’avait pas delete_repo). Plutôt que de finir à moitié, Claude a mis en pause et m’a demandé d’exécuter une commande interactive au terminal :
gh auth refresh -h github.com -s delete_repo
Auto Mode ne peut pas piloter des flux d’authentification navigateur, et Claude n’a pas cherché à contourner la portée manquante.
L’historique de session n’équivaut pas à un consentement implicite. Même pour un dépôt que Claude a lui-même créé un quart d’heure plus tôt, la suppression déclenche toujours la pause. Les mêmes limites de 3 blocages consécutifs / 20 au total s’appliquent. Empilées, ces interruptions rendent la main à l’humain.
Deux bugs connus à surveiller : les messages ne sont parfois pas livrés quand Claude Code est inactif au prompt REPL (issue #48404). Après une réponse, le plugin cesse parfois de transférer de nouveaux messages jusqu’à être stimulé (issue #36477). Les contournements : garder un tour en cours ou redémarrer la session. Pas encore de correctif.
Ajuster les règles de sécurité d’Auto Mode
Pour la plupart des travaux sur votre propre codebase, les valeurs par défaut d’Auto Mode suffisent. Si vous souhaitez durcir certains chemins ou en assouplir d’autres, commencez par lire la configuration prévue par Anthropic :
claude auto-mode defaults
Cela affiche en JSON les règles d’autorisation et de blocage intégrées. Cette structure est faite pour être étendue, pas remplacée : partez de ce socle plutôt que de repartir de zéro. Chaque règle supprimée force le classifieur à décider, et chaque décision est une opportunité de faux négatif.

Ajoutez des règles spécifiques au projet dans settings.json à la clé permissions. Les autorisations précises sont conservées telles quelles en Auto Mode. Les autorisations larges sont écartées à l’entrée. Une règle comme Bash(pytest) ou Bash(gh pr create *) est suffisamment spécifique pour que le classifieur fasse confiance à votre jugement. En pratique : une autorisation étroite par outil effectivement utilisé, pas de wildcards.
Si votre flux de travail s’appuyait sur les invites d’autorisations comme garde-fous entre étapes, recréez ces points de contrôle explicitement. Ajoutez des règles ask pour les motifs d’outils ou chemins sur lesquels vous voulez une pause. Ou migrez ce flux en acceptEdits plutôt qu’en auto pour garder l’invite partout sauf pour les éditions de fichiers intra-projet.
Une fonctionnalité sous-utilisée : le classifieur traite les limites énoncées dans la conversation comme des signaux de blocage. Dites à Claude : « ne poussez pas avant ma revue », et il bloquera les actions correspondantes même si les règles par défaut les autorisent. Une alternative simple à l’écriture d’une règle formelle pour une session.
Pour voir la configuration effective après fusion de votre settings.json avec les défauts :
claude auto-mode config
Les administrateurs Enterprise peuvent désactiver la fonctionnalité à l’échelle de l’organisation via permissions.disableAutoMode: 'disable' dans les réglages gérés.
Conclusion
Auto Mode plus Channels transforme Claude Code, outil cantonné au bureau, en partenaire asynchrone pilotable de partout. Le classifieur décide quels appels d’outils passent. Claude décide quand une action est assez sérieuse pour faire une pause. Vous décidez des invites, du périmètre et des règles. Le terminal devient un lieu possible de travail, pas le seul.
Pour aller plus loin, consultez nos guides sur Claude Code Remote Control, Claude Code Plugins et Claude Code Best Practices.
FAQ sur Claude Code Auto Mode et Channels
Qu’est-ce que l’Auto Mode de Claude Code ?
Auto Mode est un mode d’autorisations de Claude Code (v2.1.83+) où un modèle classifieur distinct (Sonnet 4.6) examine chaque appel d’outil et l’autorise ou le bloque, afin que les longues sessions sans surveillance ne stagnent pas sur des demandes d’approbation.
En quoi l’Auto Mode diffère-t-il de --dangerously-skip-permissions ?
Le mode bypass supprime tous les contrôles : lectures de fichiers .env, éditions de configuration et commandes destructrices passent toutes. Auto Mode conserve un classifieur devant chaque appel conséquent, refuse par défaut les opérations sur fichiers sensibles et vous rend la main lorsqu’il bloque trop d’appels d’affilée.
Que sont les Channels de Claude Code ?
Les Channels sont des plugins basés sur MCP qui transfèrent des messages de Telegram, Discord ou iMessage vers votre session Claude Code en cours. Vous envoyez un DM au bot, le plugin achemine le message vers l’hôte, et Claude répond en fin de tour dans le même chat.
Quelles offres claude.ai prennent en charge Auto Mode ?
Auto Mode est disponible sur les offres claude.ai Max, Team et Enterprise, ou via l’API. Il n’est pas disponible sur Pro, et aucun add-on ou forfait de consommation supplémentaire ne le débloque.
Auto Mode est-il sûr pour tous les projets ?
Il est suffisamment sûr pour vos propres projets, mais ne remplace pas une revue humaine. Anthropic rapporte 0,4 % de faux positifs et 17 % de faux négatifs sur des actions trop ambitieuses : une action risquée sur six peut passer. Pour les dépôts sensibles, restez en mode default.

Je suis un créateur de contenu en science des données avec plus de 2 ans d'expérience et l'un des plus grands followings sur Medium. J'aime écrire des articles détaillés sur l'IA et la ML dans un style un peu sarcastıc, car il faut bien faire quelque chose pour les rendre un peu moins ennuyeux. J'ai produit plus de 130 articles et un cours DataCamp, et un autre est en cours d'élaboration. Mon contenu a été vu par plus de 5 millions de personnes, dont 20 000 sont devenues des adeptes sur Medium et LinkedIn.