Automatically apply different color themes for local and Remote-SSH windows, so you can tell your environments apart at a glance and avoid editing in the wrong one.
Out of the box it uses a light theme locally and a dark theme on remote, but both are fully customizable — pick any installed theme for either context.
Features
- Applies your chosen theme based on whether the window is local or connected via Remote-SSH.
- Works on every transition: opening an SSH window, reconnecting, and closing the connection to return local.
- Per-window status bar badge: a highlighted
SSH: <host>badge in remote windows and aLocalbadge in local windows, so you can tell windows apart even side by side. - Theme follows the active window: when a window gains focus, its theme is applied.
- Compatible with any color theme (built-in or third-party).
- Lightweight: zero runtime dependencies, only the VS Code native API.
How windows are distinguished
workbench.colorTheme is a single global setting — VS Code has no per-window theme,
so two windows cannot literally show two themes at the exact same time. This extension
gives you the distinction in two complementary ways:
- Status bar badge (per window). Each window shows its own badge, so both windows display their correct badge at the same time, even side by side.
- Theme follows the active window. The window you are working in is always themed correctly.
Set remoteThemeSwitcher.reapplyOnFocus to false if you prefer the extension to never
re-apply the theme after startup.
Installation
- Marketplace: Extensions view (
Shift+Cmd+X) -> search Remote Theme Switcher -> Install. - From a .vsix: Extensions view ->
...menu -> Install from VSIX...
Configuration
| Setting | Meaning | Default |
|---|---|---|
remoteThemeSwitcher.localTheme |
Theme applied in local windows | "Light Modern" |
remoteThemeSwitcher.remoteTheme |
Theme applied in Remote-SSH windows | "Dark Modern" |
remoteThemeSwitcher.statusBarIndicator |
Show the Local / SSH: host status bar badge |
true |
remoteThemeSwitcher.reapplyOnFocus |
Re-apply the theme when a window gains focus | true |
To pick a theme:
- Settings dropdown — a few built-in themes that ship with VS Code.
- Command palette — Remote Theme Switcher: Select Local Theme / Select Remote Theme lists every installed theme (including third-party) and writes your pick to the setting.
- settings.json — set an exact theme name, or
""for automatic (an installed light theme locally, a dark theme remotely):
{
"remoteThemeSwitcher.localTheme": "Light Modern",
"remoteThemeSwitcher.remoteTheme": "One Dark Pro"
}
Known limitations
- One global theme: two windows cannot display different themes at the same instant (see above); the status bar badge and focus re-apply are the workaround.
- Brief flash: the theme is applied after startup, so the previous theme may flash momentarily when a window opens.
- Remote-SSH only: by default only
'ssh-remote'counts as remote. To also treat WSL or Dev Containers as remote, editisRemoteSshContext()inextension.js.