CRAB — чистая реимплементация по поведению

CRAB

MCP-серверы: наблюдение за приложением как за черным ящиком и воссоздание функции по спецификации поведения без чужого кода

  • 310 ★ репозитория
  • Последний коммит
  • Apache-2.0
MCP-сервер

Широкий доступ

Почему такой уровень

  • Инструмент двойного назначения: изучает чужие приложения и воспроизводит их поведение, права на такое наблюдение определяются условиями продукта и законом
  • Запускает цели в Docker, управляет браузером и устройством Android через `adb`, а в чистой комнате передает контейнеру токен Claude
Все причины и проверки

lemonadesaltbagel/crab

Установка

Ручная установка

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, слоистые настройки и списки разрешений и запретов.

CLIШирокий доступ77Звезды репозитория

MCP-сервер, который один раз строит граф кода проекта и отдает агенту готовые ответы вместо повторного перечитывания файлов

MCP-серверРасширенный доступ203Звезды репозитория

Дает агенту разбираться в вашем репозитории: индексирует код и отвечает на вопросы о нем в Claude Code, Cursor, Codex, Windsurf и других

ПлагинРасширенный доступ1,4 тыс.Звезды репозитория

CLI и MCP-сервер без зависимостей: строит по репозиторию граф вызовов, чтобы агент понял код без чтения файлов целиком

CLIРасширенный доступ2,5 тыс.Звезды репозитория

CLI и MCP-сервер строят граф кода через Tree-sitter, чтобы агент при ревью читал только нужные функции и тратил меньше токенов

CLIРасширенный доступ76Звезды репозитория

Скилл и CLI для ревью кода: команда агентов-рецензентов смотрит изменения независимо, спорит о находках и выдает один отчет

СкиллРасширенный доступ385Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
CRAB — чистая реимплементация по поведению (эта карточка)нетне нужна310
Reverse API Engineerнет3 502восстанавливает API по сетевому трафику, а не пишет реализацию из спецификации
Playwright MCPдане нужна39 570управляет браузером, без правил, шлюза и очищенной спецификации

Коротко о README

README ведет по циклу: наблюдение, обобщение, шлюз, пересборка. Результаты проверены на скрытых наборах тестов, методика описана в `docs/evaluation.md`. Раздел об ответственном использовании перечисляет, чего CRAB не делает ни при каких настройках.

Бейдж для README

Сообщить о проблеме