Закончился лимит на одном аккаунте? Переключись на второй одной командой. Настраивается за 15 минут, работает навсегда.
Зачем это нужно
У Claude Max есть лимит сообщений. Работаешь активно – он заканчивается. Вместо ожидания – переключаешься на второй аккаунт одной командой и продолжаешь.
Это как запасной ключ от квартиры. Потерял один – достал второй и зашёл.
Без настройкиЛимит кончился → ждёшь сброса или вручную перелогиниваешься 5 минут
С настройкойПишешь claude-second → через 1 секунду работаешь дальше
Что нужно
Mac с установленным Claude Code (команда claude работает в терминале)
Два аккаунта Claude Max с разными email
Терминал (Terminal или iTerm2 – любой)
👉В инструкции я называю аккаунты «Первый» и «Второй». Подставь свои имена. В конце – мой реальный пример.
Шаг 1 из 3: Сохраняем первый аккаунт
Ты сейчас залогинен в Claude Code под первым аккаунтом. Мы сохраним его данные, чтобы потом переключаться обратно.
1.1
Проверь, кто залогинен
Открой терминал и вставь:
Terminal
command claude auth status
📋Показывает, под каким email ты сейчас залогинен. Запомни этот email.
1.2
Создай папку и сохрани данные
Скопируй этот блок целиком и вставь в терминал:
Terminal – скопируй всё сразу
# Создаём защищённую папку для профилей
mkdir -p ~/.claude-profiles
chmod 700 ~/.claude-profiles
# Сохраняем токен первого аккаунта
FIRST_TOKEN=$(security find-generic-password -s "Claude Code-credentials" -w 2>/dev/null)
security add-generic-password -s "Claude-First" -a "first@example.com" -w "$FIRST_TOKEN" -U
# Сохраняем профиль первого аккаунта
python3 -c "
import json
d = json.load(open('$HOME/.claude.json'))
with open('$HOME/.claude-profiles/first.oauthAccount.json','w') as f:
json.dump(d['oauthAccount'], f, indent=2)
print('Первый аккаунт сохранён:', d['oauthAccount']['emailAddress'])
"
📋Замениfirst@example.com на email первого аккаунта. Это просто метка, чтобы потом не путаться.
Что ты увидишь
Сообщение: Первый аккаунт сохранён: твой@email.com
Шаг 2 из 3: Добавляем второй аккаунт
Теперь выходим из первого аккаунта, заходим под вторым и сохраняем его точно так же.
2.1
Выйди из первого аккаунта
Terminal
command claude auth logout
📋Именно auth logout, не просто logout. Без «auth» откроется чат вместо выхода.
2.2
Залогинься под вторым аккаунтом
Terminal
command claude auth login
📋Откроется браузер. Войди под вторым email. Подтверди. В терминале появится: Login successful.
2.3
Сохрани данные второго аккаунта
Точно так же – копируешь блок и вставляешь:
Terminal – скопируй всё сразу
# Сохраняем токен второго аккаунта
SECOND_TOKEN=$(security find-generic-password -s "Claude Code-credentials" -w 2>/dev/null)
security add-generic-password -s "Claude-Second" -a "second@example.com" -w "$SECOND_TOKEN" -U
# Сохраняем профиль второго аккаунта
python3 -c "
import json
d = json.load(open('$HOME/.claude.json'))
with open('$HOME/.claude-profiles/second.oauthAccount.json','w') as f:
json.dump(d['oauthAccount'], f, indent=2)
print('Второй аккаунт сохранён:', d['oauthAccount']['emailAddress'])
"
📋Замениsecond@example.com на email второго аккаунта.
Что ты увидишь
Сообщение: Второй аккаунт сохранён: второй@email.com
Шаг 3 из 3: Настраиваем переключение
Последний шаг. Добавляем в терминал три команды: переключить на первый, переключить на второй, узнать кто сейчас.
3.1
Добавь команды в настройки терминала
Скопируй весь блок ниже и вставь в терминал. Он сам допишет нужный код в файл настроек:
Terminal – скопируй весь блок
cat << 'ENDOFBLOCK' >> ~/.zshrc
# --- Переключение между аккаунтами Claude Code ---
_claude_switch() {
local name="$1" keychain_name="$2" profile_file="$3" email="$4"
local token profile
token=$(security find-generic-password -s "$keychain_name" -w 2>/dev/null)
if [ -z "$token" ]; then
echo "Токен $name не найден. Выполни:"
echo " command claude auth logout"
echo " command claude auth login"
echo "Потом пересохрани (шаги 1-2 из инструкции)"
return 1
fi
profile="$HOME/.claude-profiles/$profile_file"
if [ ! -f "$profile" ]; then
echo "Профиль $name не найден ($profile)"
return 1
fi
security delete-generic-password -s "Claude Code-credentials" >/dev/null 2>&1
security add-generic-password -s "Claude Code-credentials" -a "$USER" -w "$token" >/dev/null 2>&1
python3 -c "
import json
with open('$HOME/.claude.json') as f:
data = json.load(f)
with open('$profile') as f:
data['oauthAccount'] = json.load(f)
with open('$HOME/.claude.json', 'w') as f:
json.dump(data, f, indent=2)
" 2>/dev/null
echo "Готово! Активный аккаунт: $name ($email)"
echo "Перезапусти Claude Code (Ctrl+C, потом claude)"
}
claude-first() {
_claude_switch "Первый" "Claude-First" "first.oauthAccount.json" "first@example.com"
}
claude-second() {
_claude_switch "Второй" "Claude-Second" "second.oauthAccount.json" "second@example.com"
}
claude-whoami() {
python3 -c "
import json
d = json.load(open('$HOME/.claude.json'))
print('Аккаунт:', d.get('oauthAccount',{}).get('emailAddress','неизвестен'))
" 2>/dev/null
}
ENDOFBLOCK
source ~/.zshrc
echo "Команды переключения установлены!"
📋Этот блок автоматически дописывает нужный код в файл настроек терминала и сразу его активирует. Не нужно открывать файлы вручную.
✏️Персонализация. В блоке выше замени first@example.com и second@example.com на свои email. Вместо claude-first и claude-second можешь написать свои имена, например claude-ivan и claude-work.
Если email меняется при каждом переключении – всё настроено. Больше ничего делать не нужно.
Как пользоваться
Настройка закончена. Три команды на каждый день:
Команда
Что делает
claude-first
Переключает на первый аккаунт
claude-second
Переключает на второй аккаунт
claude-whoami
Показывает, кто сейчас активен
⚡После переключения обязательно перезапусти Claude Code: нажми Ctrl+C в терминале, потом набери claude заново. Уже запущенная сессия использует старый аккаунт.
💻VS Code тоже подхватит. Переключение работает для всего – и терминальный Claude Code, и расширение в VS Code. После переключения нажми Cmd+Shift+P → «Reload Window».
Частые вопросы
Пишет «Токен не найден» – что делать?
▼
Токен «протух» (они живут примерно 10 часов). Нужно обновить:
Выйди: command claude auth logout
Войди нужным аккаунтом: command claude auth login
Пересохрани токен (повтори шаг 1.2 или 2.3 из этой инструкции)
Пишет «command not found: claude-first»
▼
Терминал не подгрузил настройки. Набери source ~/.zshrc и попробуй снова. Если не помогло – открой новое окно терминала.
Переключил, но Claude работает под старым аккаунтом
▼
Нужно перезапустить Claude Code. Закрой текущий чат (Ctrl+C или /exit) и набери claude заново. Уже работающая сессия не перечитывает аккаунт автоматически.
Можно ли добавить третий аккаунт?
▼
Да. Повтори шаги 2.1–2.3 для третьего аккаунта, только назови файлы и ключи по-другому (например, Claude-Third, third.oauthAccount.json). Добавь ещё одну функцию claude-third() по аналогии с первыми двумя.
Реальный пример
Вот как это настроено у меня – два аккаунта Claude Max на одном MacBook: