Control your entire laptop from Telegram โ screenshots, shell, files, processes, power, and more.
Project description
๐ฅ๏ธ TeleDesk
Control your entire laptop from Telegram. Screenshots, shell commands, file management, process control, power management, mouse & keyboard โ all from a Telegram chat.
โก 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_IDScan control the bot - Silent rejection โ Unauthorized users get no response (no feedback to attackers)
- Secure config โ Config stored in
~/.teledesk/config.envwithchmod 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f9eb111cd87f70f1ba0668797daa0cd2e3e74f933f55dec7f61939e7cc62461
|
|
| MD5 |
e6e98ca6de88b77d0520a3a7564a7552
|
|
| BLAKE2b-256 |
da77df79cdacb14519dec6bd15ea3e3ac0e28826ceb0cefd9505b9aaf54eef5d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
606091e5af2167d128681c63b32939e3186228fd7c09d83894252e39c023b030
|
|
| MD5 |
5a61107920f35c772f68f1e3c012e3b6
|
|
| BLAKE2b-256 |
48415fa86f36b657ca39c34efafed0e6073756133096567d516dda8a75a3302d
|