handling-protocol-uris

Register custom URI protocols for Visual Studio extensions with protocol.json manifests.

14|2|Updated Mar 24, 2026
One-click install
npx skills add https://github.com/madskristensen/vs-agent-plugins --skill handling-protocol-uris
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: handling-protocol-uris
Source: https://github.com/madskristensen/vs-agent-plugins/tree/main/skills/handling-protocol-uris
Command: npx skills add https://github.com/madskristensen/vs-agent-plugins --skill handling-protocol-uris

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Protocol handlers enable deep linking into Visual Studio extensions from external sources. They let browsers or emails launch VS and pass context to the extension for processing.

Core Features & Use Cases

  • Register a URI scheme with Windows via a protocol manifest to enable one-click open actions in VS.
  • Use ProvideAppCommandLine to surface a command-line switch that loads your package when the protocol URL is invoked.
  • Route actions inside VS (e.g., open a file, jump to settings) based on the URI host/path and query parameters.

Quick Start

Install the VS extension or skill, register a protocol.json manifest, implement ProvideAppCommandLine, and test by navigating to a myext://open/resource URI.

Frequently Asked Questions about handling-protocol-uris

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle custom URI protocol links to deep link into Visual Studio extensions?

Custom URI protocol links deep link into Visual Studio extensions by registering a protocol.json manifest, using ProvideAppCommandLine to load your package, and routing URI actions to open files or launch settings inside VS.

How does deep linking work with ProvideAppCommandLine in VSSDK packages?

Deep linking with ProvideAppCommandLine works by surfacing a command-line switch that loads your VSSDK package when a protocol URL is invoked, passing external context from browsers or emails directly into the extension for processing.

What do I need to register a URI scheme for a Visual Studio extension?

To register a URI scheme for a Visual Studio extension, you need a per-extension protocol.json manifest, a ProvideAppCommandLine-based package, and proper URI parsing and validation logic to route actions based on the URI host, path, and query parameters.

Can I route actions like opening files from a custom protocol URL in Visual Studio?

You can route actions like opening files from a custom protocol URL in Visual Studio by parsing the URI host, path, and query parameters, then triggering in-process extension commands to open files or jump to specific settings.

Does this protocol handling approach work for in-process Visual Studio extensions only?

This protocol handling approach applies to in-process Visual Studio extensions using VSSDK or Toolkit architectures, requiring a ProvideAppCommandLine-based package to properly intercept and process the registered URI scheme.

Why use a protocol handler for Visual Studio extensions instead of standard command-line arguments?

Protocol handlers enable one-click deep linking from external sources like browsers or emails, passing rich context via URI host, path, and query parameters, whereas standard command-line arguments lack the structured routing and external invocation capabilities.