The Coder Remote extension connects your editor to Coder workspaces with a single click.
- One-click workspace access - open workspaces from the Coder dashboard or the editor sidebar. Workspaces start automatically when opened.
- Multi-editor support - works with VS Code, Cursor, Windsurf, and other VS Code forks.
- Workspace sidebar - browse, search, and create workspaces. View agent metadata and app statuses at a glance.
- Coder Tasks - create, monitor, and manage AI agent tasks directly from the sidebar with real-time log streaming.
- Multi-deployment support - connect to multiple Coder deployments and switch between them without losing credentials.
- Dev container support - open dev containers running inside workspaces.
- Secure authentication - session tokens stored in the OS keyring (macOS/Windows), with optional OAuth 2.1 support.
- Air-gapped / restricted networks - no external dependencies beyond your Coder deployment.
- Automatic SSH tuning - applies recommended SSH settings for reliable long-lived connections and recovers from sleep/wake.
Note
The extension builds on VS Code-provided implementations of SSH. Make sure you
have the correct SSH extension installed for your editor
(ms-vscode-remote.remote-ssh, anysphere.remote-ssh for Cursor, or
codeium.windsurf-remote-openssh for Windsurf).
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install coder.coder-remoteAlternatively, manually install the VSIX from the latest release.
All extension settings are under the coder.* namespace in the Settings UI.
Paths in settings accept ~ and ${userHome} from VS Code's
variables reference.
Several coder.* settings (paths, commands, hostnames, and proxy bypass
lists) are excluded from Settings Sync via ignoreSync, because their
values can depend on the specific machine or network where they were set.
Warning
Do not give any coder.* setting "scope": "machine". In a remote
window VS Code filters machine-scoped keys out of the local User
settings.json, so such a value only holds until the extension
registers its schema on activation. After that, the next re-parse of
settings.json (from an edit, a Settings Sync write, a profile switch,
or a tasks.json load) drops the value back to its default, with no
remote-side copy to fall back on. This intermittent revert is the cause
of #1032. Use application scope instead: it is honored in remote
windows regardless of timing. See #1034 for the mechanism and
reproduction.
The extension registers a URI handler that can open workspaces from outside
the editor, such as links on the Coder dashboard. The scheme matches the
editor (vscode://, cursor://, windsurf://, etc.), followed by the
extension ID and a path:
vscode://coder.coder-remote/open?owner=alice&workspace=dev&agent=main&folder=/home/coder/project
Opens a workspace, starting it first if needed.
| Parameter | Required | Description |
|---|---|---|
owner |
Yes | Username of the workspace owner. |
workspace |
Yes | Name of the workspace. |
agent |
No | Agent name (not ID). If omitted or unmatched in a multi-agent workspace, a picker is shown. |
folder |
No | Absolute path inside the workspace to open. If omitted, a recently opened folder for this workspace is used (a picker is shown when there are several); with no recents, the window opens without a folder. |
openRecent |
No | Open the most recently used folder for this workspace, skipping the picker. True when present without a value or set to true. Ignored when folder is set. |
url |
No | Coder deployment URL. If omitted, the extension prompts for it (pre-filled with the current deployment). |
token |
No | Session token for authentication. If omitted, the existing session is used or a login flow is started. |
Opens a dev container running inside a workspace.
| Parameter | Required | Description |
|---|---|---|
owner |
Yes | Username of the workspace owner. |
workspace |
Yes | Name of the workspace. |
agent |
Yes | Agent name the dev container runs on. |
devContainerName |
Yes | Name of the dev container. |
devContainerFolder |
Yes | Folder to open inside the dev container. |
localWorkspaceFolder |
No | Local path of the dev container project. Required if localConfigFile is set. |
localConfigFile |
No | Local path to the devcontainer.json file. |
url, token |
No | Same as /open. |
