Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
CLI command
✓ npx tfx-cli extension install --extension-id my-extension --publisher publisher-name --vsix ./my-extension.vsix
✗ tfx extension install --ids my-extension
The CLI is used via global install or npx. No programmatic API import; all usage is CLI. The wrong example uses an incorrect flag.
login
✓ tfx login --service-url https://dev.azure.com/{organization} --token $(System.AccessToken)
✗ tfx login --url https://dev.azure.com/{organization} --pat $(System.AccessToken)
Use --service-url and --token, not --url or --pat. The token is a PAT or System.AccessToken in Azure Pipelines.
extension install
✓ tfx extension install --publisher-id publisher-name --extension-id extension-id --vsix ./extension.vsix --service-url https://dev.azure.com/{organization}
✗ tfx extension install --manifest vss-extension.json
Use --publisher-id and --extension-id; --manifest is for creating VSIX, not installing. For public extensions, omit --vsix.
Install tfx-cli globally, log in to Azure DevOps, create a VSIX from a manifest, publish it to the marketplace, and install it to a collection.
npm install -g tfx-cli
# Login to Azure DevOps
tfx login --service-url https://dev.azure.com/myorg --token $(echo $AZURE_DEVOPS_PAT)
# Publish an extension from a manifest
tfx extension create --manifest vss-extension.json --rev-version
tfx extension publish --publisher my-publisher --vsix my-extension-1.0.0.vsix --service-url https://dev.azure.com/myorg
# Install an extension
tfx extension install --publisher-id my-publisher --extension-id my-extension --vsix my-extension-1.0.0.vsix --service-url https://dev.azure.com/myorg
tfx --version
Errors
Common errors & fixes
TypeError: Cannot read property 'success' of undefined
Error-handling code missing in tfx login in versions 0.7.10 and earlier.
fixUpgrade to tfx-cli@0.7.11 or later.
Error: Manifest validation: 'public' is not allowed
Manifest contains a property 'public' which is invalid in later versions.
fixRemove 'public' from vss-extension.json; use 'public' flag in tfx extension publish command instead.
Error: Failed to read extension manifest: ENOENT: no such file or directory
Missing manifest file specified with --manifest.
fixEnsure the path to vss-extension.json is correct, or check current working directory.
Audit
Dependencies
noderequiredRuntime required, engine >=20.0.0
azure-devops-node-apirequiredHTTP client for Azure DevOps REST APIs