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.
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
statper file is what makes a remote filesystem feel broken on a directory of any size. - Only
statis 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.