CRAB — чистая реимплементация по поведению
CRAB
MCP-серверы: наблюдение за приложением как за черным ящиком и воссоздание функции по спецификации поведения без чужого кода
- 310 ★ репозитория
- Последний коммит
- Apache-2.0
Широкий доступ
Почему такой уровень
- Инструмент двойного назначения: изучает чужие приложения и воспроизводит их поведение, права на такое наблюдение определяются условиями продукта и законом
- Запускает цели в Docker, управляет браузером и устройством Android через `adb`, а в чистой комнате передает контейнеру токен Claude
Установка
- Работает в
Ручная установка
uv tool install "crab-cleanroom[web]"Нужен Python 3.12 или новее; команда называется `crab`. Для веб-целей затем `crab install-browser`.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Инструмент двойного назначения: изучает чужие приложения и воспроизводит их поведение, права на такое наблюдение определяются условиями продукта и законом
- Запускает цели в Docker, управляет браузером и устройством Android через `adb`, а в чистой комнате передает контейнеру токен Claude
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
CRAB — аббревиатура Clean Rebuild of Anything's Behavior. Работа делится между двумя агентами. Наблюдатель изучает целевое приложение как черный ящик: что оно принимает и отвергает, какие значения подставляет по умолчанию, как ведет себя на границах и в какой последовательности показывает экраны. CRAB превращает эти наблюдения в проверяемые правила, прогоняет их по оригиналу и выпускает очищенную спецификацию. Второй агент, чистый исполнитель, видит только спецификацию и пишет собственную реализацию. Сверку с оригиналом он запрашивает через шлюз и получает только абстрактные вердикты «прошел» или «не прошел». Код, декомпиляция и стек-трейсы не собираются: чего нельзя увидеть снаружи, то записывается как явное «неизвестно». Наблюдатель подключается к агенту как MCP-сервер `crab observe`, промпт `observe_target` задает порядок работы. Поддерживаются цели трех видов: консольные утилиты, веб-приложения через Playwright и приложения Android через `adb`. Каждый выпуск проходит проверку на копирование выражений и реальные имена, журнал пишется с подписью и цепочкой хэшей.
Для кого. Командам, которым нужна своя версия функции стороннего продукта, а юристы требуют clean-room процесса с протоколом наблюдений и разделенными ролями.
Подходит, если
- Функция конкурента понятна по поведению, а исходники недоступны или трогать их нельзя
- Старый внутренний инструмент остался без кода, и поведение требуется воспроизвести по спецификации
- Консольная утилита или веб-приложение переписывается на другой стек, и результат проверяется скрытыми тестами
- Юристам нужен протокол: что наблюдалось, что вошло в спецификацию и кто ее утвердил
- Идет разбор мобильного приложения на Android с эмулятором или устройством через `adb`
Не подходит, если
- Цель — обойти CAPTCHA, защиту от ботов, проверку корневого доступа или подмену подписи приложения: CRAB такие действия не выполняет и отказывается от них без настройки
- Нужен анализ кода или бинарников: инструмент намеренно не собирает реализацию
- Целевая система — macOS, Windows или iOS: поддержка там не начата
- У приложения нет прав на наблюдение по его условиям использования
Пример запроса к агенту
Открой web:http://localhost:3000/ как объект исследования и следуй плейбуку observe_target: обойди интерфейс, проверь каждое поле, внеси сбои в API, сформулируй правила и выпусти спецификацию.MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Ограничения
Проект ранний, версия 0.4. Цель анализа указывается при приеме задачи, юридическую оценку берет на себя пользователь.
Консольные утилиты поддерживаются стабильно, веб и Android помечены как рабочие, Linux-десктоп экспериментальный. Для консольных целей нужен Docker, для веба Chromium через Playwright, для Android SDK и эмулятор или устройство.
Нужен Python 3.12 или новее. До версии 0.3 проект назывался Teardown: команда `teardown` и переменные `TEARDOWN_*` пока работают. Последний коммит репозитория: ноябрь 2026.
Как отключить. Удалите сервер командой `claude mcp remove crab-observe`. Сам инструмент снимается командой `uv tool uninstall crab-cleanroom`, проектные данные остаются в каталоге проекта.
Частые вопросы
Как подключить CRAB к Claude Code?
Установите пакет, затем выполните `claude mcp add crab-observe -- crab observe --project /path/to/project`. Подойдет любой MCP-клиент: сервер работает по stdio и по HTTP с флагом `--port`.
Что такое чистая комната в CRAB?
Два контейнера с разными правами. Наблюдатель выходит к цели только через драйверы CRAB, исполнитель видит один каталог со спецификацией. Все переходы идут через шлюз и пишутся в журнал.
Кто утверждает выпуск спецификации?
В строгом режиме выпуск требует подтверждения в терминале командой `crab approve`. Инструменты наблюдателя утвердить ничего не могут. На практике это несколько решений по классам находок на выпуск.
Чего CRAB не делает?
Не обходит CAPTCHA и защиту от ботов, проверки root и аттестации, FLAG_SECURE, не меняет Electron fuses и не переподписывает бинарники, не использует фальшивые аккаунты и не превышает заданные лимиты запросов. Не собирает тела кода, декомпиляцию и стек-трейсы. Эти отказы не настраиваются.
С какими целями работает CRAB?
Консольные утилиты (стабильно), веб-приложения и приложения Android (рабочий статус), Linux-десктоп (экспериментально). macOS, Windows и iOS не начаты. Для веба автор приводит 96,9–99,2 % скрытых тестов на трех последних приложениях.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыОткрытый агент для терминала на Rust: любые модели от DeepSeek до Bedrock, слоистые настройки и списки разрешений и запретов.
MCP-сервер, который один раз строит граф кода проекта и отдает агенту готовые ответы вместо повторного перечитывания файлов
Дает агенту разбираться в вашем репозитории: индексирует код и отвечает на вопросы о нем в Claude Code, Cursor, Codex, Windsurf и других
CLI и MCP-сервер без зависимостей: строит по репозиторию граф вызовов, чтобы агент понял код без чтения файлов целиком
CLI и MCP-сервер строят граф кода через Tree-sitter, чтобы агент при ревью читал только нужные функции и тратил меньше токенов
Open Code Review — командное ревью кода агентами
Open Code Review
Скилл и CLI для ревью кода: команда агентов-рецензентов смотрит изменения независимо, спорит о находках и выдает один отчет
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| CRAB — чистая реимплементация по поведению (эта карточка) | нет | не нужна | 310 | |
| Reverse API Engineer | нет | 3 502 | восстанавливает API по сетевому трафику, а не пишет реализацию из спецификации | |
| Playwright MCP | да | не нужна | 39 570 | управляет браузером, без правил, шлюза и очищенной спецификации |
Коротко о README
README ведет по циклу: наблюдение, обобщение, шлюз, пересборка. Результаты проверены на скрытых наборах тестов, методика описана в `docs/evaluation.md`. Раздел об ответственном использовании перечисляет, чего CRAB не делает ни при каких настройках.