Skip to main content

Control your laptop from Telegram โ€” plus 40+ integrations: GitHub, Slack, Notion, Docker, Jira, Todoist, Google Drive, Dropbox, S3, Redis, PostgreSQL, MySQL, Stability AI, Hugging Face, DigitalOcean, Hetzner, smart home, local LLM, and more.

Project description

๐Ÿ–ฅ๏ธ 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 โ€” takes 30 seconds (instructions shown on screen)
  2. Add your Telegram user ID โ€” so only you can control your laptop
  3. Optionally add free AI keys โ€” lets you type in plain English instead of commands

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 AI (optional but recommended โ€” it's free!), 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
turn on the living room lights Controls Home Assistant / smart home devices
turn off bedroom fan Smart home โ€” any connected device
activate movie scene Triggers a Home Assistant scene
use local AI Switches to Ollama (local LLM, fully offline)

Three free cloud AI providers โ€” all optional:

Provider Where to get key Speed
๐ŸŸข NVIDIA NIM build.nvidia.com Fast
๐ŸŸก Groq console.groq.com Ultra-fast
๐Ÿ”ต Z.AI (Zhipu) z.ai Fast & 100% free

Salim tries them in order โ€” if one fails, it falls back to the next automatically.

Local / Offline AI via Ollama (no API key needed):

Setup What it does
Install Ollama Download from ollama.com โ€” free, runs on your machine
Pull a model ollama pull llama3 (or mistral, phi3, gemma3, deepseek-r1, etc.)
Enable in Salim salim config set SALIM_OLLAMA_ENABLED true
Choose model salim config set SALIM_OLLAMA_MODEL llama3

With Ollama enabled, no internet connection is needed for AI features โ€” everything runs locally. Your data never leaves your machine. Ollama is the last in the fallback chain (cloud providers tried first).


๐Ÿ“ฑ 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)

๐Ÿ  Smart Home & IoT

Control any smart device from Telegram โ€” lights, plugs, thermostats, covers, locks, and more.

Command What it does
/smarthome addHub ha <url> <token> Connect your Home Assistant instance
/smarthome addHub mqtt <host> [port] Connect an MQTT broker
/smarthome add <name> tasmota <ip> Add a Tasmota device
/smarthome add <name> tuya <id> <ip> <key> Add a Tuya device
/smarthome add <name> http <on-url> <off-url> Add any HTTP-controlled device
/smarthome devices List all registered devices
/smarthome on <device> Turn a device on
/smarthome off <device> Turn a device off
/smarthome toggle <device> Toggle device state
/smarthome status <device> Get current device state
/smarthome set <device> <value> Set brightness %, colour (#hex), or temperature
/smarthome scenes List available Home Assistant scenes
/smarthome scene <name> Activate a scene
/smarthome discover Re-sync devices from Home Assistant
/smarthome mqtt <topic> <payload> Publish a raw MQTT message
/sh <device> <on|off|toggle> Quick alias for fast control

Supported hubs & protocols:

  • ๐ŸŸข Home Assistant โ€” auto-discovers all your entities, controls lights/switches/climate/covers/locks/media
  • ๐Ÿ“ก MQTT โ€” generic IoT protocol, works with any MQTT-enabled device
  • ๐Ÿ”Œ Tasmota โ€” open-source firmware, direct HTTP control
  • ๐ŸŒ Tuya โ€” Wi-Fi smart plugs, bulbs, switches (via local LAN key)
  • ๐Ÿ”— Generic HTTP โ€” any device with an on/off REST endpoint

Optional dependencies for smart home:

pip install paho-mqtt    # MQTT broker support
pip install tinytuya     # Tuya device support

Or install everything: pip install salim[smarthome]

โš™๏ธ 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

# AI keys (optional โ€” set during setup or add manually)
SALIM_NVIDIA_API_KEY=nvapi-...
SALIM_NVIDIA_MODEL=meta/llama-4-maverick-17b-128e-instruct
SALIM_GROQ_API_KEY=gsk_...
SALIM_GROQ_MODEL=openai/gpt-oss-120b
SALIM_ZAI_API_KEY=...
SALIM_ZAI_MODEL=glm-4.7-flash

# Local / offline AI via Ollama (no API key needed)
# Install Ollama: https://ollama.com/download  then: ollama pull llama3
SALIM_OLLAMA_ENABLED=false            # set to true to enable
SALIM_OLLAMA_MODEL=llama3             # any model you have pulled
SALIM_OLLAMA_URL=http://localhost:11434  # change if Ollama runs elsewhere

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.


๐Ÿ”Œ Skills โ€” Any File Type

Drop any file into ~/.salim/skills/ and Salim will load it as a skill:

Extension Runtime Notes
.py Python Full power โ€” define a class with cmd_* methods
.sh / .bash / .zsh Shell Executed directly, stdout sent to Telegram
.js / .mjs Node.js Requires node installed
.rb Ruby Requires ruby installed
.lua Lua Requires lua installed
.php PHP Requires php installed
.pl Perl Requires perl installed
.md / .txt AI instruction Content injected as AI system prompt
.json / .yaml AI instruction Parsed for name/commands/instructions
.* (any other) AI instruction Any file type โ€” treated as AI instruction doc

Shell skill example (~/.salim/skills/backup.sh):

#!/bin/bash
# skill_name: backup
# skill_description: Back up my Documents folder
# skill_commands: backup
tar czf ~/backup_$(date +%Y%m%d).tar.gz ~/Documents && echo "Backup done!"

Markdown skill example (~/.salim/skills/haiku.md):

# skill_name: haiku
# skill_description: Write a haiku about any topic
# skill_commands: haiku
Write a beautiful haiku (5-7-5 syllables) about the topic the user gives you.
Always end with a relevant emoji.

After adding a file: /skills reload โ€” no restart needed.


โ“ 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? No. All three AI providers (NVIDIA NIM, Groq, Z.AI) have completely free tiers that are more than enough for personal use. Z.AI's Flash models have no stated limits at all.

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.

Project details


Download files

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

Source Distribution

salim-2.1.5.tar.gz (267.7 kB view details)

Uploaded Source

Built Distribution

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

salim-2.1.5-py3-none-any.whl (289.1 kB view details)

Uploaded Python 3

File details

Details for the file salim-2.1.5.tar.gz.

File metadata

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

File hashes

Hashes for salim-2.1.5.tar.gz
Algorithm Hash digest
SHA256 607a9a7979b0afb5576b5e0410dddda1af3c533bd7305320fa00bac1aecb9f28
MD5 7b6e2fd4f16d00a9b6608cea78d62d46
BLAKE2b-256 58107888150d19a435063dea0cc9ba435fbd5394b83fa857f1b373999c1054ad

See more details on using hashes here.

File details

Details for the file salim-2.1.5-py3-none-any.whl.

File metadata

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

File hashes

Hashes for salim-2.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1bb80815c15402561bd4c619d49f3578756f52cea370d66382286be3845c8a22
MD5 4341970bffb1b06fb7790ccb6cad5b1f
BLAKE2b-256 de4f21e87fc75e985bfd597137a2d67a92e26286c6472d371d6904ee5b02ead5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page