Azimkin c6c3a70b9a Telegram bot running server-admin tasks via Claude Agent SDK
kurigram bot with admin check by user IDs from env, per-chat Claude
session resume, streaming progress, /model command for model and
reasoning effort selection, and systemd deploy script.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 12:40:44 +02:00

Claude Server Admin Telegram Bot

Telegram-бот (Python, kurigram), который выполняет задачи по администрированию сервера через Claude Code с bypassPermissions, используя Claude Agent SDK.

  • Доступ только для админов — Telegram user ID из env-переменной ADMIN_IDS.
  • Контекст беседы сохраняется на чат (resume сессий Claude), /new сбрасывает.
  • Стриминг прогресса: бот показывает вызовы инструментов по мере работы.
  • Устанавливается как systemd-сервис, автозапуск после ребута.

⚠️ Безопасность: бот даёт полный контроль над сервером любому из ADMIN_IDS. Храните токен бота в секрете и не добавляйте лишних админов.

Требования на сервере

  • Linux с systemd
  • Python 3.10+
  • Node.js 18+ и Claude Code CLI (npm install -g @anthropic-ai/claude-code)
  • Аутентификация Claude: ANTHROPIC_API_KEY в .env или залогиненный CLI (claude login под root)

Установка

git clone <repo> && cd claude-as-server-admin-py
sudo bash deploy/install.sh
sudo nano /etc/claude-tg-bot/.env    # заполнить креды
sudo systemctl restart claude-tg-bot

Проверка:

systemctl status claude-tg-bot
journalctl -u claude-tg-bot -f

Конфигурация (/etc/claude-tg-bot/.env)

Переменная Описание
TELEGRAM_API_ID / TELEGRAM_API_HASH с https://my.telegram.org/apps
TELEGRAM_BOT_TOKEN от @BotFather
ADMIN_IDS user ID через запятую (узнать: @userinfobot)
WORK_DIR рабочая директория Claude Code, по умолчанию /
ANTHROPIC_API_KEY опционально, если не используется claude login
IS_SANDBOX=1 обязательно для bypassPermissions под root

Команды бота

  • любой текст — задача для Claude Code
  • /new — новая беседа (сброс контекста)
  • /model — выбор модели (Fable 5 / Opus 4.8 / Sonnet 5 / Haiku 4.5) и уровня ризонинга (low…max) через inline-кнопки, настройки сохраняются per-chat
  • /status — статус задачи и сессии
  • /stop — отменить текущую задачу
  • /help — справка

Локальный запуск (разработка)

python -m venv venv && venv/bin/pip install -r requirements.txt
cp .env.example .env   # заполнить; WORK_DIR лучше указать тестовую папку
venv/bin/python -m bot.main
Description
No description provided
Readme 34 KiB
Languages
Python 88.1%
Shell 11.9%