Clonst
Clonst — AI-рецензент кода для Claude Code на базе Codex
Получите второе мнение ИИ о вашем коде до того, как он попадёт в продакшн.
Clonst — это MCP-сервер, который подключает Claude Code к OpenAI Codex для состязательного ревью кода: Claude пишет план или код, Codex его критикует, Claude исправляет, и «пинг-понг» повторяется, пока обе модели не придут к консенсусу.
Он работает через вашу существующую подписку ChatGPT с помощью официального Codex CLI. Никаких ключей API, никаких дополнительных счетов.
Независимый проект. Не аффилирован с OpenAI («Codex», «ChatGPT») или Anthropic («Claude»).
Зачем нужна вторая модель?
LLM, проверяющая собственный вывод, разделяет собственные слепые зоны. Вторая модель от другого провайдера, с собственной обучающей выборкой и собственной памятью, ловит то, что упустила первая: неверные предположения, пропущенные граничные случаи, хрупкие миграции, состояния гонки, уязвимости безопасности. Clonst превращает это в структурированный цикл ревью с жёстким критерием остановки: консенсус, а не вежливость.
Related MCP server: claude-code-codex-agents
Возможности
Нулевая настройка. Установите и забудьте: Claude запускает ревью сам, и только когда изменение стоит вашей квоты.
Пинг-понг до консенсуса. Неограниченное количество раундов по умолчанию. Структурированные вердикты (APPROVED / CHANGES_NEEDED), требуемые изменения, предложения, риски. Claude может отклонить критику с обоснованием; Codex переоценивает отклонение в следующем раунде.
Настоящая память сессии. Codex возобновляет ту же CLI-сессию в каждом раунде и помнит свои предыдущие замечания. Никакой повторной отправки контекста, никакого рецензента-«золотой рыбки».
Ваша подписка ChatGPT, без ключей API. Ревью проходят через официальный
codexCLI и его существующий вход.Выбирайте своего рецензента. По умолчанию ревью использует ту модель и усилия рассуждения, на которые уже настроен ваш codex CLI. Одна строка в
~/.clonst/config.jsonзадаёт для ревью отдельные параметры (например, более быстрые и дешёвые усилия), не затрагивая ваше расширение Codex — см. раздел «Конфигурация».Прозрачность затрат. Финальный отчёт показывает модель рецензента, количество раундов, общую длительность и потреблённые токены — свежие токены выделены, повторно использованные из кэша указаны отдельно, чтобы накопительные суммы не выглядели страшнее, чем есть.
Аудит, который переживает беседу. Каждое ревью записывает структурированный Markdown-отчёт (понятное резюме + дословно каждый раунд: требования, изменения и отклонения) в
~/.clonst/reports/.Отклонение от цели — проверка первого класса. Рецензент оценивает результат относительно вашей заявленной цели, а не только технических стандартов — «исправление», которое молча меняет желаемое поведение, будет отмечено, а продуктовые решения направляются вам, а не принимаются LLM.
Прагматичный дизайн. Ревью нацелено на существенные дефекты — то, что ломает нормальную работу, теряет данные, открывает дыру в безопасности или потребует дорогостоящей переписки, а не на исчерпывающую полноту. Редкость сама по себе никогда не оправдывает серьёзный дефект, а дешёвая в будущем правке мелочь никогда не блокирует релиз.
Вопросы, на которые вы действительно можете ответить. Оставили цикл работать и потеряли нить? Каждый вопрос к вам переформулирует, что строится, почему это возникло сейчас и что меняет каждый вариант — простым языком, не требуя чтения кода.
Оно запоминает, что вы сказали. Если ревью было слишком придирчивым или вопрос показался бессмысленным, Clonst это записывает — даже когда вы говорили с Клодом, а не с Clonst. Ничего не меняется за вашей спиной: он считает, сообщает, когда замечание возвращается снова, и вы решаете, что с ним делать.
Побочный ущерб отслеживается с обеих сторон. Прежде чем потребовать изменения, рецензент должен проверить, что ещё это изменение сломает (вызывающие стороны, контракты, удалённые модули); прежде чем применить изменение, Клод должен сделать то же самое — и отклонение из-за побочного ущерба сопровождается более безопасной альтернативой, а не голым вето.
Собственные правила ревью вашего проекта. Поместите
CLONST.mdв корень проекта — и рецензент будет проверять ваши соглашения вдобавок к своим стандартам. CLAUDE.md руководит автором; CLONST.md руководит рецензентом.Ревью на вашем языке. Критика возвращается на языке, на котором вы работаете (для каждого вызова или один раз для всех с помощью
default_languageв конфиге), в то время как протокол остаётся машиночитаемым английским.Ничто никогда не теряется. Каждый сырой ответ рецензента сохраняется на диск до любого разбора.
Кроссплатформенность. Windows, macOS и Linux — все три покрыты CI.
Надёжность. Защита от инъекций промптов, изолированная среда только для чтения, белый список аргументов CLI, герметичный набор тестов (без вызовов LLM, без квоты).
Когда это срабатывает?
Вам никогда не нужно просить. Claude решает, когда ревью стоит вашей квоты, и правило — ставки, а не размер:
Ревьюирует само | Остаётся безмолвным |
Бизнес-логика, вычисления | Чистая презентация (HTML/CSS, копирайтинг) |
Потоки данных, модели, миграции | Документация, комментарии |
Маршруты, API, интеграции | Переименования без изменения поведения |
Состояние, обработка ошибок, конкурентность | Локальные правки конфигов |
Безопасность, аутентификация | Одноразовые скрипты и прототипы |
Планы и архитектура до написания кода | (при сомнении спрашивает вас) |
Пинг-понг неограничен по умолчанию: он продолжается до консенсуса, сверяясь с вами каждые 5 раундов (настраивается). Вы можете ограничить любое ревью простым языком: «проверь это, максимум 3 раунда».
Как это работает
You ── conversation ── Claude (reviser, keeps the conversation context)
│
│ clonst_review (MCP, one call = one critique)
▼
Clonst ── spawn ── codex exec [resume <thread_id>]
(reviewer, keeps its session)Цикл живёт на стороне Claude: он отправляет, Codex критикует, Claude исправляет в беседе (у вас на глазах), повторно отправляет с возвращённым thread_id, пока не будет consensus: true. Цикл управляется через вызывающую сторону (идентификатор thread_id путешествует с каждым вызовом), в то время как сервер хранит записи каждой сессии на диске: полные логи, вердикт предыдущего раунда для точного воспроизведения, текущую длительность/суммарные токены и структурированный отчёт ревью (перегенерируется в каждом раунде). Сессии Codex сохраняются на стороне CLI.
Быстрый старт
Требования:
Claude Code — терминальный CLI или расширения для VS Code / JetBrains (они используют одну и ту же конфигурацию MCP)
Node.js 22+
Codex CLI, авторизованный в плане ChatGPT:
npm install -g @openai/codex
codex loginУстановите Clonst (рекомендуется, через npm):
claude mcp add clonst --scope user -- npx -y @clonst/clonstИли из исходников:
git clone https://github.com/capritora/clonst.git && cd clonst
npm install && npm run build
claude mcp add clonst --scope user -- node /absolute/path/to/clonst/dist/index.jsПроверьте, что работает: в новом диалоге Claude Code скажите «ping clonst». Ожидаемый результат: codex_available: true, codex_logged_in: true.
Как выглядит ревью
Ревью происходят сами по себе, но вы также можете ими управлять:
Предложи план для X, затем проверь его через Clonst до консенсуса.
Проверь эту миграцию через Clonst, максимум 3 раунда.
Попроси Clonst сделать ревью этого потока аутентификации, ориентированное на безопасность.
Вы видите каждое исправление в беседе, а при достижении консенсуса Claude завершает кратким отчётом, например:
Ревью Clonst: GPT-5.5 (высокие усилия), 2 раунда, 5 мин 30 с, ~210K свежих входных плюс 18K выходных токенов (накопленный вход 2.8M, из которых 2.6M — повторное использование кэша). Рецензент потребовал ограничение на двойную коррекцию в миграции и тайм-аут для вызова API — оба применены. Я отклонил одно предложение (выходит за рамки MVP), и рецензент принял обоснование. Полный пошаговый отчёт:
~/.clonst/reports/2026-07-06-a3f1...md
Хотите подробности по раундам? Просто спросите («проведи меня по раундам»): Claude хранит весь обмен и воспроизводит его по запросу.
Файл отчёта ревью
Каждое ревью также записывает структурированный Markdown-отчёт в ~/.clonst/reports/, обновляемый в каждом раунде — так что аудит переживает беседу. Он начинается с понятного резюме (запечатывается дословно после консенсуса), затем один раздел на раунд с точными словами каждой стороны:
что рецензент потребовал, предложил и отметил как рискованное (дословно),
что автор исправления объявил изменённым или отклонённым перед каждым раундом (дословно),
модель, усилия, длительность и токены по раундам, а также общие итоги по всему ревью,
аудиторский след, указывающий на журнал сессии и сырой вывод рецензента.
Файл — чистая проекция состояния на стороне сервера: ничего не переформулируется задним числом, а текст, порождённый LLM, экранируется, чтобы он не мог подделать разделы отчёта. Отчёт, начатый в середине сессии (возобновлённая нить), явно помечается как PARTIAL HISTORY. Два идентификатора для двух задач: report_id именует файл отчёта, thread_id возобновляет сессию рецензента.
Инструменты
clonst_ping
Здоровье сервера: доступность Codex CLI, версия, статус входа, загруженная конфигурация, каталог логов. Не потребляет квоту.
clonst_review
Одна структурированная критика за вызов. Параметры (все управляют вызывающей LLM; обычно вы не пишете их сами):
Параметр | По умолчанию | Роль |
| — | План/код для ревью, полностью (в следующих раундах: полная исправленная версия, никогда не diff) |
| отсутствует | Раунд 1: мерило рецензента — цель, желаемое поведение, нецели, ограничения, уже принятые решения. Проверка отклонения от цели оценивает результат относительно него |
| отсутствует | АБСОЛЮТНЫЙ путь к проекту: Codex запускается там и читает реальные файлы (изолированная среда только для чтения). См. раздел «Конфиденциальность» ниже |
| отсутствует | Последующие раунды: идентификатор, возвращённый предыдущим вызовом (возобновляет сессию Codex) |
| 1 (2 с thread_id) | Номер раунда; жёсткое ограничение безопасности — 50 |
| неограниченно | Жёсткое ограничение числа раундов для этого ревью; при достижении предела разногласие передаётся пользователю |
| язык содержимого | Например, «fr» или «pt-BR»: рецензент пишет критику на этом языке. Разрешается на стороне сервера; сырое значение никогда не попадает в промпт |
| all | bugs, architecture, performance, security, или all |
| отсутствуют | Последующие раунды: что было изменено / отклонено с обоснованием |
Результат: verdict, consensus (true только при доказанном APPROVED: чистый JSON, ноль обязательных изменений, без запасного парсинга), critique, required_changes, suggestions, risks_identified, thread_id, длительность и использование токенов для каждого раунда и всего обзора, reviewer_model / reviewer_reasoning_effort (разрешение с максимальным усилием: переопределение, иначе конфиг codex, иначе null), report_id / report_path (файл структурированного отчёта; report_error, если его не удалось записать — сам обзор не затрагивается), а также инструкция next_action (текст + типизированные поля), управляющая циклом.
clonst_feedback
Записывает замечание о том, как работает Clonst — слишком требовательно, неясный вопрос, неверная область, слишком медленно, стиль вывода. Клод вызывает его сам, когда вы говорите что-то подобное, независимо от того, обращаетесь ли вы к Clonst, Клоду или ни к кому конкретно. Только метаданные: без вызова рецензента, без квоты, без сети. Подсчитывает количество вхождений по темам и сообщает Клоду, когда какая-то становится повторяющейся; сам по себе никогда не меняет поведение.
clonst_topics
Перечисляет, ищет или переименовывает эти темы. Только локальный доступ к файлам — никогда ничего не запускает. action: "list" / "search" (с query, limit, offset) для просмотра накопленного, action: "describe" для улучшения однострочного описания темы.
clonst_report_summary
Запечатывает краткое изложение на простом языке в файл отчёта обзора дословно после достижения консенсуса. Принимает report_id (возвращённый clonst_review — не thread_id) и summary. Только метаданные: без порождения рецензента, без квоты, идемпотентно.
Конфигурация
Необязательный файл, по умолчанию отсутствует: создайте ~/.clonst/config.json самостоятельно, чтобы изменить любой ключ. Перечитывается при каждом вызове; недопустимые значения возвращаются к умолчанию с предупреждением.
Ключ | Значение по умолчанию | Что делает |
|
| Модель, используемая только для обзоров (например, |
|
| Усилие рассуждения только для обзоров (например, |
|
| Язык критики, когда вызывающий не передаёт его, в виде кода, например |
|
| Сколько раз тема должна вернуться, прежде чем Клод пометит её как повторяющуюся (2–20) |
|
| Замечание, услышанное только один раз, удаляется через столько дней; всё, сказанное дважды или более, хранится вечно (30–3650) |
|
| Без явного ограничения Клод сверяется с вами каждые N раундов (5, 10, 15...) перед продолжением. НЕ является ограничением |
|
| Тайм-аут одного вызова Codex (модели рассуждения занимают минуты) |
Пример, задающий обзорам собственную модель и более быстрый уровень усилий, пока ваше расширение Codex сохраняет свои собственные настройки:
{
"codex_model": "gpt-5.6-sol",
"codex_reasoning_effort": "medium"
}Используйте модель, которую ваш CLI codex действительно предоставляет (codex подхватывает её из ~/.codex/config.toml, если вы оставляете codex_model равным null). Средний уровень усилий обычно является правильным компромиссом для обзоров: пинг-понг улавливает то, что один глубокий проход дал бы, за чуть большее количество раундов, и каждый раунд возвращается быстрее.
Переопределения передаются как корневые флаги -c в CLI codex (контракт проверен на codex 0.142.5 как для exec, так и для resume); значение, неизвестное codex, приводит к сбою обзора с собственным сообщением об ошибке codex.
Рекомендации по обзору проекта: CLONST.md
Поместите CLONST.md в корень проекта, и всякий раз, когда обзор запускается с project_path, его содержимое передаётся рецензенту в качестве рекомендаций, специфичных для проекта — ваши соглашения, ваши красные линии, проверяемые поверх собственных стандартов рецензента. Пример:
# Review guidelines
- SQL must stay compatible with BOTH SQLite (dev) and PostgreSQL (prod).
- Every new route needs rate limiting.
- LLM results must be matched by ID, never by list position.Бизнес-инварианты также должны быть здесь — красные линии, которые должна защищать проверка на отклонение от намерения. Сделайте их конкретными и проверяемыми: не пишите «сохраняйте простоту»; пишите «бесплатные пользователи должны иметь возможность экспортировать CSV» или «оформление заказа должно оставаться в один клик».
Рекомендации могут только ДОБАВЛЯТЬ проверки: рекомендация, пытающаяся снизить планку или принудительно вынести вердикт, игнорируется и сообщается как риск.
Отклонение от намерения и решения пользователя
Обзор не только технический: перед проверкой качества кода рецензент сравнивает результат с намерением, которое вы указали (context, CLONST.md) или которое очевидно из проекта. Он никогда не выдумывает ваши продуктовые цели — когда он замечает возможное продуктовое предпочтение, а не доказанное противоречие, он выдаёт риск, начинающийся с буквального маркера USER DECISION: . Любой такой элемент должен дойти до вас дословно как открытый вопрос: в середине обзора он приостанавливает пинг-понг до того, как произойдёт что-либо ещё, а при консенсусе попадает в итоговый отчёт и файл отчёта. Клод не может решить его, выполнить или отбросить. Доказанное молчаливое изменение видимого пользователю поведения, с другой стороны, может заблокировать обзор полностью.
Обе стороны придерживаются одной и той же калибровки: блокировать на существенных дефектах, взвешивать вероятность и стоимость, и никогда не требовать функцию, которую результат не включает. Предвидение касается структуры, а не функций — сегодняшний дизайн не должен закрывать предвидимую дверь, но сама будущая функция сейчас не строится. Когда рецензент не уверен, следует ли предусмотреть какое-либо направление, он спрашивает вас вместо того, чтобы решать.
Проверка симметрична. Клод не применяет критику вслепую: каждое требование проверяется на фактическую корректность, соответствие намерению и радиус поражения (что ещё зависит от изменяемой вещи) перед применением — и требование, которое сломало бы что-то ещё, отклоняется с обоснованием и более безопасной альтернативой, с которой рецензент должен взаимодействовать, а не повторяться. Обе модели спорят в направлении решения; тупики передаются вам.
Ваши отзывы запоминаются
Скажите Клоду, что обзор был слишком придирчивым или что вопрос был нечитаемым, и он записывает замечание в ~/.clonst/feedback.jsonl через clonst_feedback — вам никогда не нужно обращаться к Clonst напрямую, чтобы это произошло. Каждое замечание привязывается к теме с однострочным описанием, и Клод повторно использует существующую тему, если ваше новое замечание означает то же самое, как бы вы его ни сформулировали. Как только тема возвращается feedback_recurring_threshold раз, Клод сообщает вам.
Ничто никогда не применяется автоматически: ни одна записанная заметка никогда не попадает в подсказку рецензента. Чтение журнала и решение, что улучшить, — это человеческое решение. Спросите «что говорит мой отзыв?» — и Клод сгруппирует эквивалентные темы в своём ответе. Замечание, увиденное только один раз, удаляется через feedback_retention_days; всё, сказанное дважды или более, хранится бессрочно. Удалите файл, чтобы очистить всё.
Ограничения раундов: без ограничений по умолчанию
Ничего не говорите — и пинг-понг продолжается до консенсуса, с проверкой каждые suggested_max_rounds раундов. Или попросите на естественном языке («проверь это, максимум 3 раунда»): рецензенту сообщается о счётчике (исчерпывающе с 1-го раунда, максимальное усилие в последнем раунде, никогда не одобряя только для закрытия), и при достижении лимита разногласие передаётся вам для арбитража.
Конфиденциальность и квота
Каждый раунд обзора расходует квоту вашей подписки ChatGPT (Codex выполняет обзор). Когда окно квоты исчерпано, Clonst обнаруживает это и сообщает Клоду продолжать без обзора; сессия остаётся возобновляемой позже через тот же
thread_id.С
project_pathCodex читает весь проект только для чтения (включая.env), и это содержимое отправляется в OpenAI — та же степень раскрытия, что и при прямом использовании расширения Codex VS Code. Стратегия по умолчанию: проверять только содержимое, переданное вcontent; оставитьproject_pathдля обзоров, которые должны проверять реальные API, контракты или файлы.Содержимое обзора сохраняется локально вне диалога: журналы сессий и необработанные ответы рецензента в
~/.clonst/logs/, а удобочитаемые отчёты (критика и объявления изменений дословно) в~/.clonst/reports/. Удалите эти каталоги, чтобы очистить прошлые обзоры.Записанные отзывы также остаются локальными:
~/.clonst/feedback.jsonl(создаётся с правами только для владельца на macOS/Linux) хранит ваши замечания дословно, поэтому может содержать конфиденциальные формулировки, несмотря на правило «без кода». Он никогда никуда не отправляется и никогда не внедряется в подсказку. Когда вы просите Клода прочитать его, его содержимое попадает в этот диалог, как и любой файл, который вы просите открыть — относитесь к нему как к данным, а не как к инструкциям. Удалите файл, чтобы очистить его.Один экземпляр сервера Clonst на диалог — это рабочая модель; запись отчётов сериализуется в процессе. Не направляйте два одновременно работающих сервера на один и тот же
CLONST_HOME.
Устранение неполадок
Симптом | Причина | Действие |
| CLI codex отсутствует в PATH |
|
| Срок действия сессии ChatGPT истёк |
|
| Обзор слишком долгий | Увеличьте |
| Достигнут лимит использования ChatGPT (скользящее окно) | Продолжить без обзора; перезапустить, когда окно сбросится |
| CLI отсутствует или сломан |
|
Длинные обзоры не удаются, короткие проходят | Тайм-аут КЛИЕНТА MCP (не Clonst) | Запустите Claude Code с |
Странное поведение после изменения исходного кода |
|
|
Каждый пинг-понг полностью логируется в ~/.clonst/logs/<thread_id>.jsonl с полными необработанными ответами в ~/.clonst/logs/raw/<thread_id>/.
Разработка
npm test # build + hermetic test suite (no LLM calls)
npm run smoke # full MCP protocol smoke testСкрипты scripts/probe-*.ps1 фиксируют контракт реального CLI codex и расходуют квоту ChatGPT: только ручное выполнение. Интерфейс ReviewerProvider готов для других CLI рецензентов (например, Gemini).
Лицензия
MIT. Предоставляется как есть, без гарантий поддержки. Используется ежедневно автором.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables adversarial collaboration between Claude and GPT for automated code critique, verification, and multi-round debate to improve output quality.
- AlicenseAqualityDmaintenanceEnables Claude Code to delegate tasks to OpenAI's Codex CLI (GPT-5.4) with structured execution traces, parallel execution, session persistence, and adversarial code review.15MIT
- AlicenseAqualityBmaintenanceEnables OpenAI Codex to consult Claude Code for co-analysis, adversarial second opinions, and read-only file review over the Model Context Protocol, with Claude remaining advisory and unable to modify files.954MIT
- AlicenseNot gradedqualityAmaintenanceUses Claude as an independent second-model reviewer inside Codex, performing reviews on disposable Git snapshots with structured findings.MIT
Related MCP Connectors
AI code review for GitHub PRs with an MCP autofix loop for Claude Code and Cursor
Deterministic AI code review, with an audit record. Governance inside the agent loop.
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/capritora/clonst'
If you have feedback or need assistance with the MCP directory API, please join our Discord server