Наконец-то это здесь! Ralph TUI, визуализация Ralph Loop
Наконец-то это здесь! Ralph TUI, визуализация Ralph Loop
Я ранее писал руководство по ralph-loop, и многие друзья, запустив его, оставили довольно единодушный отзыв: Круто, Claude Code наконец-то может работать долго. Но иногда, наблюдая за ним, кажется, что он стоит на месте, и в голове невольно возникает вопрос: "Он вообще продвигается вперед или просто крутится на месте?"
Вот почему я недавно занялся ralph-tui.

ralph-tui не привязан к Claude Code принудительно, он наследует и развивает суть ralph loop, визуализирует выполнение задач и процесс, значительно снижая порог для длительной работы больших моделей. Вы вполне можете подключить другого агента, другую модель, отечественную, дешевую, ту, которую вы можете позволить себе запускать долго. С ralph-tui для нас, обычных людей, это все равно что пересесть с механической коробки передач на автоматическую с круиз-контролем.
Что это вообще такое?
Вы можете понимать ralph-tui как "циклический оркестратор AI coding agent", только он не удовлетворяется тем, что "может работать", он больше заботится о том, чтобы "вы могли видеть, контролировать и восстанавливать".
Его основной принцип работы очень прост:
- Вы даете ему кучу задач (из PRD или из другой системы задач)
- Он выбирает задачу с наивысшим приоритетом
- Составляет prompt
- Запускает agent для выполнения
- Определяет, можно ли считать задачу выполненной
- Записывает состояние
- В следующем цикле продолжает
Главное: все это вы можете видеть в терминале, и можете в любой момент остановить, возобновить или взять управление на себя. Официально он позиционируется как agent loop orchestrator с интерактивным TUI, поддерживающий TUI / headless / remote.
Почему я говорю, что он больше подходит для "длительной работы"?
Самая большая проблема при запуске loop в скрипте - это не то, что он не запускается, а то, что вы не знаете, где он находится.
Вы видите, как быстро обновляются логи, и вентилятор тоже весело крутится, но вы не уверены:
- Не повторяет ли он исправление одной и той же ошибки?
- Не меняет ли он постоянно один и тот же фрагмент кода, а затем возвращает его обратно?
- Не завершил ли он уже работу, просто не вышел?
- Не застрял ли он в бесконечном цикле на каком-то тесте?

Решение ralph-tui очень "инженерное":
- Есть понятие session, состояние сохраняется на диск (.ralph-tui/session.json)
- Можно восстановить работу после сбоя (crash recovery)
- Есть механизм блокировки, чтобы избежать превращения каталога в кашу при запуске нескольких экземпляров
- Можно запускать headless в CI, и даже remote, открыв listener на удаленной машине и подключившись к нему с помощью локального TUI
Одним словом: это больше похоже на "управление рабочим, который умеет писать код", чем на "наблюдение за дергающимся скриптом".
Как установить
ralph-tui построен на экосистеме Bun/TypeScript, поэтому установка довольно проста. Официальная страница также предоставляет инструкции по установке.
Сначала убедитесь, что на вашей машине установлен bun:
bun --versionЗатем установите ralph-tui (я приведу типичный способ установки, конкретные инструкции смотрите на официальной странице установки):
bun add -g ralph-tuiПосле установки проверьте:
ralph-tui --helpЕсли вы приверженец Node и не хотите связываться с bun, тоже можно:
npm i -g ralph-tui
Не спешите делать большие дела, запустите минимальный замкнутый цикл
Я рекомендую при первом использовании не браться сразу за "реструктуризацию всего репозитория". Сделайте только одно: убедитесь, что он выполняет небольшую задачу, которую можно принять.
Инициализация
Создайте любой каталог:
mkdir ralph-tui-demo && cd ralph-tui-demo ralph-tui setupЭто запустит интерактивный процесс, который, по сути, "установит ralph-tui в ваш репозиторий", он:
- Автоматическое обнаружение установленных на вашей машине агентов (например, Claude Code, OpenCode и т.д.)
- Создание файла конфигурации в проекте: .ralph-tui/config.toml
- Установка skills, связанных с генерацией PRD/преобразованием задач (чтобы вам не пришлось возиться вручную)
Я лично рекомендую: не ленитесь в первый раз, setup обязательно нужно запустить.
Генерация PRD проекта
После завершения setup следующим шагом является самый важный этап из официального руководства, который лучше всего подходит для демонстрации в статье: create-prd.
Команда ralph-tui create-prd --chat запускает интерактивный процесс, в котором она, как менеджер продукта, будет спрашивать вас о целях, границах и критериях приемки. После этого она выдаст в проекте две вещи (это самое главное):
- Файл PRD в формате markdown: ./tasks/prd-feature.md
- Файл задач, готовый к выполнению: ./prd.json
Только на этом этапе вы действительно входите в "стандартный замкнутый цикл" ralph-tui:
Требования (PRD) → Задачи (prd.json) → Выполнение (run)
Запуск
Имея prd.json, запуск становится логичным:
ralph-tui run --prd ./prd.json Вы увидите запуск TUI и начало цикла: выбор задачи → выполнение → оценка завершения → запись статуса → завершение или следующий раунд.
При первом запуске я настоятельно рекомендую добавить ограничение на количество итераций, чтобы сначала загнать его в клетку:
ralph-tui run --prd ./prd.json --iterations 5 После запуска посмотрите на изменения, запустите тесты, проверьте, соответствуют ли PRD и задачи ожиданиям. Убедившись, что эта цепочка работает, можно снять ограничения на итерации и перейти к headless/remote, это надежный подход.
В этот момент вы, в основном, можете убедиться: этот цикл действительно работает.
Как выбрать модель/агента? О экономии нужно говорить честно
Я знаю, что многих больше всего волнует вопрос: "Могу ли я не использовать Claude Code? Могу ли я использовать более дешевые модели?"
Ответ: Да.
ralph-tui изначально поддерживает указание агента и модели (примеры есть в официальной документации run).
Например, с помощью Claude Opus:
ralph-tui run --prd ./prd.json --agent claude --model opus Но, честно говоря, я бы не стал использовать Opus для таких задач, как "дополнение тестов, исправление lint", это слишком дорого. Мой подход заключается в разделении:
- Дешевые модели: для выполнения большого количества повторяющейся работы (дополнение тестов, добавление комментариев, исправление формата, добавление границ)
- Дорогие модели: только на ключевых этапах (корректировка архитектуры, сложные ошибки, основная логика)
Если вы обычный разработчик, этот подход еще важнее. Потому что у вас нет бюджета крупной компании, вам нужно контролировать затраты, чтобы работать долго.
Хотите еще больше удобства? Передайте "написание PRD" агенту
В ralph-tui есть дизайн, который мне нравится: он поддерживает skills (по сути, это набор внешних команд для агента).
Официальный способ установки - с помощью add-skill:
bunx add-skill subsy/ralph-tui --all Или установить для определенного агента, например, claude-code:
bunx add-skill subsy/ralph-tui -a claude-code -g -y После установки вы можете использовать slash commands в сеансе агента:
/ralph-tui-prd /ralph-tui-create-json /ralph-tui-create-beads Это похоже на установку плагина в IDE, только этот плагин предназначен для агента. Его смысл в том, чтобы сократить время "ручного переноса требований", чтобы сделать цепочку требования → задача → выполнение более похожей на конвейер.
Когда его следует использовать? Когда не следует?Мне не очень нравится нарратив "ИИ может сделать все", он легко вводит в заблуждение. Инструмент есть инструмент, он ценен только в подходящем сценарии.
Сценарии, в которых ralph-tui подходит
У вас есть куча такой работы:
- Дополнение тестов (особенно в старых проектах)
- Исправление lint / format
- Небольшой рефакторинг (сведение повторяющегося кода)
- Массовое добавление типов, дополнение границ
- Разложение требований и постепенное продвижение по очереди задач
У этой работы есть общая черта: много задач, высокая степень повторяемости, возможность приемки, возможность итеративного продвижения.
Сценарии, в которых не стоит использовать ralph-tui
Вы делаете следующее:
- Одноразовый большой рефакторинг, критерии приемки неясны
- Сами требования расплывчаты, полагаетесь на неявные знания в вашей голове
- Требуется много межкомандного общения/подтверждения
- Требуется принятие продуктовых решений
В таких задачах agent loop только усилит хаос.
В чем разница между ним и ralph-loop (ralph-claude-code)?
ralph-claude-code больше похож на "автопилот для Claude Code": скрипт запускает его, запускает цикл, обнаружение выхода, ограничение скорости, автоматический выключатель - все это за вас. Вам нужна "скорость", и он ее обеспечивает.
ralph-tui больше похож на "инженерную консоль для agent loop": он не привязан к какой-то конкретной модели или системе задач. Он хочет решить такие инженерные проблемы, как "долгосрочный запуск, наблюдаемость, управляемость, восстанавливаемость, удаленное управление".
Так что вы спрашиваете меня, как выбрать?
- Вы пользователь Claude Code и хотите быстро его запустить → ralph-claude-code
- Вы хотите подключать разные модели, хотите сэкономить деньги, хотите управлять loop как сервисом → ralph-tui
Напоследок: не позволяйте ему превратить ваш репозиторий в лабораторию
У меня есть несколько железных правил для запуска agent loop, запишите их и следуйте им, вероятность неудачи будет намного меньше:
- Запускайте в ветке, не рискуйте на main.
- При первом запуске обязательно добавьте --iterations, сначала небольшими шагами убедитесь, что он не сошел с ума.
- Задача должна быть приемлемой: либо можно запустить тесты, либо можно запустить lint, либо можно сравнить выходные файлы.
- Вы должны научиться останавливаться: если видите, что он начинает ходить по кругу, приостановка умнее, чем продолжать тратить деньги.
- Дешевые модели выполняют черновую работу, дорогие модели выполняют ключевую работу: стоимость получается в результате эксплуатации, а не молитвы.Адрес проекта: https://github.com/subsy/ralph-tui





