Manage VS Code extensions that live inside the current workspace.
This extension is designed for public use. Any project can opt in by adding a registry file that lists local extension source folders. GitHub sign-in is enabled by default, and each project can either allow any signed-in GitHub user or restrict actions to specific GitHub accounts.
The public package is not open source by default. The included license allows installation and use, but does not grant rights to redistribute or modify the extension code.
This Shin repo is preconfigured through:
.vscode/shin-local-extensions.json
Registry
Recommended generic registry path:
.vscode/project-local-extensions.json
Minimal registry:
{
"schemaVersion": 1,
"projectId": "my-project",
"displayName": "My Project",
"extensions": [
{
"id": "me.my-local-extension",
"displayName": "My Local Extension",
"path": "tools/my-local-extension",
"description": "Project-specific helper extension."
}
]
}
Restrict usage to specific GitHub accounts:
{
"schemaVersion": 1,
"projectId": "private-project",
"displayName": "Private Project",
"allowedGitHubAccounts": ["my-github-login"],
"extensions": []
}
If no allowlist is set, any signed-in GitHub account can unlock the project.
Set projectExtensionManager.requireGitHubAuth to false if a project wants no
GitHub gate at all.
Commands
Project Extensions: Sign In With GitHubProject Extensions: Refresh ProjectsProject Extensions: Package Local ExtensionProject Extensions: Install Local ExtensionProject Extensions: Uninstall ExtensionProject Extensions: Install Project ExtensionsProject Extensions: Open RegistryProject Extensions: Open Extension Manifest
Install/package actions run in an integrated terminal so the operator can see the exact command and any VS Code CLI output.
Ben's Setup
The Shin workspace registry already lists:
benm-dev.project-local-extension-managerbenm-dev.shin-plane-agent
It also sets:
"allowedGitHubAccounts": ["benm-dev"]
So the public manager is reusable, but this repo remains locked to Ben's GitHub account.
Validation
npm run compile
npm run check