Skip to Content
Руководство для пользователейКонфигурацияНастройки

Конфигурация Qwen Code

Tip

Аутентификация / API-ключи: Аутентификация (Qwen OAuth, Alibaba Cloud Coding Plan или API Key) и переменные окружения, связанные с авторизацией (например, OPENAI_API_KEY), описаны в разделе Аутентификация.

Note

Примечание о новом формате конфигурации: Формат файла settings.json обновлён до новой, более структурированной версии. Старый формат будет перенесён автоматически. Qwen Code предоставляет несколько способов настройки поведения, включая переменные окружения, аргументы командной строки и файлы настроек. В этом документе описаны различные методы конфигурации и доступные параметры.

Уровни конфигурации

Конфигурация применяется в следующем порядке приоритета (значения с меньшим номером перезаписываются значениями с большим номером):

УровеньИсточник конфигурацииОписание
1Значения по умолчаниюЖёстко заданные значения по умолчанию внутри приложения
2Системный файл значений по умолчаниюОбщесистемные настройки по умолчанию, которые могут быть переопределены другими файлами настроек
3Файл настроек пользователяГлобальные настройки для текущего пользователя
4Файл настроек проектаНастройки, специфичные для проекта
5Системный файл настроекОбщесистемные настройки, переопределяющие все остальные файлы настроек
6Переменные окруженияОбщесистемные или сессионные переменные, потенциально загружаемые из файлов .env
7Аргументы командной строкиЗначения, передаваемые при запуске CLI

Файлы настроек

Qwen Code использует JSON-файлы настроек для сохранения конфигурации. Существует четыре расположения для этих файлов:

Тип файлаРасположениеОбласть применения
Системный файл значений по умолчаниюLinux: /etc/qwen-code/system-defaults.json
Windows: C:\ProgramData\qwen-code\system-defaults.json
macOS: /Library/Application Support/QwenCode/system-defaults.json
Путь можно переопределить с помощью переменной окружения QWEN_CODE_SYSTEM_DEFAULTS_PATH.
Предоставляет базовый слой общесистемных настроек по умолчанию. Эти настройки имеют наименьший приоритет и предназначены для переопределения настройками пользователя, проекта или системными переопределениями.
Файл настроек пользователя~/.qwen/settings.json (где ~ — ваша домашняя директория).Применяется ко всем сессиям Qwen Code для текущего пользователя.
Файл настроек проекта.qwen/settings.json в корневой директории вашего проекта.Применяется только при запуске Qwen Code из этого конкретного проекта. Настройки проекта переопределяют настройки пользователя.
Системный файл настроекLinux: /etc/qwen-code/settings.json
Windows: C:\ProgramData\qwen-code\settings.json
macOS: /Library/Application Support/QwenCode/settings.json
Путь можно переопределить с помощью переменной окружения QWEN_CODE_SYSTEM_SETTINGS_PATH.
Применяется ко всем сессиям Qwen Code в системе для всех пользователей. Системные настройки переопределяют настройки пользователя и проекта. Могут быть полезны системным администраторам предприятий для контроля настроек Qwen Code у пользователей.
Note

Примечание о переменных окружения в настройках: Строковые значения в файлах settings.json могут ссылаться на переменные окружения с использованием синтаксиса $VAR_NAME или ${VAR_NAME}. Эти переменные будут автоматически подставлены при загрузке настроек. Например, если у вас есть переменная окружения MY_API_TOKEN, вы можете использовать её в settings.json так: "apiKey": "$MY_API_TOKEN".

Директория .qwen в вашем проекте

Помимо файла настроек проекта, директория .qwen может содержать другие файлы, специфичные для проекта и связанные с работой Qwen Code, например:

Миграция конфигурации

Qwen Code автоматически переносит устаревшие параметры конфигурации в новый формат. Перед миграцией старые файлы настроек создаются резервные копии. Следующие параметры были переименованы из негативных (disable*) в позитивные (enable*):

Старый параметрНовый параметрПримечания
disableAutoUpdate + disableUpdateNaggeneral.enableAutoUpdateОбъединено в один параметр
disableLoadingPhrasesui.accessibility.enableLoadingPhrases
disableFuzzySearchcontext.fileFiltering.enableFuzzySearch
disableCacheControlmodel.generationConfig.enableCacheControl
Note

Инверсия логических значений: При миграции логические значения инвертируются (например, disableAutoUpdate: true становится enableAutoUpdate: false).

Политика объединения для disableAutoUpdate и disableUpdateNag

Если присутствуют оба устаревших параметра с разными значениями, миграция выполняется по следующему правилу: если любой из параметров disableAutoUpdate или disableUpdateNag равен true, то enableAutoUpdate становится false:

disableAutoUpdatedisableUpdateNagМигрированный enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Доступные параметры в settings.json

Параметры организованы по категориям. Все настройки должны размещаться внутри соответствующего объекта категории верхнего уровня в вашем файле settings.json.

general

ПараметрТипОписаниеЗначение по умолчанию
general.preferredEditorstringПредпочитаемый редактор для открытия файлов.undefined
general.vimModebooleanВключить привязки клавиш Vim.false
general.enableAutoUpdatebooleanВключить автоматическую проверку и установку обновлений при запуске.true
general.gitCoAuthorbooleanАвтоматически добавлять трейлер Co-authored-by в сообщения коммитов git при создании коммитов через Qwen Code.true
general.checkpointing.enabledbooleanВключить создание контрольных точек сессии для восстановления.false
general.defaultFileEncodingstringКодировка по умолчанию для новых файлов. Используйте "utf-8" (по умолчанию) для UTF-8 без BOM или "utf-8-bom" для UTF-8 с BOM. Меняйте это значение только если ваш проект явно требует BOM."utf-8"

output

ПараметрТипОписаниеЗначение по умолчаниюВозможные значения
output.formatstringФормат вывода CLI."text""text", "json"

ui

ПараметрТипОписаниеЗначение по умолчанию
ui.themestringЦветовая тема интерфейса. Доступные варианты см. в разделе Темы.undefined
ui.customThemesobjectОпределения пользовательских тем.{}
ui.statusLineobjectПользовательская конфигурация строки состояния. Команда оболочки, вывод которой отображается в левой части футера. См. Строка состояния.undefined
ui.hideWindowTitlebooleanСкрыть заголовок окна.false
ui.hideTipsbooleanСкрыть полезные подсказки в интерфейсе.false
ui.hideBannerbooleanСкрыть баннер приложения.false
ui.hideFooterbooleanСкрыть футер из интерфейса.false
ui.showMemoryUsagebooleanОтображать информацию об использовании памяти в интерфейсе.false
ui.showLineNumbersbooleanПоказывать номера строк в блоках кода в выводе CLI.true
ui.showCitationsbooleanПоказывать источники для сгенерированного текста в чате.true
ui.compactModebooleanСкрыть вывод инструментов и процесс размышлений для более чистого вида. Переключается через Ctrl+O во время сессии. При включении в футере появляется индикатор compact. Настройка сохраняется между сессиями.false
enableWelcomeBackbooleanПоказывать диалог приветствия при возвращении в проект с историей разговоров. При включении Qwen Code автоматически определяет, возвращаетесь ли вы в проект с ранее сгенерированным резюме проекта (.qwen/PROJECT_SUMMARY.md), и показывает диалог, позволяющий продолжить предыдущий разговор или начать заново. Эта функция интегрируется с командой /summary и диалогом подтверждения выхода.true
ui.accessibility.enableLoadingPhrasesbooleanВключить фразы загрузки (отключите для улучшения доступности).true
ui.accessibility.screenReaderbooleanВключает режим экранных дикторов, который адаптирует TUI для лучшей совместимости с программами чтения с экрана.false
ui.customWittyPhrasesarray of stringsСписок пользовательских фраз для отображения в состояниях загрузки. При указании CLI будет циклически переключать эти фразы вместо стандартных.[]
ui.enableFollowupSuggestionsbooleanВключить последующие предложения, которые предсказывают, что вы хотите ввести дальше после ответа модели. Предложения появляются как полупрозрачный текст и могут быть приняты клавишами Tab, Enter или стрелкой вправо.true
ui.enableCacheSharingbooleanИспользовать форкнутые запросы с учётом кэша для генерации предложений. Снижает затраты у провайдеров, поддерживающих кэширование префиксов (экспериментально).true
ui.enableSpeculationbooleanСпекулятивное выполнение принятых предложений до отправки. Результаты появляются мгновенно при принятии (экспериментально).false

ide

ПараметрТипОписаниеЗначение по умолчанию
ide.enabledbooleanВключить режим интеграции с IDE.false
ide.hasSeenNudgebooleanВидел ли пользователь уведомление об интеграции с IDE.false

privacy

ПараметрТипОписаниеЗначение по умолчанию
privacy.usageStatisticsEnabledbooleanВключить сбор статистики использования.true

model

ПараметрТипОписаниеЗначение по умолчанию
model.namestringМодель Qwen для использования в разговорах.undefined
model.maxSessionTurnsnumberМаксимальное количество ходов пользователя/модели/инструментов, сохраняемых в сессии. -1 означает без ограничений.-1
model.generationConfigobjectРасширенные переопределения, передаваемые базовому генератору контента. Поддерживает элементы управления запросами, такие как timeout, maxRetries, enableCacheControl, contextWindowSize (переопределение размера контекстного окна модели), modalities (переопределение автоматически определённых модальностей ввода), customHeaders (пользовательские HTTP-заголовки для API-запросов) и extra_body (дополнительные параметры тела только для запросов к API, совместимым с OpenAI), а также параметры тонкой настройки в samplingParams (например, temperature, top_p, max_tokens). Оставьте пустым, чтобы использовать значения по умолчанию от провайдера.undefined
model.chatCompression.contextPercentageThresholdnumberУстанавливает порог сжатия истории чата в процентах от общего лимита токенов модели. Это значение от 0 до 1 применяется как к автоматическому сжатию, так и к ручной команде /compress. Например, значение 0.6 запустит сжатие, когда история чата превысит 60% лимита токенов. Используйте 0, чтобы полностью отключить сжатие.0.7
model.skipNextSpeakerCheckbooleanПропустить проверку следующего говорящего.false
model.skipLoopDetectionbooleanОтключает проверки обнаружения зацикливания. Обнаружение зацикливания предотвращает бесконечные циклы в ответах ИИ, но может генерировать ложные срабатывания, прерывающие легитимные рабочие процессы. Включите эту опцию, если вы часто сталкиваетесь с ложными срабатываниями.false
model.skipStartupContextbooleanПропускает отправку контекста рабочего пространства при запуске (сводка окружения и подтверждение) в начале каждой сессии. Включите, если предпочитаете предоставлять контекст вручную или хотите сэкономить токены при запуске.false
model.enableOpenAILoggingbooleanВключает логирование вызовов OpenAI API для отладки и анализа. При включении запросы и ответы API записываются в JSON-файлы.false
model.openAILoggingDirstringПользовательский путь к директории для логов OpenAI API. Если не указан, по умолчанию используется logs/openai в текущей рабочей директории. Поддерживает абсолютные пути, относительные пути (разрешаются от текущей рабочей директории) и раскрытие ~ (домашняя директория).undefined

Пример model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "modalities": { "image": true }, "enableCacheControl": true, "customHeaders": { "X-Client-Request-ID": "req-123" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

max_tokens (адаптивные выходные токены):

Когда samplingParams.max_tokens не установлен, Qwen Code использует адаптивную стратегию выходных токенов для оптимизации использования ресурсов GPU:

  1. Запросы начинаются с лимита по умолчанию 8K выходных токенов
  2. Если ответ обрезается (модель достигает лимита), Qwen Code автоматически повторяет попытку с 64K токенов
  3. Частичный вывод отбрасывается и заменяется полным ответом из повторной попытки

Это происходит прозрачно для пользователей — вы можете кратковременно увидеть индикатор повторной попытки, если произойдёт эскалация. Поскольку 99% ответов занимают менее 5K токенов, повторная попытка происходит редко (<1% запросов).

Чтобы переопределить это поведение, установите samplingParams.max_tokens в настройках или используйте переменную окружения QWEN_CODE_MAX_OUTPUT_TOKENS.

contextWindowSize:

Переопределяет размер контекстного окна по умолчанию для выбранной модели. Qwen Code определяет контекстное окно, используя встроенные значения по умолчанию на основе сопоставления имени модели, с постоянным резервным значением. Используйте эту настройку, если эффективный лимит контекста провайдера отличается от значения по умолчанию в Qwen Code. Это значение определяет предполагаемую максимальную ёмкость контекста модели, а не лимит токенов на запрос.

modalities:

Переопределяет автоматически определённые модальности ввода для выбранной модели. Qwen Code автоматически определяет поддерживаемые модальности (изображение, PDF, аудио, видео) на основе сопоставления шаблонов имени модели. Используйте эту настройку, если автоопределение работает неверно — например, чтобы включить pdf для модели, которая поддерживает его, но не распознаётся. Формат: { "image": true, "pdf": true, "audio": true, "video": true }. Опустите ключ или установите false для неподдерживаемых типов.

customHeaders:

Позволяет добавлять пользовательские HTTP-заголовки ко всем API-запросам. Это полезно для трассировки запросов, мониторинга, маршрутизации через API-шлюз или когда разным моделям требуются разные заголовки. Если customHeaders определён в modelProviders[].generationConfig.customHeaders, он будет использован напрямую; в противном случае будут использованы заголовки из model.generationConfig.customHeaders. Слияние между двумя уровнями не происходит.

Поле extra_body позволяет добавлять пользовательские параметры в тело запроса, отправляемого в API. Это полезно для специфичных для провайдера опций, не покрытых стандартными полями конфигурации. Примечание: Это поле поддерживается только для провайдеров, совместимых с OpenAI (openai, qwen-oauth). Оно игнорируется для провайдеров Anthropic и Gemini.** Если extra_body определён в modelProviders[].generationConfig.extra_body, он будет использован напрямую; в противном случае будут использованы значения из model.generationConfig.extra_body.

Примеры model.openAILoggingDir:

  • "~/qwen-logs" - Логи в директории ~/qwen-logs
  • "./custom-logs" - Логи в ./custom-logs относительно текущей директории
  • "/tmp/openai-logs" - Логи по абсолютному пути /tmp/openai-logs

fastModel

ПараметрТипОписаниеЗначение по умолчанию
fastModelstringМодель, используемая для генерации предложений по промпту и спекулятивного выполнения. Оставьте пустым, чтобы использовать основную модель. Меньшая/быстрая модель (например, qwen3-coder-flash) снижает задержку и стоимость. Также можно установить через /model --fast.""

context

ПараметрТипОписаниеЗначение по умолчанию
context.fileNamestring or array of stringsИмя файла(ов) контекста.undefined
context.importFormatstringФормат, используемый при импорте памяти.undefined
context.includeDirectoriesarrayДополнительные директории для включения в контекст рабочего пространства. Указывает массив дополнительных абсолютных или относительных путей. Отсутствующие директории будут пропущены с предупреждением по умолчанию. Пути могут использовать ~ для ссылки на домашнюю директорию пользователя. Эту настройку можно комбинировать с флагом командной строки --include-directories.[]
context.loadFromIncludeDirectoriesbooleanУправляет поведением команды /memory refresh. Если true, файлы QWEN.md должны загружаться из всех добавленных директорий. Если false, QWEN.md загружается только из текущей директории.false
context.fileFiltering.respectGitIgnorebooleanУчитывать файлы .gitignore при поиске.true
context.fileFiltering.respectQwenIgnorebooleanУчитывать файлы .qwenignore при поиске.true
context.fileFiltering.enableRecursiveFileSearchbooleanВключает ли рекурсивный поиск имён файлов в текущем дереве при автодополнении префиксов @ в промпте.true
context.fileFiltering.enableFuzzySearchbooleanПри true включает возможности нечёткого поиска при поиске файлов. Установите false для повышения производительности в проектах с большим количеством файлов.true
context.gapThresholdMinutesnumberМинуты неактивности, после которых сохранённые блоки размышлений очищаются для освобождения токенов контекста. Соответствует типичному TTL кэша промптов провайдера. Установите выше, если у вашего провайдера более длительный TTL кэша.5

Устранение проблем с производительностью поиска файлов

Если вы сталкиваетесь с проблемами производительности при поиске файлов (например, при автодополнении @), особенно в проектах с очень большим количеством файлов, попробуйте следующие шаги в порядке рекомендации:

  1. Используйте .qwenignore: Создайте файл .qwenignore в корне проекта, чтобы исключить директории с большим количеством файлов, которые не нужно индексировать (например, артефакты сборки, логи, node_modules). Сокращение общего количества сканируемых файлов — самый эффективный способ повысить производительность.
  2. Отключите нечёткий поиск: Если игнорирования файлов недостаточно, вы можете отключить нечёткий поиск, установив enableFuzzySearch в false в файле settings.json. Это переключит на более простой алгоритм точного сопоставления, который может работать быстрее.
  3. Отключите рекурсивный поиск файлов: В крайнем случае можно полностью отключить рекурсивный поиск, установив enableRecursiveFileSearch в false. Это будет самым быстрым вариантом, так как избегает рекурсивного обхода проекта. Однако это означает, что вам придётся вводить полный путь к файлам при использовании автодополнения @.

tools

ПараметрТипОписаниеЗначение по умолчаниюПримечания
tools.sandboxboolean or stringСреда выполнения в sandbox (может быть логическим значением или строкой пути).undefined
tools.shell.enableInteractiveShellbooleanИспользовать node-pty для интерактивного режима оболочки. Резервный вариант через child_process всё ещё применяется.false
tools.corearray of stringsУстарело. Будет удалено в следующей версии. Вместо этого используйте permissions.allow + permissions.deny. Ограничивает встроенные инструменты белым списком. Все инструменты, не входящие в список, отключены.undefined
tools.excludearray of stringsУстарело. Вместо этого используйте permissions.deny. Имена инструментов для исключения из обнаружения. Автоматически переносится в формат permissions при первой загрузке.undefined
tools.allowedarray of stringsУстарело. Вместо этого используйте permissions.allow. Имена инструментов, обходящих диалог подтверждения. Автоматически переносится в формат permissions при первой загрузке.undefined
tools.approvalModestringУстанавливает режим подтверждения по умолчанию для использования инструментов.defaultВозможные значения: plan (только анализ, не изменять файлы и не выполнять команды), default (требовать подтверждения перед редактированием файлов или выполнением команд оболочки), auto-edit (автоматически подтверждать редактирование файлов), yolo (автоматически подтверждать все вызовы инструментов)
tools.discoveryCommandstringКоманда для запуска обнаружения инструментов.undefined
tools.callCommandstringОпределяет пользовательскую команду оболочки для вызова конкретного инструмента, обнаруженного с помощью tools.discoveryCommand. Команда оболочки должна соответствовать следующим критериям: принимать name функции (точно как в объявлении функции ) в качестве первого аргумента командной строки. Читать аргументы функции в формате JSON из stdin, аналогично functionCall.args. Возвращать вывод функции в формате JSON в stdout, аналогично functionResponse.response.content.undefined
tools.useRipgrepbooleanИспользовать ripgrep для поиска содержимого файлов вместо резервной реализации. Обеспечивает более высокую скорость поиска.true
tools.useBuiltinRipgrepbooleanИспользовать встроенный бинарный файл ripgrep. При false будет использоваться системная команда rg. Эта настройка действует только если tools.useRipgrep равно true.true
tools.truncateToolOutputThresholdnumberОбрезать вывод инструмента, если он превышает указанное количество символов. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.25000Требуется перезапуск: Да
tools.truncateToolOutputLinesnumberМаксимальное количество строк или записей, сохраняемых при обрезке вывода инструмента. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.1000Требуется перезапуск: Да
Note

Миграция с tools.core / tools.exclude / tools.allowed: Эти устаревшие параметры объявлены устаревшими и автоматически переносятся в новый формат permissions при первой загрузке. Рекомендуется настраивать permissions.allow / permissions.deny напрямую. Используйте /permissions для интерактивного управления правилами.

permissions

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

Приоритет принятия решений (от высшего к низшему): deny > ask > allow > (по умолчанию/интерактивный режим)

Применяется первое совпавшее правило. Правила используют формат "ToolName" или "ToolName(specifier)".

ПараметрТипОписаниеЗначение по умолчанию
permissions.allowarray of stringsПравила для автоматически подтверждённых вызовов инструментов (подтверждение не требуется). Объединяются по всем областям (пользователь + проект + система).undefined
permissions.askarray of stringsПравила для вызовов инструментов, всегда требующих подтверждения пользователя. Имеют приоритет над allow.undefined
permissions.denyarray of stringsПравила для заблокированных вызовов инструментов. Наивысший приоритет — переопределяют как allow, так и ask.undefined

Псевдонимы имён инструментов (в правилах работает любой из них):

ПсевдонимКаноническое имя инструментаПримечания
Bash, Shellrun_shell_command
Read, ReadFileread_fileМета-категория — см. ниже
Edit, EditFileeditМета-категория — см. ниже
Write, WriteFilewrite_file
Grep, SearchFilesgrep_search
Glob, FindFilesglob
ListFileslist_directory
WebFetchweb_fetch
Agenttask
Skillskill

Мета-категории:

Некоторые имена правил автоматически охватывают несколько инструментов:

Имя правилаОхватываемые инструменты
Readread_file, grep_search, glob, list_directory
Editedit, write_file

[!important] Read(/path/**) соответствует всем четырём инструментам чтения (чтение файла, grep, glob и список директорий). Чтобы ограничить только чтение файлов, используйте ReadFile(/path/**) или read_file(/path/**).

Примеры синтаксиса правил:

ПравилоЗначение
"Bash"Все команды оболочки
"Bash(git *)"Команды оболочки, начинающиеся с git (граница слова: НЕ gitk)
"Bash(git push *)"Команды оболочки вида git push origin main
"Bash(npm run *)"Любой скрипт npm run
"Read"Все операции чтения файлов (read, grep, glob, list)
"Read(./secrets/**)"Рекурсивное чтение любого файла в ./secrets/
"Edit(/src/**/*.ts)"Редактирование TypeScript-файлов в /src/ относительно корня проекта
"WebFetch(api.example.com)"Загрузка с api.example.com и всех его поддоменов
"mcp__puppeteer"Все инструменты с MCP-сервера puppeteer

Префиксы шаблонов путей:

ПрефиксЗначениеПример
//Абсолютный путь от корня файловой системы//etc/passwd
~/Относительно домашней директории~/Documents/*.pdf
/Относительно корня проекта/src/**/*.ts
./Относительно текущей рабочей директории./secrets/**
(нет)То же, что ./secrets/**

Предотвращение обхода разрешений через команды оболочки:

Правила разрешений для Read, Edit и WebFetch также применяются, когда агент выполняет эквивалентные команды оболочки. Например, если Read(./.env) находится в deny, агент не сможет обойти это ограничение через cat .env в команде оболочки. Поддерживаемые команды оболочки включают cat, grep, curl, wget, cp, mv, rm, chmod и многие другие. Неизвестные/безопасные команды (например, git) не затрагиваются правилами для файлов/сети.

Миграция с устаревших параметров:

Устаревший параметрЭквивалентное правило permissionsПримечания
tools.allowedpermissions.allowАвтоматически переносится при первой загрузке
tools.excludepermissions.denyАвтоматически переносится при первой загрузке
tools.corepermissions.allow (белый список)Автоматически переносится; инструменты, не указанные в списке, отключаются на уровне реестра

Пример конфигурации:

{ "permissions": { "allow": ["Bash(git *)", "Bash(npm run *)", "Read(//Users/alice/code/**)"], "ask": ["Bash(git push *)", "Edit"], "deny": ["Bash(rm -rf *)", "Read(.env)", "WebFetch(malicious.com)"] } }

[!tip] Используйте /permissions в интерактивном CLI для просмотра, добавления и удаления правил без прямого редактирования settings.json.

mcp

ПараметрТипОписаниеЗначение по умолчанию
mcp.serverCommandstringКоманда для запуска MCP-сервера.undefined
mcp.allowedarray of stringsБелый список MCP-серверов. Позволяет указать список имён MCP-серверов, которые должны быть доступны модели. Это можно использовать для ограничения набора подключаемых MCP-серверов. Обратите внимание, что этот параметр будет проигнорирован, если установлен --allowed-mcp-server-names.undefined
mcp.excludedarray of stringsЧёрный список MCP-серверов для исключения. Сервер, указанный и в mcp.excluded, и в mcp.allowed, будет исключён. Обратите внимание, что этот параметр будет проигнорирован, если установлен --allowed-mcp-server-names.undefined
Note

Примечание по безопасности для MCP-серверов: Эти настройки используют простое сопоставление строк по именам MCP-серверов, которые могут быть изменены. Если вы системный администратор и хотите предотвратить обход этого ограничения пользователями, рассмотрите настройку mcpServers на уровне системных настроек так, чтобы пользователи не могли настраивать собственные MCP-серверы. Это не должно использоваться как абсолютно надёжный механизм безопасности.

lsp

[!warning] Экспериментальная функция: Поддержка LSP в настоящее время является экспериментальной и отключена по умолчанию. Включите её с помощью флага командной строки --experimental-lsp.

Language Server Protocol (LSP) предоставляет функции интеллектуальной поддержки кода, такие как переход к определению, поиск ссылок и диагностика.

Конфигурация LSP-сервера выполняется через файлы .lsp.json в корневой директории проекта, а не через settings.json. Подробности конфигурации и примеры см. в документации по LSP.

security

ПараметрТипОписаниеЗначение по умолчанию
security.folderTrust.enabledbooleanНастройка, отслеживающая, включено ли доверие к папке.false
security.auth.selectedTypestringТекущий выбранный тип аутентификации.undefined
security.auth.enforcedTypestringТребуемый тип аутентификации (полезно для предприятий).undefined
security.auth.useExternalbooleanИспользовать ли внешний поток аутентификации.undefined

advanced

ПараметрТипОписаниеЗначение по умолчанию
advanced.autoConfigureMemorybooleanАвтоматически настраивать лимиты памяти Node.js.false
advanced.dnsResolutionOrderstringПорядок разрешения DNS.undefined
advanced.excludedEnvVarsarray of stringsПеременные окружения для исключения из контекста проекта. Указывает переменные окружения, которые не должны загружаться из файлов .env проекта. Это предотвращает влияние специфичных для проекта переменных (например, DEBUG=true) на поведение CLI. Переменные из файлов .qwen/.env никогда не исключаются.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectКонфигурация команды отчёта об ошибке. Переопределяет URL по умолчанию для команды /bug. Свойства: urlTemplate (string): URL, который может содержать плейсхолдеры {title} и {info}. Пример: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
advanced.tavilyApiKeystringAPI-ключ для сервиса веб-поиска Tavily. Используется для включения функциональности инструмента web_search.undefined
Note

Примечание о advanced.tavilyApiKey: Это устаревший формат конфигурации. Для пользователей Qwen OAuth провайдер DashScope доступен автоматически без дополнительной настройки. Для других типов аутентификации настройте провайдеры Tavily или Google, используя новый формат конфигурации webSearch.

mcpServers

Настраивает подключения к одному или нескольким серверам Model-Context Protocol (MCP) для обнаружения и использования пользовательских инструментов. Qwen Code пытается подключиться к каждому настроенному MCP-серверу для обнаружения доступных инструментов. Если несколько MCP-серверов предоставляют инструмент с одинаковым именем, имена инструментов будут иметь префикс с псевдонимом сервера, определённым в конфигурации (например, serverAlias__actualToolName), чтобы избежать конфликтов. Обратите внимание, что система может удалять определённые свойства схемы из определений инструментов MCP для обеспечения совместимости. Должен быть указан хотя бы один из параметров: command, url или httpUrl. Если указано несколько, приоритет следующий: httpUrl, затем url, затем command.

СвойствоТипОписаниеОпционально
mcpServers.<SERVER_NAME>.commandstringКоманда для запуска MCP-сервера через стандартный ввод/вывод.Да
mcpServers.<SERVER_NAME>.argsarray of stringsАргументы, передаваемые команде.Да
mcpServers.<SERVER_NAME>.envobjectПеременные окружения для процесса сервера.Да
mcpServers.<SERVER_NAME>.cwdstringРабочая директория, в которой запускается сервер.Да
mcpServers.<SERVER_NAME>.urlstringURL MCP-сервера, использующего Server-Sent Events (SSE) для связи.Да
mcpServers.<SERVER_NAME>.httpUrlstringURL MCP-сервера, использующего потоковый HTTP для связи.Да
mcpServers.<SERVER_NAME>.headersobjectКарта HTTP-заголовков для отправки с запросами к url или httpUrl.Да
mcpServers.<SERVER_NAME>.timeoutnumberТаймаут в миллисекундах для запросов к этому MCP-серверу.Да
mcpServers.<SERVER_NAME>.trustbooleanДоверять этому серверу и обходить все подтверждения вызовов инструментов.Да
mcpServers.<SERVER_NAME>.descriptionstringКраткое описание сервера, которое может использоваться для отображения.Да
mcpServers.<SERVER_NAME>.includeToolsarray of stringsСписок имён инструментов для включения с этого MCP-сервера. При указании доступны только перечисленные здесь инструменты (поведение белого списка). Если не указано, по умолчанию включены все инструменты сервера.Да
mcpServers.<SERVER_NAME>.excludeToolsarray of stringsСписок имён инструментов для исключения с этого MCP-сервера. Перечисленные здесь инструменты не будут доступны модели, даже если сервер их предоставляет. Примечание: excludeTools имеет приоритет над includeTools — если инструмент находится в обоих списках, он будет исключён.Да

telemetry

Настраивает логирование и сбор метрик для Qwen Code. Подробнее см. телеметрия.

ПараметрТипОписаниеЗначение по умолчанию
telemetry.enabledbooleanВключена ли телеметрия.
telemetry.targetstringНазначение для собираемой телеметрии. Поддерживаемые значения: local и gcp.
telemetry.otlpEndpointstringКонечная точка для OTLP Exporter.
telemetry.otlpProtocolstringПротокол для OTLP Exporter (grpc или http).
telemetry.logPromptsbooleanВключать ли содержимое пользовательских промптов в логи.
telemetry.outfilestringФайл для записи телеметрии, когда target равен local.
telemetry.useCollectorbooleanИспользовать ли внешний OTLP-коллектор.

Пример settings.json

Ниже приведён пример файла settings.json с вложенной структурой, появившейся в v0.3.0:

{ "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideTips": false, "customWittyPhrases": [ "You forget a thousand things every day. Make sure this is one of 'em", "Connecting to AGI" ] }, "tools": { "approvalMode": "yolo", "sandbox": "docker", "discoveryCommand": "bin/get_tools", "callCommand": "bin/call_tool", "exclude": ["write_file"] }, "mcpServers": { "mainServer": { "command": "bin/mcp_server.py" }, "anotherServer": { "command": "node", "args": ["mcp_server.js", "--verbose"] } }, "telemetry": { "enabled": true, "target": "local", "otlpEndpoint": "http://localhost:4317", "logPrompts": true }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", }, "context": { "fileName": ["CONTEXT.md", "QWEN.md"], "includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"], "loadFromIncludeDirectories": true, "fileFiltering": { "respectGitIgnore": false } }, "advanced": { "excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"] } }

История оболочки

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

  • Расположение: ~/.qwen/tmp/<project_hash>/shell_history
    • <project_hash> — уникальный идентификатор, сгенерированный на основе корневого пути вашего проекта.
    • История хранится в файле с именем shell_history.

Переменные окружения и файлы .env

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

Qwen Code может автоматически загружать переменные окружения из файлов .env. Для переменных, связанных с аутентификацией (например, OPENAI_*), и рекомендуемого подхода с .qwen/.env см. Аутентификация.

Tip

Исключение переменных окружения: Некоторые переменные окружения (например, DEBUG и DEBUG_MODE) автоматически исключаются из файлов .env проекта по умолчанию, чтобы предотвратить влияние на поведение CLI. Переменные из файлов .qwen/.env никогда не исключаются. Вы можете настроить это поведение с помощью параметра advanced.excludedEnvVars в вашем файле settings.json.

Таблица переменных окружения

ПеременнаяОписаниеПримечания
QWEN_TELEMETRY_ENABLEDУстановите true или 1 для включения телеметрии. Любое другое значение считается отключением.Переопределяет настройку telemetry.enabled.
QWEN_TELEMETRY_TARGETУстанавливает цель телеметрии (local или gcp).Переопределяет настройку telemetry.target.
QWEN_TELEMETRY_OTLP_ENDPOINTУстанавливает конечную точку OTLP для телеметрии.Переопределяет настройку telemetry.otlpEndpoint.
QWEN_TELEMETRY_OTLP_PROTOCOLУстанавливает протокол OTLP (grpc или http).Переопределяет настройку telemetry.otlpProtocol.
QWEN_TELEMETRY_LOG_PROMPTSУстановите true или 1 для включения или отключения логирования пользовательских промптов. Любое другое значение считается отключением.Переопределяет настройку telemetry.logPrompts.
QWEN_TELEMETRY_OUTFILEУстанавливает путь к файлу для записи телеметрии, когда цель равна local.Переопределяет настройку telemetry.outfile.
QWEN_TELEMETRY_USE_COLLECTORУстановите true или 1 для включения или отключения использования внешнего OTLP-коллектора. Любое другое значение считается отключением.Переопределяет настройку telemetry.useCollector.
QWEN_SANDBOXАльтернатива настройке sandbox в settings.json.Принимает true, false, docker, podman или пользовательскую строку команды.
SEATBELT_PROFILE(только для macOS) Переключает профиль Seatbelt (sandbox-exec) на macOS.permissive-open: (по умолчанию) Ограничивает запись в папку проекта (и несколько других папок, см. packages/cli/src/utils/sandbox-macos-permissive-open.sb), но разрешает другие операции. strict: Использует строгий профиль, запрещающий операции по умолчанию. <profile_name>: Использует пользовательский профиль. Чтобы определить пользовательский профиль, создайте файл с именем sandbox-macos-<profile_name>.sb в директории .qwen/ вашего проекта (например, my-project/.qwen/sandbox-macos-custom.sb).
DEBUG или DEBUG_MODE(часто используется базовыми библиотеками или самим CLI) Установите true или 1 для включения подробного отладочного логирования, что может быть полезно для устранения неполадок.Примечание: Эти переменные автоматически исключаются из файлов .env проекта по умолчанию, чтобы предотвратить влияние на поведение CLI. Используйте файлы .qwen/.env, если вам нужно установить их специально для Qwen Code.
NO_COLORУстановите любое значение, чтобы отключить весь цветной вывод в CLI.
CLI_TITLEУстановите строку для кастомизации заголовка CLI.
CODE_ASSIST_ENDPOINTУказывает конечную точку для сервера помощи по коду.Это полезно для разработки и тестирования.
QWEN_CODE_MAX_OUTPUT_TOKENSПереопределяет максимальное количество выходных токенов на ответ по умолчанию. Если не установлено, Qwen Code использует адаптивную стратегию: начинает с 8K токенов и автоматически повторяет попытку с 64K, если ответ обрезается. Установите конкретное значение (например, 16000), чтобы использовать фиксированный лимит.Имеет приоритет над ограниченным значением по умолчанию (8K), но переопределяется samplingParams.max_tokens в настройках. Отключает автоматическую эскалацию при установке. Пример: export QWEN_CODE_MAX_OUTPUT_TOKENS=16000
TAVILY_API_KEYВаш API-ключ для сервиса веб-поиска Tavily.Используется для включения функциональности инструмента web_search. Пример: export TAVILY_API_KEY="tvly-your-api-key-here"

Аргументы командной строки

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

Таблица аргументов командной строки

АргументПсевдонимОписаниеВозможные значенияПримечания
--model-mУказывает модель Qwen для использования в этой сессии.Имя моделиПример: npm start -- --model qwen3-coder-plus
--prompt-pИспользуется для прямой передачи промпта команде. Запускает Qwen Code в неинтерактивном режиме.Текст вашего промптаДля примеров скриптов используйте флаг --output-format json для получения структурированного вывода.
--prompt-interactive-iЗапускает интерактивную сессию с предоставленным промптом в качестве начального ввода.Текст вашего промптаПромпт обрабатывается внутри интерактивной сессии, а не до неё. Нельзя использовать при передаче ввода из stdin. Пример: qwen -i "explain this code"
--system-promptПереопределяет встроенный системный промпт основной сессии для этого запуска.Текст вашего промптаЗагруженные файлы контекста, такие как QWEN.md, всё равно добавляются после этого переопределения. Можно комбинировать с --append-system-prompt.
--append-system-promptДобавляет дополнительные инструкции к основному системному промпту сессии для этого запуска.Текст вашего промптаПрименяется после встроенного промпта и загруженных файлов контекста. Можно комбинировать с --system-prompt. Примеры см. в Безголовый режим.
--output-format-oУказывает формат вывода CLI для неинтерактивного режима.text, json, stream-jsontext: (по умолчанию) Стандартный читаемый человеком вывод. json: Машиночитаемый вывод в формате JSON, выдаваемый в конце выполнения. stream-json: Потоковые JSON-сообщения, выдаваемые по мере возникновения во время выполнения. Для структурированного вывода и скриптов используйте флаг --output-format json или --output-format stream-json. Подробную информацию см. в Безголовый режим.
--input-formatУказывает формат, потребляемый из стандартного ввода.text, stream-jsontext: (по умолчанию) Стандартный текстовый ввод из stdin или аргументов командной строки. stream-json: Протокол JSON-сообщений через stdin для двунаправленной связи. Требование: --input-format stream-json требует установки --output-format stream-json. При использовании stream-json stdin зарезервирован для сообщений протокола. Подробную информацию см. в Безголовый режим.
--include-partial-messagesВключать частичные сообщения ассистента при использовании формата вывода stream-json. При включении выдаёт потоковые события (message_start, content_block_delta и т.д.) по мере их возникновения во время потоковой передачи.По умолчанию: false. Требование: Требуется установка --output-format stream-json. Подробную информацию о потоковых событиях см. в Безголовый режим.
--sandbox-sВключает режим sandbox для этой сессии.
--sandbox-imageУстанавливает URI образа sandbox.
--debug-dВключает режим отладки для этой сессии, предоставляя более подробный вывод.
--all-files-aЕсли установлен, рекурсивно включает все файлы в текущей директории в качестве контекста для промпта.
--help-hОтображает справочную информацию об
Last updated on