Debroid CLI
Консольный отладчик Android на протоколе JDWP: агент ставит точки останова и читает переменные, ответы приходят в JSON
- 276 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Подключается к работающему приложению через ADB, может менять значения переменных и вычислять выражения в его виртуальной машине
- Фоновый процесс держит соединение с устройством, пока вы не вызовете debroid stop
Установка
- Работает в
Ручная установка
curl -fsSL https://raw.githubusercontent.com/PatilShreyas/debroid/main/install.sh | bashСкачивает готовый бинарник и кладет его в `~/.local/bin`. Можно собрать из исходников, запустив `./install.sh` в клоне репозитория.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Подключается к работающему приложению через ADB, может менять значения переменных и вычислять выражения в его виртуальной машине
- Фоновый процесс держит соединение с устройством, пока вы не вызовете debroid stop
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Debroid — консольная программа, которая подключается к запущенному приложению Android через протокол JDWP и ADB. Агент без графического интерфейса ставит точки останова на строках, ловит исключения, следит за полями, шагает по коду и читает локальные переменные и стек вызовов, как человек в Android Studio. Каждая команда печатает валидный JSON. Соединение держит фоновый процесс: он стартует сам при первой команде и сохраняет точки останова и состояние потоков между вызовами. Если класс еще не загружен, точка останова откладывается и срабатывает позже. Команда `set-var` меняет значение переменной на остановленном потоке, `eval` считает выражения в синтаксисе Java прямо в целевой виртуальной машине, а для сопрограмм Kotlin есть извлечение локальных переменных из кадров Continuation. Инструкцию для агента программа сама распаковывает в `~/.debroid/skills/debroid-cli/SKILL.md` при первом запуске. Достаточно сделать на этот файл символьную ссылку в папке скиллов нужного агента, и обновление CLI заодно обновит инструкцию.
Для кого. Для Android-разработчиков на Kotlin и Java, которые поручают Claude Code, Codex или Cursor искать ошибки на работающем приложении.
Подходит, если
- Агент подозревает ошибку, но по логам не видит значений переменных в момент сбоя
- Нужно поймать необработанное исключение во всем приложении и прочитать стек вызовов
- Надо выяснить, кто и когда меняет поле объекта: для этого есть точки наблюдения
- Гипотезу о причине хочется проверить, подставив другое значение переменной на остановленном потоке
- Баг воспроизводится внутри сопрограммы Kotlin, и нужны ее локальные переменные
Не подходит, если
- Нужна отладка iOS или нативного кода: Debroid говорит по JDWP с виртуальной машиной ART и отлаживает Java и Kotlin
- На машине нет JDK 11 или новее и adb: оба обязательны
- Нужен визуальный обзор состояния приложения: программа отвечает только в JSON
- Приложение нельзя запускать с отладкой на устройстве, где вы не хотите менять состояние переменных
Пример запроса к агенту
Запусти приложение через Debroid, поставь точку останова на строку 42 в CartViewModel и покажи локальные переменные, когда она сработаетОграничения
Нужны Java JDK 11 или новее с переменной `JAVA_HOME` и Android SDK с adb в PATH. Фоновый процесс держит соединение, остановить его можно командой `debroid stop`. В режиме `launch` приложение стартует приостановленным, а при отсоединении программа сама снимает отметку отладочного приложения на устройстве. Отладка идет по Java Debug Wire Protocol, поэтому видны только классы виртуальной машины. Вывод рассчитан на разбор программой, для чтения человеком есть флаг `--pretty`.
Как отключить. Остановите фоновый процесс командой `debroid stop`, удалите бинарник `~/.local/bin/debroid` и символьные ссылки на SKILL.md в папках скиллов агентов.
Частые вопросы
Как поставить Debroid в Claude Code?
Выполните `curl -fsSL https://raw.githubusercontent.com/PatilShreyas/debroid/main/install.sh | bash`. Потом сделайте символьную ссылку на файл `~/.debroid/skills/debroid-cli/SKILL.md` в `~/.claude/skills/debroid/`: готовые команды для Claude Code, Codex, Cursor, OpenCode, Grok Build и Antigravity лежат в README.
Что нужно на машине для Debroid?
Java JDK 11 или новее, Android SDK и настроенный adb в PATH. Приложение должно работать на эмуляторе или устройстве, видимом через ADB.
Как агент читает ответы Debroid?
Каждая команда печатает JSON. Флаг `--pretty` форматирует его для человека, а `--schema` показывает типы вывода, чтобы агент не гадал о полях.
Чем launch отличается от attach?
`debroid launch` запускает приложение приостановленным и сразу подключается, а при отсоединении сам очищает отметку `am set-debug-app`. `debroid attach` подключается к уже работающему приложению.
Что такое отложенные точки останова?
Если класс еще не загружен виртуальной машиной, Debroid запоминает точку и ставит ее, когда класс появится. Список активных и отложенных точек показывает команда `debroid points`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыСкилл и CLI для управления Android-телефоном через ADB и vision-модели: агент открывает приложения, ищет, заказывает и проверяет результат
Скиллы и CLI, чтобы Claude Code, Codex и OpenCode управляли Android-телефоном: открывали приложения, нажимали, вводили текст и тестировали сценарии
Awesome Android Agent Skills
awesome-android-agent-skills
Скиллы по современной разработке под Android для Copilot, Claude, Gemini и Cursor: Kotlin, Jetpack Compose, архитектура, Hilt, Room
Официальные 30 скиллов команды Android: Jetpack Compose, обновление AGP 9, R8, профилирование Perfetto, Navigation 3, CameraX и политики Google Play
Android-эмулятор в Docker с MCP-сервером: агент управляет устройством по adb, открывает приложения и страницы, нажимает кнопки
Плагин команды Flutter для агентов: скиллы по Flutter и Dart, сервер Dart MCP и правило горячей перезагрузки для Claude Code, Cursor и Codex
Коротко о README
README объясняет, зачем агенту консольный отладчик: без него он видит только код и логи. Дальше идут установка, команды для связывания SKILL.md с шестью агентами, схема с фоновым процессом между CLI и приложением и таблица всех команд с флагами.