Agent Skills Repository — VS Code extension
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.md directly 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.json in Claude mode), Project
(./.github/* for Copilot or ./.claude/* + ./.mcp.json for Claude) or any custom directory.
- Two authentication modes (per the
agentSkills.authMode setting):
apiKey — legacy shared key stored in the OS keychain via vscode.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/verify to 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, or vsce package to 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 —
Copilot or Claude.
- Project skills path — defaults to
.github/skills in Copilot mode and .claude/skills in Claude mode.
- Project MCP path — defaults to
.vscode/mcp.json in Copilot mode and .mcp.json in 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 |