Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/coder/sshcode

Run VS Code on any server over SSH.
https://github.com/coder/sshcode

Last synced: 3 months ago
JSON representation

Run VS Code on any server over SSH.

Awesome Lists containing this project

README

        

# sshcode

**This project has been deprecated in favour of the [code-server install script](https://github.com/cdr/code-server#quick-install)**

**See the discussion in [#185](https://github.com/cdr/sshcode/issues/185)**

---

[!["Open Issues"](https://img.shields.io/github/issues-raw/cdr/sshcode.svg)](https://github.com/cdr/sshcode/issues)
[!["Latest Release"](https://img.shields.io/github/release/cdr/sshcode.svg)](https://github.com/cdr/sshcode/releases/latest)
[![MIT license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/cdr/sshcode/blob/master/LICENSE)
[![Discord](https://img.shields.io/discord/463752820026376202.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/zxSwN8Z)
[![Build Status](https://travis-ci.org/cdr/sshcode.svg?branch=master)](https://travis-ci.org/cdr/sshcode)

`sshcode` is a CLI to automatically install and run [code-server](https://github.com/cdr/code-server) over SSH.

It uploads your extensions and settings automatically, so you can seamlessly use
remote servers as [VS Code](https://code.visualstudio.com) 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.**

![Demo](/demo.gif)

## Install

**Have Chrome installed for the best experience.**

Install with `go`:

```bash
go get -u go.coder.com/sshcode
```

Or, grab a [pre-built binary](https://github.com/cdr/sshcode/releases).

### OS Support

We currently support:
- Linux
- MacOS
- WSL

For the remote server, we currently only support Linux `x86_64` (64-bit)
servers with `glibc`. `musl` libc (which is most notably used by Alpine Linux)
is currently not supported on the remote server:
[#122](https://github.com/cdr/sshcode/issues/122).

## Usage

```bash
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:

```bash
sshcode [email protected] "~/projects/sourcegraph"
```

## Extensions & Settings Sync

By default, `sshcode` will `rsync` your 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 `--skipsync` flag.

### Custom settings directories

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_DIR` and
`VSCODE_EXTENSIONS_DIR` environment variables.

The following will make `sshcode` work with VS Code Insiders:

**MacOS**

```bash
export VSCODE_CONFIG_DIR="$HOME/Library/Application Support/Code - Insiders/User"
export VSCODE_EXTENSIONS_DIR="$HOME/.vscode-insiders/extensions"
```

**Linux**

```bash
export VSCODE_CONFIG_DIR="$HOME/.config/Code - Insiders/User"
export VSCODE_EXTENSIONS_DIR="$HOME/.vscode-insiders/extensions"
```

### Sync-back

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 `-b` flag.