Запустить локальный инструмент.
Оценка для одного пользователя. Для локального правила не нужны GitLab, PostgreSQL и модель.
Проверить публичный пример сейчас
Код до/после и тесты запускаются без установки Null. Это повтор тестовых сценариев сохраненного ревью, без вызова модели.
curl --fail --location https://null.review/examples/review-journey.zip --output review-journey.zip
unzip review-journey.zip -d review-journey
python3 -m unittest discover -s review-journey/after -p 'test_*.py'Ожидаемый результат: 8 тестов проходят. README.md в архиве описывает исходный прогон и его ограничения.
Перед запуском
Сначала получите пакет исходников. Команды выполняются из корня распакованного пакета. Нужны Python 3.12 и uv; установка зависимостей требует сети. Пакета на PyPI сейчас нет.
Установите закрепленные зависимости
./scripts/install
.venv/bin/tandem --helpРезультат: локальная .venv, приватный .env и справка CLI с командами serve, index, propose, apply и test. Вызова модели нет.
Откройте отдельный демо-проект
./scripts/dev --port 3278Откройте http://127.0.0.1:3278. В интерфейсе указан учебный Orbit API. Обновите индекс, предложите финальный перенос строки, проверьте diff и подтвердите применение. Остановка: Ctrl+C.
Откройте свой репозиторий
./scripts/run --repo /absolute/path/to/project --port 3278Замените путь на существующий локальный репозиторий. Файлы читаются при выборе или индексации; применение предложения требует отдельного действия. Этот сервер для одного пользователя слушает loopback и должен оставаться приватным.
Что проверяет этот режим
Без модели правило только добавляет финальный перенос строки. Это реальная операция, а не AI-ревью. Локальная история хранится в SQLite. Корпоративные службы используют PostgreSQL и другой способ установки.
Если запуск не удался
| Проблема | Что сделать |
|---|---|
| uv: command not found | Установите uv с docs.astral.sh/uv, повторите установку. |
| Address already in use | Укажите другой --port и откройте тот же порт. |
| Нет предложения | Выберите текстовый файл без финального переноса строки. Произвольная задача требует настроенной модели. |