hue‑shift

a CLI, not an extension

Peacock colors one workspace.
hue-shift colors
all of them.

Point it at a folder. Every project inside gets its own window colour, written straight into .vscode/settings.json.

npx hue-shift-cli --random

Package is hue-shift-cli; the command it installs is hue-shift.

live preview #6d28d9
Title bar, activity bar and status bar take the project colour. Click a window below to preview it.
75projects
0.08selapsed
0dependencies
4.5:1min contrast

Every project at once

Eighteen projects, eighteen hues, one pass. Each bar is the colour VS Code paints that window's title bar. Click one to load it into the preview above.

The number next to each hex is the contrast ratio between the bar and its text. Black or white is picked automatically, so it never drops below 4.5:1 — the WCAG AA minimum for readable text.

The gap

Everything else is an extension, so it can only colour the window you are already looking at.

PeacockProject ColorsMulti-Workspacehue-shift
Runs from the terminal✗✗✗✓
npx, nothing to install✗✗✗✓
Colour all projects at once✗✗✗✓
Detect drift (--check)✗✗✗✓
Contrast validation✗✗✗✓
Colour + theme + icons✗✗theme only✓
Stable palette when folders change✗✗✗✓
Zero runtime dependencies✗✗✗✓
macOS · Linux · Windows✓✓✓✓

Commands

Colour one project

cd ~/code/my-app
npx hue-shift-cli --random

Colour everything under a folder, reproducibly; later runs only colour new folders

npx hue-shift-cli --root ~/projects --random --seed 42

Preview without writing

npx hue-shift-cli --root ~/projects --random --dry

Specific colour, title bar only

npx hue-shift-cli . --color amber --parts title

Colour plus a full theme

npx hue-shift-cli . --color teal --theme "Default Dark Modern" --icons Seti

Catch a project whose colours drifted

npx hue-shift-cli --root ~/projects --check

Put settings.json back as it was

npx hue-shift-cli --root ~/projects --restore

Every flag, every combination, and a command builder: full CLI reference →

Your settings.json is safe

What it can't do

A CLI is not an extension. These need the VS Code API at runtime:

Run Peacock alongside if you want them. Both write the same keys, so they don't fight.