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

Claude Code и Anthropic SDK

Подключите Claude Code (и любой Anthropic SDK) напрямую к Mixen — оплата с баланса в рублях, каталог тех же моделей.

Окно терминала
# npm (Node.js 18+)
npm install -g @anthropic-ai/claude-code
Окно терминала
# официальный установщик (macOS / Linux / WSL)
curl -fsSL https://claude.ai/install.sh | bash

Поддерживаются macOS, Linux, WSL и нативный Windows. Детали — в официальной документации.

Создайте wrapper-скрипт ~/.local/bin/claude_mixen.sh:

#!/bin/bash
(
export ANTHROPIC_BASE_URL=https://api.mixen.ai
export ANTHROPIC_AUTH_TOKEN="ваш-api-ключ"
export ANTHROPIC_API_KEY=""
export ANTHROPIC_DEFAULT_OPUS_MODEL=anthropic/claude-opus-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=anthropic/claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=anthropic/claude-haiku-4.5
export CLAUDE_CODE_SUBAGENT_MODEL=z-ai/glm-5.3-flash
claude --effort high
)
Окно терминала
# сделать исполняемым
chmod +x ~/.local/bin/claude_mixen.sh
# симлинк без расширения — команда будет короче: claude_mixen
ln -s ~/.local/bin/claude_mixen.sh ~/.local/bin/claude_mixen

Добавьте ~/.local/bin в PATH — чтобы команда вызывалась из любого каталога.

Окно терминала
# bash (Linux)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Окно терминала
# zsh (macOS по умолчанию)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Запуск:

Окно терминала
claude_mixen

Пояснения:

  • ANTHROPIC_API_KEY="" — явная пустая строка обязательна: если на машине задан непустой ANTHROPIC_API_KEY, Claude Code может пытаться обращаться к серверам Anthropic напрямую, минуя Mixen.
  • CLAUDE_CODE_SUBAGENT_MODEL — модель для субагентов сессии (фоновые задачи, генерация заголовков). Любая модель из каталога.

Базовый адрес — без суффикса /v1: Claude Code и Anthropic SDK сами подставляют его в путь запроса (/v1/messages), в отличие от OpenAI SDK.

Суффикс [1m] (1M-контекст) в настройках модели поддерживается — Mixen срезает его автоматически.

Вместо wrapper-скрипта переменные можно задать в ~/.claude/settings.json — они применятся к каждой сессии Claude Code:

{
"env": {
"ANTHROPIC_BASE_URL": "https://api.mixen.ai",
"ANTHROPIC_AUTH_TOKEN": "ваш-api-ключ",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-opus-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-haiku-4.5",
"CLAUDE_CODE_SUBAGENT_MODEL": "z-ai/glm-5.3-flash"
}
}

Для одного проекта — .claude/settings.local.json (не коммитьте ключ в git).

Проверка: команда /status внутри Claude Code должна показать Anthropic base URL: https://api.mixen.ai.

from anthropic import AsyncAnthropic
client = AsyncAnthropic(
base_url="https://api.mixen.ai",
api_key="ваш-api-ключ", # заголовок x-api-key поддерживается
)
msg = await client.messages.create(
model="anthropic/claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет!"}],
)
print(msg.content[0].text)
Возможность Статус
Текст, system, stop_sequences
Images (vision-модели)
Tools / tool-use (агентные клиенты)
Streaming SSE (stream: true)
POST /v1/messages/count_tokens ✅ (оценка без похода к модели)
Prompt caching (cache_control)
Extended thinking (thinking)

Блоки размышлений (thinking) видны в ответах; reasoning-модели (Claude, GLM 5.3) шлют их и без параметра thinking.

Нюансы: оценка count_tokens учитывает плотность кириллицы (точнее, чем «4 символа на токен»), иероглифика не поддержана; останов по stop_sequences работает, но какое именно условие сработало, ответ не сообщает — stop_sequence всегда null.

Prompt caching включается клиентом автоматически (Claude Code расставляет cache_control сам). Кэш живёт 5 минут со скользящим продлением: каждое попадание сбрасывает таймер — в плотной агентной сессии кэш живёт от начала до конца, а повторный контекст стоит ~10% цены. После паузы дольше 5 минут первый ход платит полную цену input плюс надбавку за запись кэша (×1.25) — это нормально, дальше кэш снова работает.

Сколько ушло из кэша, видно в usage ответа:

{"input_tokens": 16, "output_tokens": 120,
"cache_read_input_tokens": 3644, "cache_creation_input_tokens": 0}

input_tokens здесь — только НЕкэшированный остаток, как и требует протокол Anthropic: полный объём входа считается как input_tokens + cache_read_input_tokens. В примере выше из 3660 токенов контекста 3644 пришли из кэша.

cache_creation_input_tokens всегда 0: апстрим сообщает только объём чтения, объём записи не отдаёт. На цену это не влияет — надбавка за запись уже учтена в стоимости запроса, — но в клиентской статистике «записано в кэш» будет пусто.

В OpenAI-совместимом /v1/chat/completions та же величина лежит в usage.prompt_tokens_details.cached_tokens, а prompt_tokens там, наоборот, ВКЛЮЧАЕТ кэш — это разница протоколов, а не наша.

Подробно о том, как живёт кэш и как выжать из него максимум, — Кэширование контекста.

По умолчанию Claude Code не включает thinking. Добавьте в wrapper переменную окружения:

Окно терминала
export MAX_THINKING_TOKENS=10000 # бюджет размышлений в токенах (минимум 1024)

Модель будет размышлять перед ответом (серые блоки «Thinking…» раскрываются по клику). Размышления тарифицируются как output-токены: 10 000 — потолок, на простых вопросах расходуется заметно меньше.

Бюджет — потолок только размышлений, а не всего ответа: Mixen дополнительно бережёт место под сам текст, поэтому даже при небольшом max_tokens вы не получите «размышления без ответа». Если итоговый потолок не оставляет бюджету минимума (1024), размышления просто не включаются.

Когда включать: архитектура, рефакторинг, незнакомый код, сложные баги. Для простых вопросов — закомментируйте: ответы быстрее и дешевле. Переменную можно задавать и на один запуск: MAX_THINKING_TOKENS=10000 claude_mixen.

Модели — из каталога; авторизация — те же ключи mxn-…, лимит 60 RPM на ключ.