Skip to main content

Two LLMs enter. One verdict leaves.

Project description

versus-llm

versus-llm

versus запускает спор двух LLM прямо в терминале. Один агент защищает идею, второй спорит с ним, потом судья дает короткий вердикт.

Обычно запускай без аргументов, чтобы открыть главное меню:

versus

В меню можно ввести вопрос, выбрать число раундов и добавить файл с контекстом.

Установка

Нужен Python 3.10 или новее.

pip install versus-llm

Проверь, что команда установилась:

versus --version

Ожидаемый вывод:

versus-llm 1.2.1

Настройка OpenRouter

versus работает через OpenRouter, поэтому нужен свой API-ключ. Это не сложно: один раз создаешь ключ, вставляешь его в versus setup, дальше CLI сам его хранит.

Как получить ключ

  1. Открой страницу: https://openrouter.ai/keys
  2. Войди в аккаунт OpenRouter.
  3. Нажми кнопку создания ключа.
  4. Скопируй ключ.

По сути, это делается в 2 клика: создать ключ и скопировать его. Вручную создавать .env не нужно.

Как сохранить ключ в versus

versus setup

CLI спросит:

Вставь API-ключ OpenRouter:

Вставь ключ и нажми Enter. Символы при вводе скрыты, но после сохранения versus покажет короткую маску ключа, например:

API-ключ OpenRouter сохранен (sk-o...abcd): C:\Users\...\versus-llm\.env

Команда versus login делает то же самое:

versus login

Если ключ не настроен, versus напишет:

API-ключ OpenRouter не настроен.

Запусти:
  versus setup

Первый запуск

После настройки ключа лучше запускать versus без вопроса:

versus

Откроется главное меню. В нем можно ввести вопрос, указать файл с контекстом и выбрать число раундов. Это основной способ пользоваться приложением.

Что произойдет:

  1. Агент A даст сильный аргумент.
  2. Агент B разберет слабые места и возразит.
  3. Раунды повторятся заданное число раз.
  4. Судья прочитает спор и даст вердикт.

Если вопрос на русском, судья должен отвечать на русском.

Основной запуск

Открыть главное меню

versus

Главное меню удобнее прямого CLI-запуска: там можно управлять вопросом, файлом с контекстом и количеством раундов без длинной команды.

Быстрый CLI-вариант

Если нужно запустить спор одной командой, можно сразу передать вопрос:

versus "Стоит ли учить Rust в 2026?"

Указать число раундов из CLI

versus "React или Vue?" --rounds 3

По умолчанию используется 2 раунда.

Добавить файл с контекстом из CLI

versus "Какая база лучше подходит под эту схему?" --file schema.sql

Файл должен быть не больше 200 КБ. Его текст добавляется к вопросу как контекст для обоих агентов.

Сохранить спор в Markdown из CLI

versus "PostgreSQL или MongoDB?" --output debate.md

После завершения появится файл debate.md с вопросом, ответами агентов и вердиктом судьи.

Выбрать модели вручную из CLI

versus "React или Vue?" --models openai/gpt-oss-120b:free nvidia/nemotron-3-super-120b-a12b:free google/gemma-4-31b-it:free

Порядок важен:

--models MODEL_A MODEL_B [JUDGE_MODEL]

Первая модель отвечает за агента A, вторая за агента B, третья за судью. Если указать только две модели, судья использует модель по умолчанию.

Главное меню

Это рекомендуемый режим после versus setup. Если запустить versus без вопроса, откроется полноэкранное меню:

versus

Там можно ввести вопрос, путь к файлу с контекстом и число раундов. Для обычного использования этого достаточно.

Горячие клавиши:

Клавиша Что делает
S сохранить спор в debate.md
r вернуться к новому вопросу
q выйти
Ctrl+C выйти после повторного нажатия

Параметры CLI

Параметр Что делает По умолчанию
question вопрос для спора открывает главное меню, если вопрос не указан
--file путь к файлу с контекстом нет
--rounds число раундов 2
--models две или три модели OpenRouter: агент A, агент B и опционально судья openai/gpt-oss-120b:free, nvidia/nemotron-3-super-120b-a12b:free, google/gemma-4-31b-it:free
--output путь для сохранения Markdown-файла нет
--version показать версию 1.2.1

Где хранится ключ

versus setup сохраняет ключ локально:

Система Путь
Windows %APPDATA%/versus-llm/.env
macOS/Linux ~/.config/versus-llm/.env

Также работают старые способы:

OPENROUTER_API_KEY=your_key_here

и файл .env в текущей папке.

Приоритет такой:

  1. Переменная окружения OPENROUTER_API_KEY.
  2. .env в текущей папке.
  3. Конфиг, созданный через versus setup.

Если бесплатная модель не отвечает

Бесплатные модели OpenRouter иногда возвращают 429: провайдер временно ограничил запросы. versus сам делает повторные попытки, но иногда нужно подождать и запустить команду еще раз.

Если проблема повторяется:

versus "твой вопрос" --models openai/gpt-oss-120b:free nvidia/nemotron-3-super-120b-a12b:free google/gemma-4-31b-it:free

Можно выбрать другие модели OpenRouter через --models.

Локальная разработка

Если ты клонировал репозиторий:

pip install -e .

Проверки:

python -m py_compile versus.py
python -m unittest discover tests
versus --version

Лицензия

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

versus_llm-1.2.1.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

versus_llm-1.2.1-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file versus_llm-1.2.1.tar.gz.

File metadata

  • Download URL: versus_llm-1.2.1.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for versus_llm-1.2.1.tar.gz
Algorithm Hash digest
SHA256 e2f7d107871a35488985f18e2170798c0e35207bbcd9db9987f8f5dfdeb64959
MD5 b0755701b0d0d1fb2b104dad9c4badea
BLAKE2b-256 05184b44a9198339bab3dff5179d108735d73d1743534d313846cc7573564aaf

See more details on using hashes here.

File details

Details for the file versus_llm-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: versus_llm-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for versus_llm-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c04dace82567a3d4edf37cfc81c056655cb3835a82a6947f7c3a5497318cc269
MD5 ea812a0f439a199ffd5cbb33c339e8b5
BLAKE2b-256 c67412356a2e7ab83728ab8270d67ce4f0964de43ad8daffa24b8b5bd46e0e3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page