Visual Studio Code is a code editor that supports editing, navigating, understanding, debugging, and extending software projects. Developers use it for the edit-build-debug cycle, and the catalogue add-ons provide skills, instructions, and agents for working within the editor.
Borrowing it
Nothing to install: this file belongs to microsoft/vscode. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/microsoft/vscode/main/.github/instructions/best-practices.instructions.mdgit clone --depth 1 https://github.com/microsoft/vscodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/microsoft/vscode/best-practices)<a href="https://agentmods.dev/instructions/microsoft/vscode/best-practices"><img src="https://agentmods.dev/badge/instructions/microsoft/vscode/best-practices/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/microsoft/vscode/best-practices"><img src="https://agentmods.dev/badge/instructions/microsoft/vscode/best-practices.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01279 | $0.01279 |
| Opus 5.5 | $0.00512 | $0.00512 |
| Sonnet 5.5 | $0.00256 | $0.00256 |
| Haiku 4.5 | $0.00128 | $0.00128 |
Grade A, and why
vscode best-practices.instructions.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 24d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Best Practices
Buttons & Actions
- Don't create a new class or custom CSS to render a button or action. Reuse the existing
Buttonclass (vs/base/browser/ui/button/button.ts) and the existingActiontypes (vs/base/common/actions.ts). This keeps theming, accessibility, and behavior consistent. - Render actions inside a toolbar rather than by hand. Prefer
MenuWorkbenchToolBar(vs/platform/actions/browser/toolbar.ts): give it aMenuIdso actions can be contributed from anywhere (contributions, other components) without coupling. - Use
WorkbenchToolBarwhen you need explicit control over which actions render and where separators go. - Never add a separator while rendering an action. Add separators with the existing
Separatorclass (vs/base/common/actions.ts). - If a
MenuWorkbenchToolBarlives in a widget/view that can be rendered multiple times at once, give the toolbar a scopedIContextKeyServicewhich is scoped to the dom element of that widget/view and set the context keys per individual widget/view instance.
Editor/Session Actions
- Don't assume the action runs on the active editor/session. An action (e.g. one contributed to some editor or session related toolbar) can be triggered for an editor/session that isn't active. The
runmethod receives arguments describing the invocation context (such as the originating editor group or the originating session). - Resolve editor action arguments with
resolveCommandsContext(vs/workbench/browser/parts/editor/editorCommandsContext.ts) to get the correct editor(s) instead of readingeditorService.activeEditor. - Support multi-selection. The resolved editor actions context can contain several editors (e.g. multi-selected tabs).
- For every action contributed to the Sessions list context menu, explicitly handle multi-selection: apply the action to all selected sessions when that behavior is meaningful; otherwise keep the action visible but disable it while multiple sessions are selected. Use the action's precondition or enablement with
SessionItemIsMultiSelectionContext.negate()(or the equivalent!sessionItem.isMultiSelectionextension expression) rather than hiding it with a menuwhenclause.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 24d ago Changed · +1 lines · +91 tokens per session d11c295516ab
- 1mo ago First seen · 49 lines · 1,188 tokens per session scan A 1f4558907bf6
vscode best-practices.instructions.md is an instructions file published in the GitHub repository microsoft/vscode (194,219 stars, last pushed today), licensed MIT. It adds 1,279 tokens to every session, about $0.0051 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.
deno CLAUDE.md
Claude Code instructions for denoland/deno, covering deno development guide, git workflow, high level overview, key directories and quick start.
generative-ai-for-beginners AGENTS.md
AGENTS.md instructions for microsoft/generative-ai-for-beginners, covering agents.md, project overview, setup commands, initial repository setup and clone the repository.