# Benachrichtigungen — Liu Terminal

> Liu Terminal-Benachrichtigungen. Werden Sie benachrichtigt, wenn KI-Agenten Aufgaben beenden, mit konfigurierbaren Hooks und Tonalarmen.

URL: https://liu.software/de/docs/notify/  
Language: de  
Updated: 2026-10-17

liu-notify ist ein optionaler eigenständiger Prozess, während die Liu-GUI denselben Server im Prozess hosten kann. Er akzeptiert einen 24-Byte-v1- oder aktuellen 28-Byte-v2-Header mit optionalen Metadaten über einen lokalen Socket, drosselt per Token-Bucket, dedupliziert Ereignisse und leitet Ton oder Sprache pro (Agent, Ereignis)-Paar weiter.

## Ausführen

```
# Neben der Haupt-App erstellen
cmake --build build --target liu-notify

# Den Daemon starten
./build/liu-notify daemon

# Einmaliges Ereignis senden
./build/liu-notify send --tool=claude --event=stop
```

Die Konfiguration befindet sich in ~/.config/liu/notify.conf – getrennt von der config.json der Haupt-App, sodass der Daemon auch ohne laufendes Liu nutzbar bleibt.

When Liu is running, its GUI hosts the notification server in-process; the CLI does not need to start a second daemon. If no server is listening, send exits without delivering an event. Use the standalone daemon only when notifications must work without Liu.

## Unterstützte Agenten-Hooks

Liu kann während der Laufzeit der App Lebenszyklus-Hooks für die folgenden Agenten installieren und entfernen. Der Hook wird in die Konfiguration des Agenten geschrieben; beim Beenden der hostenden Instanz entfernt Liu seinen verwalteten Eintrag.

| Agent | Hook-Oberfläche | Signale | Hinweise |
| --- | --- | --- | --- |
| Claude Code | `~/.claude/settings.json` | `start · notify · complete` | UserPromptSubmit drives the working state; Notification and Stop can alert you. |
| Codex | `~/.codex/config.toml` | `complete` | The Stop hook reports a completed turn. Run /hooks in Codex once to trust it. |
| Grok | `~/.grok/hooks/liu-notify.json` | `notify · complete` | Notification and top-level Stop events are handled; sub-agent completions stay silent. |
| OpenCode | `~/.config/opencode/plugins/liu-notify.js` | `complete` | The managed plugin listens for top-level session.idle events. |
| Antigravity | `~/.gemini/config/hooks.json` | `complete` | A named Stop hook reports when the top-level execution loop ends. |
| Command Code | `~/.commandcode/settings.json` | `complete` | Its Claude-compatible settings schema is wired to the top-level Stop event. |

Copilot und custom werden vom Benachrichtigungsprotokoll und der Tonmatrix akzeptiert, aber Liu installiert dafür derzeit keinen automatischen Lebenszyklus-Hook. Andere Agenten laufen weiterhin normal in Liu-Tabs, erhalten jedoch keine automatischen Hook-Benachrichtigungen.

## Werkzeug × Ereignis-Matrix

Konfigurieren Sie eine Tonregel für jede Kombination. Nicht gesetzte Zellen fallen auf die Sammelregel zurück.

|  | start | stop | notify | error | complete |
| --- | --- | --- | --- | --- | --- |
| claude | · | · | · | · | · |
| copilot | · | · | · | · | · |
| codex | · | · | · | · | · |
| custom | · | · | · | · | · |

## Frame-Format

Der v1-Header ist 24 Byte groß; der aktuelle v2-Header ist wegen meta\_len 28 Byte groß. Der vollständige Frame ist auf 4096 Byte begrenzt. tests/fuzz\_notify\_validate.c prüft per Fuzzing, sodass fehlerhafte Frames sicher abgewiesen werden.

```
offset  size  field
0       4     magic      ('N','T','F','Y')
4       2     version    (1 or current 2)
6       2     flags      (speak=1, bell=2)
8       1     tool_id    (claude=1, copilot=2, codex=3, custom=255)
9       1     event_id   (start=1, stop=2, notify=3, error=4, complete=5)
10      1     priority   (reserved)
11      1     source     (cli=0, stdin=1, test=2)
12      4     seq        (client nonce — for dedup)
16      4     title_len  (<= 256)
20      4     body_len   (<= 3072)
24      4     meta_len   (v2 only, <= 512)
payload         title, body, then metadata key=value lines
                total frame <= 4096 bytes
```

Der v2-Metadatenabschnitt enthält derzeit cwd=-, session=- und agent=-Zeilen. Hook-Sender ordnen damit ein Ereignis dem richtigen Bereich zu; unbekannte Schlüssel werden für Vorwärtskompatibilität ignoriert.

## Plattform-Backends

Gleicher Frame, anderer Lautsprecher. macOS verwendet AVSpeechSynthesizer und Linux leitet an notify-send weiter. Jedes Backend befindet sich in einer eigenen Datei (platform\_notify\_macos.m, platform\_notify\_linux.c), sodass der Austausch oder Stub eines einzigen eine Ein-Datei-Änderung ist.

[Nächste Konfiguration →](https://liu.software/de/docs/config.md)
