Browse, install and update agent skills hosted in your private Skills API.
Features
- Tree view of all available skills, grouped by category path.
- Three states per skill: not installed, installed, update available (badge appears when the version in the catalogue differs from the locally installed one).
- Right-click actions: Preview / Install / Uninstall / Update / Reveal in Explorer.
- Read-only skill preview opens
SKILL.mddirectly from the repository before installation. - Client selector in settings: choose Copilot or Claude with separate defaults.
- Migration action in settings: reinstall items found in the other client's standard locations into the current client's configured locations.
- Install location picker: Global (
~/.claude/skills/~/.claude/agents, plus~/.claude.jsonin Claude mode), Project (./.github/*for Copilot or./.claude/*+./.mcp.jsonfor Claude) or any custom directory. - Two authentication modes (per the
agentSkills.authModesetting):apiKey— legacy shared key stored in the OS keychain viavscode.SecretStorage.entra— sign in with your Microsoft / company account via Entra ID (Azure AD). Uses VS Code's built-in Microsoft provider (automatic token refresh, no client secret). Setup walkthrough:../docs/entra-setup.md.
- "Test Connection" command pings
GET /auth/verifyto validate the URL + credentials, and (in Entra mode) reports the signed-in account.
Setup
- Install the extension (
npm install && npm run build, then F5 to launch an Extension Development Host, orvsce packageto produce a.vsix). - Open the Agent Skills Repository view (gear icon → Open Settings) and set:
- API URL — your Skills API base URL.
- API key — paste it; stored in the OS-native secret store.
- Target client —
CopilotorClaude. - Project skills path — defaults to
.github/skillsin Copilot mode and.claude/skillsin Claude mode. - Project MCP path — defaults to
.vscode/mcp.jsonin Copilot mode and.mcp.jsonin Claude mode. - Global skills path — defaults to
~/.claude/skills. - Migrate from … — copies the same installed ids from the other client's default locations into the currently selected client locations.
- Click Test Connection to verify. It now asserts the endpoint returns
{ok:true}, so a stray app on the same port can't pass. - Use Refresh to load the catalogue.
How install tracking works
Project installs are recorded in one shared workspace manifest at the repo root. The file stores project paths relative to the workspace so it can be committed and shared across the team. Global installs are kept in the extension's VS Code storage because they are user-specific.
Example shared project manifest:
{
"version": 1,
"installs": [
{
"type": "skill",
"id": "general/git/commit-helper",
"name": "Commit Helper",
"installedVersion": "1.2.0",
"source": "https://skills.example.com",
"installedAt": "2026-05-15T10:00:00.000Z",
"files": ["SKILL.md", "skill.yml"],
"scope": "project",
"installPath": ".github/skills/commit-helper"
}
]
}
The extension resolves these relative paths against the current workspace at runtime to decide whether a component is installed and where to update or uninstall it from. Don't edit the manifest by hand unless you know what you're doing.
Commands
| Command | Title |
|---|---|
agentSkills.refresh |
Refresh tree |
agentSkills.openSettings |
Open Settings (webview) |
agentSkills.testConnection |
Test Connection |
agentSkills.setApiKey |
Set API Key |
agentSkills.clearApiKey |
Clear API Key |
agentSkills.signIn |
Sign in with Microsoft |
agentSkills.signOut |
Sign out (Accounts menu) |
agentSkills.preview |
Preview Skill |
agentSkills.install |
Install (tree context) |
agentSkills.uninstall |
Uninstall (tree context) |
agentSkills.update |
Update (tree context) |
agentSkills.openSkillFolder |
Reveal installed folder |