Skip to main content

🖥️ TeleDesk

Control your entire laptop from Telegram. Screenshots, shell commands, file management, process control, power management, mouse & keyboard — all from a Telegram chat.

PyPI version Python 3.9+ License: MIT Platform


⚡ Quickstart

pip install teledesk
teledesk setup
teledesk start

That's it. Open Telegram, message your bot /start, and you're in control.


📦 Installation

# Basic install
pip install teledesk

# With all optional features (screenshot, clipboard)
pip install teledesk[full]

Python 3.9+ required. Works on macOS, Linux, and Windows.


🚀 Setup Wizard

TeleDesk has an interactive setup wizard that walks you through everything:

$ teledesk setup

 ████████╗███████╗██╗     ███████╗██████╗ ███████╗███████╗██╗  ██╗
 ╚══██╔══╝██╔════╝██║     ██╔════╝██╔══██╗██╔════╝██╔════╝██║ ██╔╝
    ██║   █████╗  ██║     █████╗  ██║  ██║█████╗  ███████╗█████╔╝
    ██║   ██╔══╝  ██║     ██╔══╝  ██║  ██║██╔══╝  ╚════██║██╔═██╗
    ██║   ███████╗███████╗███████╗██████╔╝███████╗███████║██║  ██╗
    ╚═╝   ╚══════╝╚══════╝╚══════╝╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═╝

    Control your laptop. Entirely from Telegram.

┌─ Welcome to TeleDesk Setup ─────────────────────────────────┐
│ This wizard will configure your bot in under 2 minutes.     │
└─────────────────────────────────────────────────────────────┘

Step 1/4 — Bot Token
...

The wizard handles:

  • Bot token entry & live validation (tests connection to Telegram)
  • Authorized user ID collection
  • Download/upload directory configuration
  • Screenshot quality settings
  • Optional dependency check

🤖 All Commands

🖥️ System

Command Description
/info Full system overview (OS, CPU, RAM, disk, battery)
/cpu Per-core CPU usage with visual bar chart
/mem RAM & swap with bar chart
/disk All drives with usage bars & live I/O speeds
/battery Charge level, status, time remaining
/network All interfaces, IPs, live throughput
/uptime System uptime & boot time
/top Live updating resource monitor (5 refreshes)

⚙️ Processes

Command Description
/ps [name] Top processes by CPU, optional filter
/kill <pid> [signal] Kill/suspend/resume a process

💻 Shell

Command Description
/run <cmd> Run any shell command, stream output
/sh <cmd> Alias for /run
/runbg <cmd> Run in background, notify when done
/pipe cmd1 ||| cmd2 Build shell pipelines
/env View environment variables
/which <prog> Find program + version
/cron <secs> <cmd> Schedule repeating command
/cronjobs List active scheduled jobs
/cronstop <id> Stop a scheduled job

📂 Files

Command Description
/ls [-a] [-s] [path] List directory (hidden, sort by size)
/cd <path> Change directory
/pwd Show current directory
/cat <file> Read file (auto syntax highlight, auto-send large files)
/stat <path> File/directory metadata
/find <pattern> [in dir] Find files by name
/grep <pattern> [path] Search text in files
/mkdir <name> Create directory
/rm [-r] <path> Delete (with confirmation)
/mv <src> <dst> Move/rename
/cp <src> <dst> Copy
/write <file> <content> Write text to file
/download <path> Send file to Telegram (auto-zips directories)
/upload Receive file from Telegram
/zip <path> Create zip archive
/unzip <file.zip> Extract zip

📸 Screen & Input

Command Description
/screenshot [delay] Take screenshot (with optional delay)
/ss Quick screenshot alias
/type <text> Type text using keyboard automation
/key <shortcut> Press keyboard shortcuts (ctrl+c, cmd+space, etc.)
/click <x> <y> [btn] [n] Mouse click (left/right/middle, single/double)
/scroll <amount> Scroll mouse wheel
/move <x> <y> Move mouse cursor
/mousepos Get current mouse position + screen size
/open <app|file|url> Open application, file, or URL

📋 Clipboard

Command Description
/copy <text> Copy text to clipboard
/paste Read clipboard contents

🔔 UI & Media

Command Description
/notify <title> | <msg> Desktop notification
/volume [0-100|up|down|mute] Get or set volume
/brightness <0-100> Set screen brightness

🔋 Power

Command Description
/shutdown Shutdown (with confirmation)
/restart Restart (with confirmation)
/sleep Sleep / suspend
/hibernate Hibernate
/lock Lock screen
/logout Log out current user
/screensaver Activate screensaver
/displays List connected displays

⚙️ Bot Management

Command Description
/config View or change settings
/logs Audit log of all commands
/status Quick bot status

🖥️ CLI Commands

teledesk setup       # Interactive onboarding wizard
teledesk start       # Start the bot
teledesk start -v    # Start with verbose logging
teledesk status      # Check configuration & dependencies
teledesk config      # View/edit settings interactively
teledesk logs        # View command audit log
teledesk test        # Test Telegram API connection
teledesk adduser     # Add an authorized Telegram user
teledesk stop        # Stop running bot (if backgrounded)
teledesk uninstall   # Remove all TeleDesk data

🔒 Security

TeleDesk is built with security as a priority:

  • User whitelist — Only Telegram user IDs you add in ALLOWED_IDS can control the bot
  • Silent rejection — Unauthorized users get no response (no feedback to attackers)
  • Secure config — Config stored in ~/.teledesk/config.env with chmod 600
  • Audit logging — Every command is logged with timestamp, user, and arguments
  • Confirmation dialogs — Destructive actions (shutdown, delete) require inline confirmation
  • Token protection — Token is never logged or displayed in full

Add multiple authorized users:

teledesk adduser   # Interactive
# or:
# Edit ~/.teledesk/config.env:
# TELEDESK_ALLOWED_IDS="111222333,444555666"

⚡ Run at Startup

macOS (launchd)

<!-- ~/Library/LaunchAgents/com.teledesk.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.teledesk</string>
    <key>ProgramArguments</key>  <array><string>/usr/local/bin/teledesk</string><string>start</string><string>--no-banner</string></array>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>StandardErrorPath</key> <string>/tmp/teledesk.err</string>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.teledesk.plist

Linux (systemd)

# /etc/systemd/system/teledesk.service
[Unit]
Description=TeleDesk Laptop Control Bot
After=network.target

[Service]
Type=simple
User=youruser
ExecStart=/usr/local/bin/teledesk start --no-banner
Restart=always
RestartSec=10
Environment=DISPLAY=:0

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now teledesk

Windows (Task Scheduler)

$action  = New-ScheduledTaskAction -Execute "teledesk" -Argument "start --no-banner"
$trigger = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName "TeleDesk" -Action $action -Trigger $trigger -RunLevel Highest

🔧 Configuration

Config is stored at ~/.teledesk/config.env:

TELEDESK_BOT_TOKEN=1234567890:ABCdef...
TELEDESK_ALLOWED_IDS=123456789,987654321
TELEDESK_DOWNLOAD_DIR=/Users/you/Downloads
TELEDESK_UPLOAD_DIR=/Users/you/Desktop
TELEDESK_MAX_FILE_MB=50
TELEDESK_SCREENSHOT_QUALITY=85
TELEDESK_LOG_COMMANDS=true

Change settings interactively: teledesk config
Or inside Telegram: /config set max_file_mb 100


📦 Optional Dependencies

Package Feature
pyautogui Screenshot, type, click, scroll, mouse
Pillow Screenshot compression
pyperclip Clipboard read/write
aiofiles Fast async file operations
pip install pyautogui Pillow pyperclip aiofiles

🛠️ API Usage

Use TeleDesk as a library:

from teledesk import Config, TeleDeskBot

config = Config()
# config is auto-loaded from ~/.teledesk/config.env

bot = TeleDeskBot(config)
bot.run()

📄 License

MIT — See LICENSE

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

teledesk-1.1.0.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

teledesk-1.1.0-py3-none-any.whl (52.3 kB view details)

Uploaded Python 3

File details

Details for the file teledesk-1.1.0.tar.gz.

File metadata

  • Download URL: teledesk-1.1.0.tar.gz
  • Upload date:
  • Size: 49.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0rc1

File hashes

Hashes for teledesk-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3f9eb111cd87f70f1ba0668797daa0cd2e3e74f933f55dec7f61939e7cc62461
MD5 e6e98ca6de88b77d0520a3a7564a7552
BLAKE2b-256 da77df79cdacb14519dec6bd15ea3e3ac0e28826ceb0cefd9505b9aaf54eef5d

See more details on using hashes here.

File details

Details for the file teledesk-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: teledesk-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 52.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0rc1

File hashes

Hashes for teledesk-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 606091e5af2167d128681c63b32939e3186228fd7c09d83894252e39c023b030
MD5 5a61107920f35c772f68f1e3c012e3b6
BLAKE2b-256 48415fa86f36b657ca39c34efafed0e6073756133096567d516dda8a75a3302d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page