Envora
Never mistake PROD for DEV again.
Envora lets you switch between your local folders and Remote SSH targets from one picker, and gives each environment its own identity: colored title bar, activity bar and status bar, a [PROD] prefix in the window title, and an optional confirmation before opening sensitive environments.
It combines the idea of a project switcher with workspace coloring, built around the DEV / TEST / PREPROD / PROD workflow.
Features
- One picker for local and Remote SSH environments (
Envora: Select Environment, or click the status bar item).
- Instant recognition: title bar, activity bar and status bar use the environment's accent color; editor, side bar, panel and terminal backgrounds are tinted. Text is black or white automatically, for readable contrast.
- Window title prefix such as
[PROD], also visible in the taskbar, and usable without relying on color alone.
- Confirmation before opening sensitive environments (always on for PROD).
- Colors applied automatically whenever a registered folder is open, however you opened it (picker, recent list, shortcut).
- Non-destructive: your other
workbench.colorCustomizations (including per-theme blocks) are preserved, and Envora: Reset Colors removes only what Envora wrote.
- Favorites, client grouping (the
client field) and an optional list of recommended extensions per environment.
- No telemetry and no account.
- Free edition: up to 4 environments, enough for DEV, TEST, PREPROD and PROD of one client. Existing environments are never removed or locked.
Getting started
- Run Envora: Add Environment from the Command Palette.
- Pick a name, a folder (local or SSH), a type and an accent color. The other colors are derived automatically; you can also customize them.
- Run Envora: Select Environment to open it. From then on, its colors are applied every time that folder is open.
For SSH environments, install the official Remote - SSH extension. server must be a host or alias known to it (for example an entry of your ~/.ssh/config). Envora runs as a UI extension and does not need to be installed on the remote host.
Commands
| Command |
Description |
Envora: Select Environment |
Pick and open a configured environment |
Envora: Manage Environments |
Add, edit or delete environments |
Envora: Add Environment |
Start the environment creation flow |
Envora: Show Current Environment |
Display the active workspace identity |
Envora: Change Colors of the Current Environment |
Pick a new accent color (presets or hexadecimal) and apply it immediately. Also available from the status bar item |
Envora: Apply Colors to This Workspace |
Re-apply the colors of the current environment |
Envora: Reset Colors |
Remove the colors and title written by Envora |
Settings
| Setting |
Default |
Description |
envora.environments |
[] |
Your environments (see below) |
envora.autoApplyColors |
true |
Apply colors whenever a registered folder is open |
envora.tintBackgrounds |
true |
Also tint editor, side bar, panel and terminal. Turn off to color only the bars (recommended with light themes) |
envora.windowTitlePrefix |
true |
Prefix the window title with the environment type |
envora.openInNewWindow |
false |
Open the selected environment in a new window |
envora.showOnStartup |
false |
Show the picker when VS Code starts |
Environments live in your user settings, so Settings Sync carries them across your machines.
Environment configuration
Only name and path are required. Colors are derived from accent when omitted.
{
"name": "Client A - DEV",
"client": "Client A",
"type": "DEV",
"connection": "local",
"path": "C:/work/client-a",
"colors": { "accent": "#287A45" },
"favorite": true
}
{
"name": "Client A - PROD",
"client": "Client A",
"type": "PROD",
"connection": "ssh",
"server": "production-host",
"path": "/srv/client-a",
"colors": { "accent": "#C33D3D" },
"requireConfirmation": true
}
All four colors can be set explicitly: accent, background, sidebar and text (the text drawn on the accent color).
Do not store passwords, private keys or tokens in environment definitions.
Good to know
- Colors are written to the workspace settings of the opened folder (
.vscode/settings.json). If you do not want them in a shared repository, add .vscode/settings.json to your .gitignore or global ignore, or turn envora.autoApplyColors off and use Envora: Apply Colors to This Workspace when needed.
- Confirmation prompts are safety reminders, not access controls. Envora does not check that a remote path is really production: the type is what you configure.
- The recommended-extensions option installs extensions globally in VS Code, not only for one environment. VS Code does not let an extension switch profiles; the profile option only reminds you and opens the profile switcher.
- Coming from the PowerShell launcher? The old format (
Nom, Dossier, Serveur, Accent, Fond, Lateral, Texte, Confirmer) is still understood.
Development
npm install
npm run compile
npm test # unit tests (Node's built-in test runner)
Press F5 to start an Extension Development Host. To package:
npm install --save-dev @vscode/vsce
npx vsce package
Then install the .vsix with Extensions: Install from VSIX....
Before publishing: replace YOUR_PUBLISHER_ID in package.json, add repository and bugs fields, an icon and screenshots, and test on Windows, macOS, Linux and Remote SSH.
Roadmap
- [x] Local and Remote SSH environments
- [x] Automatic, non-destructive colors and window title
- [x] Unit tests for the pure logic
- [ ] Host autocompletion from
~/.ssh/config
- [ ] WSL and Dev Containers
- [ ] Read-only mode for PROD
- [ ] Import from Project Manager and Peacock
License
MIT. See the LICENSE file.