Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть. linux.. linux. selectel.. linux. selectel. WARP.. linux. selectel. WARP. Блог компании Selectel.. linux. selectel. WARP. Блог компании Selectel. ИИ.. linux. selectel. WARP. Блог компании Selectel. ИИ. искусственный интеллект.. linux. selectel. WARP. Блог компании Selectel. ИИ. искусственный интеллект. Настройка Linux.. linux. selectel. WARP. Блог компании Selectel. ИИ. искусственный интеллект. Настройка Linux. Системное администрирование.. linux. selectel. WARP. Блог компании Selectel. ИИ. искусственный интеллект. Настройка Linux. Системное администрирование. терминал.
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 1

Потыкал я на досуге один из ИИ-терминалов и делюсь этим опытом. Об установке писать не буду, там все банально и просто: тыкаете мышкой и готово. А вот дальше — все очень занимательно. Экспериментировать я буду на своих реальных задачах, поэтому часть функционала в статье не упомяну. У всех разные задачи и потребности, здесь нет серебряной пули. Поехали!

Статью написал Роман Шубин, CTO и автор телеграм канала Bash Days.

Общие впечатления

Warp преподносит себя как терминал для DevOps-инженеров или аналог нашумевшего Cursor. То есть инструмент, который в 99% будет работать за вас, успевайте только командовать. Но желательно уметь правильно выражать мысли, а то наколдуете вместо золота кусок невнятного «ничего».

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

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 2

Есть нюанс. Я запустил Warp на Windows, а вся моя основная работа проходит в WSL под дистрибутивом Ubuntu. Как быть? Все решается довольно просто: нажимаем Ctrl+Shift+P и выбираем нужное окружение:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 3

Проверяем и видим, что все прошло как по маслу:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 4

Я внутри WSL. Аналогичное можно провернуть из контекстного меню самого Warp, что даже удобнее:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 5

Для полноценной работы все готово. Почти…

Я привык пользоваться терминалом в quake или dropdown-режиме. В этом режиме вы привязываете открытие терминала на горячую клавишу, по нажатии которой терминал «всплывает» поверх других окон. Нажали второй раз — терминал спрятался. Скорость работы в разы становится выше.

Включается такой режим через SettingsFeaturesKeysGlobal HotkeyDedicated hotkey. Я для теста повесил на F2.

Странно что этот режим запрятали так далеко, найти его было тем еще квестом.

Странно что этот режим запрятали так далеко, найти его было тем еще квестом.

Работает! Но в этом режиме работает плохо по сравнению с другими подобными терминалами. После открытия и закрытия в терминал попадают управляющие символы и каждое нажатие клавиш сопровождается звуком колокольчика.

Но сегодня не об этом. В первую очередь я хочу понять, действительно ли с ИИ моя работа станет продуктивнее. Сегодня я делегирую ему часть задач:

  • клонировать git репозиторий,

  • создать в нем простой Flask-сервер,

  • завернуть в Docker-образ,

  • создать новую ветку и запушить в нее,

  • написать пайплайн для деплоя,

  • базово настроить новый сервер,

  • поднять Podman,

  • выкатить Flask-сервер в продакшен,

  • выполнить несколько дополнительных задач.

Посмотрим, справится ли этот Warp с задачами или наоборот создаст мне головняк. Приступим.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 7

Бесплатный курс «Системный администратор Linux с нуля»

Освойте администрирование Linux на SelectOS и станьте востребованным специалистом.

Зарегистрироваться →

Клонируем git-репозиторий

Ввожу промт: «Склонируй репозиторий git@github.com:bashdays/warp_test.git».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 8

Ага, видим команду, которую он хочет выполнить. Спрашивает — Run? Конечно, Run! Если нажать стрелочку в этой кнопке, то можно выбрать Auto-approve, то есть, все команды будут выполняться без вашего участия.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 9

Но настоятельно рекомендую не включать автоматический режим, по крайней мере, на продакшене. Не ровен час получишь окирпичивание сервера.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 10

Супер, видим что репозиторий склонирован и он пустой. Мое первое впечатление — господи, какой же он тормозной! Руками бы клонирование заняло пару секунд, а тут он думал секунд 15. Но опять же, возможно, это зависит от модели, через которую он думает. В эру блокировок непонятно, кто кого замедляет.

Создаем Flask-сервер

Кидаем промт: «в папке с новым репозиторием, создай ветку dev, создай структуру файлов для поднятия простого flask сервера, который будет работать на 8080 порту, порт можно менять через .env файл, дополнительно нужно создать dockerfile для сборки образа и compose файл для поднятия сервера в podman, когда все будет протестировано и готово, запуш проект в репозиторий».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 11

Пошло-поехало, теперь только успевай проверять и апрувить команды и файлы. Основной код сервера написан, выглядит вменяемо:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 12

Файл с зависимостями, вопросов нет.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 13

Создан файл .env с конфигурацией, как раз тот самый порт 8080.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 14

Тут я был удивлен — Warp предложил создать .gitignore, хотя я не просил. Ладно, пусть будет, спасибо. 

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 15

Dockerfile подъехал, годится, оставляем.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 16

Compose готов, даже переменные подставил, прекрасно.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 17

Опа, а это интересно! Он предлагает протестировать сборку образа, проверяет, установлен ли у меня Podman либо Docker. Соглашаемся.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 18

Супер, образ собран, дальше видим, что оно хочет его запустить и проверить. А давай!

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 19
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 20

Проверка пройдена, все хорошо, остался последний шаг.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 21
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 22

Готово!

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 23

Хммм…. Идем в репозиторий и смотрим, что внутри:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 24

Великолепно. Просто магия какая-то. Я потратил около 20 секунд на описание задачи, а все остальное сделал Warp. Да, если бы я включил auto-approve было бы заметнее. Что прикольно, в репозиторий не попал файл .env в чистом виде — это как раз заслуга ИИ, который вовремя вспомнил об этом и предупредил утечку критичных данных.

Что по минусам.

  • Скорость работы самого терминала. Господи, какой же он тугой. Нет, не выдача результатов от ИИ, а именно внутренние ощущения, как будто он на какие-то доли секунды подвисает. Это напрягает.

  • Ну и возникли проблемы с копипастой. Ctrl+C/Ctrl+V как-то совсем неадекватно работает, приходится пользоваться контекстным меню. Но тут опять же личные предпочтения — я привык к другому терминалу и, наверное, слишком много хочу.

Настройка сервера

Да, сначала нужно подготовить новый сервер и только потом писать пайплайн для деплоя. Я создал новую виртуальную машину с внешним IP 155.212.238.11.

Пишем промт: «подключись по ssh серверу 155.212.238.11 с ключом shuba под юзером root, обнови пакеты, установи podman и всё необходимое чтобы задеплоить проект из git репозитория который ты сделал выше, установи mc и htop, деплоить ничего не нужно, нужно подготовить только сервер».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 25

Рассуждает он явно не на русском языке, а очень хотелось бы. Скорее всего, в настройках Warp можно задать контекст и тогда получим русский, но это не точно. Насколько я знаю, если пишете запрос на русском языке, ИИ переводит его на английский и только потом начинает работать.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 26

Ага, ключи нужные нашел, отлично.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 27

А вот собственно и команды, которые он собирается выполнить, поехали!

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 28

Процесс пошел. Выглядит страшно. Никакого контроля, вот поэтому не рекомендую повторять такое на продакшене.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 29

Готово. Идем на сервер и проверяем:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 30
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 31
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 32
Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 33

С виду все в порядке: все, что просили, Warp успешно сделал.

Пишем пайплайн

Кидаем промт: «напиши пайплайн для этого кода на продакшен, напиши его и запуш в репу, в пайплайне нужно включить автодеплой после любого коммита в ветку dev, деплой происходит с помощью подключения по ssh к серверу, приватный ssh ключ уже прописан в настройках гит репозитория в параметре SSH_PRIVATE_KEY».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 34

Перебирает SSH-ключи, правит локальные конфиги. А вот и готовый пайплайн:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 35

Не указав в запросе имя SSH-ключа, Warp перебрал все доступные в папке ~/.ssh и выбрал подходящий, с которым смог подключиться. Хотя у меня ключ изначально был другой. Ладно.

По итогу все прошло хорошо. Снова идем в репозиторий и смотрим в наш пайплайн:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 36

Супер! Все само куда нужно залетело и запустилось. Не смею вам мешать, дорогой Warp.

Идем в action и смотрим:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 37

Вот это да! Кажись, оно и задеплоилось. Ну правильно, ведь пайплайн будет запускаться при любом коммите в ветку dev. Справедливо. Ладно, идем на сервер:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 38

Ха! Шикарно, оно уже и работает. Посмотрим в браузере:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 39

Работает, собака! Ну что вам сказать, дорогой читатель? Это было волнительно.

Давайте плюсом запихнем туда экспортер для Prometheus и попросим написать bash-скрипт.

Вводим промт: «установи на сервер node_exporter, напиши bash скрипт и положи в /usr/local/sbin который будет через curl получать ответ страницы selectel.ru и создавать prometheus файл с метриками, этот файл должен подхватывать node_exporter, не забудь про крон для скрипта».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 40

Умный! Сразу подцепил текстовый коллектор уже на этапе установки экспортера метрик, молодец.

Проверяем:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 41

Экспортер успешно установлен, проверяем скрипт:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 42

Проверяем, как экспортер подхватил метрики из скрипта:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 43

Проверяем кроны:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 44

Ну что тут сказать: ни единого падения, все мои запросы были обработаны с первого раза. Я потратил время лишь на создание этих запросов. Чувствую себя тимлидом и каким-то начальником, который дал задачу подчиненному. Но в отличие от подчиненного, все задачи были сделаны за минимальный отрезок времени.

Что прикольно, команды можно не писать текстом, а наговаривать в микрофон. Это прям киллер-фича. Надиктовал и пошел кофе пить, а оно вам само инфраструктуру подняло и выкатило ваши поделки.

Ну и самое интересное. Давайте попробуем скомандовать удалить сервер. Как думаете — выполнит?

Командуем: «эй ты, мне больше этот сервер не нужен, сотри все данные на нем».

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 45

А не хочет! Попробуем уломать:

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 46

Вот так, защита от дурака присутствует, и это хорошо. Но сдается мне, если подключить свою анархическую модель, она даже не спросит и просто уничтожит все по щелчку пальцев.

Кстати, впервые с ИИ в терминале я познакомился, когда писал о SelectOS. На сайте реализован функционал по поиску документации, этакий AI-консультант.

Первый опыт с Warp: медленный, но сообразительный помощник, который заставит вас глупеть - 47

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

Выводы

Да, сам Warp по ощущениям неповоротливый. И на каждый день, я бы его не стал использовать. Но под какие-то рутинные задачи вполне сгодится. Самый большой минус — он платный. Бесплатного периода надолго не хватит, а чтобы оплатить подписку из РФ, нужно очень сильно постараться. Палка о двух концах. Но если есть возможности и деньги, почему нет.

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

Я уверен, что на рынке полно таких ИИ-терминалов. Сильно не вникал в эту область, хватило и этого опыта в Warp. Все остальное, думаю, будет похожим.

Это как в меме, когда упал Cloudflare, разработчики полезли в ChatGPT чат за советом, а он не работает, потому что OpenAI проксировался через Cloudflare. Получился замкнутый круг. Как в бородатом анекдоте — unzip.zip.

Даже создание простых алиасов в Shell — это вредная привычка. Попадете вы на голый сервер — и чего? Все ваши короткие алиасы не работают. А тот же Warp — целая языковая модель, которая сама думает и решает за вас: минимум усилий, минимум знаний.

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

А вот если вы метите в IT, то — никаких Warp, только хардкор: через страдания, насмотренность и мышечную память.

Такие дела. Как говорил мой друг — всегда думайте своей головой.

Автор: TrexSelectel

Источник

Rambler's Top100