Remote Pilot
February 28, 2026 ยท View on GitHub
Remotely monitor and interact with your VS Code Copilot chat sessions from any browser.
Overview
Copilot agent tasks often stall when they need user approval or manual intervention to continue. Remote Pilot provides a self-hosted web interface that lets you manage these sessions from any device without being glued to your workstation. You can monitor progress, provide feedback, and keep long-running tasks moving from your phone, tablet, or another computer.
Architecture
Web Browser <--WebSocket--> Server (localhost) <--WebSocket--> VS Code Extension
The VS Code extension spawns the relay server as a background child process. The server monitors VS Code's internal chat history files on disk to provide a real-time view of active sessions. Security is handled via a 6-digit pairing code generated by the extension and required by web clients for authentication.
Packages
| Package | Description |
|---|---|
@remote-pilot/shared | Shared TypeScript types and protocol definitions |
@remote-pilot/server | Express and WebSocket relay server |
@remote-pilot/extension | VS Code extension (chat watcher and commands) |
@remote-pilot/web | React web UI built with Vite |
Prerequisites
- Node.js >= 20
- pnpm >= 10
Getting Started
-
Clone the repository and enter the directory:
git clone https://github.com/ilteoood/remote-pilot.git cd remote-pilot -
Install dependencies:
pnpm install -
Build all packages:
pnpm build -
Open the
packages/extensionfolder in VS Code or install the generated VSIX file. -
Run the "Remote Pilot: Start Server" command from the VS Code Command Palette.
-
Open
http://localhost:3847in your browser. -
Enter the 6-digit pairing code displayed in the VS Code notification.
Configuration
You can customize the following settings in VS Code:
| Setting | Type | Default | Description |
|---|---|---|---|
remotePilot.serverPort | number | 3847 | The port used by the relay server |
remotePilot.autoStart | boolean | false | Automatically start the server on VS Code launch |
remotePilot.allowLan | boolean | false | Bind to 0.0.0.0 to allow connections from other devices on the LAN |
Features
- View all active Copilot chat sessions in real-time.
- Send messages to Copilot from any connected browser.
- Accept or reject pending code edits remotely.
- Continue stalled iterations with a single tap.
- Start new chat sessions from the web interface.
- Support for macOS, Windows, and Linux.
- Fully self-hosted with no third-party servers or data collection.
- Secure communication using token-based WebSocket authentication and pairing codes.
Development
The project uses Turborepo to manage the build pipeline and package dependencies.
pnpm build: Build all packages in the correct order.pnpm dev: Start development mode for all packages.pnpm clean: Remove build artifacts from all packages.
How It Works
The extension monitors the VS Code workspace storage directory for changes to chat session files. When a session updates, the extension reads the JSON data from disk and relays it to the server over a WebSocket connection. The server then pushes these updates to all authenticated web clients.
When you take an action in the web UI, the command is sent back through the server to the extension. The extension executes the corresponding VS Code internal commands to send messages or handle code edits. This approach avoids brittle hacks like screen scraping or clipboard manipulation.
Security
Remote Pilot is designed to run locally. It uses token-based authentication between the extension and the server. Web clients must provide a 6-digit pairing code that matches the one generated by the extension to establish a connection. By default, the server binds to localhost to prevent unauthorized external access.
License
MIT