A real-time remote control web application built with Flask and Socket.IO that enables seamless control of Windows machines through your web browser. Perfect for remote administration, support, and management across your local network.
- High-performance desktop streaming with configurable quality, resolution, and FPS
- Powered by DXCam for the best screen capture performance on Windows
- Server β Client: Stream system audio or microphone input
- Client β Server: Transmit microphone audio with real-time processing
- Configurable audio sample rate settings
- Full mouse control (move, click, scroll) with a synchronized cursor overlay for accurate visual feedback.
- Full keyboard input support (send text, shortcuts, and custom key combinations).
- Browse files and folders.
- Upload files (with drag-and-drop support).
- Download files.
- Delete files and folders.
- Create new folders.
- Rename files and folders.
- View a list of running processes.
- Expand/collapse process groups.
- Sort processes by name, PID, CPU usage, and memory usage.
- Terminate processes remotely.
- Displays total CPU usage and memory usage.
- Interactive Shell: Real-time command execution with live output
- System Information: Display detailed system information of the remote machine (CPU, memory, disk, network, etc.).
- Security: Role-based authentication with session management
- Responsive Design: Tailwind CSS-powered interface that works on any device
Click to expand/collapse the project structure
Remote-Control/
βββ config/
β βββ auth_config.py # Authentication configuration
β βββ server_config.py # Server configuration
βββ core/
β βββ audio_manager.py # AudioManager class
β βββ input_manager.py # InputManager class
β βββ keyboard_controller.py # Windows-specific keyboard control
β βββ mouse_controller.py # Windows-specific mouse control
β βββ shell_manager.py # ShellManager class
β βββ stream_manager.py # StreamManager class
β βββ system_manager.py # SystemManager class
β βββ task_manager.py # TaskManager class
βββ events/
β βββ __init__.py
β βββ audio_events.py # Audio-related socket events
β βββ auth_events.py # Auth socket events
β βββ connection_events.py # Socket connection events
β βββ input_events.py # Mouse/keyboard socket events
β βββ shell_events.py # Shell socket events
β βββ task_events.py # Task manager events
βββ routes/
β βββ auth_routes.py # Login/logout routes
β βββ file_routes.py # File management routes
β βββ input_routes.py # Keyboard/mouse input routes
β βββ shell_routes.py # Shell routes
β βββ stream_routes.py # Streaming related routes
β βββ system_routes.py # System info
β βββ task_routes.py # Task manager routes
βββ static/
β βββ css/
β β βββ styles.css
β β βββ tailwind.css
β βββ js/
β βββ modules/
β β βββ audio.js # AudioManager class
β β βββ audio-worklet-processor.js
β β βββ connection.js # Socket.IO connection management
β β βββ dom.js # DOM manipulation utilities
β β βββ file.js # File management functions
β β βββ input.js # Keyboard and mouse input handling
β β βββ nav.js # Navigation function
β β βββ shell.js # InteractiveShell class
β β βββ stream.js # Stream setup, control, and UI updates
β β βββ system.js # System information display
β β βββ task.js # Task manager functions
β β βββ utils.js # General utility functions (like apiCall)
β βββ main.js # Main initialization and event handling
βββ templates/
β βββ index.html
β βββ login.html
βββ app.py # Main application setup
βββ extensions.py # SocketIO initialization
βββ server.py # Main entry point
# Clone the repository
git clone https://github.com/marginal23326/Remote-Control.git
cd Remote-Control
# Install dependencies
pip install -r requirements.txtWhen you run the application for the first time, you will be prompted in the console to set up a username and password. These credentials will be used for authentication.
python server.py <port>(Replace <port> with your desired port number, e.g., 5000)
Open your browser and navigate to:
http://<server-ip>:<port>
Example:
http://192.168.1.100:5000
-
Install PyInstaller:
pip install pyinstaller
-
Run the build script:
build_exe.bat
The compiled executable will be available in the dist directory.
- Security: This application is designed for trusted networks. Be very cautious about exposing it directly to the Internet; only use it on your trusted local network.
- Windows 10/11 Only: Server-side functionality requires Windows due to system-specific dependencies.
- Permissions: Administrator privilege is required to access certain restricted folders in the file browser; everything else doesn't require it.
This project is licensed under the MIT Licenseβsee the LICENSE file for details.