Claude Code + OpenClaw через прокси-мост
8 апреля 2026. 4 апреля Anthropic отключили OAuth-токены для сторонних сервисов. Старый метод через
claude setup-tokenбольше не работает. Ниже — новый способ через прокси-мост.
OpenClaw умеет работать с Claude двумя способами: через API-ключ (оплата за токены) или через подписку Claude Code (фиксированная цена). Эта инструкция — про второй способ: вы подключаете свою подписку, и бот работает 24/7 в Telegram без дополнительных расходов за каждое сообщение.
Ниже два пути:
- С нуля — чистый VPS, ничего не установлено
- Миграция — OpenClaw уже работает через API-ключ, хотите переключить на подписку
Что понадобится
- VPS с Ubuntu/Debian (минимум 1 ГБ RAM)
- Установленный OpenClaw (
openclaw --versionотвечает) - Установленный Claude CLI (
claude --versionотвечает) - Активная подписка Claude Code (Max или Team)
- Токен Telegram-бота (от @BotFather)
- Ваш Telegram ID (узнать у @userinfobot)
Шаг 1. Создание пользователя clawuser
Claude CLI запрещает запуск с флагами автоматизации под root. Поэтому нужен отдельный пользователь с правами sudo.
С нуля
# Создаем пользователя и его домашнюю директорию
useradd -m clawuser
mkdir -p /home/clawuser/.config
chown -R clawuser:clawuser /home/clawuser/
# Разрешаем sudo без пароля
echo "clawuser ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/clawuser
Миграция
Проверяем, существует ли пользователь:
id clawuser
- Если ответ есть (
uid,gid) — пропускаем, переходим к шагу 2 - Если
no such user— выполняем команды из блока «С нуля» выше
Шаг 2. Авторизация в Claude CLI
Нужно один раз залогиниться под clawuser, чтобы Claude получил доступ к вашей подписке. Шаги одинаковые для обоих путей.
sudo -u clawuser claude login
- В терминале появится ссылка — скопируйте и откройте в браузере
- Авторизуйтесь в Anthropic и скопируйте полученный код
- Вставьте код в терминал, нажмите Enter
- Пройдите первичную настройку, пока не увидите строку ввода Claude
- Нажмите
Ctrl + C, чтобы выйти
Проверка:
sudo -u clawuser claude --version
Если отвечает версией без ошибок — логин прошёл.
Шаг 3. Настройка прокси-сервера (мост)
Прокси-мост — промежуточный сервис, который позволяет OpenClaw отправлять запросы в Claude CLI как будто это обычный API. Без него OpenClaw и CLI не могут общаться.
# Устанавливаем прокси-мост
npm install -g proxy-acpx-x
# Даем права на исполнение модулей прокси
chmod -R 777 /usr/lib/node_modules/proxy-acpx-x/
# Создаем systemd-сервис
cat <<EOF > /etc/systemd/system/claude-proxy.service
[Unit]
Description=Claude CLI Proxy
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/sudo -u clawuser /usr/bin/node /usr/lib/node_modules/proxy-acpx-x/dist/http-server.js --port 52088
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# Запускаем
systemctl daemon-reload
systemctl enable claude-proxy
systemctl start claude-proxy
Проверка:
systemctl status claude-proxy
Должен быть active (running).
Шаг 4. Настройка OpenClaw
Привязываем Telegram и указываем OpenClaw использовать локальный прокси вместо внешнего API.
С нуля
# Telegram-канал (замените TOKEN и ID на свои)
openclaw config set channels.telegram \
'{"enabled": true, "botToken": "ВАШ_ТОКЕН_БОТА", "allowedUserIds": [ВАШ_ТГ_ID]}' \
--strict-json
# Прокси-провайдер
openclaw config set models.providers.claude-local \
'{"baseUrl":"http://127.0.0.1:52088/v1","apiKey":"sk-dummy-key","api":"openai-completions","models":[{"id":"claude-code-proxy","name":"Claude Code (subscription)","api":"openai-completions","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":200000}]}' \
--strict-json
# Права на рабочую папку
chown -R clawuser:clawuser /root/.openclaw/workspace/
# Задаем прокси моделью по умолчанию
openclaw config set agents.defaults.model claude-local/claude-code-proxy
Миграция
Telegram уже настроен, добавляем только провайдера:
# Добавляем новый провайдер (старый остается как fallback)
openclaw config set models.providers.claude-local \
'{"baseUrl":"http://127.0.0.1:52088/v1","apiKey":"sk-dummy-key","api":"openai-completions","models":[{"id":"claude-code-proxy","name":"Claude Code (subscription)","api":"openai-completions","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":200000}]}' \
--strict-json
# Права на workspace
chmod 755 /root/.openclaw/
chmod -R 777 /root/.openclaw/workspace/
# Задаем прокси моделью по умолчанию
openclaw config set agents.defaults.model claude-local/claude-code-proxy
# Отключить старый API-провайдер (опционально):
openclaw config unset models.providers.ИМЯ_СТАРОГО_ПРОВАЙДЕРА
sk-dummy-key— это заглушка. Прокси авторизуется через подписку clawuser, настоящий ключ не нужен.
Шаг 5. Запуск и первый диалог
openclaw gateway stop
openclaw gateway start
Тест в Telegram — напишите боту:
Привет, кто ты?— должен ответить, что он ваш AI-ассистентВыполни команду sudo whoami и создай файл hello.txt в воркспейсе— проверка прав
Если оба теста прошли — готово. Бот работает через подписку. Можно закрыть терминал.
Если что-то пошло не так
| Симптом | Команда диагностики | Что искать |
|---|---|---|
| Бот молчит в Telegram | systemctl status openclaw-gateway | Должен быть active (running) |
| Бот не понимает запросы | systemctl status claude-proxy | Должен быть active (running) |
| Ошибки авторизации | journalctl -u claude-proxy -f | auth error или token expired — повторите шаг 2 |
| Прокси падает | journalctl -u claude-proxy -f | EADDRINUSE — порт 52088 занят |
Безопасность
clawuser имеет права sudo без пароля. Через Telegram бот может устанавливать пакеты, править конфиги и управлять сервером. Не давайте доступ к боту посторонним — контролируйте список
allowedUserIdsв конфиге.