ScreenSpyApp/
├── src/
│ ├── __init__.py
│ ├── main.py
│ ├── logger.py
│ ├── database.py
│ ├── screenshot.py
│ ├── telegram_bot.py
│ ├── config_manager.py
│ ├── switch_control.py
│ └── utils.py
├── data/
│ ├── activity_log.db
│ └── screenshots/
├── tests/
│ ├── __init__.py
│ ├── test_logger.py
│ └── test_database.py
├── requirements.txt
├── README.md
├── LICENSE
└── setup.sh
ScreenSpy is a Python-based application that logs screen activities, captures screenshots, and sends them to a designated Telegram chat. It runs as a background process with a configurable ON/OFF switch for controlling monitoring.
- Captures screenshots at regular intervals
- Logs activities with timestamps in a SQLite database
- Sends screenshots to the owner's Telegram account
- Configurable spy switch (ON/OFF)
- Resource-efficient and extensible design
- Clone the repository:
git clone https://github.com/AmSh4/Screen-Spy-App.git cd ScreenSpyApp
- Install dependencies:
pip install -r requirements.txt
- Set up Telegram bot: Create a Telegram bot via BotFather and get the API token Get your chat ID Update config.ini with your Telegram token and chat ID
- Run the setup script:
chmod +x setup.sh./setup.sh
- Start the application:
python src/main.py
Edit config.ini to set:
DB_PATH: Path to SQLite database INTERVAL: Screenshot interval (seconds) TELEGRAM_TOKEN: Your Telegram bot token CHAT_ID: Your Telegram chat ID
The application runs in the background and captures screenshots when the switch (switch.txt) is set to ON. To toggle the spy feature, edit switch.txt to ON or OFF.
src/: Core application code data/: SQLite database and screenshots tests/: Unit tests for logger and database requirements.txt: Python dependencies README.md: Project documentation LICENSE: MIT License setup.sh: Setup script
Run unit tests:
Collapse
Wrap
Copy
python -m unittest discover tests