Claude Code
Терминальный агент Anthropic через AITUNNEL: тот же Claude Code, ключ в рублях, VPN не нужен.
Claude Code говорит на протоколе Anthropic Messages — отдельный прокси не ставится. Агент заточен под модели Anthropic (инструменты, thinking, форматирование). Другие модели из каталога можно подставить, но агентные задачи на них часто ломаются.
Зачем через AITUNNEL
- Из России без VPN. Запросы идут на
api.aitunnel.ru. - Оплата в рублях, бюджет на ключе, расход в панели.
- Запасные модели и провайдер. Если Anthropic не ответил — fallback и выбор провайдера.
- Нативный
POST /v1/messages: thinking-блоки и tool use проходят как есть.
Быстрый старт
Установка
curl -fsSL https://claude.ai/install.sh | bashДля npm нужен Node.js 18+.
Подключение к AITUNNEL
Не логиньтесь в аккаунт Anthropic. Нужны три переменные:
ANTHROPIC_BASE_URL=https://api.aitunnel.ru— без/v1: Claude Code сам дописывает/v1/messagesANTHROPIC_AUTH_TOKEN— ключ AITUNNELANTHROPIC_API_KEY=""— явно пустая строка, не «переменная не задана»
Сбросить кэш входа Anthropic
Если раньше входили аккаунтом Anthropic —
/logoutи перезапускclaude. Иначе кэш конфликтует с токеном шлюза.Запуск и проверка
cdв проект,claude, внутри/status. В токене должно бытьANTHROPIC_AUTH_TOKEN, base URL —https://api.aitunnel.ru.
Профиль оболочки
nano ~/.zshrc # или ~/.bashrc
export AITUNNEL_API_KEY="sk-aitunnel-xxx"
export ANTHROPIC_BASE_URL="https://api.aitunnel.ru"
export ANTHROPIC_AUTH_TOKEN="$AITUNNEL_API_KEY"
export ANTHROPIC_API_KEY=""
# по желанию: список моделей шлюза в /model
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
source ~/.zshrcДобавьте строки в ~/.zshrc, ~/.bashrc или ~/.config/fish/config.fish, затем source или новый терминал.
Не кладите ключ в dotfiles-репозиторий. На macOS можно читать из связки ключей: export AITUNNEL_API_KEY="$(security find-generic-password -s aitunnel -w)". Утёкший ключ отзовите в панели ключей.
Файл проекта
.claude/settings.local.json в корне проекта:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aitunnel.ru",
"ANTHROPIC_AUTH_TOKEN": "sk-aitunnel-xxx",
"ANTHROPIC_API_KEY": "",
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
}
}Кэш входа Anthropic
> /logoutЕсли в Anthropic не логинились — шаг можно пропустить. На macOS сессия лежит в Keychain как Claude Code-credentials. Если после /logout конфликт остался:
security find-generic-password -s "Claude Code-credentials"
security delete-generic-password -s "Claude Code-credentials"Запуск
cd /path/to/your/project
claudeПроверка:
> /status
Auth token: ANTHROPIC_AUTH_TOKEN
Anthropic base URL: https://api.aitunnel.ruЕсли в токене ANTHROPIC_API_KEY или метод входа — аккаунт Claude, переменные не дошли: source профиля и новый claude. Запросы видны в панели.
Как это работает
- Прямое подключение.
ANTHROPIC_BASE_URLуказывает на AITUNNEL, Claude Code говорит своим протоколом. Локальный прокси не нужен. - Messages API.
POST https://api.aitunnel.ru/v1/messagesведёт себя как Anthropic: маппинг имён, thinking, tool use. - Списание. Токены и reasoning — в рублях,
usage.cost_rubв ответе. История ключа — статистика.
Модели
Claude Code держит слоты Fable / Opus / Sonnet / Haiku. AITUNNEL подставляет каталожные Claude, если слот не переопределён. Можно указать любую модель из каталога:
export ANTHROPIC_DEFAULT_FABLE_MODEL="claude-fable-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4.8"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4.5"
export CLAUDE_CODE_SUBAGENT_MODEL="claude-opus-4.8"| Переменная | Зачем |
|---|---|
ANTHROPIC_DEFAULT_FABLE_MODEL | Самые тяжёлые и длинные задачи. В /model слот появляется, только если переменная задана |
ANTHROPIC_DEFAULT_OPUS_MODEL | Сложные рассуждения |
ANTHROPIC_DEFAULT_SONNET_MODEL | Обычный код |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Короткие шаги |
CLAUDE_CODE_SUBAGENT_MODEL | Суб-агенты, которых порождает сессия |
Имена — как в каталоге: claude-opus-4.8, не anthropic/claude-opus-4.8. Слаг со слешем уходит в OpenRouter.
Fast mode
У Opus есть ускоренный тариф: в каталоге это claude-opus-4.8-fast, claude-opus-5-fast и соседние -fast. Claude Code шлёт speed: "fast" командой /fast.
export CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4.8"Нужен Claude Code v2.1.96+. CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1 снимает проверку «организации Anthropic».
Другой путь — сразу ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4.8-fast". У Fable отдельного fast-слота нет: /fast на Fable переключает сессию на Opus. Подробнее — уровни обслуживания.
Agent SDK
Anthropic Agent SDK крутит тот же runtime Claude Code. Те же ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, пустой ANTHROPIC_API_KEY.
GitHub Action
Официальный Claude Code GitHub Action. Два изменения:
- Ключ AITUNNEL в секрете
AITUNNEL_API_KEY, его же вanthropic_api_key - В
envшага —ANTHROPIC_BASE_URLиANTHROPIC_AUTH_TOKEN
- name: Run Claude Code
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.AITUNNEL_API_KEY }}
env:
ANTHROPIC_BASE_URL: https://api.aitunnel.ru
ANTHROPIC_AUTH_TOKEN: ${{ secrets.AITUNNEL_API_KEY }}Экшен требует input anthropic_api_key, сам ANTHROPIC_AUTH_TOKEN не читает. Input запускает процесс, заголовок Authorization берётся из env. Здесь ANTHROPIC_API_KEY не пустой — экшен заполняет его из input; это нормально: прогон неинтерактивный, ANTHROPIC_BASE_URL всё равно гонит запросы в AITUNNEL.
Statusline с расходом
Внизу сессии можно показать модель, расход в рублях, баланс и заполнение контекста:
AITUNNEL · Sonnet · 12,40 ₽ · баланс 4987 ₽ · контекст 42%Скачайте оба файла в одну папку, chmod +x statusline.sh, пропишите путь в ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "/path/to/statusline.sh"
}
}Откуда цифры
Расход — это падение баланса за сессию. Скрипт опрашивает GET /v1/aitunnel/balance не чаще раза в 10 секунд и складывает разницы. Сумма точная, в рублях, но помните про две вещи:
- всё, что тратит этот же ключ, попадёт в счётчик — другая сессия, скрипт, бот;
- пополнения игнорируются: платёж посреди сессии не отмотает сумму назад.
Модель и процент контекста скрипт берёт из JSON, который Claude Code передаёт statusline на stdin. Ключ — из ANTHROPIC_AUTH_TOKEN (или ANTHROPIC_API_KEY).
Мелочи
settings.jsonдержит одинstatusLine. Если уже стоит ccusage или другой — этот его заменит.- Нужны Node.js и сеть на первый запуск:
statusline.shвызываетnpx tsx statusline.ts(первыйnpxможет подтормозить). - Состояние сессии:
/tmp/claude-aitunnel-cost-<session-id>.json. Файл маленький, после ребута обычно пропадает./clearначинает новую сессию — счётчик стартует с нуля.
Устранение неполадок
- «Model not found» на старте. Конфликт кэша Anthropic и токена шлюза.
/logout, выйти, сноваclaude. Если в профиле всё ещё живойANTHROPIC_API_KEYот консоли Anthropic —/logoutне поможет: поставьтеANTHROPIC_API_KEY="",sourceпрофиля. - Ошибки авторизации. Ключ в
ANTHROPIC_AUTH_TOKEN,ANTHROPIC_API_KEY="", base URL без/v1. После правки профиля — новый шелл. - Tool use не работает. Модель без function calling. Вернитесь на Claude из каталога.
- Контекст. Режьте задачу или новая сессия. Для больших репозиториев берите модели с окном ≥ 128k.
- Приватность. AITUNNEL не логирует исходный код промптов.