Skip to Content
Руководство пользователяФункцииРежим без головы

Режим без графического интерфейса

Режим без графического интерфейса позволяет запускать Qwen Code программно из сценариев командной строки и инструментов автоматизации без какого-либо интерактивного пользовательского интерфейса. Это идеальный вариант для сценариев, автоматизации, CI/CD конвейеров и создания инструментов с поддержкой ИИ.

Обзор

Режим без графического интерфейса предоставляет интерфейс без графического интерфейса для Qwen Code, который:

  • Принимает запросы через аргументы командной строки или stdin
  • Возвращает структурированный вывод (текст или JSON)
  • Поддерживает перенаправление файлов и конвейерную передачу
  • Обеспечивает автоматизацию и сценарии работы
  • Обеспечивает согласованные коды выхода для обработки ошибок
  • Может возобновлять предыдущие сеансы, ограниченные текущим проектом, для многошаговой автоматизации

Основное использование

Прямые запросы

Используйте флаг --prompt (или -p) для запуска в режиме без графического интерфейса:

qwen --prompt "Что такое машинное обучение?"

Ввод из Stdin

Передайте ввод в Qwen Code из вашего терминала:

echo "Объясните этот код" | qwen

Комбинирование с вводом из файла

Чтение из файлов и обработка с помощью Qwen Code:

cat README.md | qwen --prompt "Summarize this documentation"

Возобновление предыдущих сессий (в фоновом режиме)

Повторное использование контекста разговора из текущего проекта в скриптах без интерфейса:

# Продолжить самую последнюю сессию для этого проекта и выполнить новый запрос qwen --continue -p "Run the tests again and summarize failures" # Возобновить конкретный сеанс по ID напрямую (без интерфейса) qwen --resume 123e4567-e89b-12d3-a456-426614174000 -p "Apply the follow-up refactor"
Note
  • Данные сессии хранятся в формате JSONL в ~/.qwen/projects/<sanitized-cwd>/chats.
  • Восстанавливает историю разговора, вывод инструментов и контрольные точки сжатия чата перед отправкой нового запроса.

Форматы вывода

Qwen Code поддерживает несколько форматов вывода для различных случаев использования:

Текстовый вывод (по умолчанию)

Стандартный вывод в удобочитаемом формате:

qwen -p "Какова столица Франции?"

Формат ответа:

Столица Франции — Париж.

Вывод в формате JSON

Возвращает структурированные данные в виде массива JSON. Все сообщения буферизуются и выводятся вместе после завершения сеанса. Этот формат идеально подходит для программной обработки и автоматизации скриптов.

Вывод JSON представляет собой массив объектов сообщений. Вывод включает в себя несколько типов сообщений: системные сообщения (инициализация сеанса), сообщения помощника (ответы ИИ) и сообщения с результатами (сводка выполнения).

Пример использования

qwen -p "Какова столица Франции?" --output-format json

Вывод (в конце выполнения):

[ { "type": "system", "subtype": "session_start", "uuid": "...", "session_id": "...", "model": "qwen3-coder-plus", ... }, { "type": "assistant", "uuid": "...", "session_id": "...", "message": { "id": "...", "type": "message", "role": "assistant", "model": "qwen3-coder-plus", "content": [ { "type": "text", "text": "Столица Франции — Париж." } ], "usage": {...} }, "parent_tool_use_id": null }, { "type": "result", "subtype": "success", "uuid": "...", "session_id": "...", "is_error": false, "duration_ms": 1234, "result": "Столица Франции — Париж.", "usage": {...} } ]

Вывод Stream-JSON

Формат Stream-JSON немедленно выводит JSON-сообщения по мере их появления во время выполнения, обеспечивая возможность мониторинга в реальном времени. В этом формате используется JSON с разделением строк, где каждое сообщение представляет собой полный JSON-объект в одной строке.

qwen -p "Объясните TypeScript" --output-format stream-json

Вывод (потоковая передача по мере поступления событий):

{"type":"system","subtype":"session_start","uuid":"...","session_id":"..."} {"type":"assistant","uuid":"...","session_id":"...","message":{...}} {"type":"result","subtype":"success","uuid":"...","session_id":"..."}

При использовании вместе с --include-partial-messages в реальном времени выдаются дополнительные события потока (message_start, content_block_delta и т.д.) для обновления пользовательского интерфейса в реальном времени.

qwen -p "Напишите Python-скрипт" --output-format stream-json --include-partial-messages

Формат ввода

Параметр --input-format управляет тем, как Qwen Code потребляет ввод из стандартного ввода:

  • text (по умолчанию): Стандартный текстовый ввод из stdin или аргументов командной строки
  • stream-json: Протокол сообщений JSON через stdin для двусторонней связи

Примечание: Режим ввода stream-json находится в разработке и предназначен для интеграции с SDK. Для него требуется установить --output-format stream-json.

Перенаправление файлов

Сохраняйте вывод в файлы или передавайте в другие команды:

# Сохранить в файл qwen -p "Объясните Docker" > docker-explanation.txt qwen -p "Объясните Docker" --output-format json > docker-explanation.json # Добавить в файл qwen -p "Добавьте больше деталей" >> docker-explanation.txt # Передать в другие инструменты qwen -p "Что такое Kubernetes?" --output-format json | jq '.response' qwen -p "Объясните микросервисы" | wc -w qwen -p "Перечислите языки программирования" | grep -i "python" # Потоковый JSON-вывод для обработки в реальном времени qwen -p "Объясни Docker" --output-format stream-json | jq '.type' qwen -p "Напиши код" --output-format stream-json --include-partial-messages | jq '.event.type'

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

Основные параметры командной строки для использования в режиме headless:

ПараметрОписаниеПример
--prompt, -pЗапуск в режиме headlessqwen -p "query"
--output-format, -oУказать формат вывода (text, json, stream-json)qwen -p "query" --output-format json
--input-formatУказать формат ввода (text, stream-json)qwen --input-format text --output-format stream-json
--include-partial-messagesВключать частичные сообщения в вывод stream-jsonqwen -p "query" --output-format stream-json --include-partial-messages
--debug, -dВключить режим отладкиqwen -p "query" --debug
--all-files, -aВключить все файлы в контекстqwen -p "query" --all-files
--include-directoriesВключить дополнительные каталогиqwen -p "query" --include-directories src,docs
--yolo, -yАвтоматически утверждать все действияqwen -p "query" --yolo
--approval-modeУстановить режим утвержденияqwen -p "query" --approval-mode auto_edit
--continueВозобновить последнюю сессию для этого проектаqwen --continue -p "Pick up where we left off"
--resume [sessionId]Возобновить конкретную сессию (или выбрать интерактивно)qwen --resume 123e... -p "Finish the refactor"
--experimental-skillsВключить экспериментальные навыки (регистрирует инструмент skill)qwen --experimental-skills -p "What Skills are available?"

Полные сведения обо всех доступных параметрах конфигурации, файлах настроек и переменных окружения см. в Руководстве по конфигурации.

Примеры

Проверка кода

cat src/auth.py | qwen -p "Проверь этот код аутентификации на наличие проблем с безопасностью" > security-review.txt

Генерация сообщений коммитов

result=$(git diff --cached | qwen -p "Напиши краткое сообщение коммита для этих изменений" --output-format json) echo "$result" | jq -r '.response'

Документация API

result=$(cat api/routes.js | qwen -p "Сгенерируй спецификацию OpenAPI для этих маршрутов" --output-format json) echo "$result" | jq -r '.response' > openapi.json

Пакетный анализ кода

for file in src/*.py; do echo "Анализ $file..." result=$(cat "$file" | qwen -p "Найди потенциальные ошибки и предложи улучшения" --output-format json) echo "$result" | jq -r '.response' > "reports/$(basename "$file").analysis" echo "Анализ завершен для $(basename "$file")" >> reports/progress.log done

Код-ревью PR

result=$(git diff origin/main...HEAD | qwen -p "Проверь эти изменения на наличие багов, проблем с безопасностью и качества кода" --output-format json) echo "$result" | jq -r '.response' > pr-review.json

Анализ логов

grep "ERROR" /var/log/app.log | tail -20 | qwen -p "Проанализируй эти ошибки и предложи основную причину и способы устранения" > error-analysis.txt

Генерация заметок о релизе

result=$(git log --oneline v1.0.0..HEAD | qwen -p "Создай заметки о релизе на основе этих коммитов" --output-format json) response=$(echo "$result" | jq -r '.response') echo "$response" echo "$response" >> CHANGELOG.md

Отслеживание использования моделей и инструментов

result=$(qwen -p "Объясните эту схему базы данных" --include-directories db --output-format json) total_tokens=$(echo "$result" | jq -r '.stats.models // {} | to_entries | map(.value.tokens.total) | add // 0') models_used=$(echo "$result" | jq -r '.stats.models // {} | keys | join(", ") | if . == "" then "none" else . end') tool_calls=$(echo "$result" | jq -r '.stats.tools.totalCalls // 0') tools_used=$(echo "$result" | jq -r '.stats.tools.byName // {} | keys | join(", ") | if . == "" then "none" else . end') echo "$(date): $total_tokens tokens, $tool_calls tool calls ($tools_used) used with models: $models_used" >> usage.log echo "$result" | jq -r '.response' > schema-docs.md echo "Recent usage trends:" tail -5 usage.log

Ресурсы

Last updated on