Программирование
3 марта 2025 г.
Как использовать Cline и Roo Code в качестве AI-ассистента для кода?
Почти год назад в нашей публикации на Хабр мы рассмотрели подборку AI-ассистентов для кода, сегодня же нам хотелось бы сосредоточить внимание на одном конкретном, а именно — Cline, номер 1 на OpenRouter. Предлагаем вместе пробежаться по настройке и интеграции, а также использовании Cline в качестве ИИ-ассистента. А также мы поговорим про Roo Code — форке Cline, но совсем немного, поскольку они идентичны в настройке и функционале.
Cline

Cline, как вы поняли, это AI-ассистент для разработки, который можно интегрировать в редактор кода (VSCode например). Ключевая особенность Cline — возможность выполнения команд непосредственно в терминале редактора, что в сочетании с инструментами для создания и редактирования файлов, навигации по проектам и управления браузером, позволяет ассистенту решать сложные задачи разработки комплексно. Все действия, включая команды терминала, требуют подтверждения пользователя, что обеспечивает полный контроль действий ассистента. В основе Cline лежит MCP, который дает возможность расширять функциональность ассистента, создавая кастомные инструменты под специфические рабочие процессы.Для понимания задачи, Cline анализирует структуру проекта, AST исходного кода, применяет поиск регулярных выражений и изучает релевантные файлы, что позволяет эффективно работать даже с крупными проектами, не перегружая модель. На основе контекста, Cline способен создавать, редактировать и рефакторить код, автоматически исправляя типичные ошибки вроде отсутствующих импортов или синтаксических неточностей, отслеживая ошибки компилятора в реальном времени. Для задач веб-разработки Cline может управлять браузером, выполняя навигацию, ввод данных, и захват скриншотов и логов консоли. Помимо этого, интеграция с терминалом VSCode позволяет Cline выполнять широкий спектр команд: от управления зависимостями и сборкой проектов до развертывания и тестирования приложений. Для длительных процессов, вроде запуска серверов разработки, есть фоновый режим выполнения команд.Cline поддерживает различные API-провайдеры, включая OpenRouter, совместимые с OpenAI API, например, BotHub API, а также локальный запуск моделей через LM Studio или Ollama, что позволяет использовать локальные модели, типа завирусившихся DeepSeek v3 или r1. В процессе работы ведется учет потребления токенов и стоимости API как для задачи в целом, так и для отдельных запросов, обеспечивая прозрачность расходов.Для более точного управления контекстом запросов, Cline предлагает специальные команды: @url для добавления контента веб-страниц, @problems для включения ошибок и предупреждений из рабочей области, @file и @folder для быстрого добавления содержимого файлов и папок. Для безопасного исследования различных подходов к решению задач, Cline использует систему контрольных точек, позволяющую сравнивать состояния рабочего пространства на разных этапах и восстанавливать предыдущие версии.
Roo Code

Roo Code — это форк Cline, унаследовавший его ключевые функции: терминал, файловые операции, навигацию по проекту и управление браузером. Как и Cline, Roo Code анализирует код, помогает в написании, рефакторинге и отладке, поддерживает различные API и локальные модели, обеспечивая контроль и прозрачность расходов. Главное отличие Roo Code — пользовательские режимы. Вместо фиксированных режимов Cline, Roo Code позволяет создавать собственные "личности" AI-ассистента, точно настраивая инструкции и инструменты под конкретные задачи и роли (QA, PM и т.д.). Roo Code также добавляет интеграцию Code Actions в VSCode для быстрого доступа к функциям ассистента прямо в редакторе, ручное переключение заранее настроенных режимов между собой и расширенные настройки промптов.
Как начать работу с Cline (и Roo Code)?
Конечно, чтобы приступить к настройке, у нас должен быть установлен VSCode на компьютере. И далее, по сути, будем следовать инструкции Cline.1. Устанавливаем расширение Cline (или Roo Code)
Запустим VSCode и перейдем в Extensions на боковой панели Activity Bar, либо можем нажать Cmd+Shift+X (macOS) / Ctrl+Shift+X (Windows/Linux). Далее, в поле поиска Extensions Marketplace введем "Cline" (или "Roo Code", если хотим установить Roo Code). В результатах поиска найдем нужное расширение и нажмем кнопку "Install".
2. Открываем Cline (или Roo Code) в VSCode
После установки расширения, есть несколько способов открыть Cline / Roo Code в VSCode:- Через иконку в Activity Bar: после установки и перезапуска VSCode (если потребуется), в Activity Bar должна появиться иконка Cline (или Roo Code). Нажмем на нее, чтобы открыть ассистента.
- Через командную строку: нажмем сочетание клавиш Cmd+Shift+P (macOS) / Ctrl+Shift+P (Windows/Linux), чтобы открыть командную строку. Введем в командной строке "Cline: Open In New Tab" (или "Roo Code: Open In New Tab") и выбираем нужный пункт, чтобы открыть ассистента в новой вкладке редактора.

3. Настраиваем API Provider
При первом открытии Cline (или Roo Code) нам будет предложено настроить API Provider.В выпадающем меню "API Provider" выбираем подходящий вариант. Для начала можно выбрать "OpenAI Compatible" (если планируем использовать, например, BotHub, или свой собственный OpenAI-совместимый сервер) или "OpenRouter" (для доступа через OpenRouter). Если вы хотите использовать локальную модель, выберите "LM Studio" или "Ollama" (нужно предварительно установить и настроить LM Studio или Ollama);В зависимости от выбранного API Provider, нам потребуется ввести соответствующие данные (Base URL, API Key, Model ID). Для "OpenAI Compatible" (в нашем случае BotHub API):Base URL: вводим адрес API - https://bothub.chat/api/v2/openai/v1;API Key: получаем и вставляем свой API-ключ. Для Bothub API, его нужно сгенерировать на странице тут;Model ID: вводим идентификатор модели. Список моделей и их ID для Bothub можно найти на странице тут;Для "OpenRouter":
API Key: нам нужен API-ключ OpenRouter. Вам также потребуется пополнить баланс OpenRouter;Model ID: выбираем модель из выпадающего списка "Model ID". Cline (и Roo Code) автоматически подгружают список доступных моделей OpenRouter;Для "LM Studio" или "Ollama":
Base URL: указываем URL локального сервера LM Studio (обычно http://localhost:1234) или Ollama (обычно http://localhost:11434);Model ID: выбираем загруженную нами локальную модель из выпадающего списка "Model ID".

4. Тестируем Cline (или Roo Code)
После настройки API, давайте протестируем вашего AI-ассистента, задав ему простую задачу. В поле чата Cline (или Roo Code) введем запрос, например:Создай папку проекта с именем "test_project" в текущей директории и напиши небольшой скрипт на Python для реализации простого калькулятора (сложение, вычитание, деление, умножение) в терминале.
Нажмем Enter и Cline (или Roo Code) начнет обрабатывать наш запрос и выполнять задачу:

Примеры использования
У нас есть простой скрипт и простые задачи, чтобы попробовать Cline в действии. Мы будем пробовать qwen-2.5-coder-32b-instruct, потому что дешево и качественно.Напиши юнит-тесты для модуля app.py, используя unittest и сохрани их в файл test_todo.py

Все достаточно шустро и, что важно, итеративно. Cline приступил к работе, запуская тесты, сталкиваясь с ошибками (в данном случае, из-за отсутствия библиотеки flask_testing), и предлагая решения, включая установку зависимостей. После установки, Cline вновь запускал тесты, продолжая отладку до тех пор, пока все тесты не были пройдены успешно. Ключевым моментом является то, что Cline на каждом этапе запрашивал подтверждение пользователя на каждое действие, не предпринимая ничего самостоятельно.Хотя в данном примере с qwen-2.5-coder-32b-instruct Cline успешно справился с задачей, стоит отметить, что для более сложных рабочих задач, Cline может потребовать более подробных промптов и, возможно, не сможет решить задачу или решит только частично. Тут уже помогут более мощные модели, типа claude-3.5-sonnet.
Собери проект и разверни его на локальном тестовом сервере, запусти сервер в фоновом режиме и покажи URL приложения

Довольно типичная рутинная задача, и Cline справился с ней довольно эффективно. Как и в предыдущем примере, Cline запрашивал подтверждение пользователя на каждое действие, обеспечивая прозрачность и контроль. Корректно подобрал команды для сборки и запуска Flask-приложения с использованием gunicorn, обеспечил запуск сервера в фоновом режиме, и предоставил URL для доступа к приложению, точно выполнив все пункты запроса.