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.
- π§© 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
- Python 3.11+
- Windows (some modules require Win32 API)
ffmpeginPATHif you use voice playback (download from ffmpeg.org)- A Telegram Bot Token
pip install owlbot-remote[all]To install only the crossβplatform subset (no audio, no keyboard, no WMI):
pip install owlbot-remotefrom 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,987654321By 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| 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 |
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
The test suite uses pytest and makes no real network / Telegram calls.
pip install -e .[dev]
pytest -vLint (matches CI, config lives in .flake8):
flake8 src tests| 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) |
Distributed under the MIT License. See LICENSE for details.
Maintained by sepehr H.I π¦