Skip to content

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
  • ๐ŸŒ IP lookup, VPN/proxy detection, and GPS/IP-based location (Telegram map pin)

๐Ÿš€ 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 /netcheck Check internet connection
/wifiscan Scan Wiโ€‘Fi networks
/clipboard get|set Read / write clipboard
ffmpeg /ffmpeg Check FFmpeg status
/ffmpeg_install Download & install FFmpeg
ip /myip Public + local IP addresses
/iplookup [ip] Geo/ISP lookup (self or given IP)
/vpncheck Detect VPN/proxy/hosting IP
/location Send IP-based location pin
/gps Real GPS fix (Windows), IP fallback
/locationlive <sec> Live location for N seconds (IP-based)
/gpslive <sec> Live GPS tracking (Windows), auto-updates in place
/stopgpslive Stop live GPS tracking early

๐Ÿ“‚ 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
โ”‚   โ””โ”€โ”€ ip.py             # IP lookup, VPN check, GPS/IP location
โ””โ”€โ”€ 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.


๐Ÿ“š Documentation

All guides and API references are in the docs/ directory (English only):

Guide Description
Getting Started Installation, configuration, quick start
Configuration Complete configuration reference
Modules All modules, commands, and features
API Reference Python API reference
Security Security best practices
Development Contributing, testing, releasing
Examples Usage examples and patterns
Documentation Index Full documentation index

๐ŸŒ Translations (README only)

All technical docs are English-only. README translations are in docs/:

Language File
๐Ÿ‡ฎ๐Ÿ‡ท Persian/Farsi README-fa.md
๐Ÿ‡ช๐Ÿ‡ธ Spanish README-es.md
๐Ÿ‡ฎ๐Ÿ‡น Italian README-it.md
๐Ÿ‡ฉ๐Ÿ‡ช German README-de.md
๐Ÿ‡จ๐Ÿ‡ณ Chinese (Simplified) README-zh.md
๐Ÿ‡ซ๐Ÿ‡ท French README-fr.md
๐Ÿ‡ท๐Ÿ‡บ Russian README-ru.md
๐Ÿ‡ฏ๐Ÿ‡ต Japanese README-ja.md
๐Ÿ‡ณ๐Ÿ‡ฑ Dutch README-nl.md
๐Ÿ‡น๐Ÿ‡ท Turkish README-tr.md
๐Ÿ‡ฐ๐Ÿ‡ท Korean README-ko.md

โš ๏ธ Disclaimer

This library is provided for your own convenience โ€” to remotely manage your own devices that you own or are explicitly authorized to administer. It is not intended for surveillance, monitoring, or control of any device or person without their knowledge and consent.

Any misuse of this library (including unauthorized access to systems you do not own, tracking or monitoring individuals without consent, or any illegal activity) is solely the responsibility of the user. The author and maintainer(s) are not liable for any misuse, damages, or legal consequences arising from the use of this software. Use responsibly and in accordance with the laws of your jurisdiction.


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

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages