Подключение подписки Claude Code в OpenClaw
4 апреля Anthropic заблокировала OAuth-токены для сторонних сервисов. Эта инструкция описывает новый способ подключения через Claude CLI proxy.
Два пути
- С нуля — чистый VPS, ничего не установлено
- Миграция — OpenClaw уже работает через API-ключ, переключаемся на подписку
Требования
- VPS с Ubuntu/Debian (минимум 1 GB 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/
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
- Пройдите начальную настройку (выбор темы и т.д.)
- Нажмите Ctrl + C для выхода
Проверка:
sudo -u clawuser claude --version
Успех — если версия отображается без ошибок.
Шаг 3: Настройка Proxy-сервера
Proxy-мост — промежуточный сервис, позволяющий OpenClaw отправлять запросы к Claude CLI, как будто это обычный API. Без него они не могут взаимодействовать.
npm install -g proxy-acpx-x
chmod -R 777 /usr/lib/node_modules/proxy-acpx-x/
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
С нуля
openclaw config set channels.telegram \
'{"enabled": true, "botToken": "YOUR_BOT_TOKEN", "allowedUserIds": [YOUR_TG_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
Миграция
sk-dummy-key— это заглушка. Proxy авторизуется через подписку clawuser; настоящий ключ не нужен.
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
chmod 755 /root/.openclaw/
chmod -R 777 /root/.openclaw/workspace/
openclaw config set agents.defaults.model claude-local/claude-code-proxy
openclaw config unset models.providers.PROVIDER_NAME
Шаг 5: Запуск и первый диалог
Перезапустите gateway:
openclaw gateway stop
openclaw gateway start
Проверка в Telegram:
- "Привет, кто ты?" — должен ответить как ваш ИИ-ассистент
- "Выполни sudo whoami и создай hello.txt в workspace" — проверка прав
Если оба теста прошли — готово. Бот работает через подписку. Терминал можно закрыть — бот продолжит работу на сервере.
Решение проблем
| Симптом | Команда диагностики | Что искать |
|---|---|---|
| Бот молчит в Telegram | systemctl status openclaw-gateway | active (running) |
| Бот не понимает запросы | systemctl status claude-proxy | active (running) |
| Ошибки авторизации | journalctl -u claude-proxy -f | "auth error" или "token expired" — повторите Шаг 2 |
| Proxy падает | journalctl -u claude-proxy -f | EADDRINUSE — порт 52088 занят |
Безопасность
Внимание: clawuser имеет права sudo без пароля. Через Telegram бот может устанавливать пакеты, редактировать конфиги, управлять сервером. Не давайте доступ посторонним — контролируйте
allowedUserIdsв конфиге.