Skip to Content
Руководство для пользователейРасширениеВведение

Расширения Qwen Code

Расширения Qwen Code объединяют промпты, MCP-серверы, субагентов, навыки (skills) и пользовательские команды в знакомый и удобный формат. С помощью расширений вы можете расширить возможности Qwen Code и делиться ими с другими. Они разработаны для простой установки и распространения.

Расширения и плагины из Gemini CLI Extensions Gallery  и Claude Code Marketplace  можно устанавливать напрямую в Qwen Code. Эта кроссплатформенная совместимость открывает доступ к богатой экосистеме расширений и плагинов, значительно расширяя возможности Qwen Code без необходимости авторам поддерживать отдельные версии.

Управление расширениями

Мы предлагаем набор инструментов для управления расширениями с помощью CLI-команд qwen extensions и слэш-команд /extensions в интерактивном CLI.

Управление расширениями во время выполнения (слэш-команды)

Вы можете управлять расширениями во время выполнения в интерактивном CLI с помощью слэш-команд /extensions. Эти команды поддерживают hot-reloading, то есть изменения применяются мгновенно без перезапуска приложения.

CommandDescription
/extensions или /extensions manageУправление всеми установленными расширениями
/extensions install <source>Установка расширения из git-URL, локального пути, npm-пакета или маркетплейса
/extensions explore [source]Открыть страницу источника расширений (Gemini или ClaudeCode) в браузере

Управление расширениями через CLI

Вы также можете управлять расширениями с помощью CLI-команд qwen extensions. Обратите внимание: изменения, внесённые через CLI-команды, отразятся в активных сессиях CLI после перезапуска.

Установка расширения

Вы можете установить расширение с помощью qwen extensions install из нескольких источников:

Из Claude Code Marketplace

Qwen Code также поддерживает плагины из Claude Code Marketplace . Установите из маркетплейса и выберите плагин:

qwen extensions install <marketplace-name> # или qwen extensions install <marketplace-github-url>

Если вы хотите установить конкретный плагин, используйте формат с указанием имени плагина:

qwen extensions install <marketplace-name>:<plugin-name> # или qwen extensions install <marketplace-github-url>:<plugin-name>

Например, чтобы установить плагин prompts.chat из маркетплейса f/awesome-chatgpt-prompts :

qwen extensions install f/awesome-chatgpt-prompts:prompts.chat # или qwen extensions install https://github.com/f/awesome-chatgpt-prompts:prompts.chat

Плагины Claude автоматически конвертируются в формат Qwen Code во время установки:

  • claude-plugin.json конвертируется в qwen-extension.json
  • Конфигурации агентов конвертируются в формат субагентов Qwen
  • Конфигурации навыков конвертируются в формат навыков Qwen
  • Маппинги инструментов обрабатываются автоматически

Вы можете быстро просмотреть доступные расширения из разных маркетплейсов с помощью команды /extensions explore:

# Открыть маркетплейс расширений Gemini CLI /extensions explore Gemini # Открыть маркетплейс Claude Code /extensions explore ClaudeCode

Эта команда открывает соответствующий маркетплейс в браузере по умолчанию, позволяя находить новые расширения для улучшения работы с Qwen Code.

Кроссплатформенная совместимость: Это позволяет использовать богатые экосистемы расширений как от Gemini CLI, так и от Claude Code, значительно расширяя доступный функционал для пользователей Qwen Code.

Из расширений Gemini CLI

Qwen Code полностью поддерживает расширения из Gemini CLI Extensions Gallery . Просто установите их, указав git-URL:

qwen extensions install <gemini-cli-extension-github-url> # или qwen extensions install <owner>/<repo>

Расширения Gemini автоматически конвертируются в формат Qwen Code во время установки:

  • gemini-extension.json конвертируется в qwen-extension.json
  • Файлы команд в формате TOML автоматически мигрируют в формат Markdown
  • MCP-серверы, файлы контекста и настройки сохраняются

Из npm Registry

Qwen Code поддерживает установку расширений из npm-реестров с использованием scoped-имён пакетов. Это идеально подходит для команд с приватными реестрами, где уже настроена инфраструктура аутентификации, версионирования и публикации.

# Установка последней версии qwen extensions install @scope/my-extension # Установка конкретной версии qwen extensions install @scope/my-extension@1.2.0 # Установка из кастомного реестра qwen extensions install @scope/my-extension --registry https://your-registry.com

Поддерживаются только scoped-пакеты (@scope/package-name), чтобы избежать неоднозначности с сокращённым форматом GitHub owner/repo.

Разрешение реестра выполняется в следующем порядке приоритета:

  1. Флаг CLI --registry (явное переопределение)
  2. Scoped-реестр из .npmrc (например, @scope:registry=https://...)
  3. Реестр по умолчанию из .npmrc
  4. Резервный вариант: https://registry.npmjs.org/

Аутентификация обрабатывается автоматически через переменную окружения NPM_TOKEN или специфичные для реестра записи _authToken в вашем файле .npmrc.

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

Из Git-репозитория

qwen extensions install https://github.com/github/github-mcp-server

Это установит расширение github mcp server.

Из локального пути

qwen extensions install /path/to/your/extension

Обратите внимание: мы создаём копию установленного расширения, поэтому для получения изменений как из локально определённых расширений, так и из репозиториев на GitHub, вам потребуется выполнить qwen extensions update.

Удаление расширения

Для удаления выполните qwen extensions uninstall extension-name. Например, для случая установки выше:

qwen extensions uninstall qwen-cli-security

Отключение расширения

По умолчанию расширения включены для всех рабочих пространств. Вы можете отключить расширение полностью или только для конкретного рабочего пространства.

Например, qwen extensions disable extension-name отключит расширение на уровне пользователя, то есть везде. qwen extensions disable extension-name --scope=workspace отключит расширение только в текущем рабочем пространстве.

Включение расширения

Вы можете включать расширения с помощью qwen extensions enable extension-name. Также вы можете включить расширение для конкретного рабочего пространства, выполнив qwen extensions enable extension-name --scope=workspace внутри этого пространства.

Это полезно, если расширение отключено на глобальном уровне и должно быть включено только в определённых местах.

Обновление расширения

Для расширений, установленных из локального пути, git-репозитория или npm-реестра, вы можете явно обновить их до последней версии с помощью qwen extensions update extension-name. Для npm-расширений, установленных без фиксации версии (например, @scope/pkg), обновления проверяют dist-тег latest. Для расширений, установленных с конкретным dist-тегом (например, @scope/pkg@beta), обновления отслеживают этот тег. Расширения, зафиксированные на точной версии (например, @scope/pkg@1.2.0), всегда считаются актуальными.

Вы можете обновить все расширения с помощью:

qwen extensions update --all

Как это работает

При запуске Qwen Code ищет расширения в <home>/.qwen/extensions

Расширения представляют собой каталог, содержащий файл qwen-extension.json. Например:

<home>/.qwen/extensions/my-extension/qwen-extension.json

qwen-extension.json

Файл qwen-extension.json содержит конфигурацию расширения. Файл имеет следующую структуру:

{ "name": "my-extension", "version": "1.0.0", "mcpServers": { "my-server": { "command": "node my-server.js" } }, "channels": { "my-platform": { "entry": "dist/index.js", "displayName": "My Platform Channel" } }, "contextFileName": "QWEN.md", "commands": "commands", "skills": "skills", "agents": "agents", "settings": [ { "name": "API Key", "description": "Your API key for the service", "envVar": "MY_API_KEY", "sensitive": true } ] }
  • name: Имя расширения. Используется для уникальной идентификации расширения и разрешения конфликтов, когда команды расширения имеют те же имена, что и пользовательские или проектные команды. Имя должно содержать строчные буквы или цифры и использовать дефисы вместо подчёркиваний или пробелов. Именно так пользователи будут обращаться к вашему расширению в CLI. Обратите внимание: мы ожидаем, что это имя будет совпадать с именем каталога расширения.
  • version: Версия расширения.
  • mcpServers: Маппинг MCP-серверов для настройки. Ключ — имя сервера, значение — конфигурация сервера. Эти серверы будут загружаться при запуске так же, как MCP-серверы, настроенные в файле settings.json. Если и расширение, и файл settings.json настраивают MCP-сервер с одинаковым именем, приоритет имеет сервер, определённый в settings.json.
    • Обратите внимание: поддерживаются все параметры конфигурации MCP-сервера, кроме trust.
  • channels: Маппинг пользовательских адаптеров каналов. Ключ — имя типа канала, значение содержит entry (путь к скомпилированной JS-точке входа) и опциональный displayName. Точка входа должна экспортировать объект plugin, соответствующий интерфейсу ChannelPlugin. Полное руководство см. в разделе Плагины каналов.
  • contextFileName: Имя файла, содержащего контекст для расширения. Используется для загрузки контекста из каталога расширения. Если это свойство не указано, но в каталоге расширения присутствует файл QWEN.md, будет загружен он.
  • commands: Каталог, содержащий пользовательские команды (по умолчанию: commands). Команды представляют собой .md-файлы, определяющие промпты.
  • skills: Каталог, содержащий пользовательские навыки (по умолчанию: skills). Навыки обнаруживаются автоматически и становятся доступны через команду /skills.
  • agents: Каталог, содержащий пользовательские субагенты (по умолчанию: agents). Субагенты представляют собой .yaml- или .md-файлы, определяющие специализированных AI-ассистентов.
  • settings: Массив настроек, требуемых расширением. При установке пользователям будет предложено указать значения для этих настроек. Значения хранятся безопасно и передаются MCP-серверам в виде переменных окружения.
    • Каждая настройка имеет следующие свойства:
      • name: Отображаемое имя настройки
      • description: Описание назначения настройки
      • envVar: Имя переменной окружения, которая будет установлена
      • sensitive: Логическое значение, указывающее, следует ли скрывать значение (например, для API-ключей, паролей)

Управление настройками расширений

Расширения могут требовать конфигурации через настройки (например, API-ключи или учётные данные). Этими настройками можно управлять с помощью CLI-команды qwen extensions settings:

Установка значения настройки:

qwen extensions settings set <extension-name> <setting-name> [--scope user|workspace]

Список всех настроек расширения:

qwen extensions settings list <extension-name>

Просмотр текущих значений (пользователь и рабочее пространство):

qwen extensions settings show <extension-name> <setting-name>

Удаление значения настройки:

qwen extensions settings unset <extension-name> <setting-name> [--scope user|workspace]

Настройки можно конфигурировать на двух уровнях:

  • Уровень пользователя (по умолчанию): Настройки применяются ко всем проектам (~/.qwen/.env)
  • Уровень рабочего пространства: Настройки применяются только к текущему проекту (.qwen/.env)

Настройки рабочего пространства имеют приоритет над настройками пользователя. Конфиденциальные настройки хранятся безопасно и никогда не отображаются в открытом виде.

При запуске Qwen Code загружает все расширения и объединяет их конфигурации. В случае конфликтов приоритет имеет конфигурация рабочего пространства.

Пользовательские команды

Расширения могут предоставлять пользовательские команды, размещая Markdown-файлы в подкаталоге commands/ внутри каталога расширения. Эти команды следуют тому же формату, что и пользовательские/проектные команды, и используют стандартные соглашения об именовании.

Примечание: Формат команд обновлён с TOML на Markdown. Файлы TOML устарели, но всё ещё поддерживаются. Вы можете мигрировать существующие TOML-команды с помощью автоматического запроса на миграцию, который появляется при обнаружении TOML-файлов.

Пример

Расширение с именем gcp и следующей структурой:

.qwen/extensions/gcp/ ├── qwen-extension.json └── commands/ ├── deploy.md └── gcs/ └── sync.md

Предоставит следующие команды:

  • /deploy — отображается в справке как [gcp] Custom command from deploy.md
  • /gcs:sync — отображается в справке как [gcp] Custom command from sync.md

Пользовательские навыки

Расширения могут предоставлять пользовательские навыки, размещая файлы навыков в подкаталоге skills/ внутри каталога расширения. Каждый навык должен содержать файл SKILL.md с YAML-фронтматтером, определяющим имя и описание навыка.

Пример

.qwen/extensions/my-extension/ ├── qwen-extension.json └── skills/ └── pdf-processor/ └── SKILL.md

Навык будет доступен через команду /skills, когда расширение активно.

Пользовательские субагенты

Расширения могут предоставлять пользовательские субагенты, размещая файлы конфигурации агентов в подкаталоге agents/ внутри каталога расширения. Агенты определяются с помощью YAML- или Markdown-файлов.

Пример

.qwen/extensions/my-extension/ ├── qwen-extension.json └── agents/ └── testing-expert.yaml

Субагенты расширений отображаются в диалоговом окне менеджера субагентов в разделе “Агенты расширений” (Extension Agents).

Разрешение конфликтов

Команды расширений имеют самый низкий приоритет. При возникновении конфликта с пользовательскими или проектными командами:

  1. Отсутствие конфликта: Команда расширения использует своё естественное имя (например, /deploy)
  2. Наличие конфликта: Команда расширения переименовывается с добавлением префикса расширения (например, /gcp.deploy)

Например, если и пользователь, и расширение gcp определяют команду deploy:

  • /deploy — выполняет пользовательскую команду deploy
  • /gcp.deploy — выполняет команду deploy расширения (помечена тегом [gcp])

Переменные

Расширения Qwen Code поддерживают подстановку переменных в qwen-extension.json. Это может быть полезно, если, например, вам нужен текущий каталог для запуска MCP-сервера с использованием "cwd": "${extensionPath}${/}run.ts".

Поддерживаемые переменные:

variabledescription
${extensionPath}Полный путь к расширению в файловой системе пользователя, например, ‘/Users/username/.qwen/extensions/example-extension’. Символические ссылки не разворачиваются.
${workspacePath}Полный путь к текущему рабочему пространству.
${/} или ${pathSeparator}Разделитель путей (зависит от ОС).
Last updated on