{"id":79426,"date":"2026-10-20T04:45:05","date_gmt":"2026-10-20T04:45:05","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=79426"},"modified":"2026-10-20T04:45:09","modified_gmt":"2026-10-20T04:45:09","slug":"how-to-install-datadog-cli-on-macos-windows-and-linux-complete-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-datadog-cli-on-macos-windows-and-linux-complete-step-by-step-guide\/","title":{"rendered":"How to Install Datadog CLI on macOS, Windows, and Linux: Complete Step-by-Step Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>SEO Title:<\/strong> How to Install Datadog CLI on Mac, Windows &amp; Linux \u2013 Complete 2026 Tutorial<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Meta Description:<\/strong> Learn how to install Datadog Pup CLI and Datadog CI CLI on macOS, Windows, Ubuntu, Debian, RHEL, and CentOS. Includes installation commands, authentication, verification, troubleshooting, and updates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Focus Keywords:<\/strong> install Datadog CLI, Datadog CLI macOS, Datadog CLI Windows, Datadog CLI Linux, Datadog Pup CLI, Datadog CI CLI, datadog-ci install, Datadog Homebrew, Datadog CLI Ubuntu<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog is a cloud-based observability and monitoring platform that helps organizations monitor applications, infrastructure, logs, metrics, traces, security events, and cloud services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although Datadog provides a comprehensive web interface, developers, DevOps engineers, SREs, and platform engineers often need command-line tools to manage monitoring resources and automate operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog provides CLI tools for these tasks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this tutorial, we will learn how to install and configure Datadog command-line tools across macOS, Windows, and Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will cover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Installing Datadog Pup CLI on Intel and Apple Silicon Macs.<\/li>\n\n\n\n<li>Installing Datadog CLI on Windows using PowerShell.<\/li>\n\n\n\n<li>Installing Datadog CLI on Ubuntu and Debian.<\/li>\n\n\n\n<li>Installing Datadog CLI on RHEL, CentOS, and Amazon Linux.<\/li>\n\n\n\n<li>Installing the Datadog CI CLI using npm.<\/li>\n\n\n\n<li>Authenticating with Datadog using OAuth2 or API keys.<\/li>\n\n\n\n<li>Managing monitors, logs, metrics, dashboards, and SLOs.<\/li>\n\n\n\n<li>Updating and uninstalling Datadog CLI.<\/li>\n\n\n\n<li>Troubleshooting installation and authentication problems.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Understanding Datadog&#8217;s Different CLI Tools<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike GitHub, which provides a general-purpose executable named <code>gh<\/code>, Datadog has several command-line tools designed for different purposes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Tool<\/th><th>Executable<\/th><th>Primary purpose<\/th><\/tr><tr><td>Datadog Pup CLI<\/td><td><code>pup<\/code><\/td><td>General-purpose Datadog API and resource management<\/td><\/tr><tr><td>Datadog CI CLI<\/td><td><code>datadog-ci<\/code><\/td><td>CI\/CD automation and Continuous Testing<\/td><\/tr><tr><td>Datadog Agent CLI<\/td><td><code>datadog-agent<\/code><\/td><td>Local monitoring Agent administration<\/td><\/tr><tr><td>Datadog Sync CLI<\/td><td><code>datadog-sync<\/code><\/td><td>Synchronize supported resources between organizations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Which Datadog CLI Should You Install?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to work with monitors, dashboards, logs, metrics, SLOs, or other Datadog platform resources, use <strong>Datadog Pup CLI<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you need to integrate Datadog with GitHub Actions, GitLab CI, Jenkins, Azure DevOps, or other CI\/CD systems, use <strong>Datadog CI CLI<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you need to inspect or troubleshoot a locally installed Datadog monitoring Agent, use <strong>Datadog Agent CLI<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide focuses on Pup CLI for general platform administration and also explains how to install <code>datadog-ci<\/code> for automation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 1: Installing Datadog Pup CLI<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">3. What Is Datadog Pup CLI?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pup is Datadog&#8217;s general-purpose, API-oriented command-line interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It provides commands for interacting with major Datadog products directly from a terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pup supports functionality across areas such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Infrastructure monitoring<\/li>\n\n\n\n<li>Metrics<\/li>\n\n\n\n<li>Logs<\/li>\n\n\n\n<li>APM and traces<\/li>\n\n\n\n<li>Monitors and alerts<\/li>\n\n\n\n<li>Dashboards<\/li>\n\n\n\n<li>Service Level Objectives (SLOs)<\/li>\n\n\n\n<li>Incident management<\/li>\n\n\n\n<li>Real User Monitoring (RUM)<\/li>\n\n\n\n<li>Security monitoring<\/li>\n\n\n\n<li>Datadog API resources<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pup is also designed to support automation and AI-agent workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The executable is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example commands:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup --help\npup auth login\npup auth status\npup monitors <span class=\"hljs-keyword\">list<\/span>\npup dashboards <span class=\"hljs-keyword\">list<\/span>\npup slos <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pup provides structured output, allowing results to be processed by scripts and automation tools.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before installation, check the following requirements.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Requirement<\/th><th>Details<\/th><\/tr><tr><td>Operating system<\/td><td>macOS, Windows, or supported Linux<\/td><\/tr><tr><td>Processor<\/td><td>Compatible x86-64 or ARM64<\/td><\/tr><tr><td>Internet<\/td><td>Required for installation and Datadog APIs<\/td><\/tr><tr><td>Terminal<\/td><td>Terminal, Zsh, Bash, or PowerShell<\/td><\/tr><tr><td>Datadog account<\/td><td>Required for authenticated platform operations<\/td><\/tr><tr><td>Permissions<\/td><td>Permission to install software<\/td><\/tr><tr><td>Homebrew<\/td><td>Recommended for macOS; optional on Linux<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can access Datadog from:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.datadoghq.com\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Official CLI documentation:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/docs.datadoghq.com\/cli\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Official GitHub repository:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/DataDog\/pup\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. How to Install Datadog CLI on macOS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The recommended method for installing Pup CLI on macOS is Homebrew.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This installation method works on both Intel-based and Apple Silicon Macs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open Terminal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open Terminal from:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applications \u2192 Utilities \u2192 Terminal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively, use Spotlight Search.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Check the macOS Version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sw_vers<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the processor architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Apple Silicon:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">arm64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Intel Macs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">x86_64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Both architectures have official Pup CLI builds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Check Whether Homebrew Is Installed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Homebrew is installed, its version will be displayed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you encounter:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">zsh<\/span>: command not found: brew<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install Homebrew using its official installation script:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\/bin\/bash -c <span class=\"hljs-string\">\"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Review the installer before executing it and follow the setup instructions provided.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Update Homebrew<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew update<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This refreshes Homebrew&#8217;s package metadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Add the Datadog Homebrew Tap<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew tap datadog-labs\/pack<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This configures the Homebrew tap containing Pup CLI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Install Datadog Pup CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew install datadog-labs\/pack\/pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Homebrew downloads and installs the Pup CLI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Verify Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The command should display the installed Pup version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check the available commands:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Find the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">which pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On an Apple Silicon Mac, the command path may be under:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/opt\/homebrew\/bin\/<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On an Intel Mac, it may be under:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/usr\/local\/bin\/<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 8: Confirm the Homebrew Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">brew <span class=\"hljs-keyword\">list<\/span> --versions pup<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display package details:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew info pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Datadog Pup CLI is now installed on macOS.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Alternative: Install Pup CLI on macOS Without Homebrew<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog also provides a script-based installation method.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Download the installation script:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fsSLo pup-install.sh \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/raw.githubusercontent.com\/DataDog\/pup\/main\/install.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Review its contents:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">less<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run the script:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sh<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On macOS without Homebrew, the installer downloads the appropriate binary and normally installs it in:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">~<span class=\"hljs-regexp\">\/.local\/<\/span>bin<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ensure that this directory is on your PATH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, for Zsh:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">'export PATH=\"$HOME\/.local\/bin:$PATH\"'<\/span> &gt;&gt; ~\/.zshrc\nsource ~\/.zshrc<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For most macOS users, Homebrew is the easier installation and upgrade method.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. How to Install Datadog CLI on Windows 10\/11<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog provides prebuilt Pup CLI binaries for 64-bit Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can install Pup using PowerShell without installing Node.js, Python, or Rust.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open PowerShell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open Windows PowerShell or PowerShell 7.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Check Windows Architecture<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-attr\">&#91;System.Runtime.InteropServices.RuntimeInformation]<\/span><span class=\"hljs-selector-pseudo\">::OSArchitecture<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For a compatible x64 system, the result should be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">X64<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Download the Pup CLI Package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Visit the official releases page:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/DataDog\/pup\/releases\/latest\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Download the Windows x86-64 ZIP package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, Pup v2.0.0 uses:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pup_2<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0_Windows_x86_64<\/span><span class=\"hljs-selector-class\">.zip<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Alternatively, download that release using PowerShell:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$version = <span class=\"hljs-string\">\"2.0.0\"<\/span>\n\n$url = <span class=\"hljs-string\">\"https:\/\/github.com\/DataDog\/pup\/releases\/download\/v$version\/pup_${version}_Windows_x86_64.zip\"<\/span>\n\n$zipFile = Join-Path $HOME <span class=\"hljs-string\">\"Downloads\\pup.zip\"<\/span>\n\nInvoke-WebRequest -Uri $url -OutFile $zipFile<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The example pins version 2.0.0 for reproducibility. To install a newer release, update the version variable after checking the official release assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Create an Installation Directory<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$installDir = Join-Path $HOME <span class=\"hljs-string\">\"Tools\\PupCLI\"<\/span>\n\n<span class=\"hljs-keyword\">New<\/span>-Item -ItemType Directory -Path $installDir -Force<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This creates a dedicated installation directory in your user profile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Extract the ZIP File<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Expand-Archive `\n  -Path $zipFile `\n  -DestinationPath $installDir `\n  -Force<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 6: Locate the Pup Executable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Get-ChildItem -Path $installDir -Recurse -Filter pup.exe<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the executable is inside a nested directory, copy it into the installation directory:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$pupExe = Get-ChildItem -Path $installDir -Recurse -Filter pup.exe |\n    Select-Object -First <span class=\"hljs-number\">1<\/span>\n\n<span class=\"hljs-keyword\">if<\/span> (-not $pupExe) {\n    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-string\">\"pup.exe was not found in the downloaded package.\"<\/span>\n}\n\n<span class=\"hljs-keyword\">if<\/span> ($pupExe.DirectoryName -ne $installDir) {\n    Copy-Item $pupExe.FullName (Join-Path $installDir <span class=\"hljs-string\">\"pup.exe\"<\/span>) -Force\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 7: Verify the Executable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">&amp; <span class=\"hljs-string\">\"$installDir\\pup.exe\"<\/span> --version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the version is displayed, the executable is working.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Add Pup CLI to Windows PATH<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$userPath = &#91;Environment]::GetEnvironmentVariable(<span class=\"hljs-string\">\"Path\"<\/span>, <span class=\"hljs-string\">\"User\"<\/span>)\n\n<span class=\"hljs-keyword\">if<\/span> (($userPath -split <span class=\"hljs-string\">\";\"<\/span>) -notcontains $installDir) {\n    $newPath = ($userPath.TrimEnd(<span class=\"hljs-string\">\";\"<\/span>) + <span class=\"hljs-string\">\";\"<\/span> + $installDir).TrimStart(<span class=\"hljs-string\">\";\"<\/span>)\n\n    &#91;Environment]::SetEnvironmentVariable(\n        <span class=\"hljs-string\">\"Path\"<\/span>,\n        $newPath,\n        <span class=\"hljs-string\">\"User\"<\/span>\n    )\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Update the current PowerShell session:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$env:Path += <span class=\"hljs-string\">\";$installDir\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 9: Verify Installation Globally<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Find the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">where<\/span><span class=\"hljs-selector-class\">.exe<\/span> <span class=\"hljs-selector-tag\">pup<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the executable is not found after changing PATH, open a new PowerShell window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Datadog Pup CLI is now installed on Windows.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Alternative: Install Pup from Git Bash<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If Git Bash, MSYS2, or Cygwin is installed, you can use Datadog&#8217;s installer script:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fsSL https:<span class=\"hljs-comment\">\/\/raw.githubusercontent.com\/DataDog\/pup\/main\/install.sh | sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The installer downloads the appropriate release archive and verifies its SHA-256 checksum.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It normally installs the executable under the user&#8217;s <code>~\/.local\/bin<\/code> directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure that directory is in your shell PATH.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. How to Install Datadog CLI on Ubuntu and Debian<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For Ubuntu and Debian Linux, the Datadog-provided installation script is a convenient approach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same method also works on several other supported Linux distributions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check Linux Distribution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/etc\/os-release<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check your architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Possible results:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">x86_64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">aarch64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pup has prebuilt Linux x86-64 and ARM64 release binaries.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Update Linux Packages<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For Ubuntu or Debian:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Install Required Utilities<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install -y curl ca-certificates tar<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Download the Official Installation Script<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fsSLo pup-install.sh \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/raw.githubusercontent.com\/DataDog\/pup\/main\/install.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Review the downloaded script:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">less<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is recommended before executing scripts retrieved from the internet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install Datadog Pup CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sh<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The installer determines the operating system and architecture, downloads the corresponding binary, and verifies its checksum.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By default, non-Homebrew installations use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">~<span class=\"hljs-regexp\">\/.local\/<\/span>bin<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 6: Add the Installation Directory to PATH<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check whether the directory is already included:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"$PATH\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If necessary, add it for Bash:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">'export PATH=\"$HOME\/.local\/bin:$PATH\"'<\/span> &gt;&gt; ~\/.bashrc<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Reload:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">source ~\/.bashrc<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If you use Zsh, update <code>~\/.zshrc<\/code> instead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Verify Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">And:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Find the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The installation is complete.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. How to Install Datadog CLI on RHEL, CentOS, Rocky Linux, and Amazon Linux<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Pup&#8217;s official installation script can also install the CLI on compatible RPM-based Linux distributions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike the Datadog monitoring Agent, Pup does not require setting up a Datadog Agent YUM or DNF repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check the Operating System<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/etc\/os-release<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install Required Utilities<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On a DNF-based distribution:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install -y curl tar gzip ca-certificates<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On older systems using YUM:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum install -y curl tar gzip ca-certificates<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Download and Review the Installer<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fsSLo pup-install.sh \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/raw.githubusercontent.com\/DataDog\/pup\/main\/install.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Review:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">less<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install Pup CLI<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sh<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Configure PATH<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For Bash:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">'export PATH=\"$HOME\/.local\/bin:$PATH\"'<\/span> &gt;&gt; ~\/.bashrc\nsource ~\/.bashrc<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 6: Verify Installation<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pup CLI is now available on your Linux workstation or server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. Alternative Linux Installation Using a Standalone Binary<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">You can install Pup manually without running the installation script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following example uses the official Linux x86-64 v2.0.0 release archive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Download the Release<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/pup\/releases\/download\/v2.0.0\/pup_2.0.0_Linux_x86_64.tar.gz \\<\/span>\n  -o pup.tar.gz<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For ARM64, use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/pup\/releases\/download\/v2.0.0\/pup_2.0.0_Linux_arm64.tar.gz \\<\/span>\n  -o pup.tar.gz<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Download only the archive matching your system architecture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Verify the Download<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Download the published checksum file for the same release:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/pup\/releases\/download\/v2.0.0\/pup_2.0.0_checksums.txt \\<\/span>\n  -o pup_2<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>_checksums.txt<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the downloaded archive&#8217;s hash:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sha256sum<\/span> <span class=\"hljs-selector-tag\">pup<\/span><span class=\"hljs-selector-class\">.tar<\/span><span class=\"hljs-selector-class\">.gz<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare the hash against the official checksum for the corresponding release asset.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The filename in the checksum manifest refers to the original release archive name, so be sure to match the correct entry rather than just the locally renamed file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For stronger supply-chain validation, Datadog also publishes signed checksum metadata that can be verified using Sigstore\/cosign.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Extract the Archive<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">tar<\/span> <span class=\"hljs-selector-tag\">-xzf<\/span> <span class=\"hljs-selector-tag\">pup<\/span><span class=\"hljs-selector-class\">.tar<\/span><span class=\"hljs-selector-class\">.gz<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Find the Executable<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">find . -type f -name pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Locate the extracted executable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install the Executable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If it was extracted in the current directory:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo install -m 0755 .\/pup \/usr\/local\/bin\/pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If it was extracted in a subdirectory, adjust the source path.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Verify<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The standalone binary approach is useful for controlled servers and reproducible installation workflows.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. How to Authenticate Datadog Pup CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">After installing Pup CLI, authenticate with your Datadog organization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pup supports OAuth2 authentication and API key authentication.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: OAuth2 Browser Login (Recommended)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Configure the Datadog Site<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog operates regional sites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples include:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Region<\/th><th>Datadog site<\/th><\/tr><tr><td>US1<\/td><td><code>datadoghq.com<\/code><\/td><\/tr><tr><td>US3<\/td><td><code>us3.datadoghq.com<\/code><\/td><\/tr><tr><td>US5<\/td><td><code>us5.datadoghq.com<\/code><\/td><\/tr><tr><td>EU<\/td><td><code>datadoghq.eu<\/code><\/td><\/tr><tr><td>AP1<\/td><td><code>ap1.datadoghq.com<\/code><\/td><\/tr><tr><td>AP2<\/td><td><code>ap2.datadoghq.com<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Select the site corresponding to your Datadog organization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS or Linux:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> DD_SITE=<span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On Windows PowerShell:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$env:DD_SITE = <span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 2: Log In<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth login<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The CLI initiates a browser-based OAuth2 authentication workflow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the prompts to complete authentication with your Datadog account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OAuth2 uses scoped access rather than requiring you to manually supply long-lived application credentials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> OAuth2 login requires the relevant functionality, including Dynamic Client Registration, to be available for your Datadog site. If it is unavailable, use API key authentication.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Verify Authentication Status<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth status<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 4: Test Connectivity<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth test<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This checks the connection using your configured authentication.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: List Datadog Monitors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup monitors <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the account has appropriate permissions, the CLI retrieves the organization&#8217;s accessible monitors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Log Out<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When required:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth logout<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Method 2: Authenticate Using API and Application Keys<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For unattended automation, Pup also supports Datadog API and application keys.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configure credentials in your Datadog organization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use appropriately scoped permissions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">macOS\/Linux<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Environment variable names for Pup are:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">DD_API_KEY\nDD_APP_KEY\nDD_SITE<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Supply these securely through your terminal session, approved secret manager, or CI\/CD secret configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, in a trusted interactive terminal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">read -r -s -p <span class=\"hljs-string\">\"Datadog API key: \"<\/span> DD_API_KEY\necho\nread -r -s -p <span class=\"hljs-string\">\"Datadog application key: \"<\/span> DD_APP_KEY\necho\n\n<span class=\"hljs-keyword\">export<\/span> DD_API_KEY DD_APP_KEY\n<span class=\"hljs-keyword\">export<\/span> DD_SITE=<span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This avoids placing literal secret values in the command history.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Windows PowerShell<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Read the keys interactively:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$apiKey = Read-Host <span class=\"hljs-string\">\"Datadog API key\"<\/span> -AsSecureString\n$appKey = Read-Host <span class=\"hljs-string\">\"Datadog application key\"<\/span> -AsSecureString<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Convert the entered values into environment variables for the current process:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$env:DD_API_KEY = &#91;System.Net.NetworkCredential]::new(<span class=\"hljs-string\">\"\"<\/span>, $apiKey).Password\n$env:DD_APP_KEY = &#91;System.Net.NetworkCredential]::new(<span class=\"hljs-string\">\"\"<\/span>, $appKey).Password\n$env:DD_SITE = <span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These environment variables contain the key values as plaintext in process memory. Avoid displaying them, logging them, or persisting them insecurely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Test API Key Authentication<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup monitors <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pup uses its configured authentication automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If an existing OAuth session is active, it takes precedence over API key credentials unless authentication selection is changed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Essential Datadog Pup CLI Commands<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">After installation and authentication, you can perform many read-only Datadog operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check Version<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Display Help<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --help<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Check Authentication<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth status<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Test Connection<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth test<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List Monitors<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup monitors <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Filter Monitors by Tag<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup monitors <span class=\"hljs-keyword\">list<\/span> --tags=<span class=\"hljs-string\">\"team:platform\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List Dashboards<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup dashboards <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Retrieve a Dashboard<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pup dashboards <span class=\"hljs-keyword\">get<\/span> DASHBOARD_ID<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Replace <code>DASHBOARD_ID<\/code> with an existing dashboard identifier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">List SLOs<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup slos <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Retrieve an SLO<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pup slos <span class=\"hljs-keyword\">get<\/span> SLO_ID<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Search Recent Error Logs<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pup logs search --query=<span class=\"hljs-string\">\"status:error\"<\/span> --<span class=\"hljs-keyword\">from<\/span>=<span class=\"hljs-string\">\"1h\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This searches logs with error status over the previous hour.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Results depend on your permissions, indexes, and retained data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Query CPU Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pup metrics query --query=<span class=\"hljs-string\">\"avg:system.cpu.user{*}\"<\/span> --<span class=\"hljs-keyword\">from<\/span>=<span class=\"hljs-string\">\"1h\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Search for Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup metrics <span class=\"hljs-keyword\">list<\/span> --filter=<span class=\"hljs-string\">\"system.*\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List Incidents<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup incidents <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Use the command-specific help for supported filtering options:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup monitors --help\npup logs --help\npup metrics --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pup can also create, update, and delete supported resources. Confirm the target organization, permissions, and command behavior before executing write operations.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 2: Installing Datadog CI CLI<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">12. What Is Datadog CI CLI?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog CI CLI is a separate command-line tool designed for CI\/CD integrations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its executable is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">It can support workflows such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Running Datadog Synthetic tests from CI\/CD.<\/li>\n\n\n\n<li>Uploading JavaScript source maps.<\/li>\n\n\n\n<li>Sending supported CI events and metadata.<\/li>\n\n\n\n<li>Tracing custom CI pipeline commands.<\/li>\n\n\n\n<li>Automating Datadog-related development workflows.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The npm package is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Official repository:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/DataDog\/datadog-ci\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">13. Install Datadog CI CLI on macOS<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Check Node.js<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check npm:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npm --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Node.js is unavailable and you use Homebrew:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew install node<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For CI\/CD environments, choose an actively supported Node.js LTS release compatible with your selected <code>datadog-ci<\/code> version.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Install Datadog CI CLI Globally<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-55\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-55\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 3: Verify Installation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Locate the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v datadog-ci<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 4: Inspect Available Plugins<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-56\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">datadog-ci plugin <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-56\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For example, install the Synthetic testing plugin:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Datadog CI CLI is now installed on macOS.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Install Datadog CI CLI on Windows<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open PowerShell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open PowerShell or Windows Terminal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install Node.js<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Node.js is not installed, you can install Node.js LTS through WinGet:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-57\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">OpenJS<\/span><span class=\"hljs-selector-class\">.NodeJS<\/span><span class=\"hljs-selector-class\">.LTS<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-57\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">After installation, open a new PowerShell window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version\nnpm --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Install Datadog CI CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-58\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-58\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Verify<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Find the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command datadog-ci<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install a Plugin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For Synthetic testing:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The installation is complete.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. Install Datadog CI CLI on Ubuntu\/Debian Linux<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Update Packages<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 2: Check Whether Node.js and npm Are Installed<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version\nnpm --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If both are already present and meet the CLI&#8217;s requirements, continue to Step 4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otherwise, install a supported Node.js LTS release using an approved Node.js distribution or version manager.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a basic distribution-provided installation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install -y nodejs npm<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> The Ubuntu\/Debian repositories may provide older Node.js versions. Check compatibility with the selected Datadog CI CLI version rather than assuming every packaged Node.js version is supported.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Verify Node.js<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version\nnpm --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install Datadog CI CLI<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-59\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-59\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If a permission error occurs, prefer a user-managed Node.js installation or an npm prefix configured for your user instead of automatically rerunning npm with <code>sudo<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Verify Installation<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci --help<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 6: Install Synthetic Testing Plugin<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Datadog CI CLI is now available on Ubuntu or Debian.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Install Datadog CI CLI on RHEL, CentOS, and Amazon Linux<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The CLI installation is the same once a compatible Node.js runtime and npm are available.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check Node.js<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">node --version\nnpm --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install Node.js if Missing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On RPM-based distributions where compatible Node.js packages are available:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install -y nodejs npm<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On older YUM-based installations:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum install -y nodejs npm<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify the version and compatibility before continuing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Install Datadog CI CLI<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-60\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-60\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Verify<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci --help<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install Required Plugins<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For reproducible CI\/CD pipelines, install an exact, tested package version rather than relying on whichever version is latest at deployment time.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Install Datadog CI CLI Without Node.js<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog provides standalone binaries for supported operating systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These binaries bundle the runtime needed to execute the CLI and include the Datadog CI plugins.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">macOS \u2014 Apple Silicon<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-61\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\/download\/datadog-ci_darwin-arm64 \\<\/span>\n  -o datadog-ci\n\nchmod +x datadog-ci\n\n.\/datadog-ci version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-61\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To install system-wide after verifying the binary:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo install -m 0755 datadog-ci \/usr\/local\/bin\/datadog-ci<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">macOS \u2014 Intel<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-62\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\/download\/datadog-ci_darwin-x64 \\<\/span>\n  -o datadog-ci\n\nchmod +x datadog-ci\n\n.\/datadog-ci version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-62\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Linux \u2014 x86-64<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-63\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\/download\/datadog-ci_linux-x64 \\<\/span>\n  -o datadog-ci\n\nchmod +x datadog-ci\n\nsudo install -m <span class=\"hljs-number\">0755<\/span> datadog-ci \/usr\/local\/bin\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-63\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Linux \u2014 ARM64<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-64\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fL \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\/download\/datadog-ci_linux-arm64 \\<\/span>\n  -o datadog-ci\n\nchmod +x datadog-ci\n\nsudo install -m <span class=\"hljs-number\">0755<\/span> datadog-ci \/usr\/local\/bin\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-64\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 x64<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open PowerShell:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-65\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$installDir = Join-Path $HOME <span class=\"hljs-string\">\"Tools\\DatadogCI\"<\/span>\n\n<span class=\"hljs-keyword\">New<\/span>-Item -ItemType Directory -Force -Path $installDir\n\nInvoke-WebRequest `\n  -Uri <span class=\"hljs-string\">\"https:\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\/download\/datadog-ci_win-x64\"<\/span> `\n  -OutFile <span class=\"hljs-string\">\"$installDir\\datadog-ci.exe\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-65\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify directly:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-66\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">&amp; <span class=\"hljs-string\">\"$installDir\\datadog-ci.exe\"<\/span> version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-66\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Add the directory to your Windows user PATH using the Windows Environment Variables settings or the PowerShell PATH configuration method described earlier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When downloading standalone executables for production use, verify the release source and available artifact integrity information before executing them.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Authenticate Datadog CI CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike Pup&#8217;s interactive OAuth2 login, <code>datadog-ci<\/code> commonly uses environment variables or configuration files for authorization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The exact credentials required depend on the command.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Synthetic testing, configure:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">DATADOG_API_KEY\nDATADOG_APP_KEY\nDATADOG_SITE<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These variable names differ from Pup&#8217;s <code>DD_API_KEY<\/code> and <code>DD_APP_KEY<\/code> names.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">macOS\/Linux<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Supply the keys securely:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-67\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">read -r -s -p <span class=\"hljs-string\">\"Datadog API key: \"<\/span> DATADOG_API_KEY\necho\nread -r -s -p <span class=\"hljs-string\">\"Datadog application key: \"<\/span> DATADOG_APP_KEY\necho\n\n<span class=\"hljs-keyword\">export<\/span> DATADOG_API_KEY DATADOG_APP_KEY\n<span class=\"hljs-keyword\">export<\/span> DATADOG_SITE=<span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-67\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Windows PowerShell<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-68\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$apiKey = Read-Host <span class=\"hljs-string\">\"Datadog API key\"<\/span> -AsSecureString\n$appKey = Read-Host <span class=\"hljs-string\">\"Datadog application key\"<\/span> -AsSecureString\n\n$env:DATADOG_API_KEY = &#91;System.Net.NetworkCredential]::new(<span class=\"hljs-string\">\"\"<\/span>, $apiKey).Password\n$env:DATADOG_APP_KEY = &#91;System.Net.NetworkCredential]::new(<span class=\"hljs-string\">\"\"<\/span>, $appKey).Password\n$env:DATADOG_SITE = <span class=\"hljs-string\">\"datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-68\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For CI\/CD automation, use your platform&#8217;s secret-management capabilities instead of placing credentials directly in source code.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. Run Datadog Synthetic Tests from the CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most useful features of <code>datadog-ci<\/code> is executing Datadog Synthetic tests from a command line or CI\/CD pipeline.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Install the Plugin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For an npm-installed CLI:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Standalone binaries already include plugins.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Find Your Synthetic Test Public ID<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open Datadog&#8217;s Synthetic Monitoring interface and select the test you want to execute.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Locate the test&#8217;s public ID.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Run the Test<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-69\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">datadog-ci synthetics run-tests --<span class=\"hljs-keyword\">public<\/span>-id YOUR_TEST_PUBLIC_ID<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-69\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Replace the placeholder with the actual test public ID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The command starts the configured Synthetic test and reports the results.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The result depends on test settings, account permissions, available test locations, and authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> Synthetic test executions may consume billable testing resources. Only run tests you are authorized to execute.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. Install Datadog CI CLI Locally in a Project<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For production CI\/CD pipelines, a project-local installation is often preferable to a globally installed package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to your project directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you do not already have a Node.js project:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npm init -y<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install the CLI as a development dependency:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-70\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">--save-dev<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-70\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run it through npm:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npx datadog-ci version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or, once installed:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npx datadog-ci plugin install synthetics<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For automation, commit the package manifest and lockfile and use:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npm ci<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This installs dependencies according to the project&#8217;s lockfile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog recommends using an exact tested version to reduce unexpected major-version changes and software supply-chain risks.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Docker Installation Alternative<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If Docker is available, Datadog CI CLI can also run through its published container image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pull the container image:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker pull datadog\/ci<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker run --rm datadog\/ci --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For commands requiring authentication, pass the necessary credentials through approved secrets handling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, after configuring environment variables securely:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker run --rm \\\n  -e DATADOG_API_KEY \\\n  -e DATADOG_APP_KEY \\\n  -e DATADOG_SITE \\\n  datadog\/ci synthetics --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This approach avoids installing the npm package directly on your host machine.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. How to Update Datadog CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Updates depend on which CLI and installation method you use.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update Pup CLI on macOS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew update\nbrew upgrade datadog-labs\/pack\/pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Update Pup CLI on Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a script-managed installation, download and review the current official installer again:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-71\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -fsSLo pup-install.sh \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/raw.githubusercontent.com\/DataDog\/pup\/main\/install.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-71\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">After review:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-72\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sh<\/span> <span class=\"hljs-selector-tag\">pup-install<\/span><span class=\"hljs-selector-class\">.sh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-72\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The installer can install the latest available release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For version-pinned installations, specify the intended <code>PUP_VERSION<\/code> or manually replace the binary with the approved release.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update Pup CLI on Windows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Download the newer official Windows release and replace the existing executable after validating the release artifact.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Update Datadog CI CLI Through npm<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-73\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<span class=\"hljs-keyword\">@latest<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-73\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or upgrade the dependency within a project, review the changes, and update the lockfile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Update Standalone Datadog CI CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Download a newer release for the appropriate operating system and architecture, verify it, and replace the existing executable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For CI\/CD systems, prefer a tested, pinned release over unreviewed automatic upgrades.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. Troubleshooting Datadog CLI Installation Errors<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The following table summarizes common installation and authentication problems.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Error or symptom<\/th><th>Likely cause<\/th><th>Solution<\/th><\/tr><tr><td><code>pup: command not found<\/code><\/td><td>Pup missing or directory not in PATH<\/td><td>Verify installation directory and PATH<\/td><\/tr><tr><td><code>datadog-ci: command not found<\/code><\/td><td>npm executable not found in PATH<\/td><td>Inspect npm global prefix and shell PATH<\/td><\/tr><tr><td><code>brew: command not found<\/code><\/td><td>Homebrew unavailable<\/td><td>Install\/configure Homebrew<\/td><\/tr><tr><td><code>npm: command not found<\/code><\/td><td>Node.js\/npm missing<\/td><td>Install compatible Node.js<\/td><\/tr><tr><td><code>EACCES: permission denied<\/code><\/td><td>npm installation permission issue<\/td><td>Use user-managed Node.js or npm prefix<\/td><\/tr><tr><td><code>exec format error<\/code><\/td><td>Incorrect CPU architecture<\/td><td>Download the correct binary<\/td><\/tr><tr><td>Windows command not recognized<\/td><td>Executable directory missing from PATH<\/td><td>Correct PATH and reopen PowerShell<\/td><\/tr><tr><td><code>401 Unauthorized<\/code><\/td><td>Missing or invalid authentication<\/td><td>Check login or credentials<\/td><\/tr><tr><td><code>403 Forbidden<\/code><\/td><td>Insufficient permissions<\/td><td>Review key scopes, OAuth scopes, and roles<\/td><\/tr><tr><td>OAuth login fails<\/td><td>OAuth configuration, browser, or site issue<\/td><td>Verify site and use supported API-key authentication if necessary<\/td><\/tr><tr><td>SSL certificate error<\/td><td>Certificate trust or proxy issue<\/td><td>Check trust store and approved proxy settings<\/td><\/tr><tr><td>Unexpected or missing data<\/td><td>Wrong Datadog region or organization<\/td><td>Verify site, organization, and access rights<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 1: Pup Command Not Found<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS\/Linux:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-74\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"$PATH\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-74\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If installed in the user-local directory, test:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-75\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-string\">\"$HOME\/.local\/bin\/pup\"<\/span> --version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-75\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If this works, ensure <code>~\/.local\/bin<\/code> is added to your PATH.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 2: datadog-ci Command Not Found<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Check npm:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npm --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">List globally installed packages:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-76\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">npm <span class=\"hljs-keyword\">list<\/span> -g --depth=<span class=\"hljs-number\">0<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-76\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Inspect the global npm prefix:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npm prefix -g<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Confirm that the npm global executable directory is on PATH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a local project installation, use:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">npx datadog-ci version<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 3: Windows Does Not Recognize Pup<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If nothing is found, check the installation directory and PATH.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-77\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$env:Path<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-77\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Open a new PowerShell session after correcting the environment variable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 4: OAuth Login Fails<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verify the intended Datadog site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-78\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pup<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">login<\/span> <span class=\"hljs-selector-tag\">--site<\/span> <span class=\"hljs-selector-tag\">datadoghq<\/span><span class=\"hljs-selector-class\">.eu<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-78\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup auth status<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The OAuth2 login flow requires site support for its authentication mechanisms, including Dynamic Client Registration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your site does not support the required OAuth2 flow, use appropriately scoped API and application keys.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 5: Authentication Returns 403 Forbidden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A valid identity may still lack permission for the requested resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-79\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup monitors <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-79\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A permission error can indicate that the identity lacks the appropriate resource access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check user roles, OAuth scopes, API\/application key permissions, and organization selection.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 6: Incorrect Datadog Region<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog API requests must target the correct site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Pup on macOS\/Linux:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-80\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> DD_SITE=<span class=\"hljs-string\">\"ap1.datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-80\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Datadog CI Synthetic testing:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-81\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> DATADOG_SITE=<span class=\"hljs-string\">\"ap1.datadoghq.com\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-81\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Change the hostname to the actual region where your organization is hosted.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting 7: Linux Binary Architecture Mismatch<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Check architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For <code>x86_64<\/code>, use the x86-64 Linux binary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For <code>aarch64<\/code>, use the ARM64 binary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not assume that binaries compiled for different operating systems or CPU architectures are interchangeable.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">24. How to Uninstall Datadog CLI<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Uninstall Pup CLI on macOS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If installed through Homebrew:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew uninstall datadog-labs\/pack\/pup<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Uninstall Pup CLI on Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a user-local script installation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-82\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">rm -f <span class=\"hljs-string\">\"$HOME\/.local\/bin\/pup\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-82\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For a manually installed system-wide binary:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo rm -f \/usr\/local\/bin\/pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Remove only the executable created by the corresponding installation method.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uninstall Pup CLI on Windows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Delete the <code>pup.exe<\/code> executable from the chosen installation directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remove the directory from your Windows user PATH if it is no longer needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uninstall Datadog CI CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a global npm installation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-83\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">uninstall<\/span> <span class=\"hljs-selector-tag\">-g<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-83\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For a project-local dependency:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-84\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">uninstall<\/span> <span class=\"hljs-selector-tag\">--save-dev<\/span> <span class=\"hljs-keyword\">@datadog<\/span>\/datadog-ci<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-84\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For standalone binaries, remove the installed executable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> Removing these binaries does not automatically delete all stored credentials, authentication sessions, or configuration files. Review them separately if the goal is a complete security-sensitive removal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. Datadog CLI Installation Command Cheat Sheet<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Platform<\/th><th>Pup CLI installation<\/th><th>Datadog CI CLI installation<\/th><\/tr><tr><td>macOS Intel<\/td><td><code>brew install datadog-labs\/pack\/pup<\/code><\/td><td><code>npm install -g @datadog\/datadog-ci<\/code><\/td><\/tr><tr><td>macOS Apple Silicon<\/td><td>Same Homebrew command<\/td><td>Same npm command<\/td><\/tr><tr><td>Windows 10\/11<\/td><td>Official Pup Windows ZIP<\/td><td>npm or standalone Windows executable<\/td><\/tr><tr><td>Ubuntu<\/td><td>Official Pup installation script<\/td><td>npm or standalone Linux executable<\/td><\/tr><tr><td>Debian<\/td><td>Official Pup installation script<\/td><td>npm or standalone Linux executable<\/td><\/tr><tr><td>RHEL\/CentOS<\/td><td>Official Pup installation script<\/td><td>npm or standalone Linux executable<\/td><\/tr><tr><td>Amazon Linux<\/td><td>Official Pup installation script<\/td><td>npm or standalone Linux executable<\/td><\/tr><tr><td>Linux with Homebrew<\/td><td><code>brew install datadog-labs\/pack\/pup<\/code><\/td><td>npm or standalone executable<\/td><\/tr><tr><td>Verify installation<\/td><td><code>pup --version<\/code><\/td><td><code>datadog-ci version<\/code><\/td><\/tr><tr><td>Display help<\/td><td><code>pup --help<\/code><\/td><td><code>datadog-ci --help<\/code><\/td><\/tr><tr><td>Authenticate<\/td><td><code>pup auth login<\/code><\/td><td>Command-specific API\/application key configuration<\/td><\/tr><tr><td>List monitors<\/td><td><code>pup monitors list<\/code><\/td><td>Not the primary purpose<\/td><\/tr><tr><td>Run Synthetic tests<\/td><td>Use supported Pup Synthetic API operations<\/td><td><code>datadog-ci synthetics run-tests<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. Frequently Asked Questions<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Q1. Does Datadog have an official CLI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Datadog provides Pup CLI for general Datadog API operations and Datadog CI CLI for CI\/CD workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Datadog Agent also includes its own administrative commands.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q2. What is the executable name for Datadog CLI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For general platform operations:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pup<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For CI\/CD operations:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-ci<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For local Agent administration:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">datadog-agent<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">There is no universal requirement to install a command simply named <code>datadog<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q3. Can I install Datadog CLI on an Apple Silicon Mac?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Datadog provides native ARM64-compatible builds of Pup and Datadog CI CLI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q4. Does Datadog CLI work on Windows?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Pup and Datadog CI CLI provide Windows-compatible standalone binaries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q5. Do I need Node.js to install Datadog CLI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For Pup CLI, no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the npm-distributed Datadog CI CLI, Node.js and npm are required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, Datadog CI CLI also provides standalone binaries that do not require you to install Node.js separately.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q6. Can I use Datadog CLI without installing the Datadog Agent?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pup and Datadog CI CLI are independent tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They can communicate with Datadog services without requiring a local monitoring Agent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q7. Can I manage Datadog dashboards and monitors using CLI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Pup CLI supports operations for managing monitors, dashboards, SLOs, and other platform resources.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q8. Can I use Datadog CLI in GitHub Actions?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog CI CLI is specifically designed for CI\/CD integration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pup can also be used in automation when appropriately authenticated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q9. Is Datadog CLI free?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The CLI tools are available without a separate installation charge. However, Datadog services, API-driven operations, Synthetic tests, and other monitored resources may be subject to your organization&#8217;s subscription, limits, or usage charges.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q10. What is the difference between Datadog CLI and Datadog Agent?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The CLI communicates with Datadog APIs to perform management or automation tasks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Datadog Agent collects telemetry from infrastructure and applications and forwards it to Datadog.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Agent&#8217;s own CLI is specifically for administering that installed Agent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q11. Should I install both Pup and datadog-ci?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install both if you need general Datadog administration and CI\/CD automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otherwise, install only the tool required for your workflow.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. Best Practices for Production Environments<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">When using Datadog CLI tools in production, follow these recommendations:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Download software from official Datadog repositories and trusted distribution channels.<\/li>\n\n\n\n<li>Verify standalone binaries using published checksums and signatures where available.<\/li>\n\n\n\n<li>Pin approved CLI versions in production automation.<\/li>\n\n\n\n<li>Use OAuth2 where appropriate for interactive Pup access.<\/li>\n\n\n\n<li>Use narrowly scoped machine credentials for unattended automation.<\/li>\n\n\n\n<li>Store credentials in a secure secrets manager.<\/li>\n\n\n\n<li>Never commit API or application keys to a Git repository.<\/li>\n\n\n\n<li>Confirm the Datadog site and organization before making changes.<\/li>\n\n\n\n<li>Prefer read-only access for monitoring and troubleshooting tasks.<\/li>\n\n\n\n<li>Treat commands that delete, modify, or create resources as production changes requiring review.<\/li>\n\n\n\n<li>Avoid mixing production and nonproduction credentials.<\/li>\n\n\n\n<li>Keep CLI upgrades controlled and repeatable.<\/li>\n\n\n\n<li>Use command-specific help before relying on syntax in automation.<\/li>\n\n\n\n<li>Monitor API rate limits and the cost of billable operations.<\/li>\n\n\n\n<li>Do not confuse Datadog Agent installation procedures with Pup or Datadog CI CLI installation.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Datadog provides command-line tools that help developers, DevOps engineers, and SRE teams automate observability and monitoring workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For general Datadog management, <strong>Pup CLI<\/strong> provides access to monitors, dashboards, logs, metrics, SLOs, and many other supported resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For CI\/CD automation, <strong>Datadog CI CLI<\/strong> enables Continuous Testing, Synthetic monitoring workflows, and integrations with development pipelines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Installing these tools is straightforward:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>macOS:<\/strong> Use Homebrew for Pup and npm or a standalone binary for Datadog CI CLI.<\/li>\n\n\n\n<li><strong>Windows:<\/strong> Download the official compatible executables or use npm for Datadog CI CLI.<\/li>\n\n\n\n<li><strong>Ubuntu\/Debian:<\/strong> Use Pup&#8217;s official installation script and npm or a standalone Datadog CI binary.<\/li>\n\n\n\n<li><strong>RHEL\/CentOS\/Amazon Linux:<\/strong> Use the supported installation script and a compatible Node.js runtime or standalone CI binary.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once Pup CLI is installed, begin with:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-85\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pup --version\npup auth login\npup auth status\npup monitors <span class=\"hljs-keyword\">list<\/span>\npup dashboards <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-85\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Datadog CI CLI:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-86\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">datadog-ci version\ndatadog-ci plugin <span class=\"hljs-keyword\">list<\/span>\ndatadog-ci plugin install synthetics<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-86\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">With these tools configured, engineers can simplify Datadog administration, automate observability workflows, and integrate monitoring into development and deployment processes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Official Documentation and References<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.datadoghq.com\/cli\/\">Datadog Pup CLI Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/DataDog\/pup\">Datadog Pup GitHub Repository<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/DataDog\/pup\/releases\/latest\">Datadog Pup Releases<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/DataDog\/datadog-ci\">Datadog CI GitHub Repository<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/DataDog\/datadog-ci\/releases\/latest\">Datadog CI Releases<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.datadoghq.com\/continuous_testing\/cicd_integrations\/configuration\/\">Datadog Continuous Testing Configuration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.datadoghq.com\/agent\/\">Datadog Agent Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.datadoghq.com\/account_management\/api-app-keys\/\">Datadog API and Application Keys<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Last reviewed: October 20, 2026. Installation methods, supported architectures, CLI releases, and authentication requirements can change. Always consult the official documentation and verify compatibility before installing or upgrading tools in production.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SEO Title: How to Install Datadog CLI on Mac, Windows &amp; Linux \u2013 Complete 2026 Tutorial Meta Description: Learn how to install Datadog Pup CLI and Datadog&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-79426","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79426","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=79426"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79426\/revisions"}],"predecessor-version":[{"id":79427,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79426\/revisions\/79427"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=79426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=79426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=79426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}