
3
Codex написал WASD управление для Смотрителя
Эта статья является частью цикла
- Проект смотритель. Часть 1. Начало
- Проект смотритель. Часть 2. Дизайн
- Проект смотритель. Часть 3. Фоторезист
- Проект смотритель. Часть 4. Шасси
- Проект смотритель. Часть 5. Гусеницы
- Проект смотритель. Часть 6. Моделирование и печать
- Проект смотритель. Часть 7. Железо
- Проект смотритель. Часть 8. Софт
- Проект смотритель. Часть 9. Зарядная станция
- Проект смотритель. Часть 10. Bluetooth
- Проект смотритель. Часть 11. Home assistant
- Codex написал WASD управление для Смотрителя
В комментариях к ролику с демонстрацией Смотрителя меня давно просили добавиьт в интерфейс WASD управление.
А OpenAI на неделе раздали доступы Plus подписчикам к своему агенту для написания кода с интеграцией в github - Codex.
Случайности не случайны, я решил испытать Codex в деле как раз на примере этой задачи.
Что такое Codex?
Codex - автономный облачный ИИ-агент, который может параллельно выполнять несколько задач.
То есть вы можете подключить его к своему GitHub аккаунту, выдать все необходимые права к репозиториям (список можно ограничить) и заставить поработать.
Какие основные настройки он предоставляет:
Можно указать кастомный промпт, разделять ли экран по вертикали (слева - чат, справа - diff с правками кода) и шаблон названия ветки, где codex будет вести разработку.
Вдобавок можно также настроить локальное окружение (Codex располагает виртуалкой, внутри которой разворачивает ваш проект)
Есть настройки выполнения кода - можно установить образ для виртуалки и предустпновить какие-то пакеты, установить переменные окружения и секреты и скрипт, который будет запускаться для образа.
Также можно включить доступ к интернету для агента и ограничить список сайтов, к которым он сможет подключаться, а также HTTP методы (забавно, как будто без POST / UPDATE / DELETE нельзя делов натворить).
Еще можно подключиться к терминалу виртуалки и обнаружить там Ubuntu 24.04:
/workspace/esp32-caretaker$
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
Ну или просто вывести приветствие:
Что можно делать дальше? При подключении репозитория Codex автоматически стартует 3 задачи (возможно, они могут различаться, у меня такие):
Каждый работает какое-то время, шерстит код и выдает какой-то результат. Это может быть и простое текстовое описание, как в случае с Explain codebase to newcomer
, так и уже готовые правки в коде, которые в пару кликов можно отправить в репозиторий в качестве ветки и/или PR.
Но стандартные задачи не особо интересны, у меня же есть давний issue про добавление WASD управления в интерфейс. Недолго думая я отправил Codex только ссылку на этот issue без дополнительных пояснений. Иии через 3 минуты у меня были готовы правки по добавлению управления в код, которые я в пару кликов превратил в PR.
После этого я еще парой промптов добавил, чтобы при управлении с клавиатуры визуально менялось положение стика и добавил поддержку русской раскладки - это все дополнительные необязательные фичи, так что можно считать, что Codex справился с задачей на ура с первого раза. Процесс разбора проекта, кодинга и отправки PR можно посмотреть в этом ролике на YouTube (ускорено в 2 раза).
Некоторые комментарии по процессу решения задачи и сравнение этого процесса с Cursor.
Весь ход решения доступен в live режиме на экране и постфактум в режиме чата.
- Codex проверяет наличие AGENTS.md в проекте - если вы решите его использовать постоянно - логично добавить этот файл со всеми необходимыми для проекта инструкциями.
- В отличии от Cursor все взаимодействие с проектом полностью открыто - Codex не умеет просматривать директории или читать файлы без консоли - все операции выполняются прямо в shell через ls / sed / grep / find и прочие команды.
- При необходимости внесения правок все также происходит наглядно через консоль и команду
apply_patch
, например вот так он добавил строку в readme:
root@99b15073bb5c:/workspace/esp32-caretaker# apply_patch<<'PATCH'
> *** Begin Patch
> *** Update File: readme.md
> @@
> * **Web Interface Joystick:** Intuitive virtual joystick control
> * **Web Interface Sliders:** Fine-grained control over individual motors
> * **Bluetooth Controller:** Support for physical Bluetooth controllers (e.g
., ExpressLRS Joystick)
> + * **Keyboard WASD:** Use W/A/S/D keys in the web interface
> * **Adjustable Video Settings:** Multiple resolution options (from QQVGA to
UXGA)
> *** End Patch
> PATCH
Success. Updated the following files:
M readme.md
- Ну и схожесть с Cursor - после применения изменений Codex пытается проверить их валидность - через линтер или другие проверки, если они настроены / прописаны у вас в проекте. Например, у меня он линтером питона все проверил, но
pio run
запустить уже не смог, т.к. pio не установлен на виртуалке (возможно, через настройки это возможно добавить).
Далее просто нажимаем кнопку отправки правок в репозиторий - в репозитории создается ветка codex/{feature}
и из неё также можно сделать PR. Связать PR с issue он сам не смог, несмотря на то, что id он знал и оно содержалось в названии ветки, банально в описание PR не разместил соответствующую ссылку. Пришлось ему с этим помочь.
В общем и целом - выглядит довольно интересно. Буду ли я пользоваться этим на постоянке не знаю, пока кажется, что Cursor с прямым доступом к коду удобнее чисто с разработческой стороны - всегда можно руками поправить что-то быстрее чем промптами. Но для задач, не требующих такого или для людей-мимокрокодилов, имеющих посредственное отношение к программированию - инструмент довольно любопытный.
Демо
Демо полученного режима управления с клавиатуры в видео ниже. Заодно можете оценить уровень задержки управления и трансляции картинки - все в одном кадре, на предыдущих демо из-за монтажа это было местами непонятно.
Комментариев пока нет
-
Codex написал WASD управление для Смотрителя
В комментариях к ролику с демонстрацией Смотрителя меня давно просили добавиьт… -
Klipper на Two Trees Sapphire Plus
Случилось то, что давно назревало - штатная прошивка Marlin перестала меня устр… -
Проект смотритель. Часть 11. Home assistant
Проект в том числе позиционируется как удаленный мониторинг, но как его сделать… -
Вайб-кодим серии статей в BoltCMS
Делаем поддержку серий постов Cursor с Sonnet 3.7 -
Проект смотритель. Часть 10. Bluetooth
Подключаем Radiomaster TX12 в роли BT-джойстика через ELRS-модуль. -
Проект смотритель. Часть 9. Зарядная станция
Раз уж одна из целей - удалённое управление - стоит озаботиться вопросом питани…