Easily manage your dev personas: the different Git identities, VS Code profiles, and extensions that you need in different contexts.
Easily see and manage which extensions are installed in each VS Code profile, and compare them with the effective extension status of the current workspace, all from one convenient matrix.
- Profile x extension matrix: Show every profile as a column and every extension as a row. Toggle any cell to install or uninstall the extension for that profile.
- Current workspace status: When a folder or workspace is open, a visually separate, read-only column reports
Enabled,Not enabled,Not installed in profile,Workspace-local, orUnknownfrom supported VS Code evidence. - Local workspace extensions: Valid unpacked extensions under
.vscode/extensionsappear as candidates, including workspace-only rows. Personas calls one installed only when VS Code reports that exact local path as effective. - Cross-profile install/uninstall: Act on any profile directly from the matrix; you never have to switch into a profile just to add or remove an extension from it.
- Orphan cleanup: Find extension versions on disk that no profile references, review them (size, last modified), and move them to the Trash/Recycle Bin.
- Privacy: This extension never collects or transmits any data.
- VS Code Stable or Insiders on Windows, macOS, or Linux.
- Portable installations and custom
--user-data-dir/--extensions-dirare supported. - Remote workspaces (SSH, WSL, containers, github.dev) are not managed. Personas manages the local desktop install it runs in.
Ordinary Marketplace and VSIX extensions are installed per VS Code profile. VS Code can then enable or disable an installed extension globally or for the current workspace. Personas keeps those concepts separate: profile columns remain editable installation manifests, while the Current workspace card and matrix column report effective status without changing enablement.
A saved .code-workspace file is shareable JSON configuration. Its Current workspace card can
open a read-only preview or edit that manifest directly. VS Code's internal extension-enablement
state is not stored in that file, so those manifest actions do not enable, disable, install, or
remove extensions.
VS Code also supports local workspace extensions under .vscode/extensions. Merely placing an
unpacked manifest there creates a candidate, not proof of installation. Personas reports
Workspace-local only when the stable VS Code API exposes the same extension ID from inside that
candidate directory. A candidate without that evidence remains Unknown.
Extension recommendations in .vscode/extensions.json or a .code-workspace file are suggestions
only. Personas never treats a recommendation as installed or enabled. Unknown likewise means the
stable APIs or readable profile data cannot support a stronger claim; it is not a guessed disable
or install state.
Personas reads the same files VS Code itself maintains: the profile registry and each profile's extension list. All installs and uninstalls run through the official code command-line interface, scoped to the right profile (and, when applicable, the right --user-data-dir/--extensions-dir). Workspace status additionally uses the stable vscode.extensions API and a bounded read-only scan of immediate child directories under each local workspace root's .vscode/extensions folder. Personas does not read or write VS Code's SQLite state.
