IDE и клиенты

Переключение ключей и профилей

Несколько ключей tkbk.io под prod/CI/эксперименты: переменные окружения, скрипты-обёртки для bash и PowerShell, изоляция лимитов.

Обновлено 24 июл. 2026 г.7 мин
#профили#ключи#bash#powershell#ci#окружение

Держать один ключ на всё — риск: агент в цикле может выесть дневной лимит, а CI смешает статистику с ручной работой. Заведите отдельные ключи cr_xxx под разные задачи и переключайтесь между ними скриптами-обёртками.

Что получится
Быстрое переключение prod / ci / experiment одной командой, с изолированными лимитами и раздельной статистикой по каждому ключу.

#Стратегия ключей

  • Создайте в кабинете tkbk.io отдельные ключи с говорящими метками: prod, ci, experiment.
  • Каждому задайте свой дневной лимит: боевому — высокий, экспериментальному — низкий.
  • Экспериментальный ключ не жалко ротировать, если он утёк в лог или историю команд.

#Переменные под каждый профиль

Инструменты Claude и OpenAI читают разные переменные. Обёртка должна выставлять нужную пару под выбранный профиль.

ИнструментПеременная baseПеременная ключа
Claude CodeANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN
Codex / OpenAI SDKOPENAI_BASE_URLOPENAI_API_KEY

#Обёртка для bash / zsh

Функция tkbk выбирает профиль по имени и экспортирует переменные в текущую оболочку. Ключи храните в отдельном файле вне репозитория.

~/.tkbk-keys.sh (не коммитить)
export TKBK_KEY_PROD="cr_xxx_prod"
export TKBK_KEY_CI="cr_xxx_ci"
export TKBK_KEY_EXPERIMENT="cr_xxx_exp"
~/.bashrc — функция переключения
source ~/.tkbk-keys.sh

tkbk() {
  local profile="$1"
  local key
  case "$profile" in
    prod) key="$TKBK_KEY_PROD" ;;
    ci) key="$TKBK_KEY_CI" ;;
    exp) key="$TKBK_KEY_EXPERIMENT" ;;
    *) echo "usage: tkbk {prod|ci|exp}"; return 1 ;;
  esac
  export ANTHROPIC_BASE_URL="https://api.tkbk.io/claude"
  export ANTHROPIC_AUTH_TOKEN="$key"
  export OPENAI_BASE_URL="https://api.tkbk.io/openai/v1"
  export OPENAI_API_KEY="$key"
  echo "tkbk profile: $profile"
}

#Обёртка для PowerShell

$PROFILE — функция Switch-Tkbk
$TkbkKeys = @{
  prod = "cr_xxx_prod"
  ci   = "cr_xxx_ci"
  exp  = "cr_xxx_exp"
}

function Switch-Tkbk {
  param([ValidateSet("prod","ci","exp")][string]$Profile)
  $key = $TkbkKeys[$Profile]
  $env:ANTHROPIC_BASE_URL = "https://api.tkbk.io/claude"
  $env:ANTHROPIC_AUTH_TOKEN = $key
  $env:OPENAI_BASE_URL = "https://api.tkbk.io/openai/v1"
  $env:OPENAI_API_KEY = $key
  Write-Host "tkbk profile: $Profile"
}

#Использование

  1. 1
    Выберите профиль

    В bash: tkbk exp. В PowerShell: Switch-Tkbk exp.

  2. 2
    Запустите инструмент

    claude или codex подхватят переменные текущей сессии.

  3. 3
    Проверьте активный профиль

    echo $ANTHROPIC_AUTH_TOKEN (bash) — сравните хвост ключа с ожидаемым.

Грабли и безопасность
Файл с ключами держите вне git (.gitignore) и с правами 600. Переменные живут только в текущей оболочке — в новом окне переключение нужно повторить. В CI ключ подавайте секретом раннера, а не через скрипт из репозитория.
Ротация
Если ключ засветился в логах, отзовите его в кабинете tkbk.io и создайте новый — статистика и лимиты у профилей независимы, остальные ключи не пострадают.
Не помогло?

Напишите в Telegram — поможем с настройкой и подберём тариф. Или вернитесь ко всем разделам документации.