Получить AX Code · БесплатноДокументация

Эта страница переведена с английской документации. Команды, идентификаторы и примеры не изменены. Среда выполнения 7.24.4 · SDK 2.6.7. Английский оригинал

Звуковые уведомления

Статус: актуально Область: звук и голосовые оповещения TUI AX Code Последняя проверка: 2026-09-12 Владелец: сопровождающие среды выполнения AX Code

TUI может воспроизвести системный звук — или произнести короткую шаблонную фразу — всякий раз, когда AX Code требует вашего внимания:

  • Запрос разрешения — инструмент ждёт вашего одобрения.
  • Вопрос агента — агент задал вам вопрос.
  • Ход завершён — запуск закончился (по умолчанию выключено).
  • Ошибка сессии — ход завершился сбоем.

Звук срабатывает по тем же поводам, что и уведомление терминала (уведомление рабочего стола OSC 9 или звонок терминала, если OSC 9 не поддерживается), и закрыт тем же переключателем notifications.enabled. По умолчанию он выключен; включение не меняет ничего другого в уведомлениях.

Настройка

Задайте notifications.sound в tui.json:

{
  "notifications": {
    "enabled": true,
    "sound": "chime",
    "events": {
      "permission": true,
      "question": true,
      "complete": false,
      "error": true
    }
  }
}
Поле Значения По умолчанию Смысл
enabled логическое значение true Главный переключатель уведомлений терминала и звука.
sound "off", "chime", "speak" "off" chime воспроизводит системный звук; speak синтезирует голос.
voice строка "" Имя голоса платформы (say -v '?' в macOS); пусто = по умолчанию.
rate целое число 0 Темп речи там, где он поддерживается (слов/мин в macOS, 1–500); 0 = по умолчанию.
events.permission логическое значение true Оповещение при запросах разрешений.
events.question логическое значение true Оповещение при вопросах агента.
events.complete логическое значение false Оповещение, когда ход завершается.
events.error логическое значение true Оповещение при ошибках сессии.

Недопустимые значения отбрасываются по полям: плохое значение sound возвращается к "off" и не затрагивает остальные настройки.

Поддержка платформ

Платформа Сигнал Речь Требование
macOS afplay (системный звук) say Встроено.
Windows System.Media.SoundPlayer System.Speech Встроено (PowerShell).
Linux paplay, запасной вариант canberra-gtk-play spd-say, запасной вариант espeak-ng Установите PulseAudio/libcanberra и/или speech-dispatcher/espeak-ng.

Доступность проверяется во время выполнения. Если пригодного бэкенда нет, шаг звука молча пропускается, а уведомление терминала остаётся запасным вариантом. Воспроизведение идёт по очереди (один звук за раз, повторы сливаются), каждое событие оповещает не более одного раза, и интерфейс никогда не ждёт окончания воспроизведения. Безголовые запуски (ax-code run) звук не воспроизводят.

Что произносится

Речь использует только четыре фиксированных шаблона: Approval required: <tool>, Question: <first question>, Session idle: <session title> и AX Code error. Текст обрезается и очищается от управляющих символов. Аргументы инструментов, пути файлов из полезных нагрузок, вывод модели и сообщения об ошибках никогда не произносятся — в этих пределах это безопасно для общих помещений.

Свои звуки через хуки

Для полного контроля (свой звуковой файл, другой текст, дополнительные события) подключите любой проигрыватель через хуки жизненного цикла — это работает и при выключенных звуковых уведомлениях. После согласия через AX_CODE_TRUST_PROJECT_CONFIG=1 создайте .ax-code/hooks.json:

{
  "hooks": [
    { "event": "Stop", "command": "afplay /System/Library/Sounds/Glass.aiff" },
    { "event": "PreToolUse", "matcher": "bash|edit|write", "command": "say 'AX Code needs approval'" }
  ]
}

Используйте проигрыватель своей платформы (afplay в macOS, paplay в Linux, PowerShell [System.Media] в Windows). Команды хуков — фрагменты оболочки: запускайте их и не ждите завершения, чтобы они не задерживали путь жизненного цикла.

Внешний уведомитель

Внешние инструменты (строки состояния, мобильные push-уведомления, приложение рабочего стола) могут подписаться на поток событий сервера и реагировать на permission.asked, question.asked, session.status и session.error — см. Совместимость HTTP и OpenAPI.