Терминалы IDE в VS Code, Cursor и JetBrains по умолчанию не получают уведомлений на рабочем столе от Claude Code, потому что Claude Code отправляет их только в iTerm2, Ghostty и Kitty. Чтобы получать оповещения, либо установите "preferredNotifChannel": "terminal_bell" и позвольте IDE обрабатывать звонок, либо добавьте в ~/.claude/settings.json hook Notification, который показывает уведомление на рабочем столе или отправляет push. Hooks срабатывают и во встроенном терминале, и в панели чата расширения VS Code, поскольку оба читают один и тот же файл настроек.
01Почему IDE молчит
Встроенное оповещение Claude Code зависит от терминала, в котором он запущен. С настройкой по умолчанию уведомление на рабочем столе появляется только в iTerm2, Ghostty и Kitty, а в документации Anthropic по терминалам встроенный терминал VS Code прямо назван среди тех, что их не получают. Терминалы JetBrains в том же положении. Все значения preferredNotifChannel описаны в руководстве по звонку терминала.
Запустить Claude Code в VS Code и Cursor можно двумя способами, и разница важна:
claude во встроенном терминале~/.claude/settings.json~/.claude/settings.json (тот же файл)IDE от JetBrains (IntelliJ IDEA, PyCharm, WebStorm, GoLand, Android Studio и другие) ведут себя как в правой колонке: плагин Claude Code запускает claude во встроенном терминале IDE и подключается к нему.
02Вариант 1: terminal bell
Если claude запущен во встроенном терминале, добавьте в ~/.claude/settings.json:
{
"preferredNotifChannel": "terminal_bell"
}
После этого Claude Code будет отправлять символ bell, когда ему нужно Ваше участие. Дальнейшее зависит от IDE. VS Code и Cursor обрабатывают terminal bell через настройки сигналов специальных возможностей (accessibility signals): найдите в Settings «terminal bell» и выберите звук. В IDE от JetBrains проверьте настройки терминала для Вашей версии IDE. Сигнал легко пропустить без наушников или когда IDE в фоне, поэтому большинство переходит к варианту 2.
03Вариант 2: Notification hook
Hook запускает любую указанную Вами команду и работает в любой IDE — и в терминале, и в панели чата VS Code. Этот пример показывает уведомление на рабочем столе в macOS:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
В Linux используйте notify-send 'Claude Code' 'Claude Code needs your attention', а в Windows — команду PowerShell; проверенные варианты есть в руководстве по Linux и руководстве по Windows. Если в macOS osascript ничего не показывает, откройте System Settings > Notifications и разрешите уведомления для Script Editor — именно от этого приложения приходят уведомления osascript.
В расширении для VS Code hooks можно просмотреть, не открывая файл: откройте раздел Customize и выберите Hooks — там отображаются загруженные в сессии hooks, сгруппированные по событиям (Claude Code v2.1.269 или новее).
Чтобы получать уведомление сразу, как только Claude закончит, а не когда он ждёт, добавьте ещё и hook Stop. В руководстве по уведомлениям о завершении работы Claude показаны оба вместе.
В расширении для VS Code тайминг другой
В терминале уведомление permission_prompt ждёт, пока prompt не простоит около шести секунд без нажатий клавиш, и каждое нажатие откладывает его. В расширении для VS Code (и в Claude Desktop), согласно документации Anthropic, оно срабатывает примерно через шесть секунд после запроса Claude, не откладываясь при наборе текста, и вовсе не срабатывает, если Вы ответили раньше. Если во время работы в панели это мешает, задайте переменную окружения CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS=1, чтобы отключить его там. В руководстве по Notification hook перечислены все типы уведомлений и условия их срабатывания.
04Удалённые окна: SSH, WSL, dev-контейнеры и JetBrains Remote Development
Именно здесь уведомления в IDE чаще всего ломаются. Когда окно VS Code или Cursor подключено к SSH-хосту, WSL или dev-контейнеру, Claude Code работает на той системе и читает ~/.claude/settings.json там, а не на Вашем ноутбуке. Hooks тоже выполняются там. В итоге команде вроде osascript или notify-send негде показать уведомление, и она молча завершается с ошибкой.
С JetBrains Remote Development то же самое: плагин Claude Code нужно установить на удалённый хост, и Claude Code работает там.
Что работает вместо этого:
- WSL в Windows: hook может вызвать
powershell.exeчерез interop Windows, если он есть вPATHвнутри WSL. - SSH-хосты и контейнеры: отправляйте оповещение по сети туда, где Вы его увидите, например в ntfy или через webhook Telegram, Slack или Discord. Варианты описаны в руководстве по SSH.
05Используйте внешний терминал с /ide
Если Вам нужно встроенное уведомление на рабочем столе, запускайте Claude Code в iTerm2, Ghostty или Kitty и подключайте его к IDE командой /ide. Просмотр diff и передача выделения по-прежнему работают через IDE, а оповещения приходят от внешнего терминала. В iTerm2 сначала нужно включить настройки оповещений, как описано в руководстве по terminal bell.
06Что ещё полезно знать
- Shift+Enter: в VS Code и Cursor один раз выполните
/terminal-setup, чтобы Shift+Enter вставлял перенос строки. В терминалах JetBrains это недоступно; используйте Ctrl+J или\и затем Enter. - Remote Control: Remote Control от Anthropic можно запустить из расширения для VS Code командой
/remote-controlи следить за сессией в мобильном приложении Claude. У него свои требования к тарифу и входу в аккаунт; см. сравнение. - Несколько окон: если Claude Code запущен в нескольких окнах IDE, добавьте в оповещение папку проекта, чтобы было понятно, какое окно ждёт Вас. Входные данные hook содержат
cwd. См. работу с несколькими сессиями.
07Место Claude Code Notifier
Hook Notification с системным инструментом уведомлений — хорошее бесплатное решение, если Вы сидите за IDE. Но он не поможет, когда Вы отошли от экрана, и не позволяет ответить.
ccn от Claude Code Notifier — тоже hook, поэтому в терминалах IDE он работает так же, как в любом другом терминале, на Mac, Windows и Linux. Сам по себе он показывает уведомление на рабочем столе, когда Claude заканчивает работу, запрашивает разрешение или задаёт вопрос. Если подключить телефон, можно разрешить запрос один раз, разрешить на всю сессию или отклонить, выбрать ответ на вопрос Claude и отправить следующую инструкцию прямо с телефона. Если Вы печатали в последние 30 секунд, терминал спрашивает как обычно и на телефоне ничего не ждёт. Push-уведомления на телефон идут через relay, а не через локальный рабочий стол, поэтому если установить ccn на удалённую машину, к которой подключено окно IDE, телефон всё равно получит оповещения. Claude Code Notifier — независимый продукт, не связанный с Anthropic. См. страницу ccn и подключение телефона.
08FAQ
Почему Claude Code не присылает уведомления в VS Code?
Встроенный терминал VS Code не получает встроенное уведомление Claude Code. Задайте "preferredNotifChannel": "terminal_bell" или добавьте hook Notification в ~/.claude/settings.json, затем начните новую сессию.
Работают ли hooks в расширении Claude Code для VS Code?
Да. Claude Code генерирует в расширениях IDE те же события hooks, что и в терминале, а расширение и CLI используют общий ~/.claude/settings.json. В разделе Customize расширения hooks можно просматривать и редактировать.
Работает ли это в Cursor?
Да. В Cursor можно установить то же расширение Claude Code, а claude работает в его встроенном терминале так же, как в VS Code. Всё сказанное выше применимо и здесь.
Мой hook работает локально, но не в окне Remote SSH. Почему?
В удалённом окне Claude Code и его hooks выполняются на удалённой машине, где нет рабочего стола. Отредактируйте ~/.claude/settings.json на этой машине и используйте сетевой push, например ntfy, вместо команды для рабочего стола.