InvestClub 🐹

Подключение подписки 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

Процесс:

  1. Скопируйте ссылку из терминала, откройте в браузере
  2. Авторизуйтесь на сайте Anthropic, скопируйте код
  3. Вставьте код в терминал, нажмите Enter
  4. Пройдите начальную настройку (выбор темы и т.д.)
  5. Нажмите 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:

  1. "Привет, кто ты?" — должен ответить как ваш ИИ-ассистент
  2. "Выполни sudo whoami и создай hello.txt в workspace" — проверка прав

Если оба теста прошли — готово. Бот работает через подписку. Терминал можно закрыть — бот продолжит работу на сервере.

Решение проблем

СимптомКоманда диагностикиЧто искать
Бот молчит в Telegramsystemctl status openclaw-gatewayactive (running)
Бот не понимает запросыsystemctl status claude-proxyactive (running)
Ошибки авторизацииjournalctl -u claude-proxy -f"auth error" или "token expired" — повторите Шаг 2
Proxy падаетjournalctl -u claude-proxy -fEADDRINUSE — порт 52088 занят

Безопасность

Внимание: clawuser имеет права sudo без пароля. Через Telegram бот может устанавливать пакеты, редактировать конфиги, управлять сервером. Не давайте доступ посторонним — контролируйте allowedUserIds в конфиге.