Brotherhood — подключение Claude Code

За именами моделей Claude здесь стоит GPT. Клиент остаётся ваш обычный, переименовывать модели не нужно: пишете claude-opus-5 — работает. Ниже четыре шага: получить ключ, положить настройки, включить, проверить.

1Получить ключ

Ключ выдаёт владелец шлюза, личным сообщением. Он показывается один раз — сохраните сразу. Ключ личный: по нему видно, чей расход, и его можно отозвать, не трогая остальных.

2Положить файл настроек

Создайте ~/.config/brotherhood/env.zsh и вставьте целиком:

# ~/.config/brotherhood/env.zsh
export ANTHROPIC_BASE_URL="https://cliproxy.zozo.gg/claude"
export ANTHROPIC_AUTH_TOKEN="ключ-из-панели"

# Окно контекста: без этих двух строк клиент упрётся в отказ
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=372000
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000

# Для клиентов, говорящих в формате OpenAI
export OPENAI_BASE_URL="https://cliproxy.zozo.gg/gpt/v1"
export OPENAI_API_KEY="$ANTHROPIC_AUTH_TOKEN"

Своё здесь только одно — ключ вместо ключ-из-панели.

3Добавить три команды в оболочку

В конец ~/.zshrc:

# ~/.zshrc
bh() {            # включить шлюз в текущей оболочке
  source ~/.config/brotherhood/env.zsh
  echo "Brotherhood включён: $ANTHROPIC_BASE_URL"
}

bh-off() {        # вернуться к своей подписке Anthropic
  unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN OPENAI_BASE_URL OPENAI_API_KEY
  unset CLAUDE_CODE_AUTO_COMPACT_WINDOW CLAUDE_CODE_MAX_OUTPUT_TOKENS
  echo "Brotherhood выключен"
}

bh-check() {      # проверить, что ключ жив и шлюз отвечает
  curl -sS -o /dev/null -w 'ответ шлюза: %{http_code}\n' \
    -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
    -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
    -H 'anthropic-version: 2023-06-01' \
    -H 'content-type: application/json' \
    -d '{"model":"claude-opus-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
}

Затем source ~/.zshrc. Выключатель нужен: если у вас есть своя подписка Anthropic, bh-off вернёт к ней, не разбирая настройки.

4Проверить и запустить

bh
bh-check     # ждём: ответ шлюза: 200
claude

В claude наберите /status — там должен быть наш адрес шлюза.

ОтветЧто случилосьЧто делать
200Всё работаетЗапускать claude
401Ключ не принятПроверить, что скопирован целиком; попросить новый
403Путь закрыт либо ключу ещё не открыт доступПроверить, что адрес оканчивается на /claude. Если адрес верный — написать владельцу: ключу не открыт доступ к маршруту
429Упёрлись в потолокПодождать; если часто — сказать владельцу
400 про контекстНе заданы две строки про окноВернуться к шагу 2
Окно контекста — 372 тыс. токенов, не миллион Практический предел — 290–300 тыс.: дальше начинаются отказы. Если упёрлись, наберите /compact. Если и с ним не помещается, поставьте в файле настроек 272000 вместо 372000.

Уже запущенный claude новые переменные не подхватит — закройте его и запустите заново из окна, где выполнен bh.

5Какие модели куда идут

Модель, которую проситеКто отвечает
claude-fable-5, claude-opus-*Sol
claude-sonnet-*Terra
claude-haiku-*Luna

Суффикс [1m] остался для совместимости со старыми настройками и миллионного окна не даёт — окно всё равно 372 тыс.

Глубину рассуждений полностью отключить со стороны клиента нельзя. Уменьшить бюджет размышлений можно, убрать совсем — нет.

6Где хранить ключ

Годится: файл настроек оболочки, как выше, или ~/.claude/settings.json — он ваш личный.

Не годится: .claude/settings.json внутри репозитория — он попадёт в коммит и уедет к остальным.

7Если сломалось

Напишите владельцу и приложите две вещи: код ответа от bh-check и время, когда это было.

Тексты запросов прикладывать не нужно — их нет ни в базе, ни в журналах, и просить их у вас никто не станет.