---
name: pp-azure-devops
description: "The fastest Azure DevOps CLI — offline-first, agent-native Trigger phrases: `show my Azure DevOps work items`, `check my ADO pull requests`, `what's the sprint velocity`, `which PRs need my review`, `check Azure DevOps pipeline status`, `use azure-devops`, `run azure-devops`."
author: "davbebawwy"
license: "Apache-2.0"
argument-hint: "<command> [args] | install cli|mcp"
allowed-tools: "Read Bash"
metadata:
  openclaw:
    requires:
      bins:
        - azure-devops-pp-cli
    install:
      - kind: go
        bins: [azure-devops-pp-cli]
        module: github.com/mvanhorn/printing-press-library/library/developer-tools/azure-devops/cmd/azure-devops-pp-cli
---

# Azure DevOps — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `azure-devops-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install azure-devops --cli-only
   ```
2. Verify: `azure-devops-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer). This installs into `$GOPATH/bin` (default `$HOME/go/bin`), so add that directory to `$PATH` instead:

```bash
go install github.com/mvanhorn/printing-press-library/library/developer-tools/azure-devops/cmd/azure-devops-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

azure-devops-pp-cli syncs your work items, builds, and PRs to a local SQLite mirror and lets you query them with SQL or structured --agent output. It matches everything `az devops` and the Microsoft MCP server can do, then adds fifteen cross-entity analytics commands that require no live API calls — sprint velocity, PR review queues, scope creep detection, cycle time analysis, and more.

## When to Use This CLI

Use azure-devops-pp-cli when an agent needs to read or write Azure DevOps data: work items, pull requests, pipelines, builds, or sprint state. It is the fastest path to structured JSON output for ADO data without a browser or the Python-based az devops extension. Use it especially for cross-entity analytics (velocity, cycle time, scope creep) that require the local SQLite mirror. Prefer `az devops` only when you need features this CLI does not yet cover (migrations, live entitlement management).

## Anti-triggers

Do not use this CLI for:
- Do not use this CLI for Azure resource management (VMs, storage, AKS) — use the `az` CLI instead.
- Do not use this CLI for GitHub repositories — use the `gh` CLI.
- Do not use this CLI for reading raw file content from Azure Blob Storage.
- Do not use this CLI for Azure Boards queries that require real-time board state not yet synced.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Local state that compounds
- **`standup`** — See your PRs awaiting review, in-progress work items, and newly failed builds in one command — ready before the standup meeting.

  _Use this when an agent needs a quick briefing on a developer's current work state before creating tasks or PRs on their behalf._

  ```bash
  azure-devops-pp-cli standup --agent
  ```
- **`velocity`** — See sprint-over-sprint velocity with trend line for the current team — points completed vs committed, across the last N sprints.

  _Use this when an agent needs to assess team capacity or forecast delivery dates based on historical throughput._

  ```bash
  azure-devops-pp-cli velocity --sprints 6 --agent
  ```
- **`work sprint-creep`** — See which work items were added to the current sprint after it started, with total story points of scope added mid-sprint.

  _Use this when an agent needs to identify whether a sprint is at risk due to scope expansion after commit._

  ```bash
  azure-devops-pp-cli work sprint-creep --team ENG --json
  ```
- **`work rollover`** — Find work items that have been moved to a new sprint more than once — the chronic blockers that keep slipping through sprint planning.

  _Use this when an agent needs to identify persistent delivery risks before sprint planning._

  ```bash
  azure-devops-pp-cli work rollover --min-rollovers 2 --agent
  ```
- **`pipeline flaky`** — Identify build stages with the highest intermittent failure rate over the last N runs — the stages that fail and then pass without code changes.

  _Use this when an agent needs to identify which pipeline stages are unreliable test signals before acting on build failures._

  ```bash
  azure-devops-pp-cli pipeline flaky --definition-id 42 --last 30 --agent
  ```
- **`wit cycle-time`** — Measure average time from Active to Done per work item type over a date range — the team's true delivery throughput.

  _Use this when an agent needs to estimate realistic delivery timelines based on historical cycle time._

  ```bash
  azure-devops-pp-cli wit cycle-time --type Bug --weeks 12 --agent
  ```
- **`git branch-health`** — See a health dashboard for every repo in the project: default branch build status, last commit age, and open PR count — in one table.

  _Use this when an agent needs to assess overall code health across a multi-repo project before planning changes._

  ```bash
  azure-devops-pp-cli git branch-health --agent --select repo,buildStatus,lastCommitDays,openPRs
  ```
- **`work area-load`** — See open work item counts and total story points grouped by area path — to spot overloaded teams or abandoned backlogs.

  _Use this when an agent needs to identify which teams have the most outstanding work before assigning new items._

  ```bash
  azure-devops-pp-cli work area-load --state Active --agent
  ```
- **`pr aging`** — Find pull requests with no reviewer activity for N or more days, grouped by author — to surface forgotten PRs before they go stale.

  _Use this when an agent needs to identify PRs that are at risk of losing context due to review delays._

  ```bash
  azure-devops-pp-cli pr aging --days 3 --agent
  ```
- **`branches stale`** — List branches that are safe to delete: already merged into default, no open PRs, and no commits in the last N days.

  _Use this when an agent is helping clean up a repository's branch proliferation._

  ```bash
  azure-devops-pp-cli branches stale --repo myapp --days 30 --agent
  ```
- **`builds cost`** — See agent minutes consumed per pipeline per week over the last N weeks — to find pipelines that are growing in CI cost.

  _Use this when an agent needs to identify which pipelines are contributing to growing CI/CD costs._

  ```bash
  azure-devops-pp-cli builds cost --weeks 8 --agent
  ```

### Agent-native plumbing
- **`pr review-queue`** — See only the PRs where you are a required reviewer, the build is passing, and no other required reviewer has voted yet — ordered by readiness.

  _Use this when an agent needs to identify which PRs a developer should review first to unblock teammates._

  ```bash
  azure-devops-pp-cli pr review-queue --agent --select title,buildStatus,waitingReviewers
  ```
- **`release gate-queue`** — See all release gates and YAML pipeline stages currently waiting for your approval across every pipeline, with how long each has been waiting.

  _Use this when an agent needs to identify which deployments are blocked on human approval and how urgent each is._

  ```bash
  azure-devops-pp-cli release gate-queue --agent --select pipelineName,stageName,waitMinutes
  ```
- **`work diff`** — Show exactly which fields changed between two revisions of a work item — a git-style diff for specification and acceptance criteria.

  _Use this when an agent needs to understand what changed in a work item's requirements between two points in time._

  ```bash
  azure-devops-pp-cli work diff --id 4812 --from 3 --to 7 --agent
  ```
- **`git commit-builds`** — Given a commit SHA, see every build and pipeline run that included that commit and whether it passed or failed.

  _Use this when an agent needs to determine whether a specific code change has been validated by CI._

  ```bash
  azure-devops-pp-cli git commit-builds --sha a1b2c3d4 --repo myapp --agent
  ```

## Command Reference

**apis** — Manage apis

- `azure-devops-pp-cli apis avatar-remove-project-avatar` — Removes the avatar for the project.
- `azure-devops-pp-cli apis avatar-set-project-avatar` — Sets the avatar for the project.
- `azure-devops-pp-cli apis categorized-teams-get` — Gets list of user readable teams in a project and teams user is member of (excluded from readable list).
- `azure-devops-pp-cli apis processes-get` — Get a process by ID.
- `azure-devops-pp-cli apis processes-list` — Get a list of processes.
- `azure-devops-pp-cli apis projects-create` — Queues a project to be created. Use the [GetOperation](../..
- `azure-devops-pp-cli apis projects-delete` — Queues a project to be deleted. Use the [GetOperation](../..
- `azure-devops-pp-cli apis projects-get` — Get project with the specified id or name, optionally including capabilities.
- `azure-devops-pp-cli apis projects-get-project-properties` — Get a collection of team project properties.
- `azure-devops-pp-cli apis projects-list` — Get all projects in the organization that the authenticated user has access to.
- `azure-devops-pp-cli apis projects-set-project-properties` — Create, update, and delete team project properties.
- `azure-devops-pp-cli apis projects-update` — Update an existing project's name, abbreviation, description, or restore a project.
- `azure-devops-pp-cli apis teams-create` — Create a team in a team project.
- `azure-devops-pp-cli apis teams-delete` — Delete a team.
- `azure-devops-pp-cli apis teams-get` — Get a specific team.
- `azure-devops-pp-cli apis teams-get-all-teams` — Get a list of all teams.
- `azure-devops-pp-cli apis teams-get-team-members-with-extended-properties` — Get a list of members for a specific team.
- `azure-devops-pp-cli apis teams-get-teams` — Get a list of teams.
- `azure-devops-pp-cli apis teams-update` — Update a team's name and/or description.

**build-apis** — Manage build apis

- `azure-devops-pp-cli build-apis artifacts-create` — Associates an artifact with a build.
- `azure-devops-pp-cli build-apis artifacts-list` — Gets all artifacts for a build.
- `azure-devops-pp-cli build-apis attachments-get` — Gets a specific attachment.
- `azure-devops-pp-cli build-apis attachments-list` — Gets the list of attachments of a specific type that are associated with a build.
- `azure-devops-pp-cli build-apis authorizedresources-authorize-project-resources` — Authorizedresources authorize project resources
- `azure-devops-pp-cli build-apis authorizedresources-list` — Authorizedresources list
- `azure-devops-pp-cli build-apis badge-get-build-badge-data` — Gets a badge that indicates the status of the most recent build for the specified branch.
- `azure-devops-pp-cli build-apis builds-delete` — Deletes a build.
- `azure-devops-pp-cli build-apis builds-get` — Gets a build
- `azure-devops-pp-cli build-apis builds-get-build-changes` — Gets the changes associated with a build
- `azure-devops-pp-cli build-apis builds-get-build-log` — Gets an individual log file for a build.
- `azure-devops-pp-cli build-apis builds-get-build-logs` — Gets the logs for a build.
- `azure-devops-pp-cli build-apis builds-get-build-work-items-refs` — Gets the work items associated with a build. Only work items in the same project are returned.
- `azure-devops-pp-cli build-apis builds-get-build-work-items-refs-from-commits` — Gets the work items associated with a build, filtered to specific commits.
- `azure-devops-pp-cli build-apis builds-get-changes-between-builds` — Gets the changes made to the repository between two given builds.
- `azure-devops-pp-cli build-apis builds-get-retention-leases-for-build` — Gets all retention leases that apply to a specific build.
- `azure-devops-pp-cli build-apis builds-get-work-items-between-builds` — Gets all the work items between two builds.
- `azure-devops-pp-cli build-apis builds-list` — Gets a list of builds.
- `azure-devops-pp-cli build-apis builds-queue` — Queues a build
- `azure-devops-pp-cli build-apis builds-update-build` — Updates a build.
- `azure-devops-pp-cli build-apis builds-update-builds` — Updates multiple builds.
- `azure-devops-pp-cli build-apis definitions-create` — Creates a new definition.
- `azure-devops-pp-cli build-apis definitions-delete` — Deletes a definition and all associated builds.
- `azure-devops-pp-cli build-apis definitions-get` — Gets a definition, optionally at a specific revision.
- `azure-devops-pp-cli build-apis definitions-get-definition-revisions` — Gets all revisions of a definition.
- `azure-devops-pp-cli build-apis definitions-list` — Gets a list of definitions.
- `azure-devops-pp-cli build-apis definitions-restore-definition` — Restores a deleted definition
- `azure-devops-pp-cli build-apis definitions-update` — Updates an existing build definition.
- `azure-devops-pp-cli build-apis folders-create` — Creates a new folder.
- `azure-devops-pp-cli build-apis folders-delete` — Deletes a definition folder. Definitions and their corresponding builds will also be deleted.
- `azure-devops-pp-cli build-apis folders-list` — Gets a list of build definition folders.
- `azure-devops-pp-cli build-apis folders-update` — Updates an existing folder at given existing path
- `azure-devops-pp-cli build-apis general-settings-get` — Gets pipeline general settings.
- `azure-devops-pp-cli build-apis general-settings-update` — Updates pipeline general settings.
- `azure-devops-pp-cli build-apis latest-get` — Gets the latest build for a definition, optionally scoped to a specific branch.
- `azure-devops-pp-cli build-apis leases-add` — Adds new leases for pipeline runs.
- `azure-devops-pp-cli build-apis leases-delete` — Removes specific retention leases.
- `azure-devops-pp-cli build-apis leases-get` — Returns the details of the retention lease given a lease id.
- `azure-devops-pp-cli build-apis leases-get-retention-leases-by-minimal-retention-leases` — Returns any leases matching the specified MinimalRetentionLeases
- `azure-devops-pp-cli build-apis leases-update` — Updates the duration or pipeline protection status of a retention lease.
- `azure-devops-pp-cli build-apis metrics-get-definition-metrics` — Gets build metrics for a definition.
- `azure-devops-pp-cli build-apis metrics-get-project-metrics` — Gets build metrics for a project.
- `azure-devops-pp-cli build-apis options-list` — Gets all build definition options supported by the system.
- `azure-devops-pp-cli build-apis properties-get-build-properties` — Gets properties for a build.
- `azure-devops-pp-cli build-apis properties-get-definition-properties` — Gets properties for a definition.
- `azure-devops-pp-cli build-apis properties-update-build-properties` — Updates properties for a build.
- `azure-devops-pp-cli build-apis properties-update-definition-properties` — Updates properties for a definition.
- `azure-devops-pp-cli build-apis report-get` — Gets a build report.
- `azure-devops-pp-cli build-apis resources-authorize-definition-resources` — Resources authorize definition resources
- `azure-devops-pp-cli build-apis resources-list` — Resources list
- `azure-devops-pp-cli build-apis retention-get` — Gets the project's retention settings.
- `azure-devops-pp-cli build-apis retention-update` — Updates the project's retention settings.
- `azure-devops-pp-cli build-apis settings-get` — Gets the build settings.
- `azure-devops-pp-cli build-apis settings-update` — Updates the build settings.
- `azure-devops-pp-cli build-apis source-providers-get-file-contents` — Gets the contents of a file in the given source code repository.
- `azure-devops-pp-cli build-apis source-providers-get-path-contents` — Gets the contents of a directory in the given source code repository.
- `azure-devops-pp-cli build-apis source-providers-get-pull-request` — Gets a pull request object from source provider.
- `azure-devops-pp-cli build-apis source-providers-list` — Get a list of source providers and their capabilities.
- `azure-devops-pp-cli build-apis source-providers-list-branches` — Gets a list of branches for the given source code repository.
- `azure-devops-pp-cli build-apis source-providers-list-repositories` — Gets a list of source code repositories.
- `azure-devops-pp-cli build-apis source-providers-list-webhooks` — Gets a list of webhooks installed in the given source code repository.
- `azure-devops-pp-cli build-apis source-providers-restore-webhooks` — Recreates the webhooks for the specified triggers in the given source code repository.
- `azure-devops-pp-cli build-apis stages-update` — Update a build stage
- `azure-devops-pp-cli build-apis status-get` — Gets the build status for a definition, optionally scoped to a specific branch, stage, job, and configuration.
- `azure-devops-pp-cli build-apis tags-add-build-tag` — Adds a tag to a build.
- `azure-devops-pp-cli build-apis tags-add-build-tags` — Adds tags to a build.
- `azure-devops-pp-cli build-apis tags-add-definition-tag` — Adds a tag to a definition
- `azure-devops-pp-cli build-apis tags-add-definition-tags` — Adds multiple tags to a definition.
- `azure-devops-pp-cli build-apis tags-delete-build-tag` — Removes a tag from a build. NOTE: This API will not work for tags with special characters.
- `azure-devops-pp-cli build-apis tags-delete-definition-tag` — Removes a tag from a definition. NOTE: This API will not work for tags with special characters.
- `azure-devops-pp-cli build-apis tags-delete-tag` — Removes a tag from builds, definitions, and from the tag store
- `azure-devops-pp-cli build-apis tags-get-build-tags` — Gets the tags for a build.
- `azure-devops-pp-cli build-apis tags-get-definition-tags` — Gets the tags for a definition.
- `azure-devops-pp-cli build-apis tags-get-tags` — Gets a list of all build tags in the project.
- `azure-devops-pp-cli build-apis tags-update-build-tags` — Adds/Removes tags from a build.
- `azure-devops-pp-cli build-apis tags-update-definition-tags` — Adds/Removes tags from a definition.
- `azure-devops-pp-cli build-apis templates-delete` — Deletes a build definition template.
- `azure-devops-pp-cli build-apis templates-get` — Gets a specific build definition template.
- `azure-devops-pp-cli build-apis templates-list` — Gets all definition templates.
- `azure-devops-pp-cli build-apis templates-save-template` — Updates an existing build definition template.
- `azure-devops-pp-cli build-apis timeline-get` — Gets details for a build
- `azure-devops-pp-cli build-apis yaml-get` — Converts a definition to YAML, optionally at a specific revision.

**git-apis** — Manage git apis

- `azure-devops-pp-cli git-apis annotated-tags-create` — Create an annotated tag. Repositories have both a name and an identifier.
- `azure-devops-pp-cli git-apis annotated-tags-get` — Get an annotated tag. Repositories have both a name and an identifier.
- `azure-devops-pp-cli git-apis blobs-get-blob` — Get a single blob. Repositories have both a name and an identifier.
- `azure-devops-pp-cli git-apis blobs-get-blobs-zip` — Gets one or more blobs in a zip file download.
- `azure-devops-pp-cli git-apis cherry-picks-create` — Cherry pick a specific commit or commits that are associated to a pull request into a new branch.
- `azure-devops-pp-cli git-apis cherry-picks-get-cherry-pick` — Retrieve information about a cherry pick operation by cherry pick Id.
- `azure-devops-pp-cli git-apis cherry-picks-get-cherry-pick-for-ref-name` — Retrieve information about a cherry pick operation for a