Skip to main content
Glama

code-quorum

Независимые рецензии стали важной частью того, как я использую агентные инструменты. Вдохновлённый похожими работами, я создал Code Quorum для собственного использования и делюсь им на случай, если он окажется полезен другим.

Code Quorum — это macOS-совет из нескольких агентов для Claude Code и Codex. Активный хост пишет собственный обзор, оценку или план, пока внешние места работают параллельно. Структурный барьер против предвзятости сохраняет каждую точку зрения независимой до финального синтеза.

Он может использовать существующие подписки Claude Code, ChatGPT/Codex и Gemini/Antigravity. Место OpenCode использует OpenRouter, с DeepSeek V4 Flash в качестве модели по умолчанию. Поддерживаются оба CLI-хоста, а также Codex в настольном приложении ChatGPT и поверхность Code в настольном приложении Claude.

Хост

Внешний совет по умолчанию

Claude Code

Codex + Gemini + OpenCode

Codex

Подписка Claude + Gemini + OpenCode

Хост никогда не является одновременно местом подпроцесса. Разделение start/await требует, чтобы хост сформировал собственный ответ до того, как q_await откроет вывод коллег, и каждый навык совета вызывает блокирующее уведомление о завершении в том же ходе, что и его запуск.

Внешние места доступны только для чтения, но «только для чтения» не означает «данные остаются локальными». Изучите Безопасность и границы данных перед использованием Code Quorum для приватных материалов.

Каждый запуск совета MCP, читающего репозиторий, требует явного абсолютного cwd проекта. Инструменты MCP отклоняют пропущенное или пустое значение, а не возвращаются к каталогу плагинов или времени выполнения сервера. Навыки хоста предоставляют это значение при обычном использовании /q-* и $code-quorum:q-*. Файлы планов и областей также должны находиться внутри этого каталога; абсолютные пути, обход .. и выходы через симлинки отклоняются до чтения их содержимого.

Рабочие процессы

Хост может выбрать рабочий процесс из соответствующего запроса на простом языке. Используйте формы ниже, чтобы выбрать его явно:

Рабочий процесс

Claude Code

Codex

Shell

План

/q-plan <task>

$code-quorum:q-plan <task>

uv run quorum q-plan <task>

Мозговой штурм

/q-brainstorm <topic>

$code-quorum:q-brainstorm <topic>

uv run quorum q-brainstorm <topic>

Skystorm

/q-skystorm <topic>

$code-quorum:q-skystorm <topic>

навык только для хоста

Проверка

/q-validate <plan-path>

$code-quorum:q-validate <plan-path>

uv run quorum q-validate <plan-path>

Обзор

/q-review [target]

$code-quorum:q-review [target]

uv run quorum q-review [target]

Исследование

/q-research <topic>

$code-quorum:q-research <topic>

uv run quorum research <topic>

Справка

/q-help

$code-quorum:q-help

навык только для хоста

uv run quorum --help перечисляет точную поверхность оболочки. Основные модификаторы:

Опция

Эффект

--extended

Добавляет ещё один раунд расхождения для мозгового штурма хоста или расширяет проверку/обзор до 4 раундов с ротацией позиций.

--mode critique

Заставляет более поздние раунды проверки/обзора атаковать позиции коллег вместо пересмотра в сторону согласия.

--scope <doc>

Объявляет области в границах, вне границ и принятого риска для обзора всей кодовой базы.

--exploratory

Заставляет исследование хоста искать междисциплинарные аналогии вместо прямого предшествующего искусства.

--no-research

Запускает мозговой штурм или skystorm только на основе модельных априорных знаний.

Источники исследования и учётные данные

q-research по умолчанию запрашивает все шесть источников. Повторите --source <name>, чтобы ограничить запуск.

Источник

Цель

Политика учётных данных

arXiv (arxiv)

Научные статьи и препринты из поиска arXiv.

Нет.

OpenAlex (openalex)

Недавние работы и аннотации; в исследовательском режиме также создаётся карта подполей.

OPENALEX_API_KEY или QUORUM_OPENALEX_API_KEY требуется для обычного использования OpenAlex. QUORUM_OPENALEX_EMAIL идентифицирует клиента, но не заменяет ключ.

Europe PMC (europepmc)

Препринты по биологическим наукам из bioRxiv, medRxiv, Research Square и подобных источников; записи arXiv исключены.

Нет.

Context7 (context7)

Совпадения библиотек с высоким доверием и фрагменты документации.

CONTEXT7_API_KEY рекомендуется, так как анонимные запросы могут быть ограничены по частоте.

GitHub (github)

Публичные репозитории, сопоставленные по имени, описанию и темам, затем отсортированные по звёздам.

GH_TOKEN или GITHUB_TOKEN рекомендуется для более высоких лимитов. Частные репозитории исключены.

Hugging Face (huggingface)

Публичные идентификаторы моделей и метаданные, отсортированные по загрузкам. Результаты с резервным поиском по терминам помечаются [расширено].

HF_TOKEN или QUORUM_HF_TOKEN рекомендуется для лимитов Hub на уровне аккаунта. Частные модели отфильтровываются.

Code Quorum читает учётные данные из окружения процесса и отправляет токены только в заголовках авторизации. Сгенерированный адаптер Codex передаёт указанные переменные, но не сохраняет их значения в артефакте плагина. OpenAlex — единственный источник, требующий ключ для обычного использования; остальные улучшают надёжность или лимиты частоты.

Проверьте поиск Hugging Face из клона с помощью:

uv run quorum research "sentence embedding" --source huggingface --limit 5
uv run pytest tests/test_research_live.py -m live -k huggingface -q

Проверка CLI должна вернуть ссылки на модели и ненулевой счётчик источника HuggingFace. Живые тесты покрывают прямой поиск, аутентификацию с настроенным токеном, объединение по характерным терминам и полный путь research_topic. Без токена тест аутентификации пропускается, а анонимные проверки всё равно выполняются.

Требования

Code Quorum в настоящее время поддерживает macOS и требует Python 3.13+, менеджер пакетов uv и двоичные файлы для мест, которые вы собираетесь использовать. Каждое место полагается на собственный вход или ключ; Code Quorum не записывает значения учётных данных в артефакты плагинов. CLI мест сохраняют собственную аутентификацию и состояние выполнения, как описано в SECURITY.md.

Место

Двоичный файл

Аутентификация

Стоимость

codex

codex

собственный вход CLI (codex login; --with-api-key для оплаты по использованию)

подписка ChatGPT или оплачиваемый API-ключ

gemini

agy

Google OAuth через agy

подписка Google AI; оплачиваемый GEMINI_API_KEY — явный выбор SDK

opencode

opencode

OPENROUTER_API_KEY в окружении

оплата через OpenRouter

claude (только хост Codex)

claude

собственный вход claude.ai в CLI

только подписка Claude; маршрутизация через API-ключ удалена

Место Gemini зависит от песочницы Seatbelt macOS; Claude использует вместо этого список разрешённых инструментов чтения. Хосту Codex также нужен узко ограниченный помощник LaunchAgent для своих мест Claude и Gemini. Codex и OpenCode не зависят от Seatbelt, но не тестировались на других платформах.

Установка

Клонируйте стабильный снимок и настройте места:

git clone https://github.com/sdewell/code-quorum.git
cd code-quorum
uv sync
agy  # complete Google OAuth login, then exit
uv run quorum setup-agy                    # one-time Gemini seat config
uv run quorum setup-models --host claude   # use --host codex for Codex
uv run quorum doctor --host claude         # or codex / both
uv run quorum auth-check --seat gemini --host claude

doctor проверяет двоичные файлы, форму конфигурации и готовность песочницы. Он не тестирует живые учётные данные. auth-check запускает agy models внутри той же песочницы, что и место, и требует хотя бы одну допустимую строку модели, не отправляя промпт модели. Отсутствующий или отозванный вход направляет пользователя обратно к интерактивному agy; Code Quorum никогда молча не переключается на оплачиваемый маршрут API.

На хосте Codex установите и проверьте помощника из настоящего терминала перед проверкой аутентификации Codex:

uv run quorum install-seat-helper-launchagent   # --allowed-root <dir> to widen
uv run quorum seat-helper-status
uv run quorum auth-check --seat gemini --host codex

Каждый рабочий процесс MCP по умолчанию разрешает cwd в ~/Code и ~/src; помощник Codex применяет те же корни перед принятием запросов Claude или Gemini. Установите CODE_QUORUM_HELPER_ALLOWED_ROOTS или установите помощника с повторяющимися опциями --allowed-root, чтобы использовать другие корни проектов. Переустановите его из обновлённого стабильного снимка после каждого обновления Code Quorum. Несовместимые протоколы помощника закрываются с ошибкой, а установка из заменяемого кэша плагинов Codex отклоняется.

Границы только для чтения

Каждое внешнее место доступно только для чтения и отказывается запускаться, если его граница не может быть применена. Принуждение различается по месту: Codex использует собственную песочницу только для чтения, Claude предоставляет только инструменты чтения, Gemini использует Seatbelt macOS, а OpenCode использует изолированный HOME с ограниченными разрешениями.

Профиль Seatbelt Gemini запрещает чтение других домашних каталогов, с явными исключениями для аутентификации agy и состояния выполнения. Он не запрещает читаемые пути вне $HOME. Code Quorum не предоставляет универсального ограничения путей для Claude, Codex или OpenCode. Материалы совета могут покинуть машину через учётные записи провайдера, настроенные пользователем. Полная таблица границ, карта утечки данных, руководство по строгой изоляции и обработка учётных данных находятся в SECURITY.md.

Данные и одобрения в Codex

Codex рассматривает одобрение инструментов, ограничение файловой системы и разрешение на отправку материала за пределы машины как отдельные решения. Цель, такая как main...HEAD, ограничивает подготовленный diff обзора; она не ограничивает доступ внешнего места только для чтения к рабочему каталогу.

Когда включено approvals_reviewer = "auto_review", запуск совета может потребовать явного разрешения с указанием полезной нагрузки и получателей. Пользователи, желающие неавтоматизированного доступа, могут выбрать это для каждого инструмента, но Code Quorum никогда не записывает такие записи одобрений самостоятельно.

SECURITY.md содержит пример разовой авторизации, все шесть блоков одобрения Codex (включая общий инструмент q_await), руководство по проекту AGENTS.md, ограничения по изоляции путей и процедуру обновления с сохранением одобрений. Изучите его перед включением автоматических рабочих процессов.

Конфигурация

Каждое место (seat) определяет свою модель по одной лестнице, побеждает первое совпадение: флаг запуска -> переменная окружения -> выбор, записанный командой quorum setup-models -> поставляемый пин. Записанные выборы никогда не меняются молча; место, которое не может их выполнить, громко завершается с ошибкой, а остальной совет продолжает работу.

uv run quorum setup-models --host claude
uv run quorum setup-models --seat codex --model gpt-5.6-terra --effort medium

Переменная

Эффект

CODE_QUORUM_HOST

профиль хоста по умолчанию (claude или codex)

CODE_QUORUM_GEMINI_MODEL

модель места Gemini (идентификатор из agy models)

CODE_QUORUM_GEMINI_BACKEND

cli (подписка) или sdk (тарифицируемый GEMINI_API_KEY)

CODE_QUORUM_OPENCODE_MODEL

модель места OpenCode

CODE_QUORUM_OPENCODE_DEBUG

0 отключает сбор диагностики неудачных запусков

CODE_QUORUM_CLAUDE_MODEL / _EFFORT

модель и уровень усилий места Claude

CODE_QUORUM_CODEX_MODEL / _EFFORT

модель и уровень рассуждений места Codex

Конфигурация OpenCode

Место OpenCode требует OPENROUTER_API_KEY и не загружает вашу личную конфигурацию OpenCode. Оно использует изолированный HOME и пересобирает эту сгенерированную конфигурацию перед каждым запуском. Поставляемая модель — openrouter/deepseek/deepseek-v4-flash; её OpenRouter chunkTimeout составляет 90000 миллисекунд.

Code Quorum устанавливает OPENCODE_DISABLE_PROJECT_CONFIG=1 и OPENCODE_PURE=1. Сгенерированный агент совета разрешает только Read, glob и list, запрещает инструменты оболочки и мутации, блокирует .env и .env.*, и разрешает .env.example. Неудачные или пустые запуски записывают необработанные захваты stdout/stderr в ~/.cache/code-quorum/opencode-debug, если не установлен CODE_QUORUM_OPENCODE_DEBUG=0. Каталог имеет права 0700, файлы захватов — 0600, текст подсказки опускается в метаданных команд, и сохраняются только последние 20 захватов. Необработанные потоки могут по-прежнему содержать проверенный материал. См. ARCHITECTURE.md и SECURITY.md для полного описания границ.

Отключение места

Если живой зонд не срабатывает из-за отсутствия места или выхода из системы, quorum setup-models может пометить его как disabled в models.toml. Отключенные места пропускаются стандартным списком и сообщаются командой doctor, но явный запрос --agent <seat> всё равно их запускает.

Установка в качестве плагина

Claude Code:

/plugin marketplace add sdewell/code-quorum
/plugin install code-quorum@code-quorum

Для CLI Claude Code загрузите OPENROUTER_API_KEY и дополнительные исследовательские ключи перед запуском хоста. Например:

source ~/.zshrc.local
claude

Для настольного приложения Claude сделайте ключи доступными для текущей сессии входа macOS перед его открытием:

source ~/.zshrc.local
launchctl setenv OPENROUTER_API_KEY "$OPENROUTER_API_KEY"

Значение launchctl наследуется каждым последующим запущенным приложением, пока оно не будет снято, не произойдет выход из системы или перезагрузка машины. Запустите Claude Code, затем удалите копию из сессии входа; уже работающее приложение сохраняет свою копию для подпроцессов плагина:

launchctl unsetenv OPENROUTER_API_KEY

После установки или обновления плагина, или после изменения ключа, полностью завершите работу Claude Code и начните новую сессию Claude Code. Перезагрузка плагина может подхватить изменения кода, но не может изменить окружение, унаследованное работающим хостом.

Плагин Claude запускает свой MCP-сервер с помощью uv run --directory ${CLAUDE_PLUGIN_ROOT} quorum-mcp, поэтому uv и Python 3.13+ должны быть в PATH.

Codex:

Зарегистрируйте публичный маркетплейс и установите плагин:

codex plugin marketplace add sdewell/code-quorum --ref main
codex plugin add code-quorum@code-quorum
codex plugin list

Для настольного приложения ChatGPT полностью завершите работу и снова откройте приложение после регистрации маркетплейса. Откройте Плагины, выберите Личные, выберите Code Quorum и нажмите Установить.

После установки плагина на любой поверхности Codex подготовьте стабильный чек-аут из настоящего терминала:

uv sync
uv run quorum install-seat-helper-launchagent
uv run quorum seat-helper-status

Лаунчер Codex запускает подготовленный .venv этого чек-аута напрямую. Поэтому запуск MCP не зависит от записываемого кэша uv, загрузок из сети или окружения внутри заменяемого каталога плагина. После каждого обновления подтяните чек-аут, выполните uv sync и переустановите помощник перед запуском нового потока Codex.

В CLI Codex откройте /hooks, чтобы просмотреть и довериться каждому хуку команд code-quorum. Codex пропускает хуки плагина, пока не будет доверено каждому текущему хэшу определения. Изменённое определение требует повторного просмотра и доверия для этого изменённого определения.

Сгенерированный лаунчер восстанавливает стандартные пользовательские и Homebrew каталоги бинарных файлов (~/.local/bin, ~/.opencode/bin, /opt/homebrew/bin и /usr/local/bin) для настольного приложения с минимальным PATH.

Для CLI Codex загрузите ключевое окружение перед запуском Codex. Для настольного приложения ChatGPT установите ключи в текущей сессии входа macOS:

source ~/.zshrc.local
launchctl setenv OPENROUTER_API_KEY "$OPENROUTER_API_KEY"

Значение видно каждому последующему запущенному приложению, пока оно не будет удалено. Запустите Codex, затем удалите копию из сессии входа; работающее приложение сохраняет значение, которое оно уже унаследовало:

launchctl unsetenv OPENROUTER_API_KEY

После обновления плагина или изменения ключа полностью завершите работу и снова откройте Codex и начните совершенно новый поток Codex. Не возобновляйте поток, созданный до перезапуска; его реестр инструментов может по-прежнему ссылаться на предыдущий процесс плагина.

Для обновлений с сохранением одобрений никогда не используйте codex plugin remove как обычный путь. Следуйте проверенной последовательности в SECURITY.md.

Дизайн

ARCHITECTURE.md описывает общий стержень CLI/MCP, адаптеры мест, модель раундов, механизмы против предвзятости, упаковку и границы сбоев. Краткая версия: раунд 1 не содержит вывода коллег, последующие раунды анонимизируют коллег по позиции, и хост не получает матрицу совета до q_await.

Атрибуция

Эти проекты вдохновили форму рабочего процесса; никакой код, подсказки или документация не были скопированы:

  • SnakeO/claude-co-commands — независимая работа хоста до вывода коллег.

  • agentic-box/owlex — многогаентная архитектура совета и когнитивные роли.

  • karpathy/llm-council — анонимизированное рецензирование коллег по содержанию, а не по идентичности модели.

Лицензия

MIT.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.

  • Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.

View all MCP Connectors

Latest Blog Posts

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/sdewell/code-quorum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server