Материал основан на разборе dev.to. Ниже — главное и практические шаги, которые можно быстро применить в работе.
В какой-то момент я заметил, что значительная часть ежедневных запросов к Claude Code уходит не на сложную архитектуру, а на рутину: объяснить ошибку, подсказать правку теста, переименовать переменные, проверить SQL. Эти задачи важны, но не всегда оправдывают облачный вызов.
При этом на моей машине уже работала Ollama с локальной моделью qwen2.5-coder, и по скорости она закрывала именно такой класс задач. Проблема была в другом: CLI-инструменты вроде Claude Code, Codex CLI и Gemini CLI не умеют «видеть» локальную модель сами по себе, потому что говорят на разных протоколах.
Поэтому задача свелась не к запуску Ollama как таковому, а к нормальной маршрутизации запросов между облаком и локальной моделью без постоянной ручной перенастройки.
Знаете, я тоже недавно развернул Codex локально на своем компьютере. Это значительно упростило мою работу с ИИ, и я рекомендую вам ознакомиться с этой статьей: Сегодня развернул Codex локально на Mac.
- Почему Claude Code не видит Ollama: проблема протоколов
- Как это работает
- Ollama настройка с Claude Code через CliGate
- То, что меня удивило при реализации
- Лучшие локальные модели для кодинга: когда использовать вместо облака
- Когда локальная маршрутизация особенно полезна
- Типичные ошибки при подключении Claude Code к локальным моделям
- Часто задаваемые вопросы по Claude Code и Ollama
Почему Claude Code не видит Ollama: проблема протоколов
Claude Code использует протокол Anthropic, Codex CLI работает с протоколом OpenAI, Gemini CLI использует протокол Google, а Ollama предлагает свой собственный протокол, а также совместимый с OpenAI API-эндпоинт
Основная задача заключается не в том, может ли Ollama решать задачи, а в том, как организовать взаимодействие инструментов с ним без необходимости постоянной перенастройки конфигурации при смене режима на локальный или облачный
Именно это я решал последнюю неделю — и теперь выпустил решение как часть CliGate.
Как это работает
CliGate — это локальный прокси, который уже обрабатывает маршрутизацию Claude Code, Codex CLI и Gemini CLI к облачным провайдерам. Новая поддержка локальных моделей добавляет Ollama как полноценную цель маршрутизации наряду с OpenAI, Anthropic и Google.
Когда маршрутизация на локальные модели включена, CliGate перехватывает запросы от CLI-инструментов и — в зависимости от конфигурации — отправляет их в Ollama вместо облака. Трансляция протоколов происходит на уровне прокси: запрос Claude Code в формате Anthropic адаптируется под то, что ожидает Ollama, а ответ адаптируется обратно
Инструмент никогда не замечает разницы
Ollama настройка с Claude Code через CliGate
Шаг 1 — Убедитесь, что Ollama запущен с моделью
ollama run qwen2.5-coder:7b
Или любая другая модель по вашему выбору. CliGate автоматически обнаруживает всё загруженное.
# Проверьте доступность Ollama
curl http://localhost:11434/api/version
# {"version":"0.6.x"}
Шаг 2 — Запустите CliGate
npx cligate@latest start
Панель управления открывается по адресу http://localhost:8081.
Шаг 3 — Добавьте ваш экземпляр Ollama
Перейдите в Settings → Local Models. Добавьте URL вашего Ollama:
http://localhost:11434
CliGate выполняет проверку работоспособности, а затем получает список моделей через /v1/models. Загруженные модели появятся автоматически — без ручного ввода.
Шаг 4 — Включите локальную маршрутизацию
Чтобы активировать локальную маршрутизацию, включите соответствующий переключатель. С этого момента все запросы, которые изначально должны были отправляться к облачному провайдеру, сначала будут проверять локальные модели.
Также можно настроить это для каждого приложения отдельно. Например:
- Claude Code → qwen2.5-coder:7b (ваша локальная модель для кодирования)
- Codex CLI → облако (когда нужен полный функционал)
- Gemini CLI → облако
Никакой возни с ANTHROPIC_BASE_URL. Никакого повторного экспорта переменных окружения. Один переключатель в панели управления.
Шаг 5 — Протестируйте
Перейдите на вкладку Chat, выберите «Local Model» в качестве источника и отправьте сообщение. Если ответ пришёл — маршрутизация работает. Затем перейдите в терминал и используйте Claude Code как обычно — прокси сделает всё остальное.
То, что меня удивило при реализации
Я ожидал, что базовая маршрутизация окажется самой сложной частью. Это было не так
Настоящей проблемой оказалась потоковая передача ответов: Claude Code ожидает их в формате SSE (Server-Sent Events), тогда как Ollama использует совершенно другой формат
На уровне прокси я добавил специальный SSE-мост, который последовательно извлекает поток Ollama и преобразует его в ожидаемый формат для запрашивающего инструмента
Схема работает так: Claude Code отправляет POST-запрос на /v1/messages в формате Anthropic, прокси CliGate определяет необходимость локальной маршрутизации и перенаправляет запрос в Ollama. Ответ затем преобразуется в формат, подходящий для Claude Code, который получает стандартный потоковый ответ
Та же схема работает для Codex CLI (формат OpenAI Responses) и любого другого инструмента, который вы маршрутизируете через прокси
Лучшие локальные модели для кодинга: когда использовать вместо облака
Я не предлагаю заменять GPT-4 или Claude Sonnet локальной моделью на 7B. Разница в возможностях реальна.
Но многое из того, для чего я фактически использую Claude Code в обычный рабочий день, не требует лучшей модели:
- «Что означает этот стектрейс?»
- «Сгенерируй юнит-тест для этой функции»
- «Переименуй эти переменные, чтобы они были более описательными»
- «Этот SQL-запрос выглядит правильно?»
Для таких задач qwen2.5-coder:7b работает быстро, достаточно точно и бесплатно. Сохранение облачных вызовов для более сложных задач — сложных рефакторингов, архитектурных вопросов, изменений в нескольких файлах — значительно снижает ежемесячный счёт за API без изменения рабочего процесса
Переключатель в CliGate позволяет легко вернуться к облаку, когда это необходимо
Когда локальная маршрутизация особенно полезна
На практике лучший сценарий такой: локальная модель забирает дешёвые и короткие запросы, а облако остаётся для сложной reasoning-нагрузки. Это особенно удобно в командах, где CLI-инструменты используются десятки раз в день и счёт складывается именно из мелких вызовов, а не из одного-двух больших сеансов.
Такой режим даёт ещё один плюс: вы не меняете привычки разработчика. Он продолжает работать через тот же Claude Code, тот же Codex CLI и те же команды, а решение о том, куда отправить запрос, принимает прокси. Именно это и делает схему практичной, а не демонстрационной.
Если упростить до одного правила, оно звучит так: локальные модели хороши для потока, облачные — для предельной точности. Когда эта граница оформлена в настройках прокси, а не держится в голове у каждого разработчика, стоимость падает, а рабочий процесс остаётся предсказуемым.
Типичные ошибки при подключении Claude Code к локальным моделям
Несколько граблей, на которые легко наступить при первом запуске.
Ollama не запущен в момент старта CliGate. Прокси не найдёт эндпоинт при проверке работоспособности и не добавит модели в список. Решение простое: сначала запустите ollama run <модель>, убедитесь, что curl http://localhost:11434/api/version возвращает версию, и только потом стартуйте CliGate.
Модель не загружена заранее. Если модель не была запущена хотя бы один раз, она не появится в /v1/models. Достаточно один раз выполнить ollama run qwen2.5-coder:7b — после этого модель будет доступна для маршрутизации.
Переключатель «Local Model Routing» остался выключен. Это самая частая причина, по которой запросы продолжают уходить в облако. Проверьте панель управления на http://localhost:8081 — переключатель должен быть активен.
Конфликт портов. Если порт 8081 занят другим процессом, CliGate не запустится. В этом случае проверьте, что занимает порт, и освободите его перед запуском прокси.
Часто задаваемые вопросы по Claude Code и Ollama
Можно ли использовать CliGate с моделями, отличными от qwen2.5-coder? Да. CliGate автоматически обнаруживает все модели, загруженные в Ollama. Подойдёт любая модель, которую вы запустили через ollama run — llama3, mistral, deepseek-coder и другие.
Нужно ли менять конфигурацию Claude Code или Codex CLI вручную? Нет. CliGate работает как прозрачный прокси: ваши инструменты продолжают обращаться к нему как обычно, а маршрутизация на Ollama или облако происходит внутри прокси без изменения настроек самих инструментов.
Что происходит, если Ollama недоступен в момент запроса? Если локальная модель недоступна, запрос не выполнится с ошибкой соединения. Автоматического фолбэка (резервного переключения) на облако нет — это нужно учитывать при настройке маршрутизации для критичных задач.
Насколько заметна разница в качестве ответов между локальной 7B-моделью и облачным Claude Sonnet? Для простых задач — объяснение ошибок, генерация юнит-тестов, переименование переменных — разница минимальна. Для сложных многофайловых рефакторингов и архитектурных решений облачные модели заметно точнее. Оптимальная стратегия: локальная модель для рутины, облако для сложных задач.
Работает ли CliGate на Windows? CliGate запускается через npx, что означает совместимость с любой платформой, где установлен Node.js, включая Windows. Ollama также поддерживает Windows начиная с версии 0.1.x.



