От 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 |
Три ключевых причины переключиться
- Безопасность. Главный maintainer OpenClaw предупреждал: «Если ты не понимаешь, как запустить command line — это слишком опасный проект». Claude Code Channels замкнут на проверенный плагин — surface area меньше в десятки раз.
- Простота обслуживания. OpenClaw ставит Node.js daemon, требует Node 22+, сотни конфиг-ключей. Здесь — один бинарь и один плагин, обновляется через
claude /plugin update. - Официальная гарантия. Плагин 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, без терминала:
- Найдите @BotFather
- Отправьте
/newbot - Придумайте имя бота
- Username — обязательно заканчивается на
bot(например,myassistant_bot) - Сохраните токен от BotFather (
123456789:ABC-DEF...)
Узнайте свой Telegram ID:
- Найдите @userinfobot
- Отправьте любое сообщение
- Сохраните числовой 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:
- Найдите бота по username
- Отправьте
hi - Бот ответит 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 — если застряли на шаге.