RemoteConnect is a robust, production-ready, open-source remote desktop, background input injector, sandboxed file manager, and bidirectional clipboard synchronization suite. It consists of a Node.js Desktop Background Agent for Windows and a beautiful Flutter Mobile Client for Android.
The system features a Dual-User Coexistence (Independent Seat Mode), allowing a remote mobile user to fully interact with applications on a secondary virtual display without taking focus away from the primary user's mouse and keyboard on Monitor 1.
- Dual-User Coexistence (True Independent Seat):
- Injects mouse inputs (
click,move,scroll,drag) and keyboard typing directly into specific application window queues (HWND) via a background C# Win32 compiler bridge. - Allows two users to operate the same PC simultaneously without cursor hijacking or focus-stealing.
- Multi-monitor coordinate translation propagates accurately across mixed-DPI screen layouts (e.g. 125% scale on Monitor 1, 100% on Monitor 2).
- Injects mouse inputs (
- Fast Screen Streaming:
- Encoded JPEG-over-WebSocket mirroring pipeline.
- Configure performance dynamically: low, medium, or high quality, and target frame rates of 15, 30, or 60 FPS.
- Fast monitor switching support for multi-display layouts.
- Remote Input Controls:
- Native OTG hardware mouse passthrough (move, drag, left/right/middle click, and scrolling) directly to the desktop agent.
- Touchscreen controls: single-tap (left click), double-tap (double click), long-press (right click), and double-finger drag (scroll wheel emulation).
- Full keyboard controller with modifier toggles (
Ctrl,Alt,Shift,Win) and arrow navigation D-Pad.
- Sandboxed File Explorer:
- Browse home folders (Desktop, Downloads, Documents, Pictures, Videos) via interactive chips.
- Download, upload, rename, move, and delete files with dynamic transfer progress bars.
- Bidirectional Clipboard Synchronizer:
- Sync clips instantly. Turn on Auto-Sync to push/pull clipboard text in the background.
- Silent Windows Autostart:
- Built-in registry installer that registers the agent as a silent Windows background startup process.
remote/
├── LICENSE # MIT License file
├── README.md # SEO-optimized documentation
├── desktop-agent/ # Node.js Desktop Background Agent
│ ├── src/
│ │ ├── auth/ # JWT auth & pairing database
│ │ ├── clipboard/ # Clipboard polling & sync
│ │ ├── device/ # Device info & monitor config
│ │ ├── files/ # File sandbox REST API
│ │ ├── input/ # Keyboard & mouse robot inputs (C# bridge compiler)
│ │ ├── screen/ # Multi-monitor screenshot encoder
│ │ ├── tunnel/ # Cloudflared subprocess spawn manager
│ │ └── server.js # Main Express + Socket.IO Server
│ ├── install.bat # Add to Windows Registry Run keys
│ └── stop.bat # Safely terminate agent process
└── mobile-app/ # Flutter (Material 3) Mobile Client
├── lib/
│ ├── core/ # Theme, Navigation Shell, Router
│ ├── features/ # Screens (Dashboard, Screen, Files, Keyboard, etc.)
│ └── shared/ # API Clients, Socket manager, Storage service
└── pubspec.yaml # App dependencies configuration
- Node.js (>= 18.0.0)
- .NET Framework (csc.exe compiler pre-installed on Windows for background C# injection)
- Navigate to the
desktop-agentdirectory:cd desktop-agent npm install - Initialize and configure the environment variables:
- Run the automated setup script to create
.env(if not present) and populate it with strong cryptographic JWT secrets:node generate-secrets.js
- Open the newly generated
.envfile and set your secure agent credentials and optional custom URL:AGENT_USER=admin AGENT_PASSWORD=your_secure_password CUSTOM_URL=https://your-custom-tunnel.com
- Run the automated setup script to create
- Start the agent:
npm start
- Double-click
install.bat(or run it as Administrator). This registers the startup key under registry pathHKCU\Software\Microsoft\Windows\CurrentVersion\Run, which silently boots the agent hidden in the background using VBScript on system start. - To terminate the server, run
stop.bat.
- Pre-compiled APK: Download the latest release directly from sarang-space.site/remote
- Flutter SDK (>= 3.0.0)
- Android SDK / Device (USB Debugging enabled)
For open-source deployment, default credentials and domains are configured via environment compile-time definitions rather than being hardcoded in the source:
flutter run --dart-define=DEFAULT_URL=https://your-custom-tunnel-url.site \
--dart-define=DEFAULT_USER=admin \
--dart-define=DEFAULT_PASSWORD=your_passwordIf these parameters are omitted, the app defaults to safe local development values:
- URL:
http://192.168.1.100:9678 - User:
admin - Password:
admin123
To build the release Android package with desugaring libraries enabled:
cd mobile-app
flutter build apk --releaseThe compiled APK will be available at:
mobile-app/build/app/outputs/flutter-apk/app-release.apk
To work on Monitor 2 from your mobile client while someone else uses Monitor 1 locally:
- Virtual Display Driver (VDD): Install the Virtual Display Driver (VDD) on Windows:
winget install VirtualDrivers.Virtual-Display-Driver
- Activate Monitor 2: Launch the
VDD Control.exetool with admin privileges to create a virtual Monitor 2. - Connect Mobile Client:
- Log in and navigate to the Screen tab.
- Tap the Switch Monitor icon in the App Bar and select Monitor 2.
- Tap the Coexist Mode button to cycle to Independent Seat Mode.
- Result: Your taps, typing, and mouse scrolls are sent through
PostMessagedirectly to background window message queues on Monitor 2. The host PC's primary cursor remains completely uninterrupted on Monitor 1!
This project is licensed under the terms of the MIT License.
- GitHub: https://github.com/Saarangggg
- Instagram: https://instagram.com/5araang