Skip to content
pilots
Dashboard
All pages

The VS Code extension

A machine is a folder you are editing. Open one as a workspace folder and every ordinary thing the editor does -- open, edit, save, search, rename, drag a file in -- happens inside the machine.

Install

Search for pilots in the Extensions view, or install pilots on the VS Code Marketplace. Nothing is installed in the guest.

pilots: Open Machine adds a pilot://<name>/<path> workspace folder beside whatever you already had open. pilots: Open Terminal puts a real shell in the same machine next to it, so the editor and the terminal agree about what is on disk.

Command palette
pilots: Open Machine

Commands

Command What it does
pilots: Set API Token Stores a token in the editor's secret storage. Never a setting: a setting is synced and readable by every other extension.
pilots: Open Machine Adds the machine as a workspace folder.
pilots: Create Machine Creates one and offers to open it.
pilots: Open Terminal pilot console in a terminal panel.
pilots: Destroy Machine Destroys it, after a confirmation, and removes its folder from the workspace.
pilots: Refresh Files Drops the stat cache, for when something changed under you.
Download to Local On a pilot:// file, in the explorer or the editor tab menu.

Signing in

Nothing, if you have run pilot login: the extension reads the credential the CLI filed at ~/.config/pilots/credentials, along with the fleet it was filed against.

pilot login

pilots: Set API Token is for the other cases -- a token minted on the dashboard's Tokens page, or a second fleet. A token set there wins over the CLI's and lives in the editor's keychain rather than on disk.

Settings

Setting Default What it does
pilots.apiUrl empty The fleet's API URL. Empty uses the fleet in the CLI's credential, then PILOT_API_URL, then https://api.pilotrun.app.
pilots.home /home/pilot The directory Open Machine prefers. A preference, not a rule: a machine with no such directory opens where its code is, else at its own home, else at the root.

How it works

Every read and write is a command in the guest over the same exec route an agent uses, base64-encoded so binaries, CRLF and unicode survive a shell. There is no agent to install in the machine and no port to open, and a write to a suspended machine wakes it.

  • A listing costs ONE round trip, not one per entry. A stat per file is what makes a remote filesystem feel broken on a directory of any size.
  • Only stat is cached, and only for two seconds. A filesystem the editor caches is a filesystem that disagrees with the terminal running beside it.

Neovim

The Neovim plugin does the same thing over the same pilot:// URL scheme, with a terminal command beside it. Its guest commands are a port of this extension's, so a fix to one is a fix owed to the other.

Agents and MCP covers the other interfaces, and sandboxes covers what you are editing.