Go to file
mirivlad 2506d8c00c Fix venv activation check
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-23 15:51:21 +08:00
.gitignore Add token prompt and save to config on first run 2026-02-23 15:48:15 +08:00
README.md Initial commit: Telegram CLI Bot with multi-level menu 2026-02-23 15:41:48 +08:00
bot.py Add token prompt and save to config on first run 2026-02-23 15:48:15 +08:00
requirements.txt Initial commit: Telegram CLI Bot with multi-level menu 2026-02-23 15:41:48 +08:00
run.sh Fix venv activation check 2026-02-23 15:51:21 +08:00

README.md

Telegram CLI Bot

Бот для выполнения CLI команд на вашем ПК через Telegram с многоуровневым меню и гибкой настройкой.

Возможности

  • 🖥️ Выполнение CLI команд - запуск любых команд от имени пользователя
  • 📋 Многоуровневое меню - навигация через inline-кнопки
  • ⚙️ Настройка из бота - изменение имени, описания, иконки прямо в диалоге
  • 🎯 Предустановленные команды - готовые команды для файловой системы, поиска, системы и сети
  • 👥 Управление доступом - ограничение круга пользователей
  • 🔧 Легкое добавление команд - простая регистрация новых команд через код

Установка

1. Клонирование репозитория

cd /home/mirivlad/git
git clone <repository_url> telegram-cli-bot
cd telegram-cli-bot

2. Создание виртуального окружения

python3 -m venv venv
source venv/bin/activate

3. Установка зависимостей

pip install -r requirements.txt

4. Получение токена бота

  1. Откройте @BotFather в Telegram
  2. Отправьте /newbot
  3. Следуйте инструкциям
  4. Скопируйте полученный токен

5. Запуск бота

export TELEGRAM_BOT_TOKEN='your_token_here'
python bot.py

Использование

Команды бота

Команда Описание
/start Запустить бота, показать главное меню
/help Показать справку
/settings Открыть настройки бота

Главное меню

  • 🖥️ Выполнить команду - ввод произвольной CLI команды
  • 📋 Предустановленные команды - меню с готовыми командами
  • ⚙️ Настройки бота - конфигурация бота
  • О боте - информация о боте

Предустановленные команды

Файловая система

  • ls -la - список файлов
  • pwd - текущая директория
  • df -h - свободное место
  • du -sh * - размер папок

Поиск

  • find . -name - поиск файлов
  • grep пример - поиск по содержимому
  • which command - путь к командам

Система

  • top -n 1 - процессы
  • ps aux - список процессов
  • free -h - использование памяти
  • uname -a - информация о системе
  • uptime - время работы

Сеть

  • ip addr - сетевые интерфейсы
  • ping google - проверка связи
  • netstat - сетевые подключения
  • curl ifconfig.me - внешний IP

Настройка бота

Через меню ⚙️ Настройки бота:

  1. 📝 Изменить имя бота - новое отображаемое имя
  2. 📄 Изменить описание - описание бота
  3. 🎨 Изменить иконку - emoji для бота
  4. 👥 Управление доступом - whitelist пользователей

Добавление новых команд

Быстрое добавление через меню

Найдите функцию init_menus() в bot.py и добавьте новую кнопку:

# В нужное меню добавьте:
MenuItem("🔥 Ваша команда", "cmd_your", command=ашаоманда", icon="🔥"),

Пример добавления команды для git:

# В init_menus() добавьте новое меню:
git_menu = [
    MenuItem("git status", "cmd_git_status", command="git status", icon="📊"),
    MenuItem("git log", "cmd_git_log", command="git log --oneline -10", icon="📜"),
    MenuItem("⬅️ Назад", "preset", icon="⬅️"),
]
menu_builder.add_menu("git", git_menu)

# И добавьте кнопку в preset_menu:
MenuItem("🔗 Git", "git_menu", icon="🔗"),

Продвинутое: регистрация через декоратор

Используйте command_registry для сложной логики:

@command_registry.register("my_command")
async def my_custom_command(update, context):
    # Ваша логика
    pass

Конфигурация

Настройки хранятся в bot_config.json:

{
  "bot_name": "CLI Assistant",
  "bot_description": "Бот для выполнения CLI команд",
  "bot_icon_emoji": "🤖",
  "allowed_users": [],
  "require_confirmation": true,
  "working_directory": "/home/user"
}
Параметр Описание
bot_name Имя бота
bot_description Описание бота
bot_icon_emoji Emoji-иконка
allowed_users Список разрешённых user ID (пусто = все)
require_confirmation Требовать подтверждение перед выполнением
working_directory Рабочая директория для команд

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

⚠️ Важные предупреждения:

  1. Бот выполняет команды от имени запустившего пользователя
  2. Не запускайте бота от root
  3. Ограничьте доступ через allowed_users
  4. Будьте осторожны с деструктивными командами (rm, dd, etc.)

Логи

Логи сохраняются в bot.log в директории бота.

Структура проекта

telegram-cli-bot/
├── bot.py              # Основной файл бота
├── requirements.txt    # Зависимости Python
├── bot_config.json     # Конфигурация (создаётся автоматически)
├── bot.log            # Лог файл
├── .gitignore         # Git ignore
└── README.md          # Документация

Требования

  • Python 3.8+
  • Библиотеки: python-telegram-bot, pyyaml
  • Доступ к Telegram API

Лицензия

MIT