Расширения Qwen Code
Расширения Qwen Code объединяют промпты, MCP-серверы, субагентов, навыки и пользовательские команды в удобный и понятный формат. С помощью расширений вы можете расширить возможности Qwen Code и делиться этими возможностями с другими. Они спроектированы так, чтобы их было легко устанавливать и распространять.
Расширения и плагины из Gemini CLI Extensions Gallery и Claude Code Marketplace можно напрямую устанавливать в Qwen Code. Эта кроссплатформенная совместимость даёт вам доступ к богатой экосистеме расширений и плагинов, значительно расширяя возможности Qwen Code без необходимости поддерживать отдельные версии для авторов расширений.
Управление расширениями
Мы предлагаем набор инструментов для управления расширениями как с помощью команд CLI qwen extensions, так и с помощью слеш-команд /extensions в интерактивном CLI.
Управление расширениями во время выполнения (слеш-команды)
Вы можете управлять расширениями во время выполнения непосредственно в интерактивном CLI с помощью слеш-команд /extensions. Эти команды поддерживают горячую перезагрузку — изменения вступают в силу немедленно, без перезапуска приложения.
| Команда | Описание |
|---|---|
/extensions или /extensions manage | Управление всеми установленными расширениями |
/extensions install <source> | Установка расширения из git-URL, локального пути или архива, URL архива, npm-пакета или маркетплейса |
/extensions explore [source] | Открыть страницу источника расширений (Gemini или ClaudeCode) в вашем браузере |
Интерактивный менеджер расширений
При выполнении /extensions (или /extensions manage) открывается интерактивный менеджер с тремя вкладками. Нажмите Tab или стрелки ←/→, чтобы переключаться между ними.
- Discover — просмотр плагинов из настроенных источников маркетплейсов. Введите текст для поиска,
Enterдля просмотра деталей плагина и его установки (вам будет предложено выбрать область установки). НажмитеCtrl+R, чтобы перезагрузить список, иEsc, чтобы вернуться назад. - Installed — ваши установленные расширения, сгруппированные по области (User level, Project level и избранные). Используйте
↑/↓для навигации,Spaceдля включения/отключения расширения,fдля добавления в избранное иEnterдля открытия его деталей. MCP-серверы, входящие в состав расширения, отображаются вложенными под родительским расширением с индикатором состояния подключения в реальном времени; оттуда вы можете включать или отключать каждый сервер по отдельности. - Sources — управление источниками маркетплейсов, которые наполняют вкладку Discover. Используйте
↑/↓для навигации,Enterдля выбора источника иdдля его удаления. Это те же источники, которыми управляют команды CLIqwen extensions sources, описанные ниже.
Изменения, внесённые здесь, применяются мгновенно, без перезапуска Qwen Code.
Управление расширениями через 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
/extensions explore Gemini
# Открыть маркетплейс Claude Code
/extensions explore ClaudeCodeЭта команда открывает соответствующий маркетплейс в вашем браузере по умолчанию, позволяя находить новые расширения для улучшения работы с Qwen Code.
Кроссплатформенная совместимость: Это позволяет использовать богатые экосистемы расширений как Gemini CLI, так и Claude Code, значительно расширяя доступный функционал для пользователей Qwen Code.
Из Gemini CLI Extensions
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-реестра
Qwen Code поддерживает установку расширений из npm-реестров с использованием имён в скоупе. Это идеально подходит для команд, у которых уже есть инфраструктура аутентификации, версионирования и публикации в частных реестрах.
# Установить последнюю версию
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Поддерживаются только пакеты со скоупом (@scope/package-name), чтобы избежать неоднозначности с сокращённым форматом GitHub owner/repo.
Определение реестра происходит в следующем порядке приоритета:
- Флаг CLI
--registry(явное переопределение) - Скоуп-реестр из
.npmrc(например,@scope:registry=https://...) - Реестр по умолчанию из
.npmrc - Резервный:
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Локальные архивы .zip и .tar.gz также поддерживаются:
qwen extensions install /path/to/your/extension.zip
qwen extensions install /path/to/your/extension.tar.gzАрхив должен содержать полное расширение в корне, либо единственную корневую директорию, содержащую расширение.
Обратите внимание, что мы создаём копию установленного расширения, поэтому для загрузки изменений как из локально определённых расширений, так и с GitHub вам нужно будет выполнить qwen extensions update.
Из URL архива
qwen extensions install https://example.com/your/extension.zip
qwen extensions install https://example.com/your/extension.tar.gzURL архивов можно обновлять позже, если URL продолжает указывать на более новый архив для того же расширения.
Выбор области установки
По умолчанию установленное расширение включено глобально (область пользователя). Передайте --scope project, чтобы включить его только для текущей рабочей области:
qwen extensions install <source> --scope project--scope workspace принимается как псевдоним --scope project. Это соответствует выбору области, предлагаемому при установке с вкладки Discover в /extensions manage.
Управление источниками маркетплейсов
Источники маркетплейсов (рынки плагинов Claude) питают вкладку Discover в /extensions manage. Вы также можете управлять ими из CLI:
# Добавить маркетплейс (owner/repo, git URL, https URL до marketplace.json или локальный путь)
qwen extensions sources add <source>
# Список настроенных маркетплейсов
qwen extensions sources list
# Перезагрузить список плагинов маркетплейса
qwen extensions sources update <name>
# Удалить маркетплейс
qwen extensions sources remove <name>Удаление расширения
Чтобы удалить расширение, выполните 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, находясь в этой рабочей области.
Это полезно, если у вас расширение отключено на верхнем уровне и включено только в определённых местах.
Обновление расширения
Для расширений, установленных из локального пути или архива, URL архива, git-репозитория или npm-реестра, вы можете явно обновить до последней версии с помощью qwen extensions update extension-name. Для npm-расширений, установленных без указания версии (например, @scope/pkg), обновления проверяют дистрибутивный тег latest. Для установленных с конкретным дистрибутивным тегом (например, @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.
- Обратите внимание, что поддерживаются все опции конфигурации MCP-сервера, кроме
channels: Словарь пользовательских адаптеров каналов. Ключ — имя типа канала, значение имеетentry(путь к скомпилированной JS-точке входа) и опциональныйdisplayName. Точка входа должна экспортировать объектplugin, соответствующий интерфейсуChannelPlugin. См. полное руководство в Channel Plugins.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/.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] Пользовательская команда из deploy.mdв справке/gcs:sync— отображается как[gcp] Пользовательская команда из 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».
Разрешение конфликтов
Команды расширений имеют самый низкий приоритет. При возникновении конфликта с пользовательскими или проектными командами:
- Без конфликта: Команда расширения использует своё естественное имя (например,
/deploy) - С конфликтом: Команда расширения переименовывается с префиксом расширения (например,
/gcp.deploy)
Например, если и пользователь, и расширение gcp определяют команду deploy:
/deploy— выполняет пользовательскую команду deploy/gcp.deploy— выполняет команду расширения deploy (помечена тегом[gcp])
Переменные
Расширения Qwen Code поддерживают подстановку переменных в qwen-extension.json. Это может быть полезно, например, если вам нужен текущий каталог для запуска MCP-сервера с помощью "cwd": "${extensionPath}${/}run.ts".
Поддерживаемые переменные:
| Переменная | Описание |
|---|---|
${extensionPath} | Полный путь к расширению в файловой системе пользователя, например, ‘/Users/username/.qwen/extensions/example-extension’. Символические ссылки не разворачиваются. |
${workspacePath} | Полный путь к текущей рабочей области. |
${/} или ${pathSeparator} | Разделитель пути (отличается в зависимости от ОС). |