Claude Code с несколькими аккаунтами и ключами одновременно
Один Claude Code на несколько клиентов или проектов — это не про переключение учёток, а про разные ключи с разными лимитами на один и тот же гейтвей.
4 мин · · Обновлено · Claude Code
Если Claude Code используется на нескольких проектах одновременно — фриланс на разных клиентов, личный проект рядом с рабочим, или просто желание не мешать в одну кучу расходы по разным задачам — вопрос не в том, как «переключить аккаунт», а в том, как развести доступ по разным ключам fetch_..., у каждого из которых свои лимиты и свой список разрешённых моделей (баланс и история расходов при этом общие на аккаунт).
Ключ — это не логин, а конфигурация доступа
У этого гейтвея нет понятия «сменить пользователя» в привычном смысле подписки на официальный сервис. Каждый ключ создаётся отдельно в кабинете на странице https://zukko.pro/app/api-keys, показывается один раз в момент создания, и дальше это просто строка fetch_..., которую вы вставляете туда, где Claude Code её ожидает. Ключей можно выпустить сколько нужно — по одному на клиента, на проект, на member команды.
У каждого ключа на его странице в кабинете можно отдельно настроить:
- дневной или месячный лимит расхода в долларах;
- список моделей, разрешённых именно для этого ключа.
Если ключ, выданный, скажем, для тестового прогона у младшего разработчика, ограничен дешёвыми моделями и лимитом $5 в день, а код попытается вызвать claude-opus-5-5 сверх этого списка — придёт 403 model_not_allowed_for_key. Превышение самого лимита расхода даёт 429 с кодом key_daily_limit_reached или key_monthly_limit_reached в зависимости от того, какой именно лимит исчерпан. Это разные ошибки, и в логах агента их стоит различать: первая — политика по модели, вторая — исчерпан бюджет.
Как Claude Code вообще узнаёт, какой ключ использовать
Claude Code — Anthropic-совместимый клиент, поэтому база для него — https://api.zukko.pro, без /v1: путь клиент добавляет сам. Ключ передаётся так же, как ожидает Anthropic-совместимый клиент — через переменную окружения ANTHROPIC_AUTH_TOKEN (не ANTHROPIC_API_KEY — с ней Claude Code решит, что вы работаете через официальный аккаунт Anthropic, и предложит логиниться). Заголовок на уровне HTTP — Authorization: Bearer fetch_..., но иногда встречается и x-api-key, который гейтвей тоже принимает.
Чтобы держать несколько ключей одновременно и не путать их между сессиями, есть два практичных подхода.
Через настройки проекта. Для проекта, привязанного к конкретному клиенту, можно задать переменные окружения прямо в .claude/settings.json этого проекта — тогда Claude Code, запущенный из папки проекта, автоматически подхватит нужный ключ и нужный base URL, не завися от того, что экспортировано в текущей оболочке:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.zukko.pro",
"ANTHROPIC_AUTH_TOKEN": "fetch_ключ_проекта_а"
}
}Через переменные окружения оболочки. Для быстрого переключения между проектами без выделенного .claude/settings.json на каждый — держите ключи в разных профилях/файлах окружения и явно экспортируйте нужный перед запуском:
export ANTHROPIC_BASE_URL="https://api.zukko.pro"
export ANTHROPIC_AUTH_TOKEN="fetch_ключ_проекта_b"
claudeСмешивать эти два способа в одной сессии не стоит — если .claude/settings.json проекта уже прописывает ANTHROPIC_AUTH_TOKEN, экспортированная в оболочке переменная может не иметь эффекта или наоборот перебить настройки проекта в зависимости от того, что применяется раньше. Надёжнее выбрать один способ на весь рабочий процесс и не полагаться на память о том, что было экспортировано в этом терминале час назад.
Проверка, какой ключ реально используется прямо сейчас
Перед тем как доверить Claude Code реальную задачу на чужом бюджете, стоит проверить, к какому аккаунту относится активный ключ: /v1/balance возвращает баланс аккаунта (у всех ключей одного аккаунта он одинаковый), — это исключает ситуацию, когда работа неожиданно идёт со счёта другого аккаунта:
curl https://api.zukko.pro/v1/balance \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN"Если ответ показывает баланс не того аккаунта, который ожидался, — значит, в переменной окружения или в .claude/settings.json остался старый ключ. Учтите ограничение: GET /v1/usage отдаёт историю с курсорной пагинацией по всему аккаунту — все ключи вместе, фильтра по ключу нет, а Claude Code работает в потоковом режиме, так что заголовков стоимости у его запросов нет. Ключи внутри одного аккаунта разделяют лимиты и модели, но не историю расходов; если расход клиентов нужно строго разделить, заведите под клиента отдельный аккаунт.
Разделение по лимитам как страховка, а не только учёт
Отдельно стоит настраивать лимиты на ключах не только ради удобства учёта расходов по проектам, но и как защиту от опечаток и убегающих циклов. Ключ, который Claude Code использует в автоматическом режиме (например, в CI-пайплайне или в фоновой агентной задаче), стоит ограничить и по деньгам, и по списку моделей — так случайный бесконечный цикл вызовов упрётся в 429 key_daily_limit_reached, а не выест бюджет всего аккаунта за ночь.
Если один и тот же ключ используется сразу в нескольких параллельных сессиях Claude Code — это штатно, отдельного лимита на число параллельных подключений в описанной схеме нет, ограничение работает именно по деньгам и по модели, а не по количеству одновременных клиентов.
На практике удобная схема для фриланса выглядит так: один ключ на клиента, лимит выставлен чуть выше обычного месячного расхода по этому клиенту, список моделей ограничен тем, что реально нужно для задач именно этого проекта, а .claude/settings.json лежит в корне репозитория клиента и не требует ничего держать в памяти при переключении между папками.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Агенты opencode: как настроить роли, модели и инструментыСвой агент в opencode — это роль, модель и список разрешений. Показываем конфиг и пример, где рутину делает дешёвая модель, а код правит сильная.
- Ключи OpenAI API в открытом доступе: почему ими нельзя пользоватьсяОткуда берутся «бесплатные» ключи на GitHub, почему пользоваться ими опасно и для вас, и для владельца, и как защитить собственный ключ от такой же утечки.
- Ошибки GLM API: почему не работает запрос и как это исправитьНеверный id модели, переполненный контекст 128K, ключ, баланс, лимиты: типичные причины ошибок GLM API и быстрый способ найти свою.
- Plan mode в Claude Code: сначала план, потом правки в кодеВ plan mode Claude Code читает код и предлагает план, но ничего не правит, пока вы не согласитесь. Как включить, использовать и во сколько это обходится.