
VS Code on a Remote Server - maxfan8
https://github.com/codercom/code-server
======
carreau
Try-it on mybinder.org, w/o login or signup (in Jupyter):
[https://mybinder.org/v2/gh/betatim/vscode-
binder/master?urlp...](https://mybinder.org/v2/gh/betatim/vscode-
binder/master?urlpath=lab) Ephemeral machine. enjoy.

~~~
52-6F-62
It actually runs on my iPhone 8 Plus like a breeze.

If there was a way to solve the annoying zoom-in behaviour when the editor or
any text field was focused it would be workable.

Seems like a good option for those would-be iPad-using developers if they can
easily run other environments.

~~~
mbreese
Try it for anything non-trivial and it starts to get unworkable quickly. I was
trying this on my iPad pro, hoping that it would be a good remote IDE, and it
doesn't quite work with the Apple keyboard. I had such high hopes! But when
arrow keys don't work, that makes life a bit difficult on an iPad!

(FWIW, RStudio server has similar issues, but they switched editor components
recently to try and get this working better).

~~~
randomfool
[https://github.com/Microsoft/monaco-
editor/issues/1209](https://github.com/Microsoft/monaco-editor/issues/1209)

------
morpheuskafka
Wow. This is going to be a major game changer for remote development work, and
it's a perfect counterpoint to the "Electron is stupid just write it in C"
that we hear a lot. Because of the flexibility provided by separating the
Node-based logic and processing layer from the web-based presentation layer,
VS Code lent itself well to this kind of innovation. Of course, browser-based
IDEs aren't new. But they've always been a beast of their own; this will work
seamlessly with the tight VS Code integrations numerous languages and
frameworks have.

~~~
foxes
Imagine needing the complexity of docker, browsers, vs code when a much
simpler (and compared to this which is running in http? - secure) tool already
exists :), ie

    
    
      ssh -X

~~~
IronBacon
No one remembers the "No Machine" NX protocol (X protocol with compression,
without unnecessary roundtrips and some other optimizations)? I think I've
tried it in the early 2000's, looks like they are still alive[0]

With version 4 of their protocol they went closed source, but before that it
was released as GPL (don't remember if it was the case of their client/server,
IIRC they were proprietary) anyway I think V3 is used in the _X2Go_ [1]
client/server. There was also a Goggle client in Python years ago...

[0] [https://www.nomachine.com/](https://www.nomachine.com/)

[1]
[https://wiki.x2go.org/doku.php/doc:newtox2go](https://wiki.x2go.org/doku.php/doc:newtox2go)

~~~
ktpsns
I use x2go actively for all my servers. It is very fast, even over slow
connections (much better performance then VNC and RDP used to have) -- thanks
to great compression techniques (so do not expect 256 colours when connecting
over GSM network). It is a lovely piece of (OSS!) software.

~~~
kristianp
Can Nomachine/X2go run a server on a windows machine?

~~~
IronBacon
X2Go shouldn't work, unless you intend to run it on a VM or maybe the WSL as
it's a modified Xorg X11 server, but probably it's not what you are asking.

NoMachine, according to their download page, should support Windos/Mac/Linux
on the server front, but I don't have a direct experience.

------
gripfx
[https://github.com/theia-ide/theia](https://github.com/theia-ide/theia) Theia
is the Monaco editor on a remote server. I've found the docker containers to
be mostly stable

~~~
colemickens
Theia is a lot more than that. Theia is an Eclipse project that is aiming for
VS Code extension compatibility (and already has results to show for it).

Theia remains the furthest along of any that I've seen. I'd love to know if
someone thinks another "VSCode in browser, running on a remote server" is
along further; there seems to be a new one every other month!

~~~
kristianp
Is it Electron based on the desktop as well, or web only?

~~~
abrowne
"The frontend runs in modern browsers or as a Desktop app using Electron with
either local or remote (cloud) backends." from [https://www.theia-
ide.org/](https://www.theia-ide.org/)

------
ashton314
Nice. This is really cool. I know a lot of people who love VS Code; nice to
see it get a handy feature.

For any Emacs users looking for an equivalent, you can edit a file over ssh
like so:

    
    
        emacs /ssh:username@host.example.com:~/path/to/file.txt
    

Dired, etc. works like a charm. Best if you have your ssh key installed on the
remote box.

~~~
taeric
If you are in eshell,

    
    
        cd /ssh:computer.name:
        ls
        ...
    
    

Even better, most programs "just work" as if you were on that machine.

~~~
josteink
Even ‘M-x compile’ works. And entirely seamlessly.

It’s quite amazing.

------
wybiral
I had the worst interview with these people (codercom) that I've ever had in
my career as a developer.

It essentially consisted of them sitting me down with an old crappy laptop
that kept logging out every few seconds and asked me to write an encrypted
reverse proxy from scratch while simultaneously asking unrelated technical
questions with a time limit.

I guess to test how people code with distractions and stress? But, yeah I
definitely don't want to work anywhere that looks at their potential
developers that way.

~~~
matz1
Its not for everyone.

~~~
buzzerbetrayed
It sounds like you are trying to excuse an embarrassingly bad interviewing
process.

~~~
matz1
Bad because it select people who can handle stress and distraction and doesn't
complain? If that what they looking for then I see no problem with it. They
are free to select whatever criteria they see fit.

The way they interview in my work place these days also hard and imo
ridiculous but yet they still find someone who meet all the criteria.

~~~
flukus
> Bad because it select people who can handle stress and distraction and
> doesn't complain?

Bad because they don't eliminate the stress (as much as possible) and
distraction.

~~~
matz1
Well assuming the purpose are to select candidate that can handle those then
it doesn't make sense to eliminate those.

~~~
wybiral
Exactly. It's a glimpse into what they value most in candidates which is
indicative of the culture.

If you want to work somewhere full of distractions, crappy hardware, and lots
of stress then look for those kinds of interviews.

~~~
matz1
Which is not necessarily bad. It's relative.

~~~
wybiral
If you're into that kind of lifestyle day after day, sure.

~~~
matz1
Not for me but I'm sure there are other who are okay with that lifestyle. To
each their own.

------
moltar
I wish there was a way to run VS Code in headless server mode on a remote host
and then connect to attach to it from my local machine.

~~~
simcop2387
That's exactly what this lets you do.

~~~
nodesocket
I think maybe he's asking without using a browser, instead open VC code and
attach to a server maybe?

~~~
paxys
VS Code is already an electron app, so the browser is running exactly the same
code.

------
locusofself
I am excited to try this and hope it proves easy to setup and reliable to use.

X11 forwarding is just terrible, completely useless over WAN.

sshfs is also a bad solution for coding as it doesn't do inotify properly, so
if a file changes on the remote end it doesn't properly notify your local
mount of the changes. Even worse, doing tons of small i/o operations (which is
exactly what git does) is terribly slow with sshfs over WAN.

Right now I do most of my work in vscode locally and use the "Run on Save"
plugin to automatically rsync my code changes to the remote server(s). It's
the best solution I have found after trying many things.

vim is great for remote work too. very great in it's own right. But even
despite the electron-based UI, the local, "native" experience and plugin
ecosystem of VSCode is unmatched IMO.

------
filleokus
Does this / something else allow me to do something like this but with the
actual VS Code app? I.e, like Live Share but in a more persistent way? I don't
really need the extra flexibility of the browser, I would just want to offload
computation to a non-battery powered device.

------
paxys
FYI [https://coder.com](https://coder.com) is the hosted service for this

~~~
Matheus28
No pricing information and JS error thrown when trying to sign up... Oh well

------
m0ngr31
I've been looking for something just like thing for a while. Apache Che didn't
do much for me. Just didn't work the way I thought it should. How's the
Firefox support for this?

~~~
croddin
It seems to work fine in Firefox as far as I can tell.

------
raihansaputra
Can this be made an iOS app / PWA with proper keybindings for iPad with
keyboard? Wondering as I can’t use my JupyterLab on the iPad as it does not
transmit ‘Shift + Enter’ to run the code.

------
lobo42
When we started the Theia project (theia-ide.org), we considered doing a large
patch on VS Code as well. But we decided to go down a more sustainable
approach by reusing the important building blocks from VS code (editor and
vscode extension protocol) with stable APIs, because rebasing a large patch on
a fast paced project is a PITA.

Theia is about to complete the VS Code extension support. At that point it
will be the better option as it is architected to run in remote scenarios from
the ground up.

~~~
gbraad
My biggest problem with Theia is that the menu structure and appearance/feel
is very different from the actual VSCode editor I am used to on the desktop.
This was not the problem with Codercom. It reduces friction to move from the
desktop to the cloud. If this could be solved, I would certainly prefer theia
more. At the moment, I just can't customize it enough to get to my liking:
[https://news.ycombinator.com/item?id=19396894](https://news.ycombinator.com/item?id=19396894)

------
ourcat
Interesting. Only recently I came across
[https://stackblitz.com](https://stackblitz.com) which is more or less VS Code
in the browser.

Very useful.

~~~
nickmolnar2
StackBlitz is Monaco in the browser. No extensions or terminal. Works great
for certain kinds of front-end dev, but more complicated build tooling aren't
available and only JS/TS are supported.

~~~
ourcat
Ahah. I'd never heard of Monaco. Thanks!

------
jeswin
Interesting in its own right, but the actual heavy lifting here was done by
the vscode team; in how they envisioned and implemented the clean separation
of UI and backend (such as language server protocol).

There are other previous attempts at running vscode in the browser - such as
Ives Van Hoorne's very popular [https://codesanbox.io](https://codesanbox.io).
Curious if code is being shared between these projects.

~~~
kylecarb
Unfortunately, we didn't share code with CodeSandbox.

Most definitely throw props to the VS Code team for the great architecture. It
would have been much more difficult if it wasn't for their foresight.

------
Scarbutt
What this solves is one of the reasons why many vim/emacs users can't
leave/change their editors so easily ;)

------
bjjbj
Running this on a VPS and works great.

Exactly what I was looking for to code at my public library, which provides
macs but no permissions to install software.

I haven't run into any issues so far, except for the obvious permissions
issues which were easy to fix. Extensions all install. I'm sure I'll have more
to say about it as I use it more heavily.

------
Uninen
Remote interpreter support is something I've been waiting for a long time. No
word since September on the timetable, though:
[https://github.com/Microsoft/vscode-
python/issues/79](https://github.com/Microsoft/vscode-python/issues/79)

------
gravypod
This will be very cool when someone packages it up to be a full IDE
experience. Things like automatic language completion for multiple languages,
project based view, etc. This is amazing and might make things like a
chromebook much more viable for me and many other developers.

~~~
wungsten
Check out Eclipse Che

~~~
gbraad
To me Che is an Enterprise IDE, which integrates with the deployment platform.
The majority of people just want an IDE in the browser, like c9 or vscode.

------
stanislavb
The phone number requirement pissed me off a bit.

------
chillee
Facebook does a lot of work like this for its internal development uses (also,
when it used to open source Nuclide).

I think this is a good first step, but there's a lot more problems that are
harder to solve than what this offers (and are what I'd consider the main
problems that need to be solved...)

One example is language services. Integrating something like C++ autocomplete
is difficult, and not something they seem to have done (looking at their
page). The right way to do it is to run the C++ autocomplete on the server,
and have some way of providing those suggestions over the connection to your
local editor.

~~~
mmcallister
Where "some way" == the language server protocol[1]

[1]
[https://en.m.wikipedia.org/wiki/Language_Server_Protocol](https://en.m.wikipedia.org/wiki/Language_Server_Protocol)

~~~
LeanderK
shouldn't this be possible? I don't see why not?

~~~
mmcallister
Yes absolutely. I use LSP with VS Code every day. This solution shouldn't
prevent me from continuing that

------
arriu
This might be a ridiculous question but I'm looking for a way to do windows
C++/C# development from a mac. Is there any chance this might allow such a
workflow? Unfortunately, I need to access some pretty low level dll's that are
not cross platform compatible at all.

I use a mac for all other development except for this project. I have nothing
against windows, just looking to simplify my development workflow across all
projects.

~~~
rcarmo
I work on a Mac all day, and besides VS Code/VS Mac I also use RDP extensively
to my Surface. Set it to 16bit, use wired Ethernet, and it is as fast as
native Windows rendering, even in Retina/HiDPI.

------
Dangeranger
The other day I setup a version of this using Theia-IDE[0], which uses Monaco
as the editor I believe. The project is open source (Apache-2.0) and has a
strong community.

It would be a nice project to get a Docker service running where users could
sign-up and get an instance with persistent storage for their projects.

[0] [https://www.theia-ide.org/doc/](https://www.theia-ide.org/doc/)

~~~
anton_kosyakov
Are you aware of Gitpod ([https://www.gitpod.io/](https://www.gitpod.io/))?
It's one-click online IDE for GitHub based on Theia. You can have as many
workspaces as you want which are continuously replicated and never deleted,
bring your own custom Docker image and it's free for open source development.

------
kstenerud
I just run a full remote mate based Ubuntu desktop that I connect to via
chrome remote desktop or x2go. I made a quick script that I run inside a vps
instance or container to build it:

[https://github.com/kstenerud/ubuntu-dev-
installer/blob/maste...](https://github.com/kstenerud/ubuntu-dev-
installer/blob/master/install-virtual-desktop.sh)

------
sscarduzio
I wish also IntelliJ Idea could do this. Very nice BTW.

~~~
HowardStark
This. If JetBrains launched a self-hosted remote IDE like this I would make
that my daily driver in a heartbeat.

------
gbraad
I tried both Theia and Coder-com, but at the moment it seems Codercom comes
closest to the actual VSCode feel. Theia has modified stuff to be better
suited to use from a browser, but actually this took away from the
customization options. I prefer to have minimal interface... and with codercom
I can get close, except it still has a menubar to show.

~~~
lobo42
True. The team is heavily aligning for over a month now. Next release will
give you the VS Code look & feel.

~~~
gbraad
That would be killer. Looking forward to this...

------
bribri
I'm going to try baking all my dependencies for my language plugins and editor
tools. Could be interesting with the built in terminal.

    
    
      FROM codercom/code-server
      RUN apt-get update
      RUN apt-get -y install curl gnupg
      RUN curl -sL https://deb.nodesource.com/setup_11.x  | bash -
      RUN apt-get -y install nodejs

------
kbumsik
I've been always looking for something like this. I used Cloud9 [1] for a
moment but I gave up using this after Amazon acquired it. It's shame to look
how a tech gaint destroyed a great product.

[1]: [https://aws.amazon.com/cloud9/](https://aws.amazon.com/cloud9/)

~~~
reustle
I use cloud9 and am pretty happy with it. It lets you connect to any instance
anywhere (I use ubuntu) and it works as expected. How do you feel like they
destroyed it?

------
sirsuki
I have to say it because no one else has yet. Vim, Emac, Nano, Pico, etc. has
been doing this with good ol' fashioned SSH decades before this. It fascinates
me to see editors constantly reinvented over and over. Is text really that
complicated?

~~~
naikrovek
If you can't see the difference between a text editor over ssh and a full IDE
in a browser tab you need to seek medical attention; you may be having a
serious stroke.

~~~
AlexCoventry
I don't think a tricked-out emacs config is missing many IDE features. What
did you have in mind?

------
xiaodai
I want to see this work with Atom so bad. Cos, Julia's Juno is only on Atom.

~~~
kmundnic
I tried it out with Julia, for something reason it didn't recognize the syntax
after installing the Julia extension...

~~~
xiaodai
can it run the Julia extension and execute the Julia code in the IDE?

------
activatedgeek
I've been using this on my remote workstation for the past week and is pretty
cool! Still rough around the edges but works very well so far!

I've almost let go of IntelliJ in favor of this.

------
keyle
No pun intended... Is the point of this to run chrome locally to run a webkit
instance on a remote server, with added latency?

~~~
kgwxd
It's an evil plot to greatly accelerate the heat death of the universe.

------
TheSpiciestDev
I can't find anything yet regarding debugging, I'm curious how that would
work.

~~~
paxys
It doesn't yet.

------
dzhiurgis
Dreams of working over 2kbps satellite link (Iridium Go) - shattered.

~~~
croddin
It does look like you have to download a 10Mb js file, but once that is
downloaded and cached, it uses a websocket to communicate with the server on
the backend and only necessary text will be sent to the browser. I don't think
the bandwidth requirements should be too much more than a terminal editor over
ssh.

------
philonoist
Why would anybody use Atom even after this?

------
cstrat
I was going to say this is the same thing as coder.com, but this is their open
source repo.

------
ToFab123
Why not just make a remote desktop / VCN connection to the server?

~~~
pfranz
More often than not, working seriously through vnc/remote desktop is miserable
and a last resort. Some people don't seem to mind though. I'm curious if their
productivity suffers? It works fine for checking on things, but it's a window-
in-a-window, copy/paste never consistently works (no matter the server/client
software), I haven't seen good solutions for audio, scaling/resolution, and
bandwidth/latency vary greatly. It's made me get much better with
ssh/terminal/vim and pushed me further away from an IDE. I can see a webapp
being a decent compromise. I think most people are fine with Gdocs over
Word/Excel.

~~~
sjellis
Teradici is really good, and amazingly efficient on bandwidth.

The Teradici company license their technology to other vendors: it's what AWS
Workspaces uses.

~~~
pfranz
I tried it last year and Teradici seemed to work really well when you were in
the same region (time zone-ish size area) or using an internal LAN with a
decent connection. For low latency or low bandwidth situations VNC worked way
better. VNC also had a lot more options for tuning. Another issue I had was
that they had me set up a vpn for Teradici, while for vnc I'm just ssh
tunneling the port.

~~~
sjellis
"vpn for Teradici"

This is probably why it wasn't so good. I've only used the AWS Workspaces
client, which handles encryption, and that worked even on 4G connections.

