Claude Code Benachrichtigung bei Fertigstellung: Toast und Klang
Toast „Done in 2m 14s“ und kurzer Klang, wenn ein langer Claude-Turn endet, optional mit Desktop-Benachrichtigung.
Berechtigungen
- Führt Befehle ausKann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
- Verändert die OberflächeZeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
- Spielt Ton abKann Audio abspielen oder Text vorlesen ($.audio.*).
- getestet mit
- v2.1.291
- zuletzt getestet
- erfordert
- Claude Code ≥ 2.1.287
- Oberflächen
- Toast
- Quelle
- ClaudeMods (MIT)
In Claude Code installieren:
/plugin install cm-done-toast --marketplace rotbit/claudemods-marketplaceWas macht diese Mod?
Fertig-Toast liefert dir eine Claude Code Benachrichtigung bei Fertigstellung: Sobald ein Turn endet, der eine Weile gedauert hat, meldet ein Toast Done in 2m 14s, und ein kurzer Zwei-Ton-Klang ertönt. Endet ein Turn mit einem Fehler, heißt es stattdessen Stopped on an error after 2m 14s. Kurze Turns, abgebrochene Turns und Subagent-Turns bleiben still, sodass der Klang immer bedeutet: „Komm zurück, deine Antwort ist fertig.“
Wenn du bei langen Aufgaben in einem anderen Fenster arbeitest, schalte die Option für Systembenachrichtigungen ein: Dann erscheint dieselbe Meldung in der macOS-Mitteilungszentrale oder als notify-send-Popup unter Linux. Benötigt Claude Code 2.1.287 oder neuer.
Demo
In der Aufnahme bekommt Claude eine Aufgabe, die länger dauert als der Schwellenwert. Wenn der Turn abgeschlossen ist, erscheint unten auf dem Bildschirm der Toast mit der Dauer des Turns.
Installation
Wähle eine der Methoden im Installationsblock. Der Ton funktioniert unter macOS ohne weitere Einrichtung; Systembenachrichtigungen musst du ausdrücklich einschalten.
$ install cm-done-toast
Erfordert Claude Code ≥ 2.1.287
1.Eine Zeile, direkt in Claude Code
/plugin install cm-done-toast --marketplace rotbit/claudemods-marketplaceIn eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.
2.Aus deiner Shell
claude plugin marketplace add rotbit/claudemods-marketplace claude plugin install cm-done-toast@claudemodsFühre danach in jeder bereits geöffneten Sitzung /reload-plugins aus.
3.Ohne Installation ausprobieren
git clone https://github.com/rotbit/claudemods-marketplace claude --plugin-dir ./claudemods-marketplace/cm-done-toastLädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.
So funktioniert es
Die Mod hat einen einzigen Hook. Aus hooks/register.ts:
on('turn.complete', async ($, e, next) => {
const result = await next(e)
if (!shouldNotify(e, minSeconds)) return result
const text = toastText(e, includeAnswerPreview)
$.ui.toast(text)
if (sound) {
$.audio.play({ asset: 'sounds/done.wav' }).catch(() => undefined)
}
if (systemNotification) {
platform ??= $.process
.run(['uname', '-s'], { timeoutMs: 5000 })
.then(ran => (ran.exitCode === 0 ? parseUname(ran.stdout) : undefined))
.catch(() => undefined)
platform
.then(found =>
found === undefined ? undefined : $.process.run(notificationArgv(found, 'Claude Code', text), { timeoutMs: 10000 }),
)
.catch(() => undefined)
}
return result
})turn.complete wird ausgelöst, wenn Claude einen Turn beendet. Der Hook wartet zuerst auf next(e) und verzögert das Ergebnis des Turns daher nie. shouldNotify in hooks/format.ts gibt false zurück für Subagent-Turns (solche mit einer agentId), abgebrochene Turns und alles, was kürzer als minSeconds ist. toastText formatiert die Dauer als 45s, 2m 14s oder 1h 3m.
Der Klang ist sounds/done.wav, liegt der Mod bei und wird mit $.audio.play abgespielt. Die Mods-API hat weder ein Plattformfeld noch einen Benachrichtigungsaufruf. Sind Systembenachrichtigungen eingeschaltet, fragt die Mod deshalb einmal uname -s ab und speichert die Antwort zwischen. Anschließend führt sie unter macOS osascript -e 'display notification …' oder unter Linux notify-send aus. Die Argumente werden als argv-Array ohne Shell übergeben, sodass Anführungszeichen in Claudes Antwort nicht ausbrechen können. Ton und Benachrichtigung laufen nach dem Prinzip „abschicken und vergessen“; Fehler werden verschluckt.
Anpassen
Diese Optionen änderst du in /config. Für einen eigenen Ton ersetzt du sounds/done.wav im Mod-Ordner oder änderst den asset-Pfad im Hook. Der Wortlaut des Toasts stammt aus toastText in hooks/format.ts, und der Titel der Benachrichtigung 'Claude Code' ist das zweite Argument von notificationArgv.
| Einstellung | Typ | Standard | Funktion |
|---|---|---|---|
| minSeconds | number | 30 | Minimum turn length (seconds). Only turns at least this long raise the toast, sound and notification. |
| sound | boolean | true | Play a sound. Play a short chime when the turn finishes (macOS only: Claude Code plays clips with afplay). |
| systemNotification | boolean | false | System notification. Also raise a desktop notification via osascript (macOS) or notify-send (Linux). |
| includeAnswerPreview | boolean | false | Include answer preview. Add the first 80 characters of Claude's answer to the toast and notification. |
Ändere diese Werte in Claude Code mit /config – die Mod lädt sich automatisch neu.
Berechtigungen & Sicherheit
Verändert die Oberfläche betrifft den Toast. Spielt Ton ab betrifft den Klang. Führt Befehle aus erscheint, weil $.process.run im Code vorkommt. Genutzt wird es aber nur, wenn du systemNotification einschaltest: Dann läuft einmal uname -s, gefolgt von osascript oder notify-send mit festen Argumenten. Mit den Standardeinstellungen wird kein Prozess gestartet.
Die Mod fängt keine Tool-Aufrufe ab, liest deine Prompts nicht, rührt keine Dateien an und nutzt kein Netzwerk. Deaktiviere sie mit /plugin disable cm-done-toast oder starte eine Sitzung ganz ohne Mods mit claude --safe-mode.
- Führt Befehle aus
- Kann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
- Verändert die Oberfläche
- Zeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
- Spielt Ton ab
- Kann Audio abspielen oder Text vorlesen ($.audio.*).
Kompatibilität & Fehlerbehebung
Getestet mit Claude Code 2.1.291 unter macOS im Terminal. Wenn beim Ende eines Turns nichts passiert:
- Prüfe, ob
claude --version2.1.287 oder neuer meldet und die Mod in/pluginaktiviert ist. - Führe nach einer Installation über die Shell
/reload-pluginsaus. - Der Turn war möglicherweise kürzer als
minSeconds. - Dass es außerhalb von macOS keinen Ton gibt, ist erwartetes Verhalten.
- Erscheint die Systembenachrichtigung unter macOS nie, erlaube in den Systemeinstellungen Mitteilungen für deine Terminal-App.
- Installiere unter Linux libnotify (
notify-send) für Systembenachrichtigungen.
FAQ
- Warum kam nach einer kurzen Antwort keine Benachrichtigung?
- Turns, die kürzer als minSeconds sind (standardmäßig 30), bleiben still. Setze minSeconds auf 0, um über jeden Turn informiert zu werden.
- Warum gibt es unter Linux oder Windows keinen Ton?
- Claude Code spielt Audioclips mit afplay ab, das es nur unter macOS gibt. Der Toast erscheint trotzdem auf jeder Plattform.
- Wie bekomme ich eine Meldung in der macOS-Mitteilungszentrale?
- Schalte systemNotification in /config ein. Die Mod führt dann unter macOS osascript bzw. unter Linux notify-send aus. macOS fragt eventuell einmal, ob dein Terminal Mitteilungen senden darf.
- Lösen Subagents sie aus?
- Nein. Turns mit einer agentId werden übersprungen, ebenso abgebrochene Turns – so bekommst du genau eine Benachrichtigung pro Antwort.
- Kann die Benachrichtigung Claudes Antwort enthalten?
- Schalte includeAnswerPreview ein, um die ersten 80 Zeichen anzuhängen. Standardmäßig ist das aus, weil der Text dann im Mitteilungsverlauf deines Systems landet.
# Ähnliche Mods

Kontext-Meter
Kontextfüllstand, 5-Stunden- und 7-Tage-Plannutzung und Sitzungskosten in der Statuszeile, plus Warnung vor dem Limit.
- Statuszeile
- Toast
- Verändert die Oberfläche
getestet mit v2.1.291

Tool-Call-Zähler
Zählt Claudes Tool-Aufrufe pro Turn und Sitzung, zeigt sie neben dem Spinner und ergänzt /tally als Übersicht.
- Spinner
- Verlauf
- Statuszeile
- Fängt Tool-Aufrufe ab
- Verändert die Oberfläche
- Fügt Befehle/Tools hinzu
getestet mit v2.1.291

Git-Branch über dem Prompt
Zeigt Git-Branch, geänderte Dateien und Ahead/Behind-Status in einer Zeile über dem Prompt von Claude Code.
- über dem Prompt
- Führt Befehle aus
- Fängt Tool-Aufrufe ab
- Verändert die Oberfläche
getestet mit v2.1.291
Mehr in Toasts & Benachrichtigungen, Timer, Todos, Standups.