SSD Nodes Learn 🎉 VPS от $5.50/мес
Руководства Matt ConnorАвтор: Matt Connor

Настройка outputStyle в Claude Code: руководство

Узнайте, как работают стили вывода в Claude Code и как они меняют системный промпт. Разбираем нюансы обновления настроек через config.json и перезапуск сессии для команд.

Что такое стиль вывода в Claude Code

Стиль вывода в Claude Code — это блок инструкций, который Claude Code добавляет к своему системному промпту. Он меняет способ ответов Claude: роль, которую он принимает, и формат выводимых данных. Это не дает Claude никаких знаний о вашей кодовой базе и не предоставляет ему прав на выполнение каких-либо действий.

Claude Code поставляется с пятью встроенными стилями. Ваш выбор сохраняется в одном ключе настроек, outputStyle, и этот ключ считывается один раз при запуске сессии. Этот факт объясняет большинство недопониманий, связанных с данной функцией: стиль, который вы меняете в середине сессии, сохраняется, но игнорируется до тех пор, пока вы не перезапустите сессию.

На VPS это не просто косметическая настройка. Транскрипт — это то, что вы читаете через SSH-соединение, обычно внутри окна tmux, поэтому каждая строка, которую выводит Claude, — это строка, которую вы ждете, и строка в буфере прокрутки фиксированного размера.

Где находится настройка outputStyle

Выберите стиль в меню /config в разделе Output style. Claude Code записывает ваш выбор в .claude/settings.local.json в проекте, с которым вы работаете.

Отдельная команда /output-style больше не существует. Она была помечена как устаревшая в версии v2.1.73 и удалена в v2.1.91, поэтому в текущей сборке она не выполняет никаких действий. Проверьте используемую версию перед тем, как следовать старым руководствам. Версии на этой странице были проверены в августе 2026 года.

claude --version

Вы также можете задать ключ вручную. Его можно хранить в четырех файлах настроек, при этом более узкий файл имеет приоритет над более широким.

  • ~/.claude/settings.json — ваш пользовательский файл. Он применяется во всех проектах на этой машине.
  • .claude/settings.json — файл проекта. Он фиксируется в git, поэтому применяется ко всем, кто клонирует репозиторий.
  • .claude/settings.local.json — локальный файл проекта. Он не фиксируется в git и переопределяет оба предыдущих файла. Именно в этот файл записывает настройки меню /config.
  • Управляемые настройки, развернутые ИТ-отделом из системного пути, например /etc/claude-code/ в Linux, переопределяют всё остальное.

Значением ключа является имя стиля:

{
  "outputStyle": "Concise"
}

Для одной сессии передайте тот же ключ в командной строке. Флаг --settings принимает путь или встроенную JSON-строку, и его значения переопределяют соответствующие ключи в файлах настроек для данного запуска:

claude --settings '{"outputStyle": "Concise"}'

Названия в меню и слэш-команды менялись как минимум один раз за время существования этой функции. Ключ outputStyle не менялся. Если скриншот в руководстве перестал соответствовать тому, что вы видите, задайте ключ напрямую и подтвердите его с помощью /status, которая выводит список действующих источников настроек.

Почему новый стиль вывода не применяется до очистки сессии

Claude Code формирует системный промпт один раз при запуске сессии, и стиль вывода является его частью. Изменение настроек во время работы сессии сохраняет значение, но не меняет текущее поведение, так как запущенная сессия продолжает использовать промпт, сформированный при старте. Новый стиль загружается при следующем /clear или при новом запуске.

/clear
/context

/context выводит содержимое текущего контекстного окна с разбивкой по категориям, включая системный промпт. Запустите эту команду в новой сессии для каждого стиля, и строка системного промпта станет основой для сравнения. Это также самый быстрый способ убедиться, что пользовательский стиль был загружен. Подробнее о том, чем заполняется окно контекста, см. как заполняется контекст в долгой сессии Claude Code.

Существует причина, по которой настройка ожидает перезапуска, а не применяется «на лету». API обслуживает повторные запросы из кэша промптов, который сопоставляется с началом каждого запроса, а системный промпт находится в самом начале. Перезапись промпта в середине диалога сделала бы недействительным всё, что следует за ним, поэтому следующий запрос привел бы к повторной обработке всей истории как новых входных данных. Фиксация стиля при старте сессии позволяет избежать этих затрат. Смена стилей обходится дешево. Требуется лишь очистка.

На что влияют встроенные стили вывода в транскрипте

  • Default — это стандартный системный промпт Claude Code, предназначенный для задач по разработке ПО.
  • Concise — выводит результат в первую очередь. Этот стиль исключает вступления и пошаговое описание действий, сохраняя ответы краткими до тех пор, пока вы не запросите подробности. Техническая реализация при этом не меняется. Стиль никогда не сокращает отчеты об ошибках или предупреждения безопасности и по-прежнему запрашивает подтверждение перед выполнением деструктивных действий. Для этого стиля требуется Claude Code версии 2.1.237 или выше.
  • Explanatory — добавляет образовательные «Инсайты» (Insights) между этапами выполнения задачи. В них объясняется, почему был выбран тот или иной вариант реализации и какие шаблоны уже используются в вашей кодовой базе. Транскрипт намеренно становится длиннее.
  • Learning — идет еще дальше. Claude делится инсайтами, а затем предлагает вам самостоятельно написать небольшие фрагменты кода, помечая каждое место комментарием TODO(human) в файле.
  • Proactive — заставляет Claude действовать, а не спрашивать. Система делает обоснованные предположения при принятии рутинных решений, вместо того чтобы останавливаться для подтверждения.

Внимательно ознакомьтесь с последним пунктом, так как его часто понимают неверно. Proactive — это руководство в системном промпте. Оно меняет то, что пытается сделать Claude. Ваш режим разрешений по-прежнему определяет, что именно будет выполнено без запроса подтверждения; именно эта настройка имеет значение для сервера, который работает без присмотра. Это описано в автоматическом режиме и режимах разрешений Claude Code.

Различия между стилем вывода, CLAUDE.md, хуком и субагентом

Все эти инструменты определяют поведение Claude, но работают на разных уровнях.

  • Стиль вывода добавляется в системный промпт. Он применяется к каждому ответу в основном диалоге.
  • CLAUDE.md добавляется как сообщение пользователя после системного промпта. Здесь следует размещать соглашения проекта и факты о кодовой базе.
  • --append-system-prompt добавляет текст к системному промпту для одного конкретного вызова, не удаляя ничего из него. Это разовая версия стиля вывода.
  • Хук — это shell-команда, которую Claude Code выполняет самостоятельно при наступлении определённого события. Она принудительно запускается через обвязку (harness), поэтому выполняется независимо от того, выбрал бы Claude это действие или нет. См. что может и чего не может делать хук Claude Code.
  • Субагент работает со своим собственным системным промптом и своим набором инструментов.

Короткий тест поможет выбрать между первыми двумя вариантами. Факты о вашем проекте должны находиться в CLAUDE.md, так как Claude обязан их знать. Формулировки относятся к стилю вывода, так как они определяют, как читается ответ. Всё, что должно происходить каждый раз, независимо от решения модели, оформляется как хук.

Стили вывода применяются только к основному диалогу. Субагент не наследует ваш стиль, так как он начинает собственный диалог со своим системным промптом. Исключением является ветвление (fork) текущего диалога, поскольку ветка в точности наследует системный промпт родителя. Если субагент пишет в манере, которая вам не нравится, отредактируйте файл этого агента, а не свой стиль.

Как создать собственный стиль вывода

Пользовательский стиль вывода — это файл в формате Markdown с frontmatter. Сохраните его в домашнем каталоге, чтобы использовать во всех проектах, или внутри репозитория, чтобы хранить его вместе с кодом. Пользовательский каталог — ~/.claude/output-styles/, а каталог проекта — .claude/output-styles/.

mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---

Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.

Do not narrate what you are about to do. Report what you did.

When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOF

Запустите сессию и откройте /config. Ваш стиль появится в списке Output style с описанием, которое вы указали. Если стиль отсутствует, значит, файл не считывается: проверьте путь и убедитесь, что блок frontmatter --- является первым элементом в файле. Имя файла становится именем стиля, если в frontmatter не задано name, поэтому данный стиль называется Terse ops, а не terse-ops.

Выберите его или установите ключ с этим точным именем и выполните очистку:

{
  "outputStyle": "Terse ops"
}

Одно поле определяет, является ли ваш файл дополнением или заменой. keep-coding-instructions по умолчанию имеет значение false, что означает, что пользовательский стиль отменяет встроенные инструкции Claude Code по разработке ПО и работает только с вашим текстом. Эти встроенные инструкции определяют, как Claude оценивает масштаб изменений и как проверяет свою работу. Не указывайте это поле для помощника по написанию текстов или аналитика данных, где это не требуется. Установите значение true для любых задач, связанных с кодом, иначе вы столкнетесь с тем, что внимательный инженер внезапно перестанет проверять результаты своей работы.

description — это строка, которую селектор /config отображает рядом с названием. Напишите её для того момента, когда через полгода вам придется выбирать между двумя собственными стилями.

Почему краткий стиль отличается при работе по SSH

На VPS вы просматриваете вывод через уровни, которых нет в локальном терминале, и каждый уровень требует оплаты за многословность.

Первый уровень — буфер прокрутки. В tmux каждая панель хранит фиксированное количество строк, задаваемое параметром history-limit, значение по умолчанию — 2000. Повествовательный стиль заполняет этот буфер быстрее, поэтому начало сессии вытесняется раньше, и нужный вам вывод пропадает. Увеличьте лимит, если вам нужно больше места:

echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

Панели, созданные после этого изменения, будут хранить по 20000 строк, что увеличит потребление памяти на каждую панель. Уже открытые панели сохранят старый лимит, так как размер буфера фиксируется в момент создания панели. Если вы еще настраиваете макет сессии, в разделе запуск Claude Code внутри tmux на VPS описаны детали.

Второй уровень — задержка. Ответ передается в терминал по мере генерации. При высоком времени кругового пути (RTT) длинное вступление означает, что вы тратите время на ожидание вывода текста, прежде чем появится сам ответ.

Третий уровень — выходные токены. Каждая строка с пояснениями оплачивается как выходной трафик. Режимы Explanatory и Learning по своей сути более объемные. Режим Concise спроектирован как краткий, так как он дает команду Claude по умолчанию сокращать ответы.

Не доверяйте процентным соотношениям, включая данные на этой странице. Размер разницы зависит от ваших промптов, модели и выполняемой задачи, поэтому измеряйте показатели до и после самостоятельно. Выполните одну и ту же реальную задачу в двух новых сессиях: одну в режиме Default, другую в режиме Concise, а затем сравните результаты. Статус-строка — самый простой измеритель, так как Claude Code передает вашему скрипту JSON-объект через stdin, который уже содержит название стиля и количество токенов:

cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.sh

Укажите на него в настройке statusLine:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

Теперь полоса в нижней части сессии отображает активный стиль и количество созданных им токенов — это именно те данные «до» и «после», которые вам нужны. Скрипту требуется jq, парсер JSON для командной строки, поэтому сначала установите его с помощью sudo apt install -y jq. Если полоса остается пустой, запустите скрипт вручную и передайте в него JSON через конвейер, так как статус-строка, завершающаяся с ненулевым кодом, ничего не выводит и не сообщает. В разделе пользовательская статус-строка Claude Code перечислены остальные поля этого объекта. Что касается биллинга, а не сессии, ознакомьтесь с разделами куда на самом деле уходят токены Claude Code и инструменты для отслеживания расходов Claude Code.

Как проверить, какой стиль вывода загружен на самом деле

Используйте эти проверки вместо того, чтобы гадать.

  • /status выводит список источников настроек, действующих в текущем сеансе, включая информацию о том, применяются ли корпоративные настройки.
  • /context отображает загруженный системный промпт как категорию в разбивке контекстного окна.
  • claude doctor, запущенная из оболочки без старта сеанса, выводит диагностику установки и настроек, а также сообщает о некорректных файлах конфигурации.

Если стиль не применяется, причина почти всегда кроется в одном из двух факторов. Первый: вы изменили его в середине сеанса, поэтому выполните /clear. Второй: приоритет настроек. .claude/settings.local.json имеет приоритет над .claude/settings.json, а обе они перекрывают ~/.claude/settings.json. Поскольку выбор в /config записывается в локальный файл, стиль, зафиксированный вашей командой в .claude/settings.json, будет незаметно переопределен на любой машине, где кто-либо хотя бы раз воспользовался меню. /status показывает, какой источник настроек оказался приоритетным.

Синтаксическая ошибка в JSON приводит к тем же симптомам, но требует иного решения. claude doctor указывает имя файла, который не удалось проанализировать; стоит запустить эту команду, прежде чем искать более сложные причины.

FAQ

Почему команда /output-style перестала работать?

Она была помечена как устаревшая в версии 2.1.73 и удалена в 2.1.91, поэтому в сборках середины 2026 года эта команда отсутствует. Выполните claude --version, чтобы проверить текущую версию. Выберите стиль из /config в разделе Output style или установите ключ outputStyle в файле настроек. Этот ключ сохранился дольше команды, поэтому запись инструкции по его прямой настройке в личные заметки будет полезна.

Я изменил стиль вывода, но ничего не произошло. Почему?

Стиль вывода является частью системного промпта, а Claude Code формирует системный промпт один раз при запуске сессии. Изменения, внесенные в ходе сессии, сохраняются, но не применяются, так как запущенная сессия продолжает использовать промпт, сформированный при старте. Выполните /clear или начните новую сессию. Если стиль по-прежнему не применяется, выполните /status, чтобы увидеть, какой источник настроек имеет приоритет, так как .claude/settings.local.json переопределяет .claude/settings.json, а оба они переопределяют ~/.claude/settings.json.

Помогает ли стиль вывода Concise экономить деньги?

Он сокращает количество выходных токенов, как вы и ожидаете, поскольку предписывает Claude по умолчанию давать краткие ответы. Итоговая экономия зависит от ваших промптов и используемой модели, поэтому любые опубликованные процентные показатели следует воспринимать как результат чужой работы. Проведите собственные измерения: выполните /context в новой сессии для каждого стиля, чтобы оценить входные данные, затем выполните одну и ту же задачу в каждом из них и сравните количество выходных токенов. Стиль Concise никогда не сокращает отчеты об ошибках или предупреждения безопасности, поэтому наиболее важные части текста остаются полными.

Изменит ли смена стиля вывода способ написания ответов моими субагентами?

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

Может ли стиль вывода позволить Claude выполнять команды без запроса подтверждения?

Нет. Стиль вывода — это текст в системном промпте, поэтому он может влиять только на то, что Claude пытается сделать. Стиль Proactive заставляет Claude принимать решения и действовать самостоятельно, не останавливаясь на рутинных вопросах, но он по-прежнему не может самостоятельно одобрять выполнение команд. Ваш режим разрешений определяет, что будет запущено без запроса, и именно эту настройку следует проверить перед тем, как оставить сессию запущенной на сервере.