- BrainTools - https://www.braintools.ru -
TL;DR: Собрали CLI, который гоняет ревью кода на локальной LLM (Ollama): никаких API-ключей в облаке, код не уходит из машины, один diff – одна команда. В статье – зачем это нужно, как устроено и как попробовать за пять минут.
Ревью кода вручную отнимает время, а статический анализ (линтеры, SAST) ловит только то, что зашито в правила. Контекст проекта, типичные баги и «запахи» кода они не видят. Облачные AI-ревью (типа CodeRabbit) удобны, но код уходит в чужое API – для внутренних репозиториев или строгого комплаенса это не всегда ок.
Хотелось чего-то среднего: умное ревью с контекстом, но полностью локально, без облака и без привязки к PR.
Ollama [1] даёт запускать открытые LLM (Llama, Qwen, CodeLlama и др.) на своей машине одной командой. Плюсы для ревью:
код никуда не уходит;
нет лимитов и подписок;
можно выбрать модель под задачу (например, qwen3-coder для кода);
подходит для воздушных и онпрем-сред.
Мы решили сделать инструмент, который берёт git diff, при необходимости подтягивает контекст из репозитория (RAG) и отправляет всё в Ollama. На выходе – структурированный отчёт: что не так, насколько серьёзно, что поменять (с готовыми правками, где возможно).
Схема простая:
Сбор изменений – читаем git diff (или весь scope, если нужно).
Контекст – при необходимости загружаем файлы проекта, чанкуем, строим эмбеддинги (через модель из Ollama) и по запросу подмешиваем релевантные куски в промпт.
Промпт – отправляем в Ollama diff + контекст + системный промпт с правилами (безопасность, производительность, стиль).
Ответ – парсим структурированный отчёт: файл, строка, severity, описание, рекомендация, при возможности – патч (auto-fix).
Всё это упаковано в одну команду в терминале, без веб-интерфейса и без интеграции с GitHub/GitLab (хотя при желании вывод можно пушить в CI).
Нужны Python 3.11+ и запущенная Ollama с хотя бы одной моделью (например, qwen3-coder:7b или codellama).
# Установка (pip)
pip install git+https://github.com/URLbug/CodeFox-CLI.git@main
# или через uv
uv tool install git+https://github.com/URLbug/CodeFox-CLI.git@main
В каталоге проекта:
codefox --command init # создаст .codefox.yml, .codefoxenv и .codefoxignore
codefox --command scan # ревью по текущему git diff
При первом init создаётся конфиг по умолчанию. Для Ollama его нужно явно указать.
В .codefox.yml задаём провайдер и модель:
provider: ollama
model:
name: qwen3-coder:7b # или codellama, deepseek-coder и т.д.
base_url: http://localhost:11434
temperature: 0.2
max_tokens: 4000
embedding: BAAI/bge-small-en-v1.5 # для RAG, если нужен контекст по файлам
review:
severity: high
suggest_fixes: true
diff_only: true
baseline:
enable: true
ruler:
security: true
performance: true
style: true
diff_only: true — анализируем только изменения (удобно для повседневного ревью).
baseline.enable: true — не ругаемся на старый долг, только на новое.
ruler — включаем/выключаем категории (безопасность, перф, стиль).
Список доступных моделей в вашей Ollama:
codefox --command list
После codefox --command scan в терминале появляется что-то вроде:
─── CodeFox Audit Report ───
- Location: assets/js/script.js : Line 84
- Issue: Visual Glitch from Global Style Mutation
- Severity: Medium
- Confidence: High
- Regression Risk: Applying `transition: all 0.3s` globally affects every element's animation behavior, potentially breaking existing transitions or
causing unwanted visual side-effects.
- Evidence:
When toggling dark mode, the code applies a global transition style (`document.querySelectorAll("*")`) which overrides component-specific animations
unpredictably.
- Auto-Fix:
// Apply transition only where necessary instead of globally
// document.querySelectorAll("*").forEach(function(el){
// el.style.transition="all 0.3s";
// });
- Senior Tip:
Target styles precisely using CSS classes rather than blanket selectors. Prefer declarative CSS over imperative JavaScript styling for maintainability.
─── CodeFox Audit Report ───
...
Пример использования:
То есть не просто «здесь плохо», а конкретное место, риск, доказательство и совет, как поправить. Для части замечаний даётся готовый фрагмент кода (auto-fix).
Локально – весь анализ на вашей машине, Ollama + Python.
Без облака – не нужны API-ключи Gemini/OpenAI, код не уходит из репо.
Один diff – одна команда — привычный workflow: правишь код, делаешь codefox --command scan, смотришь отчёт.
Гибко – та же тулза умеет работать с Gemini и OpenRouter (через .codefox.yml), если захочешь сравнить качество или снять нагрузку с железа.
Проект открыт: CodeFox-CLI [3]. Документация по всем опциям – в WIKI [4] репозитория. Если зайдёте, поставьте звезду и напишите в комментариях, на каких моделях в Ollama вам зашло ревью сильнее всего. Мы буем очень благодарны :-)
Автор: CodeFoxAI
Источник [5]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/26544
URLs in this post:
[1] Ollama: https://ollama.com/
[2] Image: https://sourcecraft.dev/
[3] CodeFox-CLI: https://github.com/URLbug/CodeFox-CLI
[4] WIKI: https://github.com/URLbug/CodeFox-CLI/blob/main/WIKI.md
[5] Источник: https://habr.com/ru/articles/1006258/?utm_campaign=1006258&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.