Claude Code seçenekler arasında karar vermenizi istediğinde AskUserQuestion adlı bir aracı çağırır ve seçiminizi bekler. AskUserQuestion ile eşleşen bir PreToolUse hook'u, soruyu answers alanı doldurulmuş şekilde geri döndürerek sizin yerinize yanıt verebilir. Claude Code'un sorularını telefondan yanıtlamanın yolu budur: bir hook soruyu ve seçeneklerini telefona gönderir, seçiminizi bekler ve geri iletir. Claude Code Notifier bunu Mac, Windows ve Linux'ta ccn aracı ve telefon uygulamasıyla yapar.
01AskUserQuestion nedir
Claude bazen tek başına karar vermemesi gereken bir yol ayrımına gelir. Hangi framework? Eski API kalsın mı, kaldırılsın mı? Test mi düzeltilsin, kod mu? Tahmin etmek yerine kısa, çoktan seçmeli bir soru sorar. Terminalde soruyu ve açıklamalı birkaç seçeneği görür, birini klavyeyle seçersiniz.
Her araç çağrısı gibi AskUserQuestion da önce Claude Code'un hook'larından geçer. Uzaktan yanıt için gereken kapı da burasıdır.
Sorular izin prompt'larından farklıdır. İzin prompt'u tek bir işlem için evet ya da hayır sorar ve onu PermissionRequest hook'u yanıtlar (bkz. Claude Code izin isteklerini telefonunuzdan onaylayın). Soru ise sizden seçim yapmanızı ister; yanıt bir evet değil, bir etikettir.
02Hook yanıtı nasıl verir
Bir PreToolUse hook'u, aracın girdisini standart girdi üzerinden JSON olarak alır. AskUserQuestion için girdide bir questions dizisi bulunur. Her soruda question (metin), header (kısa bir etiket), options (her biri label ve description içerir) ve multiSelect yer alır.
Bu araç için yalnızca "allow" döndürmek yetmez, çünkü yanıtın bir yerden gelmesi gerekir. Anthropic'in hooks referansına göre hook, questions alanını updatedInput içinde aynen geri döndürmeli ve her sorunun metnini seçilen etikete eşleyen bir answers nesnesi eklemelidir:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"updatedInput": {
"questions": [
{
"question": "Which framework?",
"header": "Framework",
"options": [
{ "label": "React", "description": "Component library" },
{ "label": "Vue", "description": "Progressive framework" }
],
"multiSelect": false
}
],
"answers": { "Which framework?": "React" }
}
}
}
Çoklu seçimli bir soruda seçilen etiketleri virgülle birleştirin. Hook hiçbir şey yazdırmazsa soru terminalde her zamanki gibi görünür.
Kaydetme
{
"hooks": {
"PreToolUse": [
{
"matcher": "AskUserQuestion",
"hooks": [
{ "type": "command", "command": "/path/to/your-answer-script" }
]
}
]
}
}
Tüm projeleri kapsamak için bunu ~/.claude/settings.json dosyasına ekleyin. Tüm hook olayları ve her birinin nerede kullanıldığı için Claude Code hook'ları açıklandı yazısına bakın.
Etkileşimsiz çalıştırmalar hakkında bir not
Anthropic'in belgelerine göre claude -p çalıştırmalarında AskUserQuestion yalnızca prompt'u alacak bir izin sağlayıcısı varsa sunulur; örneğin bir Agent SDK canUseTool callback'i. Düz bir script çalıştırmasında Claude hiç soru sormayabilir. Bu rehber etkileşimli oturumlarla ilgilidir.
03İyi bir telefon yanıtı nasıl olmalı
JSON işin kolay kısmı. Tasarım soruları, izin prompt'larında karşılaşılanlarla aynıdır:
- Sorunun tamamını gösterin. Başlık, soru ve her seçeneğin açıklaması önemlidir. Kilit ekranında tek başına bir etiket ("Seçenek B") işe yaramaz.
- Terminali kullanılabilir tutun. Bilgisayarın başındaysanız, telefonunuzu bekleyen bir hook'u beklemek yerine orada yanıt verebilmelisiniz.
- Temiz bir şekilde vazgeçin. Yanıt gelmezse hook, zaman aşımından önce hiçbir şey döndürmemeli ki terminaldeki prompt görünsün.
- Metni birebir eşleştirin.
answersanahtarları, Claude'un yazdığı haliyle soru metni olmalı; değerler ise seçenek etiketleri olmalıdır.
04Claude Code Notifier kullanmak
Claude Code Notifier, TouchTap Ltd tarafından geliştirilen bağımsız bir araçtır; Anthropic tarafından yapılmamıştır. Komut satırı aracı ccn, diğer hook'larıyla birlikte AskUserQuestion için bir PreToolUse hook'u da kurar. Siz uzaktayken Claude bir soru sorduğunda telefonunuz soruyu ve seçeneklerini gösterir. Birine dokunduğunuzda hook yanıtı iletir ve Claude devam eder.
Mac veya Linux'a kurun:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
ya da Windows'ta PowerShell ile (beta):
irm https://claudecodenotifier.com/install.ps1 | iex
Ardından QR kodu tarayarak veya uygulamadaki 6 haneli kodu girerek telefonunuzu eşleştirin. Her işletim sistemi için adımlar Telefonunuzu Claude Code'a bağlayın yazısında anlatılıyor.
Nerede yanıt vereceğinizi varlığınız belirler
ccn, sorular için de izinlerdeki varlık kuralını kullanır. Son 30 saniye içinde yazı yazdıysanız terminal her zamanki gibi sorar, telefona en fazla bir bildirim gider. Uzaktaysanız terminal, sizin belirlediğiniz bir üst sınıra kadar (hold_ceiling_seconds, 30–3600, varsayılan 600) telefonu bekler ve klavyeye dokunduğunuz anda beklemeyi bırakır.
Telefonunuza nelerin geleceğini seçme
Soruların notify_on_permission ve notify_on_done ayarlarından ayrı, kendine ait bir ayarı vardır: notify_on_question. Böylece bir türü açık tutup diğerini kapatabilirsiniz. ccn config show geçerli ayarları listeler; çoğu ayarı telefon uygulamasından bilgisayar bazında da değiştirebilirsiniz.
Sessiz saatler de geçerlidir, örneğin ccn config set quiet_hours 22:00-08:00. Ayrıntılar için Sessiz saatler ve Rahatsız Etmeyin sayfasına bakın.
Eşleştirilmiş bir telefon olmasa da Claude bir soru sorduğunda ccn bilgisayarda ücretsiz bir masaüstü bildirimi gösterir, böylece geri dönmeniz gerektiğini bilirsiniz. Telefondan yanıt vermek için uygulama gerekir; uygulamayı indirmek ücretsizdir, kullanmak için abonelik veya ömür boyu satın alma gerekir. Fiyatlandırmaya göz atın.
05Sorular, devam talimatları ve tamamlanma
Sorular, Claude'un sizi beklediği üç andan biridir. Diğer ikisi izin prompt'ları ve bir turun sonudur. Claude işini bitirdiği anda Claude Code Notifier telefondan bir sonraki talimatı göndermenize de olanak tanır; Stop hook'u bunu Claude'a sonraki talimatı olarak iletir. Bunlar birlikte uzun bir görevi bekleten durumların çoğunu karşılar. Claude Code'u çalışır bırakıp uzaklaşın rehberi hepsini tek bir rutinde birleştirir.
06SSS
Bir seçenek seçmek yerine serbest metinle yanıt verebilir miyim?
Belgelenmiş hook yöntemi, answers alanı üzerinden seçenek etiketleriyle yanıt verir. Claude Code Notifier'da telefondaki seçeneklerden birini seçersiniz. Hiçbiri uymuyorsa soruyu terminale bırakın ya da Claude işini bitirince bir devam talimatıyla yönlendirin.
PreToolUse hook'umun "allow" yanıtı neden soruyu yanıtlamıyor?
Çünkü AskUserQuestion yalnızca izin değil, bir yanıt bekler. Yukarıda gösterildiği gibi, orijinal questions ve bir answers nesnesi içeren updatedInput döndürün.
Claude aynı anda birden fazla soru sorarsa ne olur?
questions dizisi birden fazla soru içerebilir. answers nesnesinde her soru için, sorunun tam metniyle anahtarlanmış bir giriş olmalıdır.
VS Code, Cursor veya JetBrains'te çalışır mı?
Hook terminale değil Claude Code'a aittir, bu yüzden IDE'nin yerleşik terminalinde de tetiklenir. VS Code, Cursor ve JetBrains terminallerinde Claude Code bildirimleri sayfasına bakın.