Skip to main content

🖥️ Salim — Control Your Laptop from Telegram

Type a message on your phone. Your laptop does it.
Screenshots · Files · Shell · Processes · Power · Mouse & Keyboard · AI

Python 3.9+ Platform MIT License AI Providers


🤔 What Is This?

Salim turns your laptop into a bot you can control from anywhere in the world using Telegram — the free messaging app.

Left your laptop at home? Left a download running? Want to check if your computer is overheating? Need to grab a file from your machine while you're out?

Just text your bot. That's it.

You can use plain English thanks to built-in AI — or use quick /commands if you prefer.

You:    "take a screenshot"
Salim:  📸 [sends screenshot to Telegram]

You:    "how much RAM am I using?"
Salim:  🧠 RAM: 8.2 GB / 16 GB (51%)

You:    "find my day 3 recording"
Salim:  🔍 Found 3 results:
        1️⃣ 🎬 day3_recording.mp4 — ~/Videos — 2.1 GB
        [⬇️ Send] [🗑️ Delete]

⚡ Get Started in 3 Minutes

Step 1 — Install

pip install salim

That's the only command needed. Python 3.9 or newer required.

Don't have Python? Download it free from python.org. After installing, open Terminal (Mac/Linux) or Command Prompt (Windows) and run the command above.


Step 2 — Run Setup

salim setup

A friendly wizard will walk you through everything:

  1. Get a Telegram bot token — instructions are shown on screen
  2. Add your Telegram user ID — so only you can control your laptop
  3. Optionally configure one Groq API key — lets you type in plain English instead of commands
  4. Choose a current Groq free-plan model — the wizard lists the supported choices

Step 3 — Start

salim start

Open Telegram, find your bot, send /start — and you're in control.


🤖 AI Mode — Just Type Naturally

When you set up the optional Groq AI integration, you don't need to remember any commands. Just talk normally:

What you type What happens
take a screenshot Takes and sends a screenshot
how's my RAM? Shows memory usage
find my day 3 recording Searches laptop, shows results with buttons
write a csv about GDC AI writes a CSV file and saves it to Desktop
write me a resume for Ahmed Creates a professional Word resume (.docx)
create an invoice for Acme Corp Builds a formatted Excel invoice (.xlsx)
make a cover letter for Google Generates a formatted cover letter (.docx)
mute the volume Mutes your speakers
lock my screen Locks the laptop
check what's running Lists active processes
shut down Asks for confirmation, then shuts down

Groq is the only AI API configured by onboarding. Get a key from Groq Console.

Current Groq free-plan model choices

The setup wizard lists these current models from Groq's supported free-plan catalog:

Model Best use Approx. speed
openai/gpt-oss-120b Complex commands and reasoning ~500 tokens/sec
openai/gpt-oss-20b Fast everyday laptop control ~1000 tokens/sec
openai/gpt-oss-safeguard-20b Safety-focused deployments ~1000 tokens/sec
qwen/qwen3.8-27b Multilingual and structured output ~450 tokens/sec

Availability and limits are controlled by Groq. See the official supported models and rate limits.


📱 All Commands

You can also use slash commands directly — no AI needed.

🖥️ System Info

Command What it does
/info Full overview: OS, CPU, RAM, disk, battery, uptime
/cpu Per-core CPU usage with visual bar chart
/mem RAM and swap usage
/disk All drives with used/free space
/battery Charge level, plugged in or not, time remaining
/network IP addresses, connection speed
/uptime How long the computer has been running
/top Live resource monitor (updates 5 times)

⚙️ Processes

Command What it does
/ps [name] List running programs (optional: filter by name)
/kill <pid> Stop a process by its ID
/top See what's using the most CPU/RAM

💻 Shell (Run Commands)

Command What it does
/run <command> Run any terminal command
/runbg <command> Run in background, get notified when done
/pipe cmd1 ||| cmd2 Chain commands with pipes
/env View environment variables
/which <program> Find where a program is installed
/cron <seconds> <cmd> Run a command repeatedly on a schedule
/cronjobs List your scheduled tasks
/cronstop <id> Stop a scheduled task

📂 Files

Command What it does
/ls [path] List files in a directory
/cd <path> Change working directory
/pwd Show current directory
/cat <file> Read a file's contents
/find <name> Search for files by name
/grep <text> Search inside files for text
/mkdir <name> Create a folder
/rm <path> Delete a file or folder (asks for confirmation)
/mv <from> <to> Move or rename a file
/cp <from> <to> Copy a file
/write <file> <text> Write text to a file
/download <path> Send a file from your laptop to Telegram
/upload Send a file from Telegram to your laptop
/zip <path> Create a zip archive
/unzip <file> Extract a zip archive

📸 Screen & Input

Command What it does
/screenshot or /ss Take and send a screenshot
/screenshot 3 Take screenshot after 3-second delay
/type <text> Type text as if using the keyboard
/key <shortcut> Press a keyboard shortcut (e.g. ctrl+c, cmd+space)
/click <x> <y> Click the mouse at screen coordinates
/scroll <amount> Scroll the mouse wheel
/move <x> <y> Move mouse cursor
/mousepos See current cursor position
/open <app or url> Open an app, file, or website

📋 Clipboard

Command What it does
/copy <text> Copy text to clipboard
/paste Read what's in the clipboard

🔔 Notifications & Media

Command What it does
/notify <title> | <message> Send a desktop notification
/volume Check current volume level
/volume 50 Set volume to 50%
/volume mute Mute or unmute
/brightness 80 Set screen brightness to 80%

🔋 Power

Command What it does
/shutdown Shut down (asks for confirmation)
/restart Restart (asks for confirmation)
/sleep Put laptop to sleep
/hibernate Hibernate
/lock Lock the screen
/logout Log out the current user
/screensaver Start the screensaver
/displays List connected displays

📄 Document Writer

Command What it does
/doc resume for <name> Creates a professional CV/resume (.docx)
/doc cover letter for <position> Formal cover letter (.docx)
/doc job application for <company> Job application letter (.docx)
/doc resignation letter Resignation letter (.docx)
/doc NOC for <person> No Objection Certificate (.docx)
/doc memo about <topic> Office memo / memorandum (.docx)
/doc meeting minutes Minutes of meeting (.docx)
/doc business report on <topic> Formal business report (.docx)
/doc invoice for <client> Professional invoice with auto-totals (.xlsx)
/doc budget tracker for <month> Monthly budget with variance tracking (.xlsx)
/doc expense report Expense report with total (.xlsx)
/doc project plan Project task tracker with status colors (.xlsx)
/doc attendance sheet Staff attendance with auto-count (.xlsx)
/doc salary sheet Payroll sheet with net salary formula (.xlsx)
/doc inventory list Stock inventory with reorder alerts (.xlsx)

All documents are saved to your Desktop and sent directly to Telegram.

Formatting standards applied automatically:

  • Font: Calibri 11pt (professional docs) · Times New Roman 12pt (formal/legal)
  • Margins: 1 inch all sides, US Letter page size
  • Color-coded headers, justified body text, bold section titles
  • Excel files use live formulas (not hardcoded values)

⚙️ Bot Settings

Command What it does
/config View all settings
/config set <key> <value> Change a setting
/logs See recent command history
/status Quick check: is everything working?

🔒 Security — Only You Can Control It

Salim is built so that no one else can touch your laptop through the bot:

  • User whitelist — Only Telegram accounts you approve can send commands
  • Silent rejection — Strangers get zero response (no hints that a bot even exists)
  • Confirmation dialogs — Dangerous actions (shutdown, delete) require you to tap "Yes" in Telegram
  • Audit log — Every command is recorded with timestamp and who sent it
  • Secure storage — Your credentials are stored locally with strict file permissions (chmod 600)
  • Token privacy — Your bot token is never shown in full or written to logs

Adding trusted users

salim adduser    # Interactive — shows you step-by-step

Or add multiple user IDs directly in ~/.salim/config.env:

SALIM_ALLOWED_IDS=111222333,444555666

Finding your Telegram user ID: Message @userinfobot on Telegram and send /start. It will reply with your numeric ID.


🛠️ CLI Commands

salim setup      # Run the setup wizard (first-time or to change settings)
salim start      # Start your bot
salim start -v   # Start with detailed logging
salim status     # Check configuration and installed features
salim config     # View or edit settings interactively
salim logs       # View the command history
salim test       # Test your Telegram connection
salim adduser    # Add a new authorized user
salim stop       # Stop the bot (if running in background)
salim uninstall  # Remove all Salim data from your computer

🔧 Configuration File

Settings are saved in ~/.salim/config.env. You can edit this file directly or use salim config.

SALIM_BOT_TOKEN=1234567890:ABCdef...        # Your Telegram bot token
SALIM_ALLOWED_IDS=123456789                  # Comma-separated user IDs
SALIM_DOWNLOAD_DIR=/Users/you/Downloads      # Where to look for downloadable files
SALIM_UPLOAD_DIR=/Users/you/Desktop         # Where to save uploaded files
SALIM_MAX_FILE_MB=50                         # Max size of files to send via Telegram
SALIM_SCREENSHOT_QUALITY=85                 # JPEG quality for screenshots (1-100)
SALIM_LOG_COMMANDS=true                     # Keep an audit log of all commands

# Groq AI integration (optional — set during setup or add manually)
SALIM_GROQ_API_KEY=gsk_...
SALIM_GROQ_MODEL=openai/gpt-oss-120b

You can also change settings from inside Telegram:

/config set max_file_mb 200
/config set screenshot_quality 95

🚀 Run Automatically at Startup

Want Salim to start every time your computer boots?

macOS

# Save this as ~/Library/LaunchAgents/com.salim.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.salim</string>
    <key>ProgramArguments</key>  <array><string>/usr/local/bin/salim</string><string>start</string><string>--no-banner</string></array>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>StandardErrorPath</key> <string>/tmp/salim.err</string>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.salim.plist

Linux (systemd)

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

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

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

Windows (Task Scheduler)

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

📦 Optional Features

Some features require extra packages. Install them for the full experience:

pip install pyautogui Pillow pyperclip aiofiles
Package What it unlocks
pyautogui Screenshots, mouse control, keyboard automation
Pillow Screenshot compression (smaller file sizes)
pyperclip Clipboard read/write
aiofiles Faster file transfers

If these aren't installed, Salim will tell you which commands need them and how to get them.


❓ Common Questions

Do I need technical knowledge to use this? Not at all. Run pip install salim then salim setup — the wizard explains every step clearly with examples.

Is it safe to leave running? Yes. Only your approved Telegram accounts can send commands. All others are completely ignored.

What if I lose internet / Telegram goes down? Salim will automatically reconnect. The bot just waits patiently.

Can multiple people control one laptop? Yes — add multiple Telegram user IDs with salim adduser. Each person's commands are logged separately.

Do I need to pay for the AI features? Groq provides free-plan access to the supported models, subject to its published rate limits. Paid plans may provide higher limits.

Does this work on Windows? Yes — macOS, Linux, and Windows are all supported.

What if a command fails? Salim tells you exactly what went wrong in plain English. For AI key problems, it tells you the exact error (like "401 Unauthorized") so you know whether it's a wrong key or a network issue.


📄 License

MIT — free to use, modify, and share. See LICENSE.


Made with ❤️ — Control your world from your pocket.

Metadata

Release files for salim 3.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for salim 3.0.4
File Size Uploaded
salim-3.0.4.tar.gz 198.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for salim 3.0.4
File Interpreter ABI Platform
salim-3.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 421.8 kB

Release files / salim-3.0.4.tar.gz

Download URL salim-3.0.4.tar.gz
Size 198.4 kB
Tags Source
SHA-256 checksum
How to use checksums
137bda796e271c89ef42ad4984e3e4cde22a73a05eee48f240ffb9a3ee6eb51e
BLAKE2b-256 checksum
How to use checksums
76f6773062f97fb1bcea2562c80e4cbc9c755bcb14e48626268d800adf9e2203
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / salim-3.0.4-py3-none-any.whl

Download URL salim-3.0.4-py3-none-any.whl
Size 223.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3c934a1b2cf8227dfcc09c542024026e883c5ce5077ecac1c20ca7c9965c81d
BLAKE2b-256 checksum
How to use checksums
e254c1e4f7b4b565662e0dd227e2d16dd0f1e2b5be15972342768c2585aaa317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

3.0.4 This release

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.1

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.3

2 release files

2.2.0

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

1.19.0

2 release files

1.18.0

2 release files

1.17.0

2 release files

1.16.0

2 release files

1.15.0

2 release files

1.14.0

2 release files

1.13.5

2 release files

1.13.4

2 release files

1.12.3

2 release files

1.12.2

2 release files

1.12.1

2 release files

1.12.0

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release 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