SpyBara
Go Premium

terminal-config.md 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

This page contains 1 addition and 1 deletion.

2026
Thu 10 23:00 Sat 12 03:02 Mon 14 22:58 Fri 18 23:58 Tue 22 23:59 Fri 25 23:58

Настройте ваш терминал для Claude Code

Исправьте Shift+Enter для новых строк, получайте звуковой сигнал терминала при завершении Claude, настройте tmux, сопоставьте цветовую схему и включите режим Vim в CLI Claude Code.

Claude Code работает в любом терминале без конфигурации. Эта страница предназначена для случаев, когда что-то конкретное ведёт себя не так, как вы ожидаете. Найдите вашу проблему ниже. Если всё уже работает правильно, вам не нужна эта страница.

Эта страница посвящена тому, чтобы ваш терминал отправлял правильные сигналы в Claude Code. Чтобы изменить, на какие клавиши реагирует сам Claude Code, см. вместо этого сочетания клавиш.

Ввод многострочных подсказок

Нажатие Enter отправляет ваше сообщение. Чтобы добавить разрыв строки без отправки, нажмите Ctrl+J или введите \ и затем нажмите Enter. Оба способа работают в любом терминале без настройки.

В большинстве терминалов вы также можете нажать Shift+Enter, но поддержка зависит от эмулятора терминала:

Терминал Shift+Enter для новой строки
Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal Работает без настройки
Другие терминалы, поддерживающие протокол клавиатуры kitty, такие как foot и Alacritty 0.16 или позже Работает без настройки. Требуется Claude Code v2.1.269 или позже
VS Code, Cursor, Devin Desktop, Alacritty до версии 0.16, Zed Запустите /terminal-setup один раз
gnome-terminal, JetBrains IDEs такие как PyCharm и Android Studio Недоступно; используйте Ctrl+J или \ затем Enter

Для VS Code, Cursor, Devin Desktop, Alacritty до версии 0.16 и Zed, /terminal-setup записывает сочетание клавиш Shift+Enter в файл конфигурации терминала. При первом запуске вы видите подтверждение, например Installed VSCode terminal Shift+Enter key binding. Существующие сочетания клавиш остаются на месте; если вы видите сообщение, например VSCode terminal Shift+Enter key binding already configured, изменений не было внесено. Запустите /terminal-setup непосредственно в хост-терминале, а не внутри tmux или screen, так как ему нужно записать в конфигурацию хост-терминала.

В VS Code, Cursor и Devin Desktop, /terminal-setup также обновляет два параметра редактора: он устанавливает terminal.integrated.gpuAcceleration на "off" для предотвращения искажённого текста в интегрированном терминале и устанавливает terminal.integrated.mouseWheelScrollSensitivity для более плавной прокрутки в полноэкранном режиме. Чтобы отменить изменение ускорения GPU, установите его обратно на "auto" и перезагрузите окно редактора.

В Zed, /terminal-setup обновляет ваш keymap.json на месте:

  • Если keymap уже содержит сочетания клавиш и ни одно из них не является Terminal shift-enter, Claude Code сначала создаёт его резервную копию в том же каталоге, например keymap.json.1a2b3c4d.bak, затем объединяет сочетание клавиш Shift+Enter в ваш keymap, сохраняя ваши другие сочетания клавиш и комментарии
  • Если Claude Code не может прочитать или разобрать keymap, не может создать резервную копию или не может проверить объединённый результат, он оставляет файл без изменений и выводит блок сочетания клавиш для добавления вручную

Если вы работаете внутри tmux, Shift+Enter также требует конфигурацию tmux ниже даже когда внешний терминал её поддерживает.

Чтобы привязать новую строку к другой клавише или поменять поведение так, чтобы Enter вставлял новую строку, а Shift+Enter отправлял, сопоставьте действия chat:newline и chat:submit в вашем файле сочетаний клавиш.

Включение сочетаний клавиш с клавишей Option на macOS

Некоторые сочетания клавиш Claude Code используют клавишу Option, например Option+Enter для новой строки или Option+P для переключения моделей. На macOS большинство терминалов по умолчанию не отправляют Option в качестве модификатора, поэтому эти сочетания клавиш не работают, пока вы их не включите. Параметр терминала для этого обычно называется "Use Option as Meta Key"; Meta — это историческое название Unix для клавиши, которая теперь называется Option или Alt.

Откройте Settings → Profiles → Keyboard и установите флажок "Use Option as Meta Key".

Если вы приняли приглашение Claude Code для первоначальной настройки терминала, это уже сделано. Это приглашение запускает /terminal-setup для вас, что включает Option как Meta и отключает звуковой сигнал в вашем профиле Apple Terminal.

В режиме чтения с экрана /terminal-setup оставляет параметр звонка без изменений, чтобы звонок терминала оставался слышимым. До версии 2.1.211 /terminal-setup отключал звонок даже в режиме чтения с экрана. Если более ранний запуск отключил звонок, включите его снова в Settings → Profiles → Advanced → "Audible bell".

Для Ghostty, Kitty и других терминалов ищите параметр Option-as-Alt или Option-as-Meta в файле конфигурации терминала.

Получение звонка терминала или уведомления

Когда Claude завершает задачу или ждёт разрешения, и вы, похоже, отошли от терминала, он отправляет событие уведомления. Смотрите когда срабатывает каждый тип уведомления для точного времени. Отображение этого как звонка терминала или уведомления рабочего стола позволяет вам переключиться на другую работу, пока выполняется длительная задача.

По умолчанию Claude Code отправляет уведомление рабочего стола только в Ghostty, Kitty и iTerm2. В других терминалах установите preferredNotifChannel на "terminal_bell" для звонка терминала, или настройте Notification hook для пользовательского звука или команды. Следующая запись параметров включает звонок терминала:

{
  "preferredNotifChannel": "terminal_bell"
}

Уведомление рабочего стола достигает вашей локальной машины через SSH, поэтому удалённый сеанс всё ещё может вас оповестить. Ghostty и Kitty перенаправляют его в центр уведомлений вашей ОС без дополнительной настройки. iTerm2 требует включения перенаправления:

1

Откройте параметры уведомлений iTerm2

Перейдите в Settings → Profiles → Terminal.

2

Включите оповещения

Установите флажок "Notification Center Alerts", затем нажмите "Filter Alerts" и включите "Send escape sequence-generated alerts".

Если уведомления по-прежнему не появляются, убедитесь, что приложение вашего терминала имеет разрешение на уведомления в параметрах ОС, и если вы работаете внутри tmux, включите passthrough.

Воспроизведение звука с помощью Notification hook

В любом терминале вы можете настроить Notification hook для воспроизведения звука или запуска пользовательской команды, когда Claude нуждается в вашем внимании. Hooks работают наряду со встроенным уведомлением, а не заменяют его, поэтому терминалы, которые не получают уведомление рабочего стола, такие как Warp или встроенный терминал VS Code, могут использовать hook или установить preferredNotifChannel на "terminal_bell" вместо этого.

Пример ниже воспроизводит системный звук на macOS. Связанное руководство содержит команды уведомлений рабочего стола для macOS, Linux и Windows.

{
  "hooks": {
    "Notification": [
      {
        "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
      }
    ]
  }
}

Настройка tmux

Когда Claude Code работает внутри tmux, по умолчанию Shift+Enter отправляет вместо вставки новой строки, и уведомления рабочего стола и индикатор прогресса никогда не достигают внешнего терминала. Добавьте эти строки в ~/.tmux.conf, затем запустите tmux source-file ~/.tmux.conf, чтобы применить их к работающему серверу:

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

Строка allow-passthrough позволяет уведомлениям и обновлениям прогресса достигать внешнего терминала вместо того, чтобы быть поглощенными tmux. Строки extended-keys позволяют tmux различать Shift+Enter и простой Enter, чтобы сочетание клавиш для новой строки работало.

Исправление удаления целого слова при нажатии Backspace на Windows

На Windows Claude Code читает Backspace, поступающий как ^H, как Ctrl+Backspace, который удаляет предыдущее слово, за исключением случаев, когда TERM_PROGRAM имеет значение mintty или TERM имеет значение cygwin. На macOS и Linux Claude Code читает его как обычный Backspace.

Если каждое нажатие Backspace удаляет целое слово, ваш терминал отправляет ^H для обычного Backspace. Установите CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0. Backspace и Ctrl+H затем стирают по одному символу каждый. Если Ctrl+Backspace стирает только один символ на macOS или Linux, потому что ваш терминал отправляет ^H для него, установите переменную на 1 вместо этого.

Подберите цветовую тему

Используйте команду /theme или средство выбора темы в /config, чтобы выбрать тему Claude Code, которая соответствует вашему терминалу. Выбор опции auto автоматически определяет светлый или тёмный фон вашего терминала, поэтому тема следует изменениям внешнего вида ОС всякий раз, когда это делает ваш терминал. Claude Code не контролирует собственную цветовую схему терминала, которая устанавливается приложением терминала.

Чтобы настроить, что отображается в нижней части интерфейса, настройте пользовательскую строку состояния, которая показывает текущую модель, рабочий каталог, ветку git или другой контекст.

Создайте пользовательскую тему

Помимо встроенных предустановок, /theme отображает все определённые вами пользовательские темы и любые темы, предоставленные установленными plugins. Выберите New custom theme… в конце списка, чтобы создать её интерактивно: вы назовёте тему, а затем выберете отдельные цветовые токены для переопределения. Нажмите Ctrl+E, пока выделена пользовательская тема, чтобы отредактировать её.

Каждая пользовательская тема — это JSON-файл в ~/.claude/themes/. Имя файла без расширения .json — это слаг темы, а выбор темы сохраняет custom:<slug> как ваше предпочтение темы. Файл имеет три необязательных поля:

Поле Тип Описание
name string Метка отображения, показываемая в /theme. По умолчанию используется слаг имени файла
base string Встроенная предустановка, с которой начинается тема: dark, light, dark-daltonized, light-daltonized, dark-ansi или light-ansi. По умолчанию dark
overrides object Карта имён цветовых токенов на значения цветов. Токены, не указанные здесь, переходят к базовой предустановке

Значения цветов принимают #rrggbb, #rgb, rgb(r,g,b), ansi256(n) или ansi:<name>, где <name> — одно из 16 стандартных имён цветов ANSI, таких как red или cyanBright. Неизвестные токены и недопустимые значения цветов игнорируются, поэтому опечатка не может нарушить отрисовку.

Следующий пример определяет тему, которая сохраняет тёмную предустановку, но перекрашивает акцент приглашения, текст ошибки и текст успеха:

{
  "name": "Dracula",
  "base": "dark",
  "overrides": {
    "claude": "#bd93f9",
    "error": "#ff5555",
    "success": "#50fa7b"
  }
}

Claude Code отслеживает ~/.claude/themes/ и перезагружается при добавлении или изменении файла, поэтому изменения, внесённые в вашем редакторе, применяются к работающему сеансу без перезагрузки. Если папка ~/.claude/themes/ не существовала при запуске Claude Code, перезагрузитесь один раз после создания первого файла темы. После этого изменения применяются без перезагрузки.

Справочник ниже охватывает токены, которые вы можете установить в overrides. Интерактивный редактор в /theme показывает те же токены с живым предпросмотром, плюс несколько специализированных акцентов, таких как цвета экрана адаптации, которые здесь опущены.

Справочник цветовых токенов

Следующий пример объединяет токены из нескольких групп ниже: фирменный акцент, границу режима плана, фоны diff и фон сообщения.

{
"name": "Midnight",
"base": "dark",
"overrides": {
"claude": "#a78bfa",
"planMode": "#38bdf8",
"diffAdded": "#14532d",
"diffRemoved": "#7f1d1d",
"userMessageBackground": "#1e1b4b"
}
}

Цвета текста и акцентов

Управляйте основным фирменным акцентом и оттенками переднего плана текста, используемыми во всём интерфейсе.

Токен Управляет
claude Основной фирменный акцент, используемый для спиннера и метки помощника
text Текст переднего плана по умолчанию
inverseText Текст, нарисованный поверх цветного фона, такой как значки статуса
inactive Вторичный текст, такой как подсказки, временные метки и отключённые элементы
subtle Слабые границы и приглушённый вторичный текст
suggestion Предложения автодополнения и выделение выбора в средствах выбора
permission Границы диалога, включая запросы разрешений и средства выбора
remember Индикаторы памяти и CLAUDE.md

Цвета статуса

Сигнализируйте об успехе, отказе и состояниях предупреждения в сообщениях и индикаторах.

Токен Управляет
success Сообщения об успехе и прошедшие проверки
error Сообщения об ошибках и отказы
warning Предупреждения, сообщения о предостережении и граница режима auto
merged Статус объединённого запроса на слияние

Поле ввода и индикаторы режима

Установите цвет границы поля ввода и акцент, отображаемый при активном режиме разрешения или индикаторе.

Токен Управляет
promptBorder Граница поля ввода
planMode Акцент режима Plan mode, сообщения режима плана и диалоги режима плана
autoAccept Акцент режима Accept-edits
bashBorder Граница поля ввода при вводе команды оболочки !
ide Индикатор подключения IDE
fastMode Индикатор режима Fast mode
effortUltra Тег ultracode на границе поля ввода, пока ultracode включён. Ваше переопределение этого цвета вступает в силу в Claude Code v2.1.239 или позже

Отрисовка diff

Раскрасьте добавленный и удалённый код в правках и рецензиях файлов.

Токен Управляет
diffAdded Фон добавленных строк
diffRemoved Фон удалённых строк
diffAddedDimmed Фон добавленных строк в приглушённом diff, показываемом после отклонения правки
diffRemovedDimmed Фон удалённых строк в приглушённом diff, показываемом после отклонения правки
diffAddedWord Выделение на уровне слова в добавленной строке
diffRemovedWord Выделение на уровне слова в удалённой строке

Полноэкранный режим

Claude Code рисует userMessageBackground, bashMessageBackgroundColor и memoryBackgroundColor как в средстве отрисовки по умолчанию, так и в полноэкранном. Он использует userMessageBackgroundHover и selectionBg только в режиме полноэкранной отрисовки.

Токен Управляет
userMessageBackground Фон позади ваших сообщений в стенограмме
userMessageBackgroundHover Фон позади сообщения при наведении или развёртывании
bashMessageBackgroundColor Фон позади записей команд оболочки ! в стенограмме
memoryBackgroundColor Фон позади записей памяти # в стенограмме
selectionBg Фон текста, выбранного мышью

Счётчик использования и метки динамика

Отрегулируйте полосу, показываемую в представлении /usage, и метки, которые отличают ваши сообщения от сообщений Claude.

Токен Управляет
rate_limit_fill Заполненная часть счётчика использования
rate_limit_empty Незаполненная часть счётчика использования
briefLabelYou Цвет метки You на ваших сообщениях
briefLabelClaude Цвет метки Claude на сообщениях помощника

Варианты shimmer и цвета подагентов

Несколько токенов имеют парный вариант shimmer, который предоставляет более светлый цвет, используемый в анимированном градиенте спиннера. Переопределите shimmer вместе с его базовым токеном, если анимация выглядит несовместимой.

  • claude и claudeShimmer
  • warning и warningShimmer
  • permission и permissionShimmer
  • promptBorder и promptBorderShimmer
  • inactive и inactiveShimmer
  • fastMode и fastModeShimmer

Каждый subagent и параллельная задача отображаются в одном из восьми именованных цветов, чтобы вы могли отличить их в стенограмме. Имена токенов следуют шаблону <color>_FOR_SUBAGENTS_ONLY, где <color> — это red, blue, green, yellow, purple, orange, pink или cyan. Переопределите их, чтобы изменить внешний вид каждого именованного цвета. Например, подагент с color: blue в его определении отрисовывается с использованием значения blue_FOR_SUBAGENTS_ONLY.

Claude Code отрисовывает ключевое слово ultrathink во входных данных приглашения с семицветным радужным градиентом. Имена токенов следуют шаблону rainbow_<color> и rainbow_<color>_shimmer, где <color> — это red, orange, yellow, green, blue, indigo или violet.

Переключение на полноэкранный рендеринг

В режиме чтения с экрана этот раздел не применяется. Claude Code всегда отображается как обычный прокручиваемый текст, кроме присоединённых фоновых сеансов, и если вы запустите /tui fullscreen в любом другом сеансе, Claude Code выведет объяснение вместо переключения.

Если дисплей мерцает или позиция прокрутки прыгает во время работы Claude, переключитесь на режим полноэкранного рендеринга. В этом режиме вы прокручиваете с помощью мыши или PageUp внутри Claude Code, а не с помощью встроенной прокрутки вашего терминала; см. страницу полноэкранного режима для получения информации о поиске и копировании.

Если мерцание — единственная проблема и ваш терминал поддерживает синхронизированный вывод, но не определяется автоматически, например Emacs eat, установите CLAUDE_CODE_FORCE_SYNC_OUTPUT=1, чтобы остановить мерцание без изменения рендеров.

Запустите /tui fullscreen для переключения и сохранения предпочтения. Ваш разговор перезапустится в целости и сохранности, и будущие сеансы начнутся в полноэкранном режиме, если только полноэкранный запуск не завершится ошибкой. Вы также можете установить переменную окружения CLAUDE_CODE_NO_FLICKER перед запуском Claude Code:

CLAUDE_CODE_NO_FLICKER=1 claude

Вставка большого содержимого

Когда вы вставляете более 800 символов или более трёх строк в подсказку, Claude Code сворачивает ввод в заполнитель, например [Pasted text #1 +120 lines], чтобы поле ввода оставалось удобным для использования. В окне терминала высотой менее 12 строк лимит строк снижается, поэтому Claude Code сворачивает трёхстрочную вставку при 11 строках и любую многострочную вставку при 10 строках или меньше. Claude Code по-прежнему отправляет полное содержимое при отправке.

Когда вы удаляете с помощью сочетания клавиш для слова или строки, такого как Ctrl+W или Ctrl+K, или с помощью удаления vim через движение f/t, такое как df], и удаляемый диапазон достигает внутри заполнителя, Claude Code удаляет заполнитель целиком. Вы можете вставить удаление обратно, чтобы восстановить его, с помощью Ctrl+Y после сочетания клавиш для слова или строки, или с помощью p в режиме NORMAL после удаления vim.

Claude Code хранит свёрнутое содержимое в ~/.claude/paste-cache/, поэтому когда вы вызываете подсказку из истории команд и повторно отправляете её, Claude Code отправляет полное вставленное содержимое снова, включая в более позднем сеансе, пока развёртка очистки не удалит файл кэша.

Claude Code удаляет файлы кэша старше cleanupPeriodDays, следуя правилам развёртки очистки, поэтому вызванная подсказка может ссылаться на вставленный текст, который больше не существует. Когда вы отправляете такую подсказку, Claude Code никогда не отправляет буквальную строку [Pasted text #N] и показывает уведомление с названием отсутствующей вставки:

  • В простой подсказке с оставшимся текстом Claude Code удаляет заполнитель и отправляет оставшийся текст.
  • В команде режима shell или команде /, где удаление изменило бы то, что выполняется, и в любой подсказке, где удаление оставляет пусто, Claude Code отменяет отправку и сохраняет исходный текст в вводе с заполнителем, всё ещё находящимся в нём. Удалите заполнитель или отредактируйте команду, затем повторно отправьте.

Интегрированный терминал VS Code может отбросить символы из очень больших вставок, прежде чем они достигнут Claude Code, поэтому предпочитайте там рабочие процессы на основе файлов. Для очень больших входных данных, таких как целые файлы или длинные журналы, запишите содержимое в файл и попросите Claude прочитать его вместо вставки. Это сохраняет стенограмму разговора читаемой и позволяет Claude ссылаться на файл по пути в более поздних ходах.

Редактирование подсказок с сочетаниями клавиш Vim

Claude Code включает режим редактирования в стиле Vim для ввода подсказок. Включите его через /config → Editor mode или установив editorMode на "vim" в ~/.claude/settings.json. Установите Editor mode обратно на normal, чтобы отключить его.

Режим Vim поддерживает подмножество движений и операторов режимов NORMAL и VISUAL, таких как навигация hjkl, выделение v/V и d/c/y с текстовыми объектами. Полную таблицу клавиш см. в справочнике режима редактора Vim.

Движения Vim не переназначаются через файл сочетаний клавиш. Чтобы сопоставить двухклавишную последовательность режима INSERT, такую как jj, с Escape, установите vimInsertModeRemaps в параметрах пользователя.

Нажатие Enter по-прежнему отправляет вашу подсказку в режиме INSERT, в отличие от стандартного Vim. Используйте o или O в режиме NORMAL или Ctrl+J, чтобы вставить новую строку.