Magpie — единый центр управления моделями для AI-кодинг-агентов
📂 Исходный код на GitHubЛокальный менеджер моделей и API-шлюз для Claude Code, Codex, Gemini CLI, OpenCode, Pi, Goose и других AI-агентов. Поддерживает переключение конфигураций, единый каталог моделей, внешние провайдеры, подписки, routing-группы, профили и резервные копии. Лицензия MIT.
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