Gemini CLI bildirimleri: işi bittiğinde veya sana ihtiyaç duyduğunda ses ya da uyarı al

Gemini CLI, sen başka bir şey okurken “Waiting for confirmation” ekranında keyifle bekler. Sana haber verebilir. Sadece ayar varsayılan olarak kapalıdır ve Windows'ta dokümanların ima ettiğinden farklı davranır.

Aslan, Pet Island ekibi · Güncellendi: 26 Eki 2026 · 5 dk okuma

KISA CEVAP

~/.gemini/settings.json dosyasında "general": { "enableNotifications": true } ayarla (veya /settings → General → Enable Notifications). Gemini CLI bundan sonra onay gerektiğinde ve bir oturum tamamlandığında seni uyarır. Windows Terminal'de ve VS Code terminalinde otomatik mod sadece terminal zilini çalar; gerçek bir masaüstü bildirimi istiyorsan notificationMethod: "osc9" dene. Kendi sesin için bir Notification hook'u (araç izni istemlerinde tetiklenir) ve bir AfterAgent hook'u (bir tur bittiğinde tetiklenir) ekle.

Başlamadan önce: hangi Gemini CLI'ı kullanıyorsun

Gemini CLI dokümantasyonunun üstündeki bir duyuru, ücretsiz katman ve Google One kullanıcıları için Gemini CLI'ın 18 Haziran 2026'da Antigravity CLI ile değiştirildiğini söylüyor. Aşağıdaki her şey Gemini CLI'ın kendisiyle (gemini komutu ve ~/.gemini/settings.json) ilgilidir. Antigravity'ye geçtiysen ayarları başka bir yerde bulunur.

İnsanlar bunu uzun zamandır istiyor. Gemini CLI reposundaki sesli bildirim özellik isteği (#4310) 74 beğeni topladı ve bir maintainer, önceliğini “kaç kişinin önemsediğini yansıtmak için” yükseltti. Daha sonraki bir tartışma (#13313) durumu basitçe özetledi: “I can never tell when it is done.” (Ne zaman bittiğini asla anlayamıyorum.)

Yerleşik bildirimleri aç

Gemini CLI'ın deneysel bir bildirim özelliği var. Varsayılan olarak devre dışıdır. CLI'da /settings → General → Enable Notifications ile veya ayar dosyanda aç:

~/.gemini/settings.jsonKopyala
{
"general": {
"enableNotifications": true
}
}

Açıldıktan sonra Gemini CLI seni iki event için uyarır:

  • Eylem gerekli: model senin girdini veya araç onayını bekliyor.
  • Oturum tamamlandı: bir oturum başarıyla bitti.

Bildirim başlıkları “Gemini CLI needs your attention” ve “Gemini CLI session complete” şeklindedir. Gemini CLI kendi başına ses çalmaz: terminaline bir kaçış dizisi gönderir ve ne olacağına terminal karar verir.

Bildirim sana nasıl ulaşır (ve Windows neden farklıdır)

İkinci bir ayar, general.notificationMethod, uyarının nasıl gönderileceğini seçer. Değerler auto (varsayılan), osc9, osc777 ve bell şeklindedir.

Bildirimler sayfası, CLI'ın OSC 9 kaçış dizisini kullandığını ve terminal ziline geri döndüğünü söylüyor. Kaynak kod daha net. auto modunda (packages/cli/src/utils/terminalNotifications.ts):

Terminalauto modunun gönderdiği
iTerm2OSC 9 (bir masaüstü bildirimi)
Windows Terminal, VS Code terminali, Alacritty, Apple TerminalSadece zil (BEL)
Diğer tüm terminallerOSC 777

Yani Windows Terminal'de bir toast bildirimi değil, zil alırsın. Zilin ne yapacağı bir Windows Terminal ayarıdır: bellStyle, all, audible, window, taskbar ve none değerlerini kabul eder ve varsayılan değer audible olur. all ile Windows Terminal bir ses çalar ve görev çubuğu simgesini yanıp söndürür; sesi bellSound ile seçebilirsin.

Windows Terminal settings.json (profil)Kopyala
{
"bellStyle": "all"
}

Zil yerine gerçek bir masaüstü bildirimi denemek istiyorsan yöntemi zorla:

~/.gemini/settings.jsonKopyala
{
"general": {
"enableNotifications": true,
"notificationMethod": "osc9"
}
}

Bir terminalin OSC 9'u Windows bildirimine dönüştürüp dönüştürmemesi terminal sürümüne bağlıdır. Hiçbir şey görünmezse auto veya bell değerine geri dön ve bellStyle: "all" kullan. Zil, Gemini CLI'ın kendi kodunun Windows Terminal için seçtiği yoldur.

tmux veya screen içinde Gemini CLI diziyi bir passthrough kaçış dizisine sarar, böylece dizi yine de dıştaki terminale ulaşır.

Hook'larla kendi sesin

Belirli bir ses, bir açılır pencere veya telefonuna bir mesaj istiyorsan hook kullan. Gemini CLI hook komutlarını sabit noktalarda çalıştırır ve bitmelerini bekler. Burada iki event önemli:

  • Notification, CLI bir sistem uyarısı ürettiğinde tetiklenir. Bugün tek tür ToolPermission (bir araç onayını bekliyor). Hook hiçbir şeyi onaylayamaz veya engelleyemez; sadece bilgilendiricidir.
  • AfterAgent, modelin son cevabından sonra her turda bir kez tetiklenir. Gemini'nin kendi en iyi uygulamalar sayfası bunu “you only need to check the final completion” (sadece son tamamlanmayı kontrol etmen gerekiyorsa) durumunda öneriyor.

Hook'lar varsayılan olarak açıktır (hooksConfig.enabled). Bir hook stdout'a tam olarak bir JSON nesnesi yazdırır, başka hiçbir şey yazdırmaz (söyleyecek bir şeyin yoksa {} yeterli). Çıkış kodu 0 başarı demektir; 2 engeller (ve sadece engelleyen event'lerde önemlidir); diğer her şey bir uyarıdır ve CLI devam eder. Varsayılan zaman aşımı 60 saniyedir (timeout milisaniye cinsindendir).

Windows (PowerShell)

Windows'ta Gemini CLI hook komutlarını pwsh -NoProfile -Command ile, PowerShell 7 kurulu değilse powershell.exe ile çalıştırır. Bu script'i %USERPROFILE%\.gemini\hooks\ding.ps1 olarak kaydet:

~/.gemini/hooks/ding.ps1Kopyala
# Two short beeps: frequency in Hz, duration in ms
[Console]::Beep(880, 150)
[Console]::Beep(1320, 150)
 
# Hooks must print one JSON object
"{}"

Sonra iki event'i de ona yönlendir:

~/.gemini/settings.jsonKopyala
{
"general": { "enableNotifications": true },
"hooks": {
"Notification": [
{ "matcher": "*", "hooks": [ { "name": "ding-approval", "type": "command",
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File $HOME\\.gemini\\hooks\\ding.ps1" } ] }
],
"AfterAgent": [
{ "matcher": "*", "hooks": [ { "name": "ding-done", "type": "command",
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File $HOME\\.gemini\\hooks\\ding.ps1" } ] }
]
}
}

-ExecutionPolicy Bypass en yaygın hatayı önler: PowerShell'in script çalıştırmayı reddetmesini. Gemini dokümanları kalıcı çözüm olarak Set-ExecutionPolicy RemoteSigned -Scope CurrentUser öneriyor.

macOS ve Linux

Diğer sistemlerde hook'lar bash -c ile çalışır. Tek satırlık bir script işi görür:

~/.gemini/hooks/ding.shKopyala
#!/usr/bin/env bash
cat > /dev/null # drain the event JSON
afplay /System/Library/Sounds/Glass.aiff 2>/dev/null \
|| paplay /usr/share/sounds/freedesktop/stereo/complete.oga 2>/dev/null
echo '{}'

Onu çalıştırılabilir yap (chmod +x ~/.gemini/hooks/ding.sh) ve aynı iki event'te "command": "$HOME/.gemini/hooks/ding.sh" kullan.

Biri “onay gerekiyor”, diğeri “bitti” için iki farklı ses mi istiyorsun? İki script yaz. Bir hook event'i stdin'den de okuyabilir: Notification girdisi notification_type, message ve details alanlarını taşır, yani açılır pencerende asıl isteği gösterebilirsin.

Hook'un neden çalışmıyor

  1. /hooks panel komutuna bak. Gemini CLI'ın yüklediği her hook'u listeler. Devre dışı bırakıldılarsa /hooks enable-all onları yeniden açar.
  2. Güvenilmeyen klasör. Güvenilmeyen bir klasörde Gemini CLI projenin .gemini/settings.json dosyasını yok sayar, yani proje hook'ları yüklenmez. Bildirim hook'larını her yerde çalışsınlar diye kullanıcı ayarlarına (~/.gemini/settings.json) koy.
  3. Değişen hook'lar yeni sayılır. Gemini CLI proje hook'larının parmak izini alır; bir hook'un adı veya komutu değişirse yeni ve güvenilmeyen bir hook olarak kabul edilir.
  4. Stdout'ta başka bir şey var. JSON'un önündeki başıboş bir echo veya bir PowerShell uyarısı ayrıştırmayı bozar. Logları stderr'e gönder.
  5. Matcher'lar. Notification ve AfterAgent için her şeyle eşleşmesi adına "*" (veya boş bir metin) kullan. Yaşam döngüsü event'leri tam metin matcher'ları, araç event'leri düzenli ifadeler kullanır.

Ya da daha az soru gelsin

Bildirimler daha hızlı cevap vermene yardım eder; Gemini CLI'ın sana ne sıklıkla ihtiyaç duyduğunu da azaltabilirsin. general.defaultApprovalMode değeri default (sorar), auto_edit (düzenlemeler onaylanır, geri kalan her şey sorar) veya plan (salt okunur) olabilir. Shift+Tab bunlar arasında geçiş yapar. tools.allowed onay iletişim kutusunu atlayan araçları listeler (örneğin run_shell_command(git)), tools.confirmationRequired ise her zaman sorması gereken araçları listeler.

YOLO modu (--yolo veya Ctrl+Y) her şeyi onaylar ve sandbox'ı varsayılan olarak açar. Sadece komut satırından etkinleştirilebilir; makineyi paylaşıyorsan security.disableYoloMode onu kalıcı olarak kapatır.

Pet Island'ın yeri

Bir bip sesi bir şey olduğunu söyler; hangi terminal olduğunu veya Gemini'nin ne çalıştırmak istediğini söylemez. Pet Island, Gemini CLI'ı diğer ajanlarının yanında ekranının üstündeki küçük bir adaya koyar: ne zaman çalıştığını, ne zaman onayını beklediğini ve ne zaman bittiğini görürsün; doğru terminale geçmek için tek tık yeter.

Gemini CLI'da onayın kendisi yine Gemini içinde gerçekleşir. Pet Island isteği gösterir ve seni oraya götürür, ama Gemini'nin araçlarını senin yerine onaylamaz. (Buna karşılık Claude Code ve Codex isteklerine doğrudan adadan cevap verilebilir.)

SSS

Gemini CLI'ın bildirimleri var mı?

Evet, varsayılan olarak kapalı olan deneysel bir özellik olarak. ~/.gemini/settings.json dosyasında general.enableNotifications değerini true yap veya /settings → General → Enable Notifications yolunu kullan.

Gemini CLI Windows'ta neden sadece bip sesi çıkarıyor?

Auto modunda Gemini CLI'ın kodu Windows Terminal'e ve VS Code terminaline sadece terminal zilini gönderir. Windows Terminal'in bellStyle ayarı, o zilin ses mi çalacağını, görev çubuğunu mu yanıp söndüreceğini yoksa ikisini birden mi yapacağını belirler.

Bir Gemini CLI hook'u bir aracı otomatik olarak onaylayabilir mi?

Notification hook'u onaylayamaz. Dokümanlar onun uyarıları engelleyemeyeceğini veya izin veremeyeceğini söylüyor. Araçları önceden onaylamak için bunun yerine tools.allowed ayarını veya politika motorunu (policy engine) kullan.

Gemini CLI bittiğinde hangi hook tetiklenir?

AfterAgent. Modelin son cevabından sonra her turda bir kez tetiklenir.

Hook'ları her projede çalışsınlar diye nereye koymalıyım?

Kullanıcı ayarlarına, yani ~/.gemini/settings.json dosyasına. Güvenilmeyen klasörlerde proje ayarları yok sayılır.

Kaynaklar

Bu sayfadaki her ayar ve davranış 26 Ekim 2026 tarihinde bu sayfalarla karşılaştırılarak kontrol edildi. Ajanlar hızlı değişir; bir şey artık uyuşmuyorsa geçerli olan resmi sayfadır.

OKUMAYA DEVAM ET

Tüm ajanlarına ekranının üstünden cevap ver.

Windows ve Mac · 7 gün ücretsiz, sonra tek seferlik $8.99 · Her satıştan $1 sokak hayvanlarını besler

Pet Island'ı ücretsiz dene