Pattern Automation
← Blog

От OpenClaw к Claude Code — 24/7 AI-агент в Telegram на VPS

Установка персонального AI-агента в Telegram без подтверждений на каждое действие. Прямая замена OpenClaw на официальный плагин Anthropic — 12 шагов на VPS.

Обсудить статью в ИИ

Отправьте готовый промпт в ChatGPT, Claude, Gemini или Perplexity — получите краткий пересказ, задайте уточняющие вопросы или сравните идеи из гайда.

Установка персонального AI-агента в Telegram, отвечающего круглосуточно, без подтверждений на каждое действие. Прямая замена OpenClaw на официальное решение Anthropic.

Аудитория: уже пробовали OpenClaw · Уровень: копипаста в SSH

Связанные материалы: Как не сжечь все токены в Claude Code, Claude для новичков, Complete Beginner’s Guide to OpenClaw.

01 — Для кого этот гайд

  • У вас был OpenClaw (или Clawdbot/Moltbot) — нравилось управлять AI из Telegram, но раздражали сложность, постоянные обновления и инциденты безопасности.
  • Вы не программист, но копипастить команды в SSH умеете.
  • Хотите простой, надёжный и официальный AI-агент в Telegram, доступный 24/7 на вашем VPS.

Гайд пройден на чистой Ubuntu 24.04, занимает ~30 минут руками или ~5 минут, если делегировать Claude Code.

02 — Что получите

  • Telegram-бот 24/7 — отвечает даже когда ноут закрыт, сервер ребутается, дома вырубили интернет.
  • Claude Opus / Sonnet — одна из самых сильных моделей в мире со всеми возможностями Claude Code.
  • Без подтверждений — бот выполняет команды сразу, без ручного «Allow Yes/No» на каждое действие.
  • На вашем VPS — никаких сторонних серверов, полный контроль данных.
  • Файлы и команды — читает и правит файлы, выполняет shell, ходит в MCP-серверы, использует skills.
  • Официально и проверенно — через плагин claude-plugins-official от Anthropic, нет рисков от сторонних skills.

03 — Чем это лучше OpenClaw

OpenClaw — отличный проект с самой широкой поддержкой каналов (WhatsApp, Slack, Discord, Signal и ещё 20+). Но если вам нужен именно Telegram-бот с минимумом surface area и официальной поддержкой Anthropic — Claude Code Channels делает это лучше.

Критерий OpenClaw Claude Code Channels
Лицензия и поддержка Open-source MIT, community-driven Официальный плагин Anthropic
Размер кодовой базы ~300 000 строк кода Один бинарь Claude + один плагин
Установка openclaw onboard wizard, ~10–30 минут 12 шагов из этого гайда, ~30 минут
Каналы 23+ платформы Telegram, Discord (iMessage только macOS)
Модели Claude, GPT, Gemini, Ollama Только Claude (Max/Pro или API)
Подтверждения через Telegram Нет, всё через CLI Да — через settings.json (шаг 10)
24/7 на VPS Да, через systemd Да, через systemd (шаг 11)
Безопасность из коробки Sandbox опционально 3 слоя: allowlist + opt-in --channels + только approved плагины
Multi-agent Встроено Не из коробки
Голос и Canvas Voice Wake, Talk Mode, Live Canvas Нет
Цена Бесплатный + API/подписка Claude Max ($100–200/мес) или API

Три ключевых причины переключиться

  1. Безопасность. Главный maintainer OpenClaw предупреждал: «Если ты не понимаешь, как запустить command line — это слишком опасный проект». Claude Code Channels замкнут на проверенный плагин — surface area меньше в десятки раз.
  2. Простота обслуживания. OpenClaw ставит Node.js daemon, требует Node 22+, сотни конфиг-ключей. Здесь — один бинарь и один плагин, обновляется через claude /plugin update.
  3. Официальная гарантия. Плагин telegram входит в claude-plugins-official. Не будет внезапной смены имени (Clawdbot → Moltbot → OpenClaw за 2 месяца).

04 — Что понадобится

# Что нужно Как проверить
1 VPS на Ubuntu 24.04 (или Debian 12+), 1+ GB RAM, root-доступ cat /etc/os-release \| grep VERSION — Ubuntu 22+ или Debian 12+
2 SSH-доступ к VPS ssh root@<ip> должен пускать
3 Подписка Claude Max или Pro Платная подписка на claude.ai
4 Telegram-аккаунт У вас уже есть
5 30 минут

05 — Установка по шагам

На каждом шаге есть verify-команда — после выполнения проверьте, что вывод соответствует ожидаемому. Если нет — переходите в раздел «Если упало».

Шаг 1 — Подключитесь к VPS

ssh root@<your-vps-ip>

Verify:

whoami

→ ожидаемый вывод: root

Шаг 2 — Установите Claude Code

Нативный установщик от Anthropic (не npm — он создаёт проблемы под root):

curl -fsSL https://claude.ai/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"

Verify:

claude --version

→ ожидаемый вывод: 2.1.80 или новее

Шаг 3 — Авторизуйтесь в Claude Max

claude /login

Откройте URL в браузере (с того же IP, с которого регистрировали Claude), авторизуйтесь, вставьте код в терминал.

Verify:

claude /status 2>&1 | head -5

→ должна быть строка про подписку Max или Pro

Шаг 4 — Установите Bun

Telegram-плагин требует Bun (не Node.js — иначе плагин запускается без ошибок, но не работает):

curl -fsSL https://bun.sh/install | bash
source ~/.bashrc

Verify:

~/.bun/bin/bun --version

→ ожидаемый вывод: 1.x.x

Шаг 5 — Создайте Telegram-бота через @BotFather

В Telegram, без терминала:

  1. Найдите @BotFather
  2. Отправьте /newbot
  3. Придумайте имя бота
  4. Username — обязательно заканчивается на bot (например, myassistant_bot)
  5. Сохраните токен от BotFather (123456789:ABC-DEF...)

Узнайте свой Telegram ID:

  1. Найдите @userinfobot
  2. Отправьте любое сообщение
  3. Сохраните числовой ID (например, 123456789)

Шаг 6 — Установите Telegram-плагин

claude

Внутри Claude Code:

/plugin marketplace add claude-plugins-official
/plugin install telegram@claude-plugins-official
/exit

Verify:

ls ~/.claude/plugins/claude-plugins-official/telegram

→ должна быть папка с файлами плагина

Шаг 7 — Запишите токен бота в .env плагина

mkdir -p ~/.claude/channels/telegram
cat > ~/.claude/channels/telegram/.env << 'EOF'
TELEGRAM_BOT_TOKEN=<your-bot-token>
EOF
chmod 600 ~/.claude/channels/telegram/.env

Замените <your-bot-token> на токен от BotFather.

Verify:

test -f ~/.claude/channels/telegram/.env && echo "OK"

OK

Шаг 8 — Тестовый запуск + спаривание

claude --channels plugin:telegram@claude-plugins-official

В Telegram:

  1. Найдите бота по username
  2. Отправьте hi
  3. Бот ответит 6-значным кодом (например, 80194b)

В терминале:

/telegram:access pair 80194b

Проверка: отправьте боту «привет, представься» — должен ответить как Claude.

Шаг 9 — Закройте бота только себе

Если предыдущий запуск работает — Ctrl+C и запустите заново:

claude --channels plugin:telegram@claude-plugins-official

Внутри Claude:

/telegram:access policy allowlist
/telegram:access list

Allowlist = только ваш Telegram ID. Иначе любой, кто узнает username бота, сможет писать ему. Выйдите: /exit.

Шаг 10 — Разрешения без подтверждений

По умолчанию Claude спрашивает разрешение на каждое действие — через Telegram эти запросы не пропускаются и бот зависает.

cat > ~/.claude/settings.json << 'EOF'
{
  "defaultMode": "bypassPermissions",
  "effortLevel": "high",
  "enabledPlugins": {
    "telegram@claude-plugins-official": true
  },
  "permissions": {
    "allow": [
      "Bash",
      "Read",
      "Write",
      "Edit",
      "MultiEdit",
      "mcp__plugin_telegram_telegram__reply",
      "mcp__plugin_telegram_telegram__react",
      "mcp__plugin_telegram_telegram__edit_message"
    ],
    "deny": []
  }
}
EOF

Verify:

cat ~/.claude/settings.json | python3 -m json.tool > /dev/null && echo "OK"

OK (JSON валидный)

Шаг 11 — Автозапуск через systemd

cat > /etc/systemd/system/claude-telegram.service << 'EOF'
[Unit]
Description=Claude Code Telegram Channel
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/root
EnvironmentFile=-/etc/environment
Environment="PATH=/root/.local/bin:/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="HOME=/root"
Environment="TERM=xterm-256color"
Environment="BUN_INSTALL=/root/.bun"
ExecStart=/usr/bin/script -qfc "/root/.local/bin/claude --channels plugin:telegram@claude-plugins-official" /var/log/claude-telegram.log
StandardInput=null
StandardOutput=null
StandardError=null
Restart=always
RestartSec=10
KillMode=mixed

[Install]
WantedBy=multi-user.target
EOF

Если в /etc/environment есть PATH — закомментируйте:

grep -E '^PATH=' /etc/environment
sed -i.bak 's/^PATH=/#PATH=/' /etc/environment

Включите автозапуск:

systemctl daemon-reload
systemctl enable claude-telegram.service
systemctl start claude-telegram.service
sleep 5 && systemctl status claude-telegram.service --no-pager | head -10

Active: active (running)

Шаг 12 — Тест перезагрузки (24/7)

reboot

Через ~30 секунд:

ssh root@<your-vps-ip>
systemctl status claude-telegram.service --no-pager | head -5

Active: active (running)

Отправьте боту «Жив? Покажи аптайм». Если ответил — у вас 24/7 AI-агент в Telegram.

06 — Health check

# 1. Сервис запущен?
systemctl status claude-telegram.service --no-pager | head -5

# 2. Процесс claude работает?
ps -ef | grep claude | grep -v grep

# 3. Свежие логи
journalctl -u claude-telegram.service -n 30 --no-pager

# 4. Лог «глазами бота»
tail -50 /var/log/claude-telegram.log

07 — Если упало

Симптом Причина Решение
claude: command not found ~/.local/bin не в PATH export PATH="$HOME/.local/bin:$PATH" и добавьте в ~/.bashrc
Плагин установился, но «cannot find bun» Bun не в PATH Шаг 4 заново
Бот не отвечает после pair Нет allowlist Шаг 9
Бот зависает на действиях Нет settings.json с bypassPermissions Шаг 10
Active: failed PATH из /etc/environment или нет TTY Шаг 11 — проверьте /etc/environment и script -qfc
После reboot бот не поднимается Не выполнен enable systemctl enable claude-telegram.service
Permission Request: ... Невалидный JSON в settings cat ~/.claude/settings.json \| python3 -m json.tool

Если ни одно не подходит — journalctl -u claude-telegram.service -n 100 --no-pager и отправьте логи Claude Code на десктопе: «Подними мой VPS-агент, вот логи».

08 — Опциональные улучшения

A. Не-root пользователь для Claude

id claude-agent 2>/dev/null && echo "уже есть, пропустите раздел"
useradd -m -s /bin/bash claude-agent
usermod -aG sudo claude-agent
mkdir -p /home/claude-agent/.ssh
cp /root/.ssh/authorized_keys /home/claude-agent/.ssh/
chown -R claude-agent:claude-agent /home/claude-agent/.ssh
chmod 700 /home/claude-agent/.ssh
chmod 600 /home/claude-agent/.ssh/authorized_keys

Пройдите гайд заново под этим юзером.

B. ufw firewall

ufw allow 22/tcp
ufw --force enable

C. fail2ban

apt update && apt install -y fail2ban
systemctl enable --now fail2ban

D. Sync рабочей папки через GitHub

ssh-keygen -t ed25519 -f ~/.ssh/github-deploy -N ""
cat ~/.ssh/github-deploy.pub
# Добавьте ключ в GitHub Deploy keys

GIT_SSH_COMMAND='ssh -i ~/.ssh/github-deploy' \
  git clone git@github.com:<your-username>/<your-vault>.git ~/agent-workspace

cat > ~/agent-workspace/sync.sh << 'EOF'
#!/bin/bash
cd ~/agent-workspace
GIT_SSH_COMMAND='ssh -i ~/.ssh/github-deploy' git pull --rebase --autostash
git add -A
git -c user.email='agent@<your-domain>' -c user.name='claude-agent' \
  commit -m "auto-commit: $(date -u +%Y-%m-%dT%H:%M:%SZ)" 2>/dev/null
GIT_SSH_COMMAND='ssh -i ~/.ssh/github-deploy' git push
EOF
chmod +x ~/agent-workspace/sync.sh
(crontab -l 2>/dev/null; echo "*/30 * * * * /root/agent-workspace/sync.sh >> /var/log/vault-sync.log 2>&1") | crontab -

09 — Что дальше

Используйте бота как универсальный AI-интерфейс:

  • CEO-помощник: «Что у меня в календаре на завтра?»
  • DevOps без терминала: «Покажи нагрузку сервера», «Перезапусти сервис»
  • Письма и тексты: «Напиши черновик ответа партнёру»
  • Аналитика по файлам: положите CSV/PDF в рабочую папку, попросите выжать инсайты
  • Skills: установите superpowers или другие — Claude Code Channels работает с любыми Claude Code skills

Документация

FAQ

Сколько стоит? VPS $5–10/мес + Claude Max ($100–200/мес) или API. На API один вечер интенсивного использования ≈ $1–3.

Можно на macOS вместо VPS? Да, но без 24/7 — когда ноут спит, бот молчит.

Чем отличается от Telegram-бота с GPT? Обычный бот = wrapper над API. Здесь — Claude Code с файловой системой, shell, MCP и skills.

Безопасно ли давать боту root? С allowlist и чтением логов — для личного использования нормально. Для production — non-root юзер (раздел 8A).

Что если Anthropic забанит аккаунт? Бот перестанет отвечать. Делайте бэкап ~/.claude/ и держите plan B.

Дальше: Neuro OS для governed company agents, Telegram — если застряли на шаге.

Написать в Telegram →

More from Blog