Skip to content

sepehrHi/owlbot-remote

Repository files navigation

πŸ¦‰ OwlBot (owlbot-remote)

Python Version License: MIT PyPI version CI

OwlBot is a production‑ready modular remote‑control agent for Windows, operated via Telegram. It lets you monitor system resources, manage files, control peripherals, capture screen / webcam, and more β€” all from your phone.


✨ Features

  • 🧩 100% Modular β€” load only the modules you need
  • πŸ’‰ Dependency‑Injected core β€” ready for extra platforms (Discord, SSH, …)
  • πŸ›‘οΈ User‑ID whitelisting and centralized error handling
  • πŸ“Š Live resource monitoring (CPU, RAM, Disk, temperature)
  • 🎹 Peripheral control β€” keyboard, mouse, hotkeys, audio volume
  • πŸ“Έ Screen capture, webcam, timelapse, and screen streaming
  • πŸ”Š Voice recording, volume control, and incoming‑voice playback

πŸš€ Quick Start

Prerequisites

  • Python 3.11+
  • Windows (some modules require Win32 API)
  • ffmpeg in PATH if you use voice playback (download from ffmpeg.org)
  • A Telegram Bot Token

Install from PyPI

pip install owlbot-remote[all]

To install only the cross‑platform subset (no audio, no keyboard, no WMI):

pip install owlbot-remote

Minimal deployment script

from owlbot import OwlBot

bot = OwlBot(
    token="YOUR_BOT_TOKEN",
    authorized_users=[123456789],       # your Telegram user ID
    modules=["system", "screen", "files", "input", "processes", "monitoring"],
)
bot.run()

Or via the CLI entry point:

owlbot --token YOUR_BOT_TOKEN --users 123456789,987654321

πŸ“ Logging

By default OwlBot logs to both the console and a rotating‑free log file (owlbot.log in the current directory). All of this is configurable:

from owlbot import OwlBot

bot = OwlBot(
    token="YOUR_BOT_TOKEN",
    authorized_users=[123456789],
    log_level="DEBUG",       # DEBUG | INFO | WARNING | ERROR | CRITICAL
    log_file="owlbot.log",   # set to None (or "") to disable the log file only
    enable_logging=True,     # set to False to disable logging entirely
)
Goal Setting
Console + file logging (default) leave as default
Console only, no log file on disk log_file=None
Completely silent (no console, no file) enable_logging=False

The same options are available from the CLI:

owlbot --token TOKEN --users 123 --log-level DEBUG   # verbose logging
owlbot --token TOKEN --users 123 --no-log-file        # console only, no file
owlbot --token TOKEN --users 123 --disable-logging    # fully silent

πŸ•ΉοΈ Available Modules & Commands

Module Command Description
system /status CPU, RAM, Disk, Network, Battery
/uptime System uptime
/ping Health‑check
/lock Lock workstation
/shutdown Shut down PC
/restart Reboot PC
screen /screenshot Capture desktop
/webcam Capture webcam photo
/timelapse <s> <n> Series of screenshots
/startstream Start screen streaming
/stopstream Stop & send video
input /type <text> Type text
/move <x> <y> Move mouse
/mousepos Get mouse position
/mouse <action> Click / scroll / drag
/hotkey <k1+k2> Send hotkey
/msg <text> Show message box
audio /mute / /unmute Toggle mute
/volume <0‑100> Set volume
/startrec [sec] Record microphone
/stoprec Stop & send recording
/playvoice Toggle incoming‑voice playback
files /listdir [path] List directory
/getfile <path> Download file
/hide / /show Toggle hidden attribute
/file copy/move/delete File operations
processes /tasklist List running processes
/killtask <exe> Kill a process
/run / /cmd / /script Execute commands
monitoring /monitor <cpu|ram|disk|temp> Periodic alerts
/stopmonitor Stop alerts
network /wifiscan Scan Wi‑Fi networks
/clipboard get|set Read / write clipboard

πŸ“‚ Project Structure

owlbot/
β”œβ”€β”€ __init__.py           # Package exports & version
β”œβ”€β”€ config/               # BotConfig dataclass
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ bot.py            # Main OwlBot engine
β”‚   β”œβ”€β”€ decorators.py     # @authorized_only / @safe_reply
β”‚   └── utils.py          # Shared helpers
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ base.py           # BaseModule interface
β”‚   β”œβ”€β”€ system.py         # System control
β”‚   β”œβ”€β”€ screen.py         # Screen/webcam/stream
β”‚   β”œβ”€β”€ files.py          # File operations
β”‚   β”œβ”€β”€ processes.py      # Process management
β”‚   β”œβ”€β”€ input.py          # Keyboard/mouse (Windows)
β”‚   β”œβ”€β”€ audio.py          # Audio control (Windows)
β”‚   β”œβ”€β”€ monitoring.py     # Resource monitoring
β”‚   └── network.py        # Wi‑Fi / clipboard
└── platform/
    └── telegram.py       # Telegram adapter

πŸ§ͺ Testing

The test suite uses pytest and makes no real network / Telegram calls.

pip install -e .[dev]
pytest -v

Lint (matches CI, config lives in .flake8):

flake8 src tests

πŸ”§ Installation extras

Extra Includes
owlbot-remote[ui] pyautogui, opencv‑python, numpy
owlbot-remote[windows] wmi, pycaw, keyboard, pywifi, pyaudio
owlbot-remote[all] Everything above
owlbot-remote[dev] Dev / CI tools (build, flake8, pytest)

πŸ“„ License

Distributed under the MIT License. See LICENSE for details.


Maintained by sepehr H.I πŸ¦‰

About

πŸ—½πŸ§© Modular Windows remote management framework with a secure, scalable, and extensible architecture designed for flexible control and automation across systems. πŸ–₯οΈπŸ” Built to support plugin-style expansion, smooth integration, and reliable remote operations in modern environments. βš™οΈπŸš€

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages