Give every project its own status bar color, so you can tell at a glance which window is which. The text color is chosen automatically for readability, so it looks right in both light and dark themes.
Project 1 → green · Project 2 → blue · and so on.
The same base color (#ef6c00) in a light and a dark theme — the dark theme
gets a deepened, desaturated shade automatically:

How it works
You pick one base color per project. Stamp stores it in stamp.color and
derives the actually-painted shade for your active theme, writing it into the
workspace workbench.colorCustomizations:
// .vscode/settings.json — e.g. base #2e7d32 in a DARK theme
{
"stamp.color": "#2e7d32", // the base — the source of truth
"workbench.colorCustomizations": { // derived; recomputed per theme
"statusBar.background": "#1b4b1e", // deepened so it doesn't glare
"statusBar.foreground": "#ffffff",
"statusBar.debuggingBackground": "#1b4b1e",
"statusBar.debuggingForeground": "#ffffff",
"statusBar.noFolderBackground": "#1b4b1e",
"statusBarItem.remoteBackground": "#1b4b1e",
"statusBarItem.remoteForeground": "#ffffff"
}
}
- Theme-adaptive shade. In a dark theme the base is deepened and slightly desaturated so the bar reads as a calm accent, not a glowing block. In a light theme the base is used as-is. Stamp listens for theme changes and repaints, so switching light ⇄ dark updates the bar automatically.
- Readable text everywhere. The foreground is chosen by WCAG contrast against the painted shade — white on dark, dark on light.
stamp.coloris the source of truth;workbench.colorCustomizationsis derived and may be rewritten whenever the theme changes. Commitstamp.colorto share the project color with your team — each machine re-derives the shade for its own theme.- The
debugging*andnoFolder*keys are set too, so the project color stays put even while debugging (VSCode would otherwise turn the bar orange).
Settings
| Setting | Default | Description |
|---|---|---|
stamp.color |
— | This project's base color (hex). Set via the commands; the painted shade is derived from it per theme. |
stamp.showStatusBarItem |
true |
Show the 🪣 Stamp item in the status bar. |
stamp.autoColorOnOpen |
false |
Auto-assign a name-derived color when a project opens with no color set. |
stamp.lightForeground |
#ffffff |
Text color used on dark backgrounds. |
stamp.darkForeground |
#15202b |
Text color used on light backgrounds. |
Develop / run from source
npm install
npm run compile
# then press F5 in VSCode to launch an Extension Development Host
Other scripts:
npm test # compile + contrast checks + runtime smoke tests
npm run watch # recompile on change
npm run check:contrast # verify the contrast logic (after compile)
npm run smoke # drive every command against a mocked VSCode API
npm run make:icon # regenerate icon.png
You can also install the packaged build directly:
npx @vscode/vsce package # produces stamp-0.1.0.vsix
code --install-extension stamp-0.1.0.vsix
License
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) — see
LICENSES/AGPL-3.0-or-later.txt. This
project is REUSE-compliant.