Advanced
SSH Support
The usual SSH support in VSCode is licensed by Microsoft, so we have implemented our own just for Windsurf. It does require you to have OpenSSH installed, but otherwise has minimal dependencies, and should “just work” like you’re used to. You can access SSH under Remote-SSH
in the Command Palette, or via the Open a Remote Window
button in the bottom left.
This extension has worked great for our internal development, but there are some known caveats and bugs:
-
We currently only support SSHing into Linux-based remote hosts.
-
The usual Microsoft “Remote - SSH” extension (and the open-remote-ssh extension) will not work—please do not install them, as they conflict with our support.
-
We don’t have all the features of the Microsoft SSH extension right now. We mostly just support the important thing: connecting to a host. If you have feature requests, let us know!
-
Connecting to a remote host via SSH then accessing a devcontainer on that remote host won’t work like it does in VSCode. (We’re working on it!) For now, if you want to do this, we recommend instead manually setting up an SSH daemon inside your devcontainer. Here is the set-up which we’ve found to work, but please be careful to make sure it’s right for your use-case.
- Inside the devcontainer, run this once (running multiple times may mess up your
sshd_config
):
- Inside the devcontainer, run this in a terminal you keep alive (e.g. via tmux):
- Then just connect to your remote host via SSH in windsurf, but using the port 2222.
- Inside the devcontainer, run this once (running multiple times may mess up your
-
SSH agent-forwarding is on by default, and will use Windsurf’s latest connection to that host. If you’re having trouble with it, try reloading the window to refresh the connection.
-
On Windows, you’ll see some
cmd.exe
windows when it asks for your password. This is expected—we’ll get rid of them soon. -
If you have issues, please first make sure that you can ssh into your remote host using regular
ssh
in a terminal. If the problem persists, include the output from theOutput > Remote SSH (Windsurf)
tab in any bug reports!
Notes
- SSH + Dev Containers is not currently supported in Windsurf, but we plan to support it in the future.
- You can only SSH into Linux-based remote hosts at the moment (though you should be able to SSH from all platforms.) We plan to support Windows and macOS in the future.
Dev Containers (Beta)
Windsurf has beta support for dev containers for Mac, Windows, and Linux. To use this feature, Docker must be installed on your machine and be accessible from the Windsurf terminal.
If you would like to run a development container locally, you can use the following commands:
Open Folder in Container
- Open a new workspace with a specified devcontainer.json file
Reopen in Container
- Reopen the current workspace in a new container, specifying a devcontainer.json file to configure the container.
Attach to Running Container
- If you already have a Docker container running, you can attach a remote server to the container and connect your current workspace to it. If the container does not follow the Development Container Specificaton, we will try our best effort to infer the remote user and set things up accordingly.
Reopen Folder Locally
- If currently connected to a development container, you can disconnect from the container and reopen the current workspace locally.
These will also appear if you click on the Open a Remote Window
button in the bottom left.
WSL (Beta)
As of version 1.1.0, Windsurf has beta support for Windows Subsystem for Linux. You must already have WSL set up and configured on your Windows machine.
You can access WSL by clicking on the Open a Remote Window
button in the bottom left, or under Remote-WSL
in the Command Palette.
Extension Marketplace
You can change the marketplace you use to download extensions from. To do this, go to View -> Extensions, click the “Change in Settings” link, and modify the settings accordingly.