plugins: initial support for workspace plugins#300585
Merged
connor4312 merged 4 commits intomainfrom Mar 11, 2026
Merged
Conversation
- reads .claude/settings(.local).json and the Copilot equivalent - currently this enables the `extraMarketplaces` and marks the extensions as 'recommended'. Users get a prompt on the first chat message and can find the extensions under `@agentPlugins @recommended` todo: unify the enablement/disablement.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds initial workspace-scoped “agent plugin” marketplace configuration and recommendations by reading Claude/Copilot workspace settings files, and wiring those recommendations into the plugin marketplace service and UI.
Changes:
- Introduce
WorkspacePluginSettingsServiceto parse/mergeextraKnownMarketplacesandenabledPluginsfrom.claude/settings(.local).jsonand.github/copilot/settings(.local).json. - Extend
PluginMarketplaceServiceto merge workspace-defined marketplaces (trusted-workspace only) and exposerecommendedPlugins. - Add UI: first-chat prompt to surface recommended plugins and support
@agentPlugins @recommendedfiltering.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/contrib/chat/test/common/plugins/pluginMarketplaceService.test.ts | Stubs new workspace settings + trust dependencies for marketplace tests. |
| src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.ts | New service to watch/read workspace settings files and expose observables. |
| src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.ts | Merges workspace marketplaces into fetch; exposes recommended plugin keys; adjusts caching behavior. |
| src/vs/workbench/contrib/chat/common/plugins/AGENTS_PLUGINS.md | New architecture doc for agent plugins and marketplace. |
| src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.ts | New contribution that prompts users about recommended plugins on first chat request. |
| src/vs/workbench/contrib/chat/browser/chat.contribution.ts | Registers the new contribution + workspace settings service singleton. |
| src/vs/workbench/contrib/chat/browser/agentPluginsView.ts | Adds @recommended query support for installed + marketplace plugin lists. |
Comments suppressed due to low confidence (1)
src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.ts:211
- Same race concern here:
_readSettingsis async but started without awaiting from autorun, so it can overlap with subsequent reads (e.g., from file change events or workspace folder changes). Serializing/coalescing reads would make the observable updates deterministic.
this._readSettings(dirs, logPrefix, fileService);
}));
You can also share your feedback on Copilot code review. Take the survey.
src/vs/workbench/contrib/chat/test/common/plugins/pluginMarketplaceService.test.ts
Show resolved
Hide resolved
src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.ts
Outdated
Show resolved
Hide resolved
src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.ts
Show resolved
Hide resolved
src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.ts
Outdated
Show resolved
Hide resolved
src/vs/workbench/contrib/chat/test/common/plugins/pluginMarketplaceService.test.ts
Outdated
Show resolved
Hide resolved
src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.ts
Outdated
Show resolved
Hide resolved
roblourens
previously approved these changes
Mar 11, 2026
TylerLeonhardt
approved these changes
Mar 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
extraMarketplacesand marks the extensions as 'recommended'. Users get a prompt on the first chat message and can find the extensions under@agentPlugins @recommendedtodo: unify the enablement/disablement.