Zum Inhalt springen
claudemods

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

In Claude Code installieren:

/plugin install cm-done-toast --marketplace rotbit/claudemods-marketplace
Alle Installationswege ↓

Was 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. 1.Eine Zeile, direkt in Claude Code

    /plugin install cm-done-toast --marketplace rotbit/claudemods-marketplace

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add rotbit/claudemods-marketplace
    claude plugin install cm-done-toast@claudemods

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/rotbit/claudemods-marketplace
    claude --plugin-dir ./claudemods-marketplace/cm-done-toast

    Lä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.

EinstellungTypStandardFunktion
minSecondsnumber30Minimum turn length (seconds). Only turns at least this long raise the toast, sound and notification.
soundbooleantruePlay a sound. Play a short chime when the turn finishes (macOS only: Claude Code plays clips with afplay).
systemNotificationbooleanfalseSystem notification. Also raise a desktop notification via osascript (macOS) or notify-send (Linux).
includeAnswerPreviewbooleanfalseInclude 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 --version 2.1.287 oder neuer meldet und die Mod in /plugin aktiviert ist.
  • Führe nach einer Installation über die Shell /reload-plugins aus.
  • 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.
Kontext-Meter in Claude Code

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 in Claude Code

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 in Claude Code

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.