Молниеносный нативный CLI-менеджер профилей Git, SSH-ключей и токенов GitHub MCP для AI-ассистентов.
Возможности • Зачем нужен? • Установка • Быстрый старт • MCP Server • Справочник • Конфигурация
Если вы используете несколько аккаунтов на GitHub, GitLab или Bitbucket (например, личный, рабочий и пет-проекты) — вы наверняка сталкивались с этими проблемами:
| Типичная проблема разработчика | Как её решает GitChanger ⚡ |
|---|---|
| ❌ Случайно запушил коммит с рабочего email в личный репозиторий (или наоборот). | ✅ Мгновенное переключение user.name, user.email и user.signingkey локально или глобально. |
❌ Ошибка Permission denied (publickey) при git push из-за неправильного SSH-ключа. |
✅ Авто-конфигурация ~/.ssh/config и автоматическая загрузка нужного ключа в ssh-agent. |
❌ Приходится помнить хост-алиасы и вручную переписывать git@github.com-work:user/repo.git. |
✅ Автоматическая перезапись Remote URL (origin) при смене профиля. |
| ❌ AI-ассистенты (Antigravity, Cursor, Claude Desktop) путают аккаунты из-за одного общего MCP токена. | ✅ Первый в мире авто-переключатель GitHub Personal Access Token в конфигурациях MCP-клиентов! |
- 🚀 100% Native Rust & Zero Latency: Молниеносное выполнение (до 5 мс), минимальное потребление ресурсов и никаких сторонних рантаймов (Node.js/Python).
- 🔄 Умная перезапись Git Remote URL:
https://github.com/org/repo.git➔git@github.com-work:org/repo.git- Автоматически синхронизирует хост-алиасы в зависимости от выбранного транспорта.
- 🔑 Авто-менеджмент
~/.ssh/config:- Создаёт и изолирует блоки
Host(HostName,User,IdentityFile,IdentitiesOnly yes). - Создаёт бэкап
~/.ssh/config.bakперед каждым изменением. - Устанавливает строгие права доступа
0600.
- Создаёт и изолирует блоки
- 🛡️ Интеграция с
ssh-agent:- Авто-старт агента и безопасная подгрузка ключей через
ssh-add. - Встроенный тест сетевого SSH-соединения (
gitchanger test).
- Авто-старт агента и безопасная подгрузка ключей через
- 🤖 Синхронизация токенов GitHub MCP:
- Привязывайте GitHub PAT к каждому профилю.
- Авто-обновление токена в конфигурациях Google Antigravity / Gemini CLI, Cursor IDE, Claude Desktop и VS Code при смене активного профиля!
- 🔌 Официальный MCP-сервер для AI:
- Управляйте GitChanger прямо из диалога с AI через GitChangerMCP.
- 🎨 Интерактивный TUI и CLI режимы:
- Пошаговый мастер создания профилей с автопоиском ключей в
~/.ssh/. - Интерактивное меню выбора профиля стрелочками.
- Полноценный флаг-интерфейс для скриптов и dotfiles.
- Пошаговый мастер создания профилей с автопоиском ключей в
- 🔌 Поддержка Git Subcommand:
- Запускайте привычно:
git changer switch,git changer status.
- Запускайте привычно:
Информативная и компактная таблица с индикацией активного профиля, транспорта, маскированных MCP-токенов и профиля по умолчанию:
Отслеживание синхронизации токенов GitHub MCP между всеми установленными AI-клиентами:
Автоматический поиск доступных SSH-ключей, валидация полей и мгновенное создание алиаса:
Сканирование имеющихся настроек SSH и верификация соединения с GitHub:
Для полноценной интеграции с современными AI-ассистентами разработан официальный сервер: 👉 GitChangerMCP — Model Context Protocol сервер для GitChanger.
Он позволяет Google Antigravity / Gemini CLI, Claude Desktop, Cursor IDE, VS Code (Roo Code / Cline):
- Читать текущую Git-идентичность и активный репозиторий (
gitchanger_status). - Автоматически переключать Git-аккаунты прямо во время выполнения задач (
gitchanger_switch). - Тестировать SSH-подключения и управлять GitHub PAT токенами для
@modelcontextprotocol/server-github.
// Пример подключения в mcp_config.json / claude_desktop_config.json:
{
"mcpServers": {
"gitchanger": {
"command": "node",
"args": ["/path/to/GitChangerMCP/dist/index.js"]
}
}
}Подробнее о настройке читайте в репозитории GitChangerMCP.
flowchart TD
User["👨💻 Разработчик или AI-ассистент\n(gitchanger switch / GitChangerMCP)"] --> Core["⚡ GitChanger Core (Rust)"]
subgraph Git["Git Context"]
Core -->|1. Локально / Глобально| GitConfig["~/.gitconfig / .git/config\n(user.name, user.email, signingkey)"]
Core -->|2. Умная перезапись| GitRemote["Git Remote Origin URL\n(git@github.com-work:org/repo.git)"]
end
subgraph SSH["Безопасность SSH"]
Core -->|3. Атомарное обновление| SSHConfig["~/.ssh/config (0600)\n+ авто-бэкап (.bak)"]
Core -->|4. ssh-add| SSHAgent["ssh-agent (Ключ в памяти)"]
end
subgraph AI["AI Ассистенты & MCP"]
Core -->|5. Авто-синхронизация токена| MCP["GitHub MCP Server Configs\n• Antigravity / Gemini CLI\n• Cursor IDE\n• Claude Desktop\n• VS Code"]
end
git clone https://github.com/culcat/GitChangerCLI.git
cd GitChangerCLI
cargo install --path .Убедитесь, что директория ~/.cargo/bin находится в вашей переменной $PATH:
export PATH="$HOME/.cargo/bin:$PATH"Создайте символическую ссылку на исполняемый файл:
ln -s $(which gitchanger) ~/.cargo/bin/git-changerТеперь утилита доступна как родная подкоманда Git:
git changer status
git changer switchЕсли вы находитесь внутри репозитория, простой запуск gitchanger сразу откроет интерактивное меню переключения профилей:
gitchanger# Интерактивный диалог с автопоиском ключей в ~/.ssh
gitchanger add
# Или неинтерактивно одной командой:
gitchanger add --id work \
--name "Alex Corp" \
--email "alex.work@company.com" \
--transport ssh \
--key ~/.ssh/id_ed25519_work \
--alias github.com-work \
--token ghp_YourGitHubPAT \
--non-interactive# Переключить для текущего репозитория (локально)
gitchanger switch work
# Переключить глобально в ~/.gitconfig
gitchanger switch work --global
# Переключить и сразу проверить SSH-соединение
gitchanger switch work -tgitchanger status
# Подробная системная диагностика (ssh-agent, пути к файлам):
gitchanger status -vGitChanger — первый инструмент, нативно поддерживающий управление токенами для GitHub MCP Server (@modelcontextprotocol/server-github).
Когда вы переключаетесь с личного проекта на рабочий, AI-ассистенты должны использовать соответствующий Personal Access Token, чтобы иметь доступ к приватным репозиториям и issue нужной организации.
- Google Antigravity / Gemini CLI (
~/.gemini/config/mcp_config.json) - Cursor IDE (
~/.cursor/mcp.json) - Claude Desktop (
~/.config/Claude/claude_desktop_config.json) - VS Code (
~/.vscode/mcp.json/ workspace settings)
# Посмотреть статус токенов во всех клиентах
gitchanger mcp status
# Привязать токен к профилю (с маскированием ввода)
gitchanger mcp set work
# Проверить токен через официальный GitHub API (логин, скоупы, лимиты)
gitchanger mcp test work
# Принудительно синхронизировать токен профиля в MCP-файлы
gitchanger mcp sync work
# Безопасный просмотр (маскированный / полный для экспорта в переменные)
gitchanger mcp get work
gitchanger mcp get work --unmaskTip
При выполнении gitchanger switch <id> токен синхронизируется в MCP автоматически! Если вы не хотите обновлять MCP при переключении, используйте флаг --no-mcp.
🔍 Нажмите, чтобы развернуть таблицу всех команд и флагов
| Команда | Алиасы | Описание | Примеры использования |
|---|---|---|---|
status |
current, whoami |
Отображает активный профиль репозитория, origin URL и токен | gitchanger statusgitchanger status -v |
list |
ls |
Таблица всех сконфигурированных профилей | gitchanger listgitchanger list -v |
switch [ID] |
use |
Переключение активного профиля | gitchanger switchgitchanger switch work -g |
add |
new, create |
Добавление нового профиля (TUI / флаги) | gitchanger add |
edit [ID] |
- | Редактирование существующего профиля | gitchanger edit personal |
delete <ID> |
rm, remove |
Удаление профиля (и очистка SSH Host блока) | gitchanger delete old_work |
default <ID> |
- | Назначение профиля по умолчанию | gitchanger default personal |
test [ID] |
- | Тестирование SSH-подключения к хосту | gitchanger test work |
scan |
- | Сканирование системы на ключи, хосты и MCP | gitchanger scan |
mcp |
token, tokens |
Управление токенами GitHub MCP | gitchanger mcp status |
export [FILE] |
- | Экспорт конфигурации в JSON или stdout | gitchanger export backup.json |
import <FILE> |
- | Импорт профилей из бэкапа | gitchanger import backup.json --force |
-g, --global— применить изменения глобально в~/.gitconfig(по умолчанию: локально в.git/config).--no-remote-update— не изменять Remote URL репозитория.--no-ssh-agent— не добавлять ключ в ssh-agent.--no-mcp— не обновлять токен в конфигурациях MCP.-t, --test— запустить сетевой тест SSH после переключения.
Файл конфигурации хранится в стандартном каталоге XDG:
~/.config/gitchanger/config.toml
# Пример конфигурации ~/.config/gitchanger/config.toml
[[profiles]]
id = "personal"
name = "Alex Developer"
email = "alex@example.com"
transport = "ssh"
ssh_host_alias = "github.com-personal"
ssh_host_name = "github.com"
ssh_key_path = "~/.ssh/id_ed25519_personal"
github_token = "ghp_PersonalPAT..."
use_ssh_agent = true
is_default = true
[[profiles]]
id = "work"
name = "Alex Corp"
email = "alex.work@company.com"
transport = "ssh"
ssh_host_alias = "github.com-work"
ssh_host_name = "github.com"
ssh_key_path = "~/.ssh/id_ed25519_work"
github_token = "ghp_WorkPAT..."
use_ssh_agent = true
is_default = falseImportant
GitChanger следует строгим стандартам безопасности Unix:
- Никаких секретов в открытом виде: Токены в терминале всегда маскируются (
ghp_QFoL...BkGQ) во всех командах (status,list,scan,mcp). Открытый вывод возможен исключительно при явном указании флага--unmask. - Приватные ключи не читаются: Утилита оперирует исключительно путями к ключам и никогда не читает их секретное содержимое.
- Атомарная запись: Все операции записи файлов конфигурации производятся через атомарную замену временных файлов, исключая повреждение настроек при внезапном сбое.
- Автоматические резервные копии: При любых изменениях файлов
~/.ssh/configи конфигов MCP создаются.bakбэкапы. - Строгие права доступа: Файл
~/.ssh/configавтоматически защищается правами0600(чтение/запись только владельцем).
Пуллреквесты и предложения приветствуются!
- Форкните репозиторий: github.com/culcat/GitChangerCLI
- Создайте ветку для фичи:
git checkout -b feature/amazing-feature - Зафиксируйте изменения:
git commit -m 'feat: Add amazing feature' - Отправьте в ветку:
git push origin feature/amazing-feature - Откройте Pull Request.
Проект распространяется под лицензией MIT.



