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

PackageDescription
@remote-pilot/sharedShared TypeScript types and protocol definitions
@remote-pilot/serverExpress and WebSocket relay server
@remote-pilot/extensionVS Code extension (chat watcher and commands)
@remote-pilot/webReact web UI built with Vite

Prerequisites

  • Node.js >= 20
  • pnpm >= 10

Getting Started

  1. Clone the repository and enter the directory:

    git clone https://github.com/ilteoood/remote-pilot.git
    cd remote-pilot
    
  2. Install dependencies:

    pnpm install
    
  3. Build all packages:

    pnpm build
    
  4. Open the packages/extension folder in VS Code or install the generated VSIX file.

  5. Run the "Remote Pilot: Start Server" command from the VS Code Command Palette.

  6. Open http://localhost:3847 in your browser.

  7. Enter the 6-digit pairing code displayed in the VS Code notification.

Configuration

You can customize the following settings in VS Code:

SettingTypeDefaultDescription
remotePilot.serverPortnumber3847The port used by the relay server
remotePilot.autoStartbooleanfalseAutomatically start the server on VS Code launch
remotePilot.allowLanbooleanfalseBind 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