Полный гайд по Qwen CLI: настраиваем MCP, Agent Skills и Rules для реальной разработки

читать 10 мин
AICLIMCPAgentSkillsRulesVibecoding

Sample Image

Что такое Вайб-кодинг

Вайб-кодинг (Vibe Coding) - это подход к программированию, при котором вы описываете желаемый результат на естественном языке, а ИИ (чаще всего языковая модель вроде Claude, ChatGPT, а в данной статье Qwen) генерирует за вас код.

Типичный процесс выглядит так: вы говорите что-то вроде «сделай мне лендинг с формой подписки и анимацией при скролле», ИИ выдаёт рабочий код, вы смотрите результат и уточняете - «сделай кнопку крупнее, добавь тёмную тему» и так далее. По сути, программирование превращается в диалог.

Sample Image

Это хорошо работает для прототипов, внутренних инструментов и небольших проектов. Для сложных продакшн-систем вайбкодинг пока скорее отправная точка (например, засетапить проект) - без понимания кода трудно отлаживать, масштабировать и поддерживать результат.

В этой статье разберёмся, как начать вайбкодить с Qwen CLI и абсолютно бесплатно: сделаем небольшое приложение и познакомимся с MCP, Rules и Skills.

Установка и настройка Qwen CLI

Что нам понадобиться:

  • аккаунт на Qwen Code;
  • Node.js не ниже 20-й версии;
  • редактор кода, например, VS Code.

После того как всё подготовили, необходимо в консоли установить qwen-code через npm:

npm install -g @qwen-code/qwen-code@latest

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

qwen

Но при первом использовании вас попросят авторизоваться. Выберите аутентификацию Qwen OAuth (бесплатно) и следуйте инструкциям для входа.

Вообще, что умеет Qwen Code:

  • Создаёт фичи по описанию.
  • Отлаживает и исправляет ошибки: опишите баг или вставьте сообщение об ошибке. Qwen Code проанализирует вашу кодовую базу, найдёт проблему и реализует исправление.
  • Ориентируется в любой кодовой базе: Qwen Code учитывает всю структуру вашего проекта, может находить актуальную информацию в интернете, а с помощью MCP - подтягивать данные из внешних источников, таких как Google Drive, Figma и другие.
  • Автоматизирует рутину: исправляйте мелкие проблемы с линтером, разрешайте конфликты слияния.

У Qwen CLI множество настроек, все можно посмотреть здесь. Чтобы перейти к настройкам, введите в консоли:

/settings

Screenshot_20260308_161930.png В основном в этих настройках нам понадобится поменять, например, тему, выбрать модель, язык интерфейса и так далее. Настроек много, советую всё потыкать. Screenshot_20260308_162324.png

MCP

MCP - это открытый стандарт, который позволяет ИИ-ассистентам безопасно подключаться к внешним источникам данных и инструментам. До появления MCP разработчикам приходилось писать уникальные плагины и коннекторы для каждой отдельной нейросети (отдельно для ChatGPT, отдельно для Claude, отдельно для локальных моделей).

Кратко: единый универсальный язык для общения ИИ с вашим компьютером и сервисами.

Для того чтобы использовать MCP с Qwen, необходимо создать папку .qwen, в которой будет храниться файл settings.json. В этот файл мы и будем добавлять коннекторы. Но где же их взять? Для этого есть сервис mcpmarket.com. На нём собрано множество MCP-сервисов, которые вы можете использовать в своей работе - подключиться к Figma, Blender, Playwright и пр.

Screenshot_20260308_163906.png

Пример json'а с подключенным MCP:

{
  "mcpServers": {
    "pythonTools": {
      "command": "python",
      "args": ["-m", "my_mcp_server", "--port", "8080"],
      "cwd": "./mcp-servers/python",
      "env": {
        "DATABASE_URL": "$DB_CONNECTION_STRING",
        "API_KEY": "${EXTERNAL_API_KEY}"
      },
      "timeout": 15000
    }
  }
}

Больше можно прочитать в самой доке Qwen MCP.

Agent Skills

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

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

.skills/
└── check-npm-deps/            # Папка конкретного навыка
    ├── SKILL.md               # Главный файл с метаданными и инструкциями
    ├── package-template.json  # Вспомогательный файл-шаблон
    └── audit-script.sh        # Исполняемый скрипт

У нас в примере, который мы рассмотрим позже, скиллы будут находиться в папке .qwen/skills.

Пример того, что содержится в SKILL.md:

---
name: your-skill-name
description: Краткое описание того, что делает этот навык и когда его использовать
---
 
# Название вашего навыка
 
## Инструкции
Предоставьте четкие пошаговые указания для Qwen Code.
 
## Примеры
Приведите конкретные примеры использования этого навыка.

Но как же работают навыки? Давайте рассмотрим на практике:

  • Discovery: Когда ИИ-агент запускается, он не читает весь файл SKILL.md. Он заглядывает только в его шапку (YAML frontmatter) и считывает name и description (описание). ИИ запоминает: «Ага, у меня есть навык check-npm-deps, который нужен для решения проблем с package-lock.json и зависимостями». Это занимает всего пару десятков токенов.
  • Matching: Вы пишете агенту: «У коллеги падает npm install, проверь версии библиотек».
  • Activation. Модель понимает, что задача идеально ложится под описание навыка. Только в этот момент агент подтягивает в свой контекст всё содержимое файла SKILL.md (подробные пошаговые инструкции) и получает доступ к скриптам в папке.

Где можно скачать готовые скиллы:

Screenshot_20260308_174332.png Здесь можно побольше почитать про Agent Skills:

Rules

Rules - это устав, должностная инструкция (звучит бюрократично, но так понятнее) и стандарты, которым ИИ подчиняется всегда.

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

Что обычно пишут в правилах:

  • Технологический стек и архитектура: «Этот проект написан на Next.js 14 с App Router. Используй Tailwind CSS для стилей».
  • Стандарты кодирования: «Никогда не используй any в TypeScript. Функции должны быть стрелочными. Ошибки всегда логируй через Sentry».
  • Тон и формат общения: «Отвечай коротко. Давай только код без долгих извинений и объяснений, если я не попросил об обратном».
  • Жесткие ограничения: «Никогда не удаляй таблицы в базе данных напрямую».

Разница между Skills и Rules.

  • Правило (Rule) скажет ИИ: «В этом проекте мы жестко фиксируем версии зависимостей. При добавлении новых библиотек никогда не используй знаки ^ или ~ в package.json». Это базовый стандарт, который ИИ должен помнить всегда, чтобы потом система установила в точности те же зависимости, что и у вас.

  • Навык (Skill) даст ИИ инструмент: Скрипт check-lockfile, который ИИ может по своей инициативе запустить, чтобы залезть в package-lock.json, проверить сложную структуру под-зависимостей конкретного пакета (например, строго ли там зафиксирована версия 0.21.1) и убедиться, что у коллеги при выполнении npm install ничего не сломается.

Чтобы задать правила для Qwen CLI, необходимо добавить файл QWEN.md (обязательно заглавными буквами). QWEN.md - это, грубо говоря, мастер-промпт проекта, который будет учитываться во время любого запроса.

После генерации кода мы должны перепроверить, что он там нагенерил, добавить свои правила и вычистить то, в чём он ошибся. Используйте обычный синтаксис Markdown, чтобы описать стандарты и ограничения. Вот пример того, как это можно структурировать:

# Session Rules

## Архитектура и стек
- Используй TypeScript и строгую типизацию. Никакого `any`.
- Пиши функциональные компоненты, не используй классы.

## Работа с зависимостями
**CRITICAL:** В этом проекте мы жестко фиксируем версии пакетов. 
Никогда не используй плавающие версии (символы `^` или `~`) при добавлении библиотек. package-lock.json фиксирует точные версии (например, строго 0.21.1) всех установленных пакетов и их собственных под-зависимостей. ИИ-агент не должен нарушать этот механизм, чтобы когда коллега напишет `npm install`, система установила в точности те же зависимости, что и у остальных.

## Формат общения
- Выдавай готовый код без лишних извинений и долгих вступлений вроде «Конечно, вот ваш код». 
- Логируй ошибки только через нашу внутреннюю систему, а не через `console.log`.

⚠️ Важный нюанс (Qwen CLI Trick)

У моделей семейства Qwen (особенно если вы используете локальные версии Coder) есть известная особенность — разработчики в сообществе часто жалуются на «избирательное выполнение правил». Нейросеть иногда «забывает» мягкие инструкции, увлекаясь написанием кода.

Чтобы Qwen CLI точно слушался, применяйте жесткий «инженерный» подход:

  • Используйте капслок для самых важных вещей: CRITICAL:, MANDATORY:, ALWAYS.

  • Если правило часто нарушается, добавьте приписку: - this is NON-NEGOTIABLE (это не обсуждается).

  • Давайте конкретный шаблон или пример прямо в тексте правила - моделям проще копировать паттерн, чем следовать абстрактному описанию.

Практика: создаем Next.js приложение (Зоомагазин) с нуля

Чтобы создать приложение, нужны требования. Писать их самим не хочется, поэтому делегируем задачу нейросети. Подойдет любая модель из топ-5, но в этом примере я использую DeepSeek для создания md-файлов.

Почему не Qwen? У него бывают сложности с рендерингом Markdown в веб-интерфейсе. Конечно, можно использовать CLI - кому как удобнее. Отправляем нейронке промпт и получаем структурированные требования.

Что мы сообщим нейронке:

  1. Что у нас за проект.

  2. Какой стек выбрать? (Тут мы тоже можем попросить нейронку подобрать технологии под наш проект). Screenshot_20260309_213232.png

  3. Какие будут страницы.

  4. Какой стиль.

  5. и так далее.

Пример промта

Выступай в роли опытного системного аналитика и Product-менеджера. Составь подробный документ с требованиями (Product Requirements Document) для разработки веб-приложения интернет-зоомагазина. Ответ предоставь строго в виде кода для Markdown файла (.md).

Технологический стек: > - Фронтенд и серверная часть: Next.js, UI: Shadcn UI. 

    База данных: MySQL

Описание функционала и экранов:

    Главная страница (Каталог):

        Навигация в виде табов для быстрого перехода к категориям: Акции, Кошки, Собаки, Грызуны, Рыбы, Птицы, Ветаптека.

        Компактный промо-слайдер со скидками (например, на корма, лекарства и спецпредложения). Не должен занимать весь экран.

        Выдача товаров в виде сетки карточек. В карточке: фото, название, цена и кнопка добавления в корзину.

        При клике на карточку осуществляется переход на страницу описания продукта.

    Страница продукта:

        Подробное описание товара, характеристики, увеличенное фото, цена.

        Кнопка «Добавить в корзину» (с возможностью выбора количества).

    Корзина:

        Список всех добавленных товаров (с возможностью удалить позицию или изменить количество).

        Общая итоговая сумма заказа.

        Кнопка «Заказать». Опиши базовый флоу оформления заказа (ввод контактов, адреса доставки).

Требования к структуре генерируемого .md файла:

    Обзор проекта и цели.

    Пользовательские роли (Гость, Клиент).

    Функциональные требования (постранично).

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

    Базовая схема базы данных MySQL (основные таблицы: users, products, categories, orders и их связи). 

Передаем наш промпт нейронке и получаем такой ответ - просто превосходно:

3a4cc477dd754caddb24fe0455321ab4.png

Не забываем перепроверять то, что нам нагенерила нейронка. Но чтобы разработка шла гладко, необходимы четкие этапы. Попросим нейросеть на основе созданного md-файла составить пошаговый план.

Пример промпта:

Опираясь на предыдущие требования к зоомагазину, создай поэтапный план разработки. 
Мне нужно, чтобы работа была разбита на множество мелких, логичных шагов (от инициализации проекта до настройки БД и верстки компонентов). 
После каждого шага должны быть инструкции, как проверить промежуточный результат и отследить ошибки в терминале. Оформи ответ в виде Markdown-файла.

5103f5eb047d0ea459585a53d38a7dc8.png Опять перепроверим, что нам нагенерила нейронка. После того как мы получили требования, начнем вайб-кодить. Создаем проект в любой директории и добавляем два наших файла. Screenshot_20260309_221236.png

Но нам еще нужно донастроить наш проект. Создаем папку .qwen, а в ней - файл settings.json: здесь будут наши настройки для Qwen CLI. Первое, что мы сделаем, - это подключим MCP. Будем использовать Shadcn UI v4 MCP Server с помощью него визуал нашего приложения будет выглядить лучше.

1117ecda642b26634882fb0d11d87b91.png

Добавляем файл SKILL.md в нашу папку .qwen/fix. Навык возьмер отсюда https://mcpmarket.com/tools/skills/react-code-fix-linter.

Screenshot_20260309_224439.png

Далее нам нужно объяснить нейронке, что мы от неё хотим.

Пример промпта:

Создай проект используя документацию проекта в файле @PRD.md 
и следуя плану из файла @STEPS.md

И работа пошла - обратите внимание, что нейронка взяла план из нашего файла.

Screenshot_20260309_225139.png

Получилось что-то такое. Screenshot_20260309_233353.png

Кстати, чтобы сделать проект, я потратил всего 12% контекста.

8ca2c34d656c26384a63d261ea97979f.png

Так что эксперементируйте.

Заключение

Вот так, потратив минимум времени на рутину (и элегантно делегировав написание требований другой нейросети), мы с нуля подняли рабочий каркас Next.js-приложения. И всё это - не выходя из терминала и израсходовав всего 12% контекста!

Это больше не слепая генерация кусков кода формата «сделай мне красиво». В связке с Qwen CLI, жесткими правилами проекта (Rules), внешними коннекторами (MCP) и узконаправленными навыками (Skills) языковая модель превращается во вменяемого ассистента.

Да, результат всё еще нужно контролировать. Но согласитесь, выступать в роли тимлида, который просто ревьюит код и задает вектор (вайб!), гораздо приятнее, чем вручную настраивать роутинг и центрировать дивы.

Вы можете попробовать разные CLI:

  1. Claude Code
  2. Codex CLI
  3. Gemini CLI
  4. Kimi Code
Полный гайд по Qwen CLI: настраиваем MCP, Agent Skills и Rules для реальной разработки | Frontend Tales