Run VS Code on any server over SSH.
This project has been deprecated in favour of the code-server install script
See the discussion in #185
sshcodeis a CLI to automatically install and run code-server over SSH.
It uploads your extensions and settings automatically, so you can seamlessly use remote servers as VS Code hosts.
If you have Chrome installed, it opens the browser in app mode. That means there's no keybind conflicts, address bar, or indication that you're coding within a browser. It feels just like native VS Code.
Have Chrome installed for the best experience.
Install with
go:
go get -u go.coder.com/sshcode
Or, grab a pre-built binary.
We currently support: - Linux - MacOS - WSL
For the remote server, we currently only support Linux
x86_64(64-bit) servers with
glibc.
musllibc (which is most notably used by Alpine Linux) is currently not supported on the remote server: #122.
sshcode [email protected] # Starts code-server on dev.kwc.io and opens in a new browser window.
You can specify a remote directory as the second argument:
sshcode [email protected] "~/projects/sourcegraph"
By default,
sshcodewill
rsyncyour local VS Code settings and extensions to the remote server every time you connect.
This operation may take a while on a slow connections, but will be fast on follow-up connections to the same server.
To disable this feature entirely, pass the
--skipsyncflag.
If you're using an alternate release of VS Code such as VS Code Insiders, you must specify your settings directories through the
VSCODE_CONFIG_DIRand
VSCODE_EXTENSIONS_DIRenvironment variables.
The following will make
sshcodework with VS Code Insiders:
MacOS
export VSCODE_CONFIG_DIR="$HOME/Library/Application Support/Code - Insiders/User" export VSCODE_EXTENSIONS_DIR="$HOME/.vscode-insiders/extensions"
Linux
export VSCODE_CONFIG_DIR="$HOME/.config/Code - Insiders/User" export VSCODE_EXTENSIONS_DIR="$HOME/.vscode-insiders/extensions"
By default, VS Code changes on the remote server won't be synced back when the connection closes. To synchronize back to local when the connection ends, pass the
-bflag.