From extension-check
Use when auditing installed Cursor, VS Code, or VS Code Insiders extensions for supply-chain risk against AgentMesh (agentmesh.knostic.ai), reviewing GitHub Copilot or other editor extensions, checking extension publishers and versions, or running a Knostic extension security review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/extension-check:extension-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Compare every extension installed in **Cursor** or **Visual Studio Code**. The workflow is identical for both editors; only how you list extensions and where they are stored differs.
Compare every extension installed in Cursor or Visual Studio Code. The workflow is identical for both editors; only how you list extensions and where they are stored differs.
ALWAYS search AgentMesh with this exact query style — one query per installed extension, no exceptions:
publisher:{publisher} name:{name}
{publisher} = segment before the first . in the extension id (e.g. GitHub from GitHub.copilot){name} = segment after the first . (e.g. copilot from GitHub.copilot)Use the publisher and name from the installed extension id, preserving marketplace casing in the query (e.g. publisher:GitHub name:copilot, not publisher:github unless that is what the installed id uses).
Never use:
q=GitHub.copilot, q=golang.go)q=GitHub, q=copilot)/api/extensions, /v1/extensions, or any authenticated API)| Editor | CLI command | Extensions manifest |
|---|---|---|
| Cursor | cursor --list-extensions --show-versions | ~/.cursor/extensions/extensions.json |
| VS Code | code --list-extensions --show-versions | ~/.vscode/extensions/extensions.json |
| VS Code Insiders | code-insiders --list-extensions --show-versions | ~/.vscode-insiders/extensions/extensions.json |
On Windows, replace ~ with %USERPROFILE% (e.g. %USERPROFILE%\.vscode\extensions\extensions.json).
cursor, code, or code-insiders), or readable extensions.json for that editorhttps://agentmesh.knostic.aicurl of the HTML shell will not contain table data.- [ ] Step 0: Detect editor (Cursor vs VS Code vs both)
- [ ] Step 1: List installed extensions
- [ ] Step 2: Build structured search query per extension
- [ ] Step 3: Open search URL and parse results
- [ ] Step 4: Match row and compare version
- [ ] Step 5: Produce report
Determine which installation(s) to audit:
command -v cursor && cursor --list-extensions --show-versions | head -1
command -v code && code --list-extensions --show-versions | head -1
Cursor vs VS Code), or merge into one table with an Editor column. Do not assume Cursor and VS Code share the same extension set.VS Code with Copilot is still VS Code: list all installed extensions (Copilot, Copilot Chat, and everything else) with the same structured search — there is no separate Copilot-only path.
Cursor:
cursor --list-extensions --show-versions
Fallback: ~/.cursor/extensions/extensions.json → identifier.id + version.
VS Code (including Copilot):
code --list-extensions --show-versions
Fallback: ~/.vscode/extensions/extensions.json.
VS Code Insiders:
code-insiders --list-extensions --show-versions
Fallback: ~/.vscode-insiders/extensions/extensions.json.
Output format (all editors): publisher.name@version (e.g. [email protected], [email protected]).
For each publisher.name@version, derive:
| Field | Example ([email protected]) | Example ([email protected]) |
|---|---|---|
publisher | GitHub | golang |
name | copilot | go |
installedVersion | 1.250.0 | 0.52.2 |
| Search query | publisher:GitHub name:copilot | publisher:golang name:go |
https://agentmesh.knostic.ai/extensions?dir=desc&page=1&q=publisher%3A{publisher}%20name%3A{name}&sort=recent
URL-encode {publisher} and {name} as they appear in the installed id (e.g. GitHub → GitHub, copilot-chat → copilot-chat).
Examples:
| Installed | Search query | Notes |
|---|---|---|
[email protected] | publisher:golang name:go | search |
GitHub.copilot@… | publisher:GitHub name:copilot | VS Code Copilot core extension |
GitHub.copilot-chat@… | publisher:GitHub name:copilot-chat | Copilot Chat; may be NOT_FOUND if not yet indexed |
[email protected] | publisher:eamodio name:gitlens | Same in Cursor or VS Code |
Fetch each URL and parse the rendered search results (table rows, extension links, risk indicators, versions). Do not call JSON APIs.
From each result row, extract when available:
https://agentmesh.knostic.ai/extensions/{numeric_id}extensionId (may differ in casing, e.g. golang.Go vs golang.go)versionPick the row that matches the installed extension:
publisher + name equal installed segments, ORextensionId equals installed publisher.nameIgnore unrelated rows (e.g. third-party “copilot” extensions when auditing GitHub.copilot).
| Status | Condition |
|---|---|
MATCH | Identity match and installedVersion === AgentMesh version |
VERSION_MISMATCH | Identity match, versions differ |
NOT_FOUND | No matching row on the search page |
PARTIAL | Identity match but version not visible in parsed results |
# Extension audit (AgentMesh)
Editor: VS Code | Cursor | VS Code Insiders | (multiple)
Scanned: {timestamp}
Installed: {count}
Search style: publisher:{publisher} name:{name} (always)
## Summary
| Status | Count |
|--------|-------|
| MATCH | |
| VERSION_MISMATCH | |
| NOT_FOUND | |
## Details
| Editor | Extension | Installed | AgentMesh | Risk | Status | Search | Detail |
|--------|-----------|-----------|-----------|------|--------|--------|--------|
| VS Code | GitHub.copilot | 1.250.0 | … | … | … | [search](https://agentmesh.knostic.ai/extensions?dir=desc&page=1&q=publisher%3AGitHub%20name%3Acopilot&sort=recent) | … |
| Cursor | golang.go | 0.52.2 | 0.52.2 | safe | MATCH | [search](https://agentmesh.knostic.ai/extensions?dir=desc&page=1&q=publisher%3Agolang%20name%3Ago&sort=recent) | [detail](https://agentmesh.knostic.ai/extensions/38145) |
Include the structured search URL for every row. When auditing VS Code with Copilot, call out Copilot-related rows explicitly in the summary if any are NOT_FOUND, VERSION_MISMATCH, or elevated risk.
VS Code + Copilot — [email protected]
code --list-extensions --show-versions.publisher:GitHub name:copilot (always).https://agentmesh.knostic.ai/extensions?dir=desc&page=1&q=publisher%3AGitHub%20name%3Acopilot&sort=recentGitHub.copilot (or case variant); compare version and risk.Copilot Chat — GitHub.copilot-chat@…
publisher:GitHub name:copilot-chat (always).NOT_FOUND and note the extension may not be indexed yet.Go (Cursor or VS Code) — [email protected]
publisher:golang name:go (always — never q=golang.go).golang.Go, detail https://agentmesh.knostic.ai/extensions/38145GitLens — [email protected] (either editor)
publisher:eamodio name:gitlens (always).Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub knostic/extension-check-skill --plugin extension-check