Workspace Halo identifies each Visual Studio Code window on Windows 11 with a halo: a colored border, the workspace name, and its optional logo, drawn over the window exactly when you need to tell your workspaces apart, and hidden while you work. It is a Windows-only extension: the overlay is drawn by a Win32 native host.
Install
Workspace Halo from the Visual Studio Marketplace
from the Extensions view, or run
code --install-extension vonc.workspace-halo. Then save each project's
workspace inside its own folder. In a folder named my-project:
- Save the workspace as
.vscode\my-project.code-workspace(File > Save Workspace As...): the workspace is now named after its folder. - Optionally, add a PNG logo as
.vscode\my-project.logo.png, also named after the workspace, to show it in the halo.
my-project/
`-- .vscode/
|-- my-project.code-workspace
`-- my-project.logo.png (optional)
The saved workspace file is the one condition for the halo effect: its name
must match the project folder exactly, including case, and it must sit in
that folder's .vscode directory. When the file is missing or saved
elsewhere, Workspace Halo stays completely inert for that window. The logo
is optional: without it, the halo shows the border and the name only.
Need a project logo? Clone
llm-shared and use its /isolate-logos
skill with an AI-generated logo or logo sheet. Its
"project logo prompt template" wiki page
explains how to prompt for a coherent project logo. For a single image, the
skill's one-cell workflow produces a clean, square PNG that you can save as
.vscode\my-project.logo.png.
You only need to build Workspace Halo when developing it or installing from a
local clone. With Node.js 22 or later and Go already on PATH, build.bat
works directly; there is no need to install senv first. Without them, the
portable senv toolchain provides both:
dwl node 22, inst node 22, then the project senv.bat.
The details are in the wiki: set up the build toolchain
and build and package the VSIX.
Install the resulting
workspace-halo-<version>-<commit>[-dirty]-win32-x64.vsix by pressing
Ctrl+Shift+P to open VS Code's Command Palette, then running the
Extensions: Install from VSIX... command.
Run version.bat after packaging to check the VSIX's internal version and Git
identity against its native host and matching local version tag.
The active halo shows itself only at identification moments:
- when the window opens, until you click in the focused window;
- during Alt+Tab, while Alt is held;
- while the mouse rests on a Windows taskbar, where thumbnails preview;
- on a double-Shift (two Shift taps within 400 ms), until the next input;
- while the window is minimized, so its thumbnails keep the identity;
- while another window partially covers it, unless it is focused.
A focused window shows no halo outside these triggers.
Workspace Halo pairs with the
Peacock
extension: when the workspace has a Peacock color (a #rrggbb value of
peacock.color saved for that workspace), the halo border and name take that
exact color, so one hue identifies the workspace inside and around the
window. Otherwise workspaceHalo.color applies, and when neither color is
set for the workspace, a random color is assigned and remembered, so every
haloed window is identifiable from the start.
Configuration and styling, differently named root folders, troubleshooting, building, publishing and signing, and the inner workings are documented in the wiki, organized on the Diátaxis model: explanation, tutorials, how-to guides, then reference.
Workspace Halo supports stable desktop VS Code on Windows 11. It is a UI extension, not intended for web VS Code, vscode.dev, or remote UIs on another operating system. License: MIT.

