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

Inviare le notifiche di Claude Code a Telegram, Slack o Discord

Aggiornato il 31 ottobre 2026 · 7 min di lettura
in questa pagina 01Prima di iniziare: il messaggio e il segreto 02Telegram: un bot che ti scrive 03Slack: un webhook in entrata 04Discord: un webhook di canale 05Lo script dell'hook (Mac e Linux) 06Aggiungi gli hook 07Windows (PowerShell) 08Cosa sapere sulle app di chat come sistema di notifica 09Dove si inserisce Claude Code Notifier 10FAQ

Per inviare le notifiche di Claude Code su Telegram, Slack o Discord, crea un bot o un webhook in entrata nell'app, poi aggiungi un hook di Claude Code che ci invia un breve messaggio con curl. Un hook Notification copre "Claude ha bisogno del tuo permesso" e "Claude è in attesa", mentre un hook Stop copre "Claude ha finito". Telegram richiede un bot token e il tuo chat ID, Slack e Discord solo l'URL di un webhook. Lo stesso script funziona su Mac e Linux, e una breve versione in PowerShell copre Windows.

01Prima di iniziare: il messaggio e il segreto

Ogni hook riceve un JSON sullo standard input. I campi utili sono hook_event_name, cwd (la cartella del progetto), message negli eventi Notification e last_assistant_message negli eventi Stop. Gli esempi qui sotto li trasformano in una sola riga, tipo Claude needs you in my-app: Claude needs your permission to use Bash.

I bot token e gli URL dei webhook sono password: chiunque li abbia può pubblicare a nome del tuo bot. La documentazione di Slack dice chiaramente di non condividere gli URL dei webhook né di committarli nel version control. Tienili in un file separato leggibile solo da te:

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

02Telegram: un bot che ti scrive

  1. Su Telegram, apri una chat con @BotFather, invia /newbot e segui le istruzioni. Ti risponderà con un token tipo 123456789:AA....
  2. Apri una chat con il tuo nuovo bot e mandagli un messaggio qualsiasi, così potrà risponderti.
  3. Trova il tuo chat ID. Apri questo URL con il tuo token e cerca "chat":{"id": nella risposta:
curl "https://api.telegram.org/bot<TOKEN>/getUpdates"
  1. Metti entrambi i valori in ~/.claude/chat-notify.env:
SERVICE=telegram
TELEGRAM_TOKEN=123456789:AA...
TELEGRAM_CHAT_ID=987654321

Il metodo sendMessage di Telegram accetta chat_id e text (da 1 a 4.096 caratteri). Accetta anche disable_notification=true, che consegna il messaggio senza suono. Lo script lo usa per i messaggi di "finito" e lascia il suono per le richieste di permesso.

03Slack: un webhook in entrata

  1. Crea un'app Slack su api.slack.com/apps (o aprine una esistente).
  2. In Incoming Webhooks, attiva Activate Incoming Webhooks.
  3. Clicca su Add New Webhook to Workspace, scegli un canale e seleziona Authorize.
  4. Copia l'URL che inizia con https://hooks.slack.com/services/.
SERVICE=slack
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T000/B000/XXXX

Ogni webhook pubblica in un solo canale, scelto alla creazione, e non puoi cambiare nome o icona per singolo messaggio. L'ideale è un piccolo canale privato tutto tuo, così l'avviso non si perde in un canale affollato.

04Discord: un webhook di canale

  1. Nel tuo server, apri Server Settings, poi Integrations, poi Webhooks.
  2. Crea un webhook, scegli il canale e copia il suo URL.
SERVICE=discord
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234/abcd

L'endpoint execute-webhook di Discord accetta un body JSON con content (fino a 2.000 caratteri) e un username opzionale per sovrascrivere il nome del webhook.

05Lo script dell'hook (Mac e Linux)

Salvalo come ~/.claude/chat-notify.sh ed esegui chmod +x ~/.claude/chat-notify.sh. Servono curl e jq (brew install jq oppure 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

Costruire il JSON con jq -n --arg è importante: le risposte di Claude contengono virgolette, backslash e a capo, e incollarle a mano in una stringa JSON rompe la richiesta.

Provalo prima di collegarlo:

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

06Aggiungi gli hook

In ~/.claude/settings.json, dentro l'oggetto hooks esistente, se c'è:

{
  "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 }]
      }
    ]
  }
}

Avvia una nuova sessione di Claude Code per caricare gli hook. idle_prompt e Stop si sovrappongono: Stop scatta appena Claude finisce, idle_prompt circa un minuto dopo se non hai scritto nulla. Tienili entrambi o togline uno; la guida a ntfy spiega i pro e i contro.

07Windows (PowerShell)

Salvalo come %USERPROFILE%\.claude\chat-notify.ps1. Questa versione pubblica su Discord; per Slack cambia il body in @{ text = $text } e 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

Voce dell'hook:

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

Dentro WSL, usa lo script per Mac e Linux.

08Cosa sapere sulle app di chat come sistema di notifica

  • Ciò che invii esce dal tuo computer. Il messaggio di "finito" include l'inizio della risposta di Claude. In un canale Slack o Discord condiviso, chiunque ci sia può leggerlo. Togli $detail se il tuo codice è privato.
  • Le app di chat raggruppano e silenziano. Un workspace affollato o un server silenziato possono nascondere l'avviso. Un'app di notifiche push dedicata come ntfy (vedi la guida a ntfy) ha meno probabilità di perderlo.
  • Gli hook non sanno se sei alla scrivania. Stop pubblica ogni volta. idle_prompt e permission_prompt sono il filtro "non ci sono" integrato più vicino.

09Dove si inserisce Claude Code Notifier

Un webhook è un buon modo per tenere un log di cosa ha fatto Claude, e per un team può essere lo strumento giusto. Per chi vuole agire sull'avviso, però, si ferma a metà: leggi che Claude ha bisogno di un permesso e poi devi tornare al terminal per darglielo. Un bot Telegram in teoria potrebbe ricevere risposte, ma dovresti scriverti tu l'hook che le attende e restituisce una decisione.

Claude Code Notifier fa proprio questo. Con un telefono associato, puoi consentire una volta, consentire per la sessione o negare una richiesta di permesso, rispondere alle domande a scelta multipla di Claude e inviare un'istruzione successiva quando Claude finisce, tutto dal telefono. Se hai scritto negli ultimi 30 secondi, il terminal chiede come al solito e sul telefono non resta niente in attesa. È indipendente, non realizzato da Anthropic, e ccn gira su Mac, Windows e Linux. Guarda il confronto con le alternative, la pagina di ccn e i prezzi.

10FAQ

Claude Code può pubblicare su Slack senza uno script?

Claude Code ha hook http che fanno POST del JSON dell'hook a un URL, ma i webhook di Slack e Discord si aspettano un formato di body specifico (text o content), quindi un hook http diretto fallisce. Serve un piccolo script o un relay nel mezzo.

Come trovo il mio chat ID di Telegram?

Manda un messaggio al tuo bot, poi apri https://api.telegram.org/bot<TOKEN>/getUpdates. Il numero dopo "chat":{"id": è il chat ID. Per un gruppo, aggiungi prima il bot al gruppo e invia lì un messaggio.

Posso rispondere a Claude Code da Slack o Discord?

Non con un incoming webhook, che si limita a pubblicare messaggi. Per rispondere serve un hook che aspetti la tua risposta e restituisca una decisione, ed è proprio quello che fanno gli strumenti di approvazione remota.

L'hook rallenterà Claude Code?

La voce Stop usa "async": true, quindi l'invio avviene in background. Gli hook Notification girano già in parallelo a Claude senza bloccarlo.

Claude Code Notifier Ricevi una push sul telefono quando Claude Code finisce o ha bisogno di te, poi approva, rifiuta o rispondi direttamente da lì. Il tool da riga di comando ccn è gratuito su Mac, Windows e Linux.
Scarica per iOS Scarica per Android Installa ccn

Guide correlate

  • Notifiche push di Claude Code con ntfy (fai-da-te)Invia gli avvisi di Claude Code al telefono con ntfy: uno script hook per Mac, Windows e Linux, le voci di settings.json e come mantenere privato il topic.
  • Tutti i modi per ricevere notifiche da Claude Code, a confrontoAvvisi integrati, hook personalizzati, ntfy e webhook di chat, il Remote Control di Anthropic e le app di notifica: cosa può e non può fare ciascuno.
  • Il Notification hook di Claude Code: quando scatta e come usarloQuando scatta il Notification hook di Claude Code, cosa significano permission_prompt e idle_prompt, l'input che riceve e perché aspetta prima di scattare.
claude-code-notifier

Claude Code Notifier è un'applicazione indipendente di terze parti. Non è affiliata, approvata o sponsorizzata da Anthropic, PBC. "Claude" e "Claude Code" sono marchi di Anthropic, PBC.

app App iOS App Android ccn per macOS, Windows e Linux Tutte le guide
note legali Informativa sulla privacy Termini di servizio Altre lingue © 2026 touchtap. Tutti i diritti riservati. TouchTap Ltd è registrata in Inghilterra e Galles, numero di società 13942589.