---
title: "VS Code in your browser, with code-server"
description: "Run VS Code in your browser on exe.dev. Get a private editor, a real terminal, and a home for your projects—no local setup required."
url: https://exe.dev/deploy/code-server
category: "Developer tools"
updated: 2026-10-14
---

# VS Code in your browser, with code-server

Your editor in a tab. Your projects right where you left them.

- **Software:** code-server (https://coder.com/docs/code-server)
- **Source:** https://github.com/coder/code-server
- **License:** MIT
- **Time:** 5 minutes
- **Example VM name:** `my-code-server` (yours will differ; on the VM, `hostname` prints it)
- **Machine-readable:** https://exe.dev/deploy/code-server/manifest.json

## What you get

- VS Code in your browser, protected by exe.dev login.
- A Linux terminal with Git and Docker ready to go.
- Projects and editor settings on disk; code-server starts on boot.

Running on the VM:

- **code-server 4**: VS Code, managed by systemd, port 8000, data in `~/.local/share/code-server`
- **Your projects**, data in `~/code`

How it is reached:

- https://my-code-server.exe.xyz/ (private): Your editor and terminal

## Deploy with Shelley

Open https://exe.dev/new?prompt=Set%20up%20code-server%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe.dev%2Fdeploy%2Fcode-server.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-code-server.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-code-server.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20VS%20Code%20in%20your%20browser%2C%20protected%20by%20exe.dev%20login.%0A-%20A%20Linux%20terminal%20with%20Git%20and%20Docker%20ready%20to%20go.%0A-%20Projects%20and%20editor%20settings%20on%20disk%3B%20code-server%20starts%20on%20boot.%0A%0ARead%20the%20whole%20recipe%2C%20including%20the%20closed%20details.%20For%20initial%20setup%2C%0Afollow%20%22Install%20by%20hand%22%20first%2C%20skipping%20VM%20creation%20and%20SSH.%0AThe%20opening%20walkthrough%20is%20for%20the%20owner.%20Do%20not%20run%20the%20walkthrough%2C%0Abackup%2C%20restore%2C%20or%20update%20commands%20during%20setup.%0AKeep%20the%20VM%20private.%20If%20port%208000%20is%20occupied%2C%20ask%20the%20owner%20before%0Areplacing%20anything.%20Leave%20existing%20Git%20and%20coding-agent%20settings%20alone.%0AFinish%20with%20https%3A%2F%2F%24%28hostname%29.exe.xyz%2F%3Ffolder%3D%2Fhome%2Fexedev%2Fcode%2C%0Ausing%20this%20VM%27s%20actual%20hostname%2C%20and%20remind%20the%20owner%20to%20keep%20it%20private.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A to create a VM whose agent, Shelley, follows this recipe. From a terminal:

```sh
curl -fsSL https://exe.dev/deploy/code-server/prompt.txt | ssh exe.dev new --prompt=/dev/stdin
```

Or follow the steps below by hand.

[code-server](https://github.com/coder/code-server) puts VS Code on your VM
and the editor in your browser. Laptop, tablet, borrowed computer—pick up
where you left off.

## Open your editor

Follow the link Shelley gives you and sign in to exe.dev. No second
password to remember. Your project folder, `~/code`, is ready; choose
**Trust Folder & Continue** when you're working with your own code.

> [!WARNING]
> **Keep this VM private.** code-server's password is off; exe.dev login is
> the lock. Anyone you share the VM with gets a terminal with sudo, too.
> Never make it public.

## Make something

In **Terminal → New Terminal**, try this on the VM:

```bash
mkdir -p ~/code/hello
echo '<h1>Hello, browser!</h1>' > ~/code/hello/index.html
python3 -m http.server 3000 --bind 0.0.0.0 --directory ~/code/hello
```

Open `https://my-code-server.exe.xyz:3000/`. Ta-da! Edit `hello/index.html`,
refresh, repeat. **Ctrl+C** stops the server.

Using a framework? See [Next.js, Vite, and friends](/docs/faq/nextjs-and-friends)
for preview settings.

## Setup and upkeep

Your work lives on the VM. Push your repos and keep a backup **off the VM**,
too. The commands are here when you need them.

<details id="create-the-vm" data-manual-setup class="dp-details">
<summary>Install by hand</summary>

On your computer (pick another name if `my-code-server` is taken):

```bash
ssh exe.dev new --name=my-code-server
ssh my-code-server.exe.xyz
```

On the VM, as `exedev`, use [Coder's installer](https://coder.com/docs/code-server/install).
The [exe.dev proxy](/docs/proxy) handles HTTPS and login:

```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --version=4.141.0
mkdir -p ~/.config/code-server ~/code
cat > ~/.config/code-server/config.yaml <<'EOF'
bind-addr: 0.0.0.0:8000
auth: none
cert: false
enable-remote-storage: true
disable-telemetry: true
EOF
sudo systemctl enable --now code-server@exedev
```

Check that it's alive and enabled at boot:

```bash
systemctl is-enabled code-server@exedev
curl -fsS --retry 10 --retry-connrefused --retry-delay 1 http://localhost:8000/healthz
```

`enabled` and a JSON reply mean you're ready (`expired` just means idle). Open
`https://my-code-server.exe.xyz/?folder=/home/exedev/code`.

</details>

<details id="back-up-and-restore" class="dp-details">
<summary>Back up and restore</summary>

Pause anything writing to your projects. On the VM, save your projects,
settings, and extensions:

```bash
umask 077
sudo systemctl stop code-server@exedev
tar -czf ~/code-server-backup.tar.gz -C ~ \
  code .config/code-server .local/share/code-server
sudo systemctl start code-server@exedev
```

On your computer, copy the archive off the VM. Keep it private; it may
contain project secrets.

```bash
scp my-code-server.exe.xyz:code-server-backup.tar.gz .
```

To restore, install code-server on a fresh private VM first. Use its name
below and copy the archive from your computer:

```bash
scp code-server-backup.tar.gz my-code-server.exe.xyz:
```

Then, on that VM:

```bash
sudo systemctl stop code-server@exedev
tar -xzf ~/code-server-backup.tar.gz -C ~
sudo systemctl start code-server@exedev
```

Reopen the editor. Your projects, settings, and extensions should be back.

</details>

<details id="update" class="dp-details">
<summary>Update</summary>

Back up first. On the VM, rerun just the [installer command](#create-the-vm) with a newer
[4.x release](https://github.com/coder/code-server/releases), then:

```bash
sudo systemctl restart code-server@exedev
code-server --version
```

Check the version, then refresh your browser. Your files stay put.

</details>

<details id="troubleshooting" class="dp-details">
<summary>Something stuck?</summary>

On the VM, check the service log:

```bash
journalctl -u code-server@exedev -n 50 --no-pager
```

Check that `bind-addr` is `0.0.0.0:8000` and nothing else is using that port.
If another service owns it, investigate before stopping anything.

</details>

## Frequently asked questions

### Where do I get extensions?

Use the Extensions sidebar. code-server uses [Open VSX](https://open-vsx.org), not Microsoft's marketplace, so some VS Code extensions aren't available.

### Can I bring my GitHub repos and coding agents?

Yep. Use the [GitHub integration](/docs/integrations-github) for private repos. Want an AI sidekick? See the [Claude Code guide](/deploy/claude-code).

### Will terminal commands keep running when I close the tab?

Use `tmux` for long-running commands. Your files stay on the VM, but don't rely on a browser terminal staying connected forever.

### Can I use desktop VS Code too?

Yes! [VS Code over SSH](/docs/faq/vscode) opens the same VM and files from your desktop editor.


## Related

- [Run Claude Code on a remote server](https://exe.dev/deploy/claude-code.md): A computer for Claude. A breather for your laptop.
- [Host OpenClaw](https://exe.dev/deploy/openclaw.md): An AI sidekick with its own computer. Your laptop can take a nap.
- [Self-host n8n](https://exe.dev/deploy/n8n.md): Connect your apps. Let the boring bits run themselves.
- [Self-host Uptime Kuma](https://exe.dev/deploy/uptime-kuma.md): A little lookout for your websites. Green bars encouraged.
