title | description | ms.topic | ms.custom | ms.subservice | ms.assetid | ms.author | author | ai-usage | ms.date | monikerRange |
---|---|---|---|---|---|---|---|---|---|---|
Install extensions |
Learn how to install, assign, disable, and uninstall extensions for Azure DevOps. |
how-to |
engagement-fy23, devx-track-azurecli |
azure-devops-marketplace |
dd117c5c-111f-4361-91c6-ed37fb476c75 |
chcomley |
chcomley |
ai-assisted |
04/21/2025 |
<= azure-devops |
[!INCLUDE version-lt-eq-azure-devops]
Install, assign, disable, and uninstall extensions, which add new features and capabilities for Azure DevOps.
For more information about extensions, see the developing and publishing overviews.
::: moniker range="azure-devops"
Category | Requirements |
---|---|
Permissions | Member of the Project Collection Administrators group. Organization owners are automatically members of this group. If you don't have permissions, you can request extensions instead or look up a project collection administrator. |
Extension sharing | Private extensions shared with your organization. |
::: moniker-end
::: moniker range="< azure-devops"
Category | Requirements |
---|---|
Permissions | Member of the Project Collection Administrators group or Edit collection-level information permissions. Organization owners are automatically members of this group. If you don't have permissions, you can request extensions instead or look up a project collection administrator. |
Extension sharing | Private extensions shared with your organization. |
Note
To use an existing Azure subscription for billing, have at least coadministrator permissions for that subscription. If you don't have permissions, an Azure Account Administrator or Service Administrator can add you as coadministrator to the Azure subscription in the Azure portal.
Your project collection reuses your Azure subscription for future Marketplace purchases. Where can I find more info about Azure billing?
::: moniker-end
Install an extension to your organization by doing the following steps.
::: moniker range=">= azure-devops-2020"
-
Sign in to your organization (
https://dev.azure.com/{Your_Organization}
). -
Select the shopping bag icon, and then select Browse Marketplace.
-
Find the extension that you want to install and select Get it free.
-
Select your organization from the dropdown menu, and then select Install to install the extension.
Your extension is now installed! You can now go to your organization to use your extension. Also, tell your team about this extension, so they can start using its capabilities.
::: moniker-end
::: moniker range=" azure-devops"
Install an extension with the az devops extension install command. To get started, see Get started with Azure DevOps CLI.
If necessary, first search for an extension with the az devops extension search
command.
az devops extension search --search-query
- search-query: Specify a term to search in the marketplace.
The following command searches the marketplace for the term Timetracker and returns the Publisher ID and Extension ID in table format.
az devops extension search --search-query Timetracker --output table
Publisher Id Extension Id Name
-------------- -------------- -----------
7pace Timetracker Timetracker
7pacelabs kitten Kitten
az devops extension install --extension-id
--publisher-id
[--org]
- extension-id: The name of the extension to install.
- publisher-id: The name of the extension publisher.
- org: Azure DevOps organization URL. You can configure the default organization using
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
.
The following command installs the Timetracker extension and shows the result in YAML format.
az devops extension install --extension-id Timetracker --publisher-id 7pace --output yaml
baseUri: null
constraints: null
contributionTypes: null
contributions: null
demands: null
eventCallbacks: null
extensionId: Timetracker
extensionName: Timetracker
fallbackBaseUri: null
files: null
flags: null
installState:
flags: none
installationIssues: null
lastUpdated: '2019-11-26T16:04:32.907000+00:00'
language: null
lastPublished: '2019-11-13T11:58:37.890000+00:00'
licensing: null
manifestVersion: null
publisherId: 7pace
publisherName: 7pace
registrationId: null
restrictedTo: null
scopes: null
serviceInstanceType: null
version: 5.0.1.34507
::: moniker-end
::: moniker range=">= azure-devops-2020 < azure-devops"
Manual installation:
-
Use the following command to get the extension you want to install.
az extension add --name <extension-name>
-
Replace
<extension-name>
with the actual name of the extension you want to install.- If the extension is from an external resource or you have a direct link to it, provide the source URL or local path.
az extension add --source <URL-or-path>
You can also build a private extension index following the format in
index.json
, then set the extension index URL used by Azure CLI starting from version 2.20.0. After that, you can install the extension by name from the private extension index.
Automatic installation (Dynamic install):
When you run an extension command that isn’t installed, the Azure CLI recognizes the command you run and automatically installs the extension for you (starting from version 2.10.0). This feature referred to as dynamic install, is enabled by default since 2.12.0. You can also enable it through configuration for previous supported versions:
az config set extension.use_dynamic_install=yes_prompt
Use the following configuration command to enable dynamic install without a prompt:
az config set extension.use_dynamic_install=yes_without_prompt
Use the following configuration command to turn off the dynamic install feature to revert to the default behavior:
az config set extension.use_dynamic_install=no
The extension command returns a “command-not-found” error if the extension isn’t installed.
Extension location:
Once an extension is installed, you can find it under the value of the $AZURE_EXTENSION_DIR
shell variable. If this variable is unset, by default the value is $HOME/.azure/cliextensions
on Linux and macOS, and %USERPROFILE%\\.azure\\cliextensions
on Windows.
::: moniker-end
Extensions with high privilege scopes, pipeline decorators, or unpublished status can pose potential security risks if not properly vetted. High privilege scopes grant extensive access to your organization's resources, while pipeline decorators can modify all pipelines in your organization. Unpublished extensions might no longer be maintained by their publishers. For more information on managing these types of extensions, see Manage high privilege scopes, pipeline decorators, and unpublished extensions.
::: moniker range="azure-devops"
-
Sign in to your organization (
https://dev.azure.com/{Your_Organization}
). -
Select Extensions, and then select the extension that you want to uninstall or disable.
-
Select Uninstall or select the ellipses (...), and then select Disable.
Uninstall extension | Disable extension
Uninstall an extension with the az devops extension uninstall command. To get started, see Get started with Azure DevOps CLI.
az devops extension uninstall --extension-name
--publisher-name
[--org]
[--yes]
- extension-name: The name of the extension to uninstall.
- publisher-name: The name of the extension publisher.
- org: Azure DevOps organization URL. Configure the default organization with
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
. - yes: Optional. Don't prompt for confirmation.
The following command uninstalls the "Timetracker" extension without prompts for confirmation.
az devops extension uninstall --extension-name Timetracker --publisher-name 7pace --yes
Disable an extension with the az devops extension disable command. To get started, see Get started with Azure DevOps CLI.
az devops extension disable --extension-name
--publisher-name
[--org]
- extension-name: The name of the extension to disable.
- publisher-name: The name of the extension publisher.
- org: Azure DevOps organization URL. Configure the default organization with
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
.
The following command disables the Timetracker extension and shows the result in table format.
az devops extension disable --extension-name Timetracker --publisher-name 7pace --output table
Publisher Id Extension Id Name Version Last Updated States
-------------- -------------- ----------- ----------- --------------- --------
7pace Timetracker Timetracker 5.0.1.34507 2019-11-13 disabled
::: moniker-end
::: moniker range="< azure-devops"
To uninstall extensions in a collection, do the following steps:
-
Go to the local gallery management portal (
http://{server}:8080/tfs/_gallery/manage
). -
For the wanted extension, select the ellipses (...), and then select Remove.
::: moniker-end
::: moniker range="azure-devops"
Enable an extension with the az devops extension enable command. To get started, see Get started with Azure DevOps CLI.
az devops extension enable --extension-name
--publisher-name
[--org]
- extension-name: The name of the extension to enable.
- publisher-name: The name of the extension publisher.
- org: Azure DevOps organization URL. Configure the default organization with
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
.
The following command enables the Timetracker extension and shows the result in table format.
az devops extension enable --extension-name Timetracker --publisher-name 7pace --output table
Publisher Id Extension Id Name Version Last Updated States
-------------- -------------- ----------- ----------- --------------- --------
7pace Timetracker Timetracker 5.0.1.34507 2019-11-13 none
You can list the extensions that are installed in your organization with the az devops extension list command. To get started, see Get started with Azure DevOps CLI.
az devops extension list [--include-built-in {false, true}]
[--include-disabled {false, true}]
[--org]
- include-built-in: Include the built-in extensions. Accepted values are true (default) and false.
- include-disabled: Include the disabled extensions. Accepted values are true (default) and false.
- org: Azure DevOps organization URL. You can configure the default organization using
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
.
The following command lists extensions in your organization. It excludes the disabled and built-in extensions, and shows the results in table format.
az devops extension list --include-built-in false --include-disabled false -output table
Publisher Id Extension Id Name Version Last Updated States Flags
-------------- ----------------------- ----------------------- ------------------- --------------- ----------------------- -------
ms vss-analytics Analytics 18.160.0.2130149925 2019-11-22 multiVersion, truste... trusted
ms vss-code-search Code Search 18.160.0.1640944814 2019-11-22 multiVersion, truste... trusted
ms vss-plans Delivery Plans 18.160.0.1266795967 2019-11-25 multiVersion, truste... trusted
ms-eswm dependencytracker Dependency Tracker 2.1910.12801 2019-10-28 none
ms-devlabs workitem-feature-tim... Feature timeline and... 0.0.357 2019-10-14 none
AgileParts gantt GANTT chart 1.0.79 2019-10-25 none
gordon-bee... github GitHub Widget 0.10.0 2016-03-16 none
ms-devlabs vsts-extensions-mult... Multivalue control 2.2.26 2019-11-15 none
agile-exte... product-vision Product Vision 2.0.6 2019-06-04 none
mohitbagra related-workitems Related Work items 2.0.4 2017-11-12 none
YodLabs TagsManager2 Tags Manager 0.9.31 2019-02-04 none
ms-devlabs team-calendar Team Calendar 2.0.15 2019-11-01 none
ms vss-testmanager-web Test Manager for TFS... 18.160.0.2130893445 2019-11-25 multiVersion, truste... trusted
mmanela vsts-workitem-recent... Who recently viewed ... 1.0.4 2019-03-22 none
ottostreif... wiql-editor Wiql Editor 2.0.90 2019-06-21 none
mohitbagra workitem-checklist Work item checklist 3.2.4 2019-06-24 none
mohitbagra witoneclickactions Work item form one c... 2.3.2 2018-04-03 none
ms-devlabs WorkItemVisualizatio... Work Item Visualizat... 1.4.64 2018-04-03 none
You can list the details about an extension with the az devops extension show command. To get started, see Get started with Azure DevOps CLI.
az devops extension show --extension-name
--publisher-name
[--org]
- extension-name: The name of the extension.
- publisher-name: The name of the extension publisher.
- org: Azure DevOps organization URL. You can configure the default organization using
az devops configure -d organization=ORG_URL
. Required if not configured as default or picked up usinggit config
. Example:--org https://dev.azure.com/MyOrganizationName/
.
The following command shows information about the Timetracker extension in table format.
az devops extension show --extension-name Timetracker --publisher-name 7pace --output table
Publisher Id Extension Id Name Version Last Updated States
-------------- -------------- ----------- ----------- --------------- --------
7pace Timetracker Timetracker 5.0.1.34507 2019-11-13 disabled
::: moniker-end
To resolve common issues, follow these troubleshooting steps:
-
Extension fails to install:
- Check permissions: To install extensions, ensure you're a Project Collection Administrator or have the necessary permissions granted by an administrator.
- Verify extension compatibility: Ensure the extension is compatible with your version of Azure DevOps. Check the extension's details page for compatibility information.
- Network issues: Verify that your network connection is stable and that there are no firewall or proxy settings blocking the installation process.
-
Extension crashes or causes errors:
- Collect diagnostic information: If an extension crashes or causes errors, collect diagnostic information to help identify the issue. This information includes error messages, logs, and screenshots of the problem.
- Check extension logs: Some extensions provide logs that can help diagnose issues. Check the extension's documentation for information on how to access and interpret these logs.
- Contact support: If you can't resolve the issue, contact the extension's support team with the collected diagnostic information. Provide as much detail as possible to help them troubleshoot the problem.
-
Extension not visible after installation:
- Refresh the page: Sometimes, the extension might not appear immediately after installation.
- Check permissions: Ensure you have the necessary permissions to view and use the extension. Some extensions might require specific permissions to be visible.
- Reinstall the extension: If the extension still isn't visible, try uninstalling and reinstalling it.
::: moniker range=" < azure-devops"
A: If you don't see your organization when buying from the Azure DevOps Marketplace, try the following steps:
- Check the identity that you use to sign in to the Visual Studio Marketplace. In the upper-right corner, select your user name to view your profile.
- Make sure your email address and directory are correct.
- Close all browser windows.
- Open a private or incognito browsing session.
- Sign in to the Visual Studio Marketplace. Use the identity of a user in the organization that you want.
Tip
Azure DevOps might ask you to choose between "work or school account" or "personal account." If so, then you used an email address that's the same for a Microsoft account and a "work or school account" that your organization manages in Microsoft Entra ID. Although these identities have the same email address, they're still separate identities with different profiles, security settings, and permissions. Choose the identity for the user in the organization that you want to select.
A: You can't install extensions for one of the following reasons.
- Be a member of the Project Collection Administrators group or are the Organization owner. If you don't have permissions, but you're a project member, you can request extensions instead.
- For an "already installed or requested" error, check with your Project Collection Administrator and ask them to assign the extension to you.
A: Users can't access an extension for one of the following reasons.
-
Most extensions require that users have at least Basic access, not Stakeholder. For example, you can install the free Code Search extension, but each user must have at least Basic access to search for code. To help your team improve app quality, you can install the free Test & Feedback extension. You experience different capabilities, based on your access level and whether you work offline or connected to Azure DevOps Services or on-premises Azure DevOps Server. For more information, see the extension's description in the Visual Studio Marketplace, Azure DevOps tab.
-
If you're using an organization and you started a free extension trial, your trial might be expired. Check whether your trial expired.
- On your organization toolbar, select Users.
- Go to the extension pane.
- Check for an expiration message to find if or when your extension expired.
-
If you're using an organization and you paid for this extension, make sure that you assigned this extension to users.
- On your organization toolbar, go to Users.
- Go to the extension pane.
- Check whether the extension is assigned to the user. If it isn't, assign the extension to the user.
For more information, see Assign extensions to users.
A: Your extension might be out of preview. After a preview period, an extension longer is generally available as a paid extension. A grace period might be offered before you have to buy the extension. All preview extensions automatically convert to a free trial before you have to buy the extension.
A: You can't install extensions for Azure DevOps Server for one of the following reasons:
- Be a member of the Project Collection Administrators group or have the Edit collection-level information permission set to Allow in the project collection where you want to install extensions. If you don't have permissions, you can request extensions instead.
- You might get an error that says you already installed or requested the extension. If so, check with a member of the Project Collection Administrators group and ask them to assign the extension to you. For more information, see Request an increase in permission levels.
A: Be a member of your project collection. Follow these steps to check your identity that you use to sign in to the Marketplace.
- On your Azure DevOps Server web portal home page (
https://{server}:8080/tfs/
), go to the top-right corner of the page, and select your user name to view your profile. - On the left side of your profile, make sure that your email address and directory are correct.
- Close all browser windows.
- Open a private or incognito browsing session.
- Sign in to your Azure DevOps Server home page (
https://{server}:8080/tfs/
) with the identity that's a user in the project collection where you want to install the extension.
Azure DevOps might ask you to choose between a "work or school organization" or "personal account." This message means that you used an email address that's the same for a Microsoft account and a "work or school account" managed by your organization in Microsoft Entra ID. Although these identities have the same email address, they're still separate identities with different profiles, security settings, and permissions. Choose the identity that's the user in your project collection. - From your project collection, go to the Marketplace.
A: Some extensions work only with Azure DevOps Services for one of the following reasons:
- The extension uses Azure DevOps features that aren't released yet for Azure DevOps Server.
- The extension manifest indicates that the extension is available only for Azure DevOps Services (targets = Microsoft.Visualstudio.Services.Cloud).
- The extension manifest indicates that the extension is an integration (targets = Microsoft.Visualstudio.Services.Integration).
A: Be a member of the Team Foundation Administrators group. You must also have Edit instance-level information permissions for the Azure DevOps Server where you want to upload extensions. ::: moniker-end
[!div class="nextstepaction"] Manage extension permissions