Перейти к содержимому

Гайд

Claude Code постоянно разлогинивает: чиним «session expired, run /login»

Истёк вход Claude Code? Сообщения «claude code please run /login» и «Your session has expired. Please run /login» означают, что сохранённый вход больше не обновляется. Ниже короткий порядок восстановления и причины, которые стоит проверить.

6 мин чтения · 2026-09-20

claude — session fix
❯ claude
✗ Your session has expired. Please run /login to sign in again.
# first, make sure no API key is overriding the subscription:
❯ echo $ANTHROPIC_API_KEY
sk-ant-api03-… ← unset this if you meant to use Pro/Max
❯ /logout
Logged out. Cleared ~/.claude/.credentials.json.
❯ /login
Opening browser to authenticate…
✔ Logged in as you@example.com — Claude Pro

Почему Claude Code пишет «please run /login»

Claude Code не отправляет ваш пароль с каждым запросом. Когда вы выполняете /login, завершается вход через браузер и OAuth-токен сохраняется в ~/.claude/.credentials.json (или в системном хранилище ключей). Этот access-токен короткоживущий и обновляется в фоне с помощью более долгоживущего refresh-токена.

«Your session has expired. Please run /login» означает, что токен, который держит Claude Code, мёртв, а фоновое обновление было отклонено. Это не баг в вашем коде или промпте — это состояние авторизации, которое нужно восстановить.

Шаг 1: выполните /logout, затем /login

Внутри Claude Code выполните /login и пройдите вход в браузере. Если само по себе не закрепляется — сначала /logout, чтобы сбросить устаревшие данные, затем /login заново с чистого состояния. Чистый цикл logout→login решает подавляющее большинство случаев.

Если шаг с браузером открывается, но не завершается, скопируйте ссылку авторизации в браузер, где вы уже вошли в claude.ai, подтвердите и вставьте код обратно в терминал.

Шаг 2: если сессия снова истекает

Когда /login проходит, но вас снова разлогинивает вскоре после — падает само обновление токена. Частые причины: вы сменили пароль Anthropic, вышли из claude.ai (или «выйти на всех устройствах») в другом месте, аккаунт или админ отозвали сессии, машина спала или была офлайн дольше окна обновления, либо сбиты системные часы — уплывшие часы заставляют валидный токен выглядеть истёкшим.

Сначала устраните первопричину: включите автосинхронизацию часов и не выходите из всех веб-сессий, пока Claude Code запущен. Затем один чистый /logout → /login.

Шаг 3: проверьте ловушку ANTHROPIC_API_KEY

Самая частая причина входа, который «не держится», — переменная окружения ANTHROPIC_API_KEY в профиле оболочки. Claude Code предпочтёт API-ключ входу по подписке, а этот pay-as-you-go ключ может быть истёкшим, упёршимся в лимит или с другими правами — и это всплывает как ошибки авторизации, хотя с подпиской всё в порядке.

Проверьте: `echo $ANTHROPIC_API_KEY` (macOS/Linux) или `echo %ANTHROPIC_API_KEY%` (Windows). Если он задан, а вы хотели пользоваться подпиской Pro/Max, уберите его из профиля оболочки (~/.zshrc, ~/.bashrc или переменных среды Windows), перезапустите терминал и сделайте /login.

Шаг 4: очистите credentials только в крайнем случае

Если /logout → /login всё равно зацикливается, сохранённые данные повреждены — недописанный ~/.claude/.credentials.json или запись в Keychain на macOS, которая заблокирована или недоступна для записи. Закройте Claude Code, удалите ~/.claude/.credentials.json, откройте заново и выполните /login, чтобы авторизоваться с нуля. На macOS может понадобиться удалить запись «Claude Code» в Keychain Access.

В этом файле — живые учётные данные: относитесь к нему как к файлу с паролями и никогда не вставляйте его содержимое в чат или скриншот.

Шаг 5: проверьте, жива ли сессия Claude

Прежде чем тратить время на лечение, полезно понять, жива ли вообще базовая сессия claude.ai — тот же аккаунт, в который входит Claude Code. Выгрузите cookie сессии claude.ai и прогоните её через проверку ниже: за секунды узнаете, жива ли сессия, какой тариф и сколько осталось от 5-часового и недельного лимитов — так вы отличите истёкшую сессию от упёршегося лимита.

Источники

Вход Claude Code — вопросы

Refresh-токен за /login живёт примерно 30 дней активности, но выдаваемый им access-токен короткоживущий и обновляется в фоне. На практике заново делать /login приходится раз в несколько недель — если это каждые несколько часов, что-то блокирует обновление (см. причины про ANTHROPIC_API_KEY и часы выше).

Редко — переустановка не чистит ~/.claude/.credentials.json, так что повреждённые данные остаются. Точечное решение — удалить этот файл (или запись в хранилище ключей) и сделать /login; переустановка нужна, только если сломан сам бинарник.

Нет. Ошибка сессии/входа не тратит лимит и деньги. Но если задан ANTHROPIC_API_KEY, Claude Code может биллить этот API-ключ по токенам вместо подписки — повод убрать его, если вы хотели Pro или Max.

Для интерактивной работы на тарифе Pro/Max используйте вход по подписке (/login) и уберите ANTHROPIC_API_KEY. API-ключ — только для автоматизации или CI, где нужен помегабайтный биллинг и без шага с браузером.

Машина, спавшая или бывшая офлайн дольше окна обновления, даёт токену истечь, а VPN или прокси могут завалить запрос обновления или показать новую локацию. Переподключитесь, проверьте часы и сделайте /login один раз со стабильного соединения.

Да. POST валидной cookie сессии на /api/v1/credential. Бесплатные аккаунты не минтятся. Публичный API без ключа; в документации API есть пример curl и лимиты.

Жива ли ваша сессия Claude?

Вставьте cookie сессии claude.ai и за секунды узнайте, валидна ли она, какой тариф и сколько осталось от 5-часового и недельного лимитов.

Проверить cookie