claude-code-notifier
fonctionnement guides faq
◐Français
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Commencer
Tous les guides

Envoyer les notifications Claude Code vers Telegram, Slack ou Discord

Mis à jour le 31 octobre 2026 · 7 min de lecture
sur cette page 01Avant de commencer : le message et le secret 02Telegram : un bot qui t'envoie des messages 03Slack : un webhook entrant 04Discord : un webhook de canal 05Le script du hook (Mac et Linux) 06Ajouter les hooks 07Windows (PowerShell) 08Ce qu'il faut savoir sur les apps de chat comme outil de notification 09Où se situe Claude Code Notifier 10FAQ

Pour envoyer les notifications de Claude Code vers Telegram, Slack ou Discord, crée un bot ou un webhook entrant dans l'app, puis ajoute un hook Claude Code qui y poste un court message avec curl. Un hook Notification couvre « Claude a besoin de ton autorisation » et « Claude attend », et un hook Stop couvre « Claude a terminé ». Telegram demande un token de bot et ton chat ID ; Slack et Discord n'ont besoin que d'une URL de webhook. Le même script fonctionne sur Mac et Linux, et une courte version PowerShell couvre Windows.

01Avant de commencer : le message et le secret

Chaque hook reçoit du JSON sur l'entrée standard. Les champs utiles sont hook_event_name, cwd (le dossier du projet), message pour les événements Notification, et last_assistant_message pour les événements Stop. Les exemples ci-dessous en font une seule ligne, par exemple Claude needs you in my-app: Claude needs your permission to use Bash.

Les tokens de bot et les URL de webhook sont des mots de passe : quiconque en possède un peut poster au nom de ton bot. La documentation de Slack dit clairement de ne pas partager les URL de webhook ni de les commiter dans un gestionnaire de versions. Garde-les dans un fichier séparé que toi seul peux lire :

mkdir -p ~/.claude
touch ~/.claude/chat-notify.env
chmod 600 ~/.claude/chat-notify.env

02Telegram : un bot qui t'envoie des messages

  1. Dans Telegram, ouvre une conversation avec @BotFather, envoie /newbot et suis les instructions. Il te répond avec un token du type 123456789:AA....
  2. Ouvre une conversation avec ton nouveau bot et envoie-lui n'importe quel message, pour qu'il ait le droit de t'écrire.
  3. Récupère ton chat ID. Ouvre cette URL avec ton token et cherche "chat":{"id": dans la réponse :
curl "https://api.telegram.org/bot<TOKEN>/getUpdates"
  1. Mets les deux valeurs dans ~/.claude/chat-notify.env :
SERVICE=telegram
TELEGRAM_TOKEN=123456789:AA...
TELEGRAM_CHAT_ID=987654321

La méthode sendMessage de Telegram prend chat_id et text (de 1 à 4 096 caractères). Elle accepte aussi disable_notification=true, qui livre le message sans son. Le script l'utilise pour les messages « terminé » et garde le son pour les demandes d'autorisation.

03Slack : un webhook entrant

  1. Crée une app Slack sur api.slack.com/apps (ou ouvre une app existante).
  2. Dans Incoming Webhooks, active Activate Incoming Webhooks.
  3. Clique sur Add New Webhook to Workspace, choisis un canal et sélectionne Authorize.
  4. Copie l'URL qui commence par https://hooks.slack.com/services/.
SERVICE=slack
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T000/B000/XXXX

Chaque webhook poste dans un seul canal, choisi à sa création, et tu ne peux pas changer le nom ni l'icône à chaque message. Le mieux, c'est un petit canal privé rien qu'à toi, pour que l'alerte ne se noie pas dans un canal très actif.

04Discord : un webhook de canal

  1. Sur ton serveur, ouvre Server Settings, puis Integrations, puis Webhooks.
  2. Crée un webhook, choisis le canal et copie son URL.
SERVICE=discord
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234/abcd

L'endpoint execute-webhook de Discord prend un corps JSON avec content (jusqu'à 2 000 caractères) et un username optionnel pour remplacer le nom du webhook.

05Le script du hook (Mac et Linux)

Enregistre-le sous ~/.claude/chat-notify.sh et lance chmod +x ~/.claude/chat-notify.sh. Il a besoin de curl et de jq (brew install jq ou apt install jq).

#!/bin/sh
. "$HOME/.claude/chat-notify.env"

input=$(cat)
event=$(printf '%s' "$input" | jq -r '.hook_event_name')
project=$(basename "$(printf '%s' "$input" | jq -r '.cwd')")

if [ "$event" = "Stop" ]; then
  detail=$(printf '%s' "$input" | jq -r '(.last_assistant_message // "") | .[0:300]')
  text="Claude finished in $project. $detail"
  quiet=true
else
  detail=$(printf '%s' "$input" | jq -r '.message // "Needs your attention"')
  text="Claude needs you in $project: $detail"
  quiet=false
fi

case "$SERVICE" in
  telegram)
    curl -s "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \
      --data-urlencode "chat_id=$TELEGRAM_CHAT_ID" \
      --data-urlencode "text=$text" \
      --data-urlencode "disable_notification=$quiet" > /dev/null ;;
  slack)
    jq -n --arg t "$text" '{text: $t}' | curl -s -X POST \
      -H 'Content-Type: application/json' --data @- "$SLACK_WEBHOOK_URL" > /dev/null ;;
  discord)
    jq -n --arg t "$text" '{content: $t, username: "Claude Code"}' | curl -s -X POST \
      -H 'Content-Type: application/json' --data @- "$DISCORD_WEBHOOK_URL" > /dev/null ;;
esac
exit 0

Construire le JSON avec jq -n --arg est important : les réponses de Claude contiennent des guillemets, des antislashs et des retours à la ligne, et les coller à la main dans une chaîne JSON casse la requête.

Teste-le avant de le brancher :

echo '{"hook_event_name":"Notification","cwd":"/tmp/demo","message":"Test"}' | ~/.claude/chat-notify.sh

06Ajouter les hooks

Dans ~/.claude/settings.json, à l'intérieur de l'objet hooks existant s'il y en a un :

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt|idle_prompt",
        "hooks": [{ "type": "command", "command": "~/.claude/chat-notify.sh" }]
      }
    ],
    "Stop": [
      {
        "hooks": [{ "type": "command", "command": "~/.claude/chat-notify.sh", "async": true }]
      }
    ]
  }
}

Lance une nouvelle session Claude Code pour que les hooks soient chargés. idle_prompt et Stop se recoupent : Stop se déclenche dès que Claude termine, et idle_prompt environ une minute plus tard si tu n'as rien tapé. Garde les deux ou supprimes-en un ; le guide ntfy explique le compromis.

07Windows (PowerShell)

Enregistre-le sous %USERPROFILE%\.claude\chat-notify.ps1. Cette version poste sur Discord ; pour Slack, remplace le corps par @{ text = $text } et change l'URL.

$url = 'https://discord.com/api/webhooks/1234/abcd'
$in = [Console]::In.ReadToEnd() | ConvertFrom-Json
$project = Split-Path $in.cwd -Leaf

if ($in.hook_event_name -eq 'Stop') { $text = "Claude finished in $project." }
else { $text = "Claude needs you in ${project}: $($in.message)" }

$json = @{ content = $text; username = 'Claude Code' } | ConvertTo-Json
Invoke-RestMethod -Method Post -Uri $url -ContentType 'application/json; charset=utf-8' `
  -Body ([Text.Encoding]::UTF8.GetBytes($json)) | Out-Null

Entrée du hook :

{
  "type": "command",
  "shell": "powershell",
  "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$HOME\\.claude\\chat-notify.ps1\""
}

Dans WSL, utilise le script Mac et Linux.

08Ce qu'il faut savoir sur les apps de chat comme outil de notification

  • Ce que tu envoies quitte ton ordinateur. Le message « terminé » contient le début de la réponse de Claude. Dans un canal Slack ou Discord partagé, tous les membres peuvent le lire. Retire $detail si ton code est privé.
  • Les apps de chat regroupent et mettent en sourdine. Un workspace très actif ou un serveur en sourdine peut masquer l'alerte. Une app de push dédiée comme ntfy (voir le guide ntfy) risque moins de se perdre.
  • Les hooks ne savent pas si tu es devant ton écran. Stop poste à chaque fois. idle_prompt et permission_prompt sont ce qui se rapproche le plus d'un filtre « absent » intégré.

09Où se situe Claude Code Notifier

Un webhook est un bon moyen de garder une trace de ce qu'a fait Claude, et pour une équipe, ça peut être le bon outil. Mais pour une personne seule qui veut agir sur l'alerte, ça ne va pas assez loin : tu lis que Claude a besoin d'une autorisation, puis tu retournes au terminal pour la donner. Un bot Telegram pourrait en théorie recevoir des réponses, mais il faudrait écrire toi-même le hook qui les attend et renvoie une décision.

Claude Code Notifier s'occupe de cette partie. Avec un téléphone appairé, tu autorises une fois, autorises pour la session ou refuses une demande d'autorisation, tu réponds aux questions à choix multiples de Claude et tu envoies une nouvelle instruction quand Claude a terminé, le tout depuis ton téléphone. Si tu as tapé quelque chose dans les 30 dernières secondes, le terminal demande comme d'habitude et rien n'attend sur le téléphone. C'est un outil indépendant, non créé par Anthropic, et ccn tourne sur Mac, Windows et Linux. Voir la comparaison, la page ccn et les tarifs.

10FAQ

Claude Code peut-il poster sur Slack sans script ?

Claude Code propose des hooks http qui envoient le JSON du hook en POST vers une URL, mais les webhooks Slack et Discord attendent leur propre format de corps (text ou content), donc un hook http direct échoue. Il faut un petit script ou un relais entre les deux.

Comment trouver mon chat ID Telegram ?

Envoie un message à ton bot, puis ouvre https://api.telegram.org/bot<TOKEN>/getUpdates. Le nombre après "chat":{"id": est le chat ID. Pour un groupe, ajoute d'abord le bot au groupe et envoie-y un message.

Je peux répondre à Claude Code depuis Slack ou Discord ?

Pas avec un webhook entrant, qui ne fait que publier. Pour répondre, il faut un hook qui attend ta réponse et renvoie une décision, et c'est exactement le rôle des outils d'approbation à distance.

Est-ce que le hook va ralentir Claude Code ?

L'entrée Stop utilise "async": true, donc l'envoi se fait en arrière-plan. Les hooks Notification tournent déjà en parallèle de Claude sans le bloquer.

Claude Code Notifier Reçois un push sur ton téléphone quand Claude Code a terminé ou a besoin de toi, puis approuve, refuse ou réponds directement. L'outil en ligne de commande ccn est gratuit sur Mac, Windows et Linux.
Télécharger pour iOS Télécharger pour Android Installer ccn

Guides associés

  • Notifications push Claude Code avec ntfy (à faire soi-même)Envoie les alertes Claude Code sur ton téléphone avec ntfy : un script de hook pour Mac, Windows et Linux, les entrées de settings.json, et comment garder le topic privé.
  • Toutes les façons de recevoir les notifications de Claude Code, comparéesAlertes intégrées, tes propres hooks, ntfy et webhooks de chat, Remote Control d'Anthropic et apps de notification : ce que chacun permet ou non.
  • Le Notification hook de Claude Code : quand il se déclenche et comment l'utiliserQuand le Notification hook de Claude Code se déclenche, ce que signifient permission_prompt et idle_prompt, les données qu'il reçoit et pourquoi il attend avant de se déclencher.
claude-code-notifier

Claude Code Notifier est une application tierce indépendante. Elle n’est ni affiliée à Anthropic, PBC, ni approuvée ou parrainée par celle-ci. « Claude » et « Claude Code » sont des marques d’Anthropic, PBC.

apps App iOS App Android ccn pour macOS, Windows et Linux Tous les guides
mentions légales Politique de confidentialité Conditions d’utilisation Autres langues © 2026 touchtap. Tous droits réservés. TouchTap Ltd est immatriculée en Angleterre et au pays de Galles, numéro 13942589.