Liu Terminal bildirimleri. Yapay zeka ajanları görevleri bitirdiğinde yapılandırılabilir kancalar ve ses uyarıları ile haberdar olun.
liu-notify isteğe bağlı bağımsız bir süreçtir; Liu arayüzü aynı sunucuyu işlem içinde de barındırabilir. Yerel soket üzerinden v1 24 baytlık veya isteğe bağlı meta verili güncel v2 28 baytlık başlık kabul eder, token-bucket ile hız sınırlar, aynı olayları tekilleştirir ve her (ajan, olay) çifti için ses (veya konuşma satırı) yönlendirir.
# Ana uygulama ile birlikte derleyin
cmake --build build --target liu-notify
# Arka plan programını başlat
./build/liu-notify daemon
# Tek seferlik bir olay gönder
./build/liu-notify send --tool=claude --event=stop
Yapılandırma ~/.config/liu/notify.conf (veya $XDG_CONFIG_HOME/liu/notify.conf) dosyasındadır — ana uygulamanın config.json dosyasından ayrıdır, böylece daemon Liu çalışmıyorken bile kullanılabilir.
Liu çalışırken bildirim sunucusunu arayüz kendi işlemi içinde barındırır; CLI'ın ikinci bir daemon başlatması gerekmez. Dinleyen sunucu yoksa send olayı teslim etmeden çıkar. Bağımsız daemon'ı yalnızca bildirimlerin Liu olmadan da çalışması gerektiğinde kullanın.
Liu, uygulama çalışırken aşağıdaki ajanlar için yaşam döngüsü hook'larını kurup kaldırabilir. Hook, ajanın kendi yapılandırmasına yazılır; Liu sunucu instance'ı kapandığında yönettiği girdiyi kaldırır.
| Ajan | Hook yüzeyi | Sinyaller | Notlar |
|---|---|---|---|
| Claude Code | ~/.claude/settings.json | start · notify · complete | UserPromptSubmit çalışma durumunu başlatır; Notification ve Stop sizi uyarabilir. |
| Codex | ~/.codex/config.toml | complete | Stop hook'u tamamlanan turu bildirir. Güvenmek için Codex içinde bir kez /hooks çalıştırın. |
| Grok | ~/.grok/hooks/liu-notify.json | notify · complete | Notification ve üst düzey Stop olayları işlenir; alt ajan tamamlanmaları sessiz kalır. |
| OpenCode | ~/.config/opencode/plugins/liu-notify.js | complete | Yönetilen eklenti, üst düzey session.idle olaylarını dinler. |
| Antigravity | ~/.gemini/config/hooks.json | complete | Adlandırılmış Stop hook'u üst düzey çalıştırma döngüsü bittiğinde bildirim gönderir. |
| Command Code | ~/.commandcode/settings.json | complete | Claude uyumlu ayar şeması üst düzey Stop olayına bağlanır. |
Copilot ve custom, düşük seviyeli bildirim protokolü ve ses matrisi tarafından kabul edilir; ancak Liu henüz bunlar için otomatik yaşam döngüsü hook'u kurmaz. Diğer ajanlar Liu sekmelerinde normal şekilde çalışır, yalnızca otomatik hook bildirimleri almaz.
Herhangi bir kombinasyon için ses kuralı yapılandırın. Ayarlanmamış hücreler genel kurala düşer.
| start | stop | notify | error | complete | |
|---|---|---|---|---|---|
| claude | · | · | · | · | · |
| copilot | · | · | · | · | · |
| codex | · | · | · | · | · |
| custom | · | · | · | · | · |
v1 başlığı 24 bayttır; güncel v2 başlığı meta_len alanını eklediği için 28 bayttır. Tam çerçeve 4096 bayt ile sınırlıdır. Doğrulama tests/fuzz_notify_validate.c ile fuzz testine tabi tutulur; bozuk çerçeveler sunucuyu çökertmeden güvenli biçimde reddedilir.
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
v2 meta veri bölümü şu anda cwd=, session= ve agent= satırlarını taşır. Hook göndericileri olayı doğru bölmeyle eşleştirmek için bunları kullanır; ileriye dönük uyumluluk için bilinmeyen anahtarlar yok sayılır.
Aynı çerçeve, farklı konuşmacı. macOS AVSpeechSynthesizer kullanır, Linux ise notify-send'e yönelir. Her arka uç kendi dosyasında (platform_notify_macos.m, platform_notify_linux.c) bulunur, böylece birini değiştirmek veya saplamak tek dosya değişikliğidir.
English · 简体中文 · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية