What are extensions?

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Extensions are add-ons you can use to customize and extend your DevOps experience with Azure DevOps. They're written with standard technologies - HTML, JavaScript, CSS - and are developed using your preferred development tools. Extensions use our RESTful API Library to easily interact with Azure DevOps and applications/services. The Visual Studio Marketplace is where extensions are published. They can be kept privately for you and your team or shared with the millions of developers currently using Azure DevOps.


This section covers developing custom extensions and service-hooks, to find information on installing extensions from the Marketplace, or buying Visual Studio Subscriptions, visit the Marketplace documentation.

What makes up an extension?

Screenshot of components of an extension.

  • A JSON manifest file contains basic info about the extension.
  • Discovery assets - the Markdown and images that make up your extension's overview and aesthetics in the Marketplace.
  • Static files that contain the logic of your extension, including HTML, JS, and CSS files. Static files are only applicable to contribution-based extensions.

These files and assets get bundled up to make a Team Extensions Service Package (.vsix file) that's published to the Marketplace. From the Marketplace, extensions can be installed directly by users.

What can you do with extensions?

There are dozens of places where you can add to the user interface, and we're adding more every sprint. Learn about all of the places where you can add a hub in the Extensibility points.

Build an extension for your delivery pipeline

You can develop an extension for your continuous delivery pipeline as described in the following video.

Develop Extensions

Extension building checklist

  1. Familiarize yourself with this article and the extension types already available within the Marketplace
  2. Learn to build your first extension or check out our full set samples
  3. Familiarize yourself with our RESTful APIs. If you're integrating from a third party app or service, you'll also want to check out our Service Hooks
  4. Once your extension is ready, you'll want to package it, publish it to the Marketplace, and then we hope you'll share it with the community!

Next steps