Magpie — единый центр управления моделями для AI-кодинг-агентов

· 2 мин чтения
ai-agents llm model-routing cli desktop
📂 Исходный код на GitHub

Локальный менеджер моделей и API-шлюз для Claude Code, Codex, Gemini CLI, OpenCode, Pi, Goose и других AI-агентов. Поддерживает переключение конфигураций, единый каталог моделей, внешние провайдеры, подписки, routing-группы, профили и резервные копии. Лицензия MIT.

Magpie — единый центр управления моделями для AI-кодинг-агентов

Magpie — единый центр управления моделями для AI-кодинг-агентов

Magpie собирает модели всех настроенных AI-агентов в одном интерфейсе. В приложении или терминале можно посмотреть, какая модель выбрана сейчас, переключить её и при необходимости изменить связанные параметры. Проект одинаково удобен для работы с Claude Code, Codex, Gemini CLI, OpenCode, Pi, Goose и другими инструментами.

Это не новый кодинг-агент. Magpie не выполняет задачи вместо пользователя и не добавляет агентные возможности моделям. Его роль — управлять конфигурациями агентов, хранить модели и провайдеров в общем каталоге и предоставлять локальный API-шлюз, к которому могут подключаться разные инструменты.

Один интерфейс для многих агентов

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

Агент Что меняет Magpie
Claude Code Провайдер, основная модель и модели для уровней Opus, Sonnet, Haiku и Fable
Codex Провайдер, модель и effort
Gemini CLI Авторизация и модель
OpenCode Модель и small-модель
Pi Модель
Goose Модель
Cursor CLI Модель
Copilot CLI Модель
Crush, DeepSeek Harness, Command Code, omp, Devin, Hermes Agent Модель и доступные агенту параметры

Изменения вносятся хирургически: Magpie меняет только нужный ключ в settings.json, config.toml, opencode.jsonc или config.yaml. Комментарии, порядок и отступы в файлах сохраняются, а запись выполняется атомарно.

Интерфейс доступен в нескольких форматах:

  • окно приложения и значок в menu bar;
  • терминальный интерфейс magpie tui;
  • обычные команды CLI;
  • панель настроек провайдеров и шлюза.

Desktop-сборка занимает меньше 15 MB и использует системный webview через Wails, не добавляя отдельный браузерный рантайм. Терминальная сборка — около 7 MB. Поддерживаются macOS, Linux и Windows.

Единый локальный шлюз

Главная техническая часть Magpie — локальный gateway на 127.0.0.1:3425. Адрес можно изменить через MAGPIE_ADDR. Шлюз предоставляет:

  • OpenAI Chat Completions;
  • OpenAI Responses;
  • Anthropic Messages и подсчёт токенов;
  • Google Gemini generateContent, streamGenerateContent и countTokens;
  • каталоги моделей для OpenAI- и Google-совместимого формата.

Запросы передаются провайдеру напрямую, если он уже говорит на нужном API, либо переводятся между протоколами. Magpie сохраняет streaming, вызовы инструментов и reasoning, поэтому Claude Code, Codex, OpenCode и другие агенты могут обращаться к одному endpoint с моделями в формате provider/model.

Для OpenAI-совместимых клиентов базовый адрес выглядит так:

http://127.0.0.1:3425/v1

Для Anthropic-совместимого клиента:

http://127.0.0.1:3425

Локальный gateway использует постоянный токен magpie; любой его текст подходит, потому что сервис слушает только loopback. Сами ключи провайдеров Magpie не берёт из переменных окружения shell: их можно добавить через интерфейс или CLI.

Пример добавления провайдера и моделей:

magpie provider add deepseek sk-…
magpie provider add ollama
magpie provider add "My Relay" url=https://relay.example.com/v1 key=sk-… models=gpt-5.5,claude-sonnet-5
magpie provider test deepseek

Для пользовательского провайдера можно указать OpenAI-совместимый url, Anthropic-совместимый anthropic, отдельный responses, источник каталога catalog и список доступных models. Так можно подключить не только готовые пресеты, но и relay, локальный сервер или недавно появившегося провайдера.

Подписки как провайдеры

Magpie умеет использовать не только API-ключи. Если в Claude Code, Codex, Copilot или Devin выполнен вход, их подписка появляется в списке провайдеров, а модели становятся доступны другим агентам. Для Claude Code проект запускает локальный CLI, передаёт ему инструменты вызывающего агента через MCP и продолжает живой диалог в том же процессе.

Это разные сценарии:

  • у Claude Code и Copilot есть собственные ограничения на передачу запросов сторонним агентам;
  • Google-вход в Gemini CLI требует Google Cloud Code Assist и подходящего проекта;
  • у Cursor, Grok и Devin нет универсального API-эндпоинта, поэтому Magpie запускает их через собственные CLI;
  • OAuth-токены и учётные данные не копируются в конфигурацию Magpie, а читаются из мест, которые уже использует соответствующий агент.

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

Каталог моделей и routing-группы

Список моделей не зашивается в приложение. Magpie запрашивает доступные модели у провайдера, а каталог models.dev дополняет имена, reasoning-уровни и провайдеров, которые не возвращают собственный список. Каталог обновляется в фоне, когда устаревает.

Все модели записываются как provider/model. Если один и тот же идентификатор доступен у нескольких провайдеров, Magpie может объединить их в отдельную routing-группу. Группа задаёт порядок или стратегию выбора:

  • smart — выбирает подписку, у которой скоро обновится лимит и есть свободная квота;
  • order — берёт первую модель, пока она отвечает;
  • rotate — переключает модель на каждом ходе;
  • usage — выбирает наименее используемую.

Параметр stays определяет, сколько времени один ключ или аккаунт сохраняется в диалоге: до автоматического момента, на сессию, на ход или без сохранения состояния.

magpie group add "Opus anywhere" models=claude/claude-opus-5-5,copilot/claude-opus-5.5 routing=order stays=session
magpie group opus-anywhere
magpie claude group/opus-anywhere

Профили, импорт и резервные копии

Magpie умеет импортировать провайдеры из конфигурации Claude Code и Codex, включая custom provider из Codex с inline bearer token, фиксированными HTTP-заголовками и моделями из профилей. Перед импортом список можно проверить: записи, которые уже указывают на Magpie или содержат только имя переменной окружения, пропускаются. Последующие изменения в конфигурации агента не копируются автоматически.

Профиль сохраняет настройки всех агентов сразу:

magpie save work
magpie use work
magpie profiles

Резервная копия содержит провайдеров, ключи, настройки, профили и выбранные модели. По умолчанию она шифруется AES-256-GCM с ключом, полученным из passphrase через PBKDF2-SHA256. Вариант --no-keys исключает API-ключи, а --no-agents оставляет настройки Magpie без изменений моделей агентов.

Установка и базовое использование

Готовую программу можно скачать с сайта Magpie или установить терминальной командой:

curl -fsSL https://usemagpie.ai/install.sh | sh

Из исходников доступна установка через Go:

go install github.com/yetone/magpie@latest

Для разработчиков есть команды make build, make app, make cli и make release. Desktop-приложение использует системный webview; на Linux для сборки нужны libgtk-3-dev и libwebkit2gtk-4.1-dev, а на Windows — WebView2 runtime.

Основные команды:

magpie
magpie tui
magpie ls
magpie claude opus
magpie codex gpt-5.6-sol
magpie opencode anthropic/claude-sonnet-5
magpie backup
magpie restore magpie.magpie-backup

Агенты читают конфигурацию при запуске, поэтому уже открытая сессия сохраняет прежнюю модель до перезапуска. Сборки обновляются автоматически: приложение загружает новую версию и предлагает установить её при перезапуске, а magpie update делает то же из терминала. Все релизы публикуются в репозитории magpie-releases, исходный код распространяется по лицензии MIT.

Итог

Magpie полезен, когда в работе одновременно участвуют несколько AI-кодинг-агентов, разные подписки и локальные модели. Он не пытается заменить агента или провайдера. Вместо этого приложение даёт единое место для выбора модели, аккуратно обновляет конфиги, скрывает ключи от агентов и предоставляет локальный gateway с переводом API. Для разработчика это удобный слой управления, который можно менять независимо от самих инструментов.

Источник: https://github.com/yetone/magpie