Datadog CLI (Rust). An agent skill from datadog-labs/agent-skills.

MITAuto-check passedDevOps & Cloud

Install Dd Pup

skills CLI
$ npx skills add datadog-labs/agent-skills --skill dd-pup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install datadog-labs/agent-skills dd-pup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/datadog-labs/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/dd-pup .claude/skills/dd-pup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dd-pup
GitHub stars
177
Used in
1 other repo
Token cost
~3.1k tokens
SKILL.md length
647 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

Datadog CLI (Rust). An agent skill from datadog-labs/agent-skills.

  • Works in 5 steps: Check context first (conversation… → If missing, run a discovery command… → If still missing or ambiguous, ask the… → …
  • Tasks that involve OAuth and OpenID Connect
  • SKILL.md covers Quick Reference, Prerequisites, Required Input Resolution and Auth, plus 2 more sections
  • Calls jq; needs DD_API_KEY and DD_APP_KEY

What it does

Dd Pup is an agent skill from datadog-labs/agent-skills. Datadog CLI (Rust). OAuth2 auth with token refresh.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering OAuth and OpenID Connect. It works with Datadog and Rust. The repository describes itself as: Public repository for Datadog Agent Skills. The licence is MIT.

When your agent uses it

  • Tasks that involve OAuth and OpenID Connect

Example prompts

  • “/dd-pup”

Requirements

  • A credential in DD_API_KEY
  • A credential in DD_APP_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Check context first (conversation history, prior command output, saved variables).
  2. If missing, run a discovery command first (list/search) to get valid values.
  3. If still missing or ambiguous, ask the user to confirm the exact value.
  4. Then run the target command.
  5. Never run commands with unresolved placeholders like or .

What it can do on your machine

Read from SKILL.md and the folder at commit 5b40c73. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DD_API_KEY
    • DD_APP_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dd Pup loads about 3.1k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 647 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~15
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from datadog-labs/agent-skills at commit 5b40c73, republished under its MIT licence (© datadog-labs). 647 words, ~3,123 tokens.

Download SKILL.mdSave it as .claude/skills/dd-pup/SKILL.md (or your agent's skills folder).
name
dd-pup
description
Datadog CLI (Rust). OAuth2 auth with token refresh.
metadata.version
1.0.2
metadata.author
datadog-labs
metadata.repository
https://github.com/datadog-labs/agent-skills
metadata.tags
datadog,cli,dd-pup,pup
metadata.alwaysApply
false

pup (Datadog CLI)

Pup CLI for Datadog API operations. Supports OAuth2 and API key auth.

Quick Reference

TaskCommand
Search error logspup logs search --query "status:error" --from 1h
List monitorspup monitors list
Diff a monitor definitionpup monitors diff <monitor-id> monitor.json
Schedule monitor downtimepup downtime create --file downtime.json
Open a dashboard at a live time windowpup dashboards url <dashboard-id> --from now-1h --to now --live true
Find recent slow traces for a service (last 1h)pup traces search --query "service:<service-name> @duration:>500ms" --from 1h
List incidentspup incidents list --limit 50
Import incident payloadpup incidents import --file incident.json
Query metricspup metrics query --query "avg:system.cpu.user{*}"
List hostspup infrastructure hosts list --count 50
Check SLOspup slos list
On-call teamspup on-call teams list
Triage open critical security signals (last 1h)pup security signals list --query "status:open severity:critical" --from 1h --limit 100
Search audit logspup audit-logs search --query "@action:deleted" --from 24h
Audit activity by userpup audit-logs search --query "@usr.email:user@example.com" --from 7d
Investigate API keypup audit-logs search --query "@metadata.api_key.id:KEY_ID" --from 90d
Check authpup auth status
Token expiry (time left)pup auth status
Refresh tokenpup auth refresh

Prerequisites

Install pup using the setup instructions.

Required Input Resolution

For commands that need specific scope values (<env>, <service-name>, <team-id>, resource IDs), use this order:

  1. Check context first (conversation history, prior command output, saved variables).
  2. If missing, run a discovery command first (list/search) to get valid values.
  3. If still missing or ambiguous, ask the user to confirm the exact value.
  4. Then run the target command.
  5. Never run commands with unresolved placeholders like <env> or <monitor-id>.

Auth

bash
pup auth login          # OAuth2 browser flow (recommended)
pup auth status         # Check token validity
pup auth refresh        # Refresh expired token (no browser)
pup auth logout         # Clear credentials

Tokens expire (~1 hour). If a command fails with 401/403 mid-conversation:

bash
pup auth refresh        # Try refresh first
pup auth login          # If refresh fails, full re-auth

If Chrome opens the wrong profile/window, use the one-time OAuth URL printed by pup auth login (If the browser doesn't open, visit: ...) and open that link manually in the correct account session.

Headless/CI (no browser)
bash
# Use env vars or:
export DD_API_KEY=your-api-key
export DD_APP_KEY=your-app-key
export DD_SITE=datadoghq.com    # or datadoghq.eu, etc.

Command Reference

Monitors
bash
pup monitors list --limit 10
pup monitors list --tags "env:<env>"
pup monitors get <monitor-id>
pup monitors search --query "<monitor-name>"
pup monitors create --file monitor.json
pup monitors update <monitor-id> --file monitor.json
pup monitors diff <monitor-id> monitor.json
pup monitors delete <monitor-id>
# No pup monitors mute/unmute commands; use downtime payloads instead.
pup downtime create --file downtime.json
Logs
bash
pup logs search --query "status:error" --from 1h
pup logs search --query "service:<service-name>" --from 1h --limit 100
pup logs search --query "@http.status_code:5*" --from 24h
pup logs search --query "env:<env> level:error" --from 1h
pup logs aggregate --query "service:<service-name>" --compute count --from 1h
Metrics
bash
pup metrics query --query "avg:system.cpu.user{*}" --from 1h --to now
pup metrics query --query "sum:trace.express.request.hits{service:<service-name>}" --from 1h --to now
pup metrics list --filter "system.*"
APM / Traces
bash
# Confirm env tag with the user first (do not assume production/prod/prd).
pup apm services list --env <env> --from 1h --to now
pup traces search --query "service:<service-name>" --from 1h
pup traces search --query "service:<service-name> @duration:>500ms" --from 1h
pup traces search --query "service:<service-name> status:error" --from 1h
Incidents
bash
pup incidents list --limit 50
pup incidents get <incident-id>
pup incidents import --file incident.json
Dashboards
bash
pup dashboards list
pup dashboards get <dashboard-id> --read-only
pup dashboards url <dashboard-id> --from now-1h --to now --live true
pup dashboards create --file dashboard.json
pup dashboards update <dashboard-id> --file dashboard.json
pup dashboards delete <dashboard-id>
Show full SKILL.md (368 more words)Show less
Safe dashboard create, clone, and update workflow

The goal is a recoverable source and a verified destination. A successful API response alone does not prove that widget content or placement was preserved.

  1. Fetch the source or update target with --read-only and save the exact response as an immutable snapshot. Never overwrite this file with transformed JSON.
    bash
    pup dashboards get <dashboard-id> --read-only -o json > dashboard-source.json
  2. Build a separate mutation payload. Remove response-only fields before create/update: author_handle, author_name, created_at, id, modified_at, and url.
    bash
    jq 'del(.author_handle, .author_name, .created_at, .id, .modified_at, .url)' \
      dashboard-source.json > dashboard-payload.json
  3. For a backup or clone, leave the source dashboard unchanged and change only explicitly requested fields, usually title or description. Preserve layout_type, reflow_type, widget order, and every recursive widget layout object (x, y, width, height, and is_column_break). Repacking or compacting coordinates creates a derived layout, not an exact clone.
  4. Create or update from dashboard-payload.json, then fetch the destination into a new file.
    bash
    pup dashboards create --file dashboard-payload.json
    pup dashboards get <destination-id> --read-only -o json > dashboard-destination.json
  5. Normalize away the response-only fields and compare the complete definitions. The only differences should be the fields intentionally changed.
  6. Also compare layout projections separately so a placement regression cannot hide in a large widget diff:
    bash
    jq '{layout_type, reflow_type, layouts: [.. | objects | .layout? // empty]}' dashboard-source.json
    jq '{layout_type, reflow_type, layouts: [.. | objects | .layout? // empty]}' dashboard-destination.json

Pup 1.6.3 does not expose dashboard version history. If an exact historical version is required and no immutable snapshot exists, inspect version history in the Datadog UI before changing the dashboard.

SLOs
bash
pup slos list
pup slos get <slo-id>
pup slos status <slo-id> --from 30d --to now
pup slos create --file slo.json
Synthetics
bash
pup synthetics tests list
pup synthetics tests get <test-id>
pup synthetics tests search --text "login"
pup synthetics locations list
On-Call
bash
pup on-call teams list
# Pick a real team id from `pup on-call teams list` output.
pup on-call teams get <team-id>
pup on-call teams memberships list <team-id>
Hosts / Infrastructure
bash
pup infrastructure hosts list --count 50
pup infrastructure hosts list --filter "env:<env>"
pup infrastructure hosts get <host-name>
Events
bash
pup events list --from 24h
pup events list --tags "source:deploy"
pup events search --query "deploy" --from 24h --limit 50
pup events get <event-id>
Downtimes
bash
pup downtime list
pup downtime create --file downtime.json
pup downtime cancel <downtime-id>
Users / Teams
bash
pup users list
pup users get <user-id>
Security
bash
pup security signals list --query "*" --from 1h --limit 100
pup security signals list --query "status:open severity:critical" --from 1h --limit 100
# Broader lookback for historical triage
pup security signals list --query "severity:critical" --from 24h --limit 100
Audit Logs
bash
# List recent events
pup audit-logs list --from 1h --limit 100

# Search with query (Lucene syntax, same as Log Explorer)
pup audit-logs search --query "@action:deleted" --from 24h
pup audit-logs search --query "@usr.email:user@example.com" --from 7d
pup audit-logs search --query "@evt.name:Authentication @action:login" --from 7d
pup audit-logs search --query "@metadata.api_key.id:KEY_ID" --from 90d --limit 200

# JSON output for piping to jq
pup audit-logs search --query "@action:deleted" --from 24h -o json | jq '.data[].attributes'

# audit-logs is the long form (both work)
pup audit-logs search --query "@evt.name:Monitor @action:modified" --from 7d
Service Catalog
bash
pup service-catalog list
pup service-catalog get <service-name>
Notebooks
bash
pup notebooks list
pup notebooks get <notebook-id>
Workflows
bash
pup workflows get <workflow-id>
pup workflows run <workflow-id> --payload '{"key":"value"}'
pup workflows instances list <workflow-id>
Observability Pipelines
bash
pup obs-pipelines list --limit 50
pup obs-pipelines get <pipeline-id>
pup obs-pipelines create --file pipeline.json
pup obs-pipelines update <pipeline-id> --file pipeline.json
pup obs-pipelines delete <pipeline-id>
pup obs-pipelines validate --file pipeline.json
LLM Observability
bash
pup llm-obs projects list
pup llm-obs projects create --file project.json
pup llm-obs experiments list
pup llm-obs experiments list --filter-project-id <project-id>
pup llm-obs experiments list --filter-dataset-id <dataset-id>
pup llm-obs experiments create --file experiment.json
pup llm-obs experiments update <experiment-id> --file experiment.json
pup llm-obs experiments delete --file delete-request.json
pup llm-obs datasets list --project-id <project-id>
pup llm-obs datasets create --project-id <project-id> --file dataset.json
pup llm-obs spans search --ml-app <ml-app-name> --from 1h --limit 20
Reference Tables
bash
pup reference-tables list --limit 50
pup reference-tables get <table-id>
pup reference-tables create --file table.json
pup reference-tables batch-query --file query.json
Cost Cloud Configs
bash
# AWS CUR configs
pup cost aws-config list
pup cost aws-config get <account-id>
pup cost aws-config create --file config.json
pup cost aws-config delete <account-id>

# Azure UC configs
pup cost azure-config list
pup cost azure-config get <account-id>
pup cost azure-config create --file config.json
pup cost azure-config delete <account-id>

# GCP usage cost configs
pup cost gcp-config list
pup cost gcp-config get <account-id>
pup cost gcp-config create --file config.json
pup cost gcp-config delete <account-id>

Subcommand Discovery

bash
pup --version           # Confirm installed version before documenting workarounds
pup --help              # List all commands
pup <command> --help    # Command-specific help
pup dashboards get <dashboard-id> --jq '{title, layout_type}'  # Filter output before formatting

If local help differs from this skill, compare pup --version with the latest stable release before inventing a workaround.

Error Handling

ErrorCauseFix
401 UnauthorizedToken expiredpup auth refresh
403 ForbiddenMissing scopeCheck app key permissions
404 Not FoundWrong ID/resourceVerify resource exists
Rate limitedToo many requestsAdd delays between calls

Install

See Setup Pup for installation instructions.

Verify Installation
bash
which pup
pup --version

Sites

SiteDD_SITE value
US1 (default)datadoghq.com
US3us3.datadoghq.com
US5us5.datadoghq.com
EU1datadoghq.eu
AP1ap1.datadoghq.com
AP2ap2.datadoghq.com
US1-FEDddog-gov.com

© datadog-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in dd-pup of datadog-labs/agent-skills.

Open the folder on GitHubat commit 5b40c73

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in datadog-labs/agent-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Dd Pup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dd Pup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dd Pup this skilldatadog-labs/agent-skills1771 repos~3.1kAutomated safety check: PassMIT
Observability Architecturemajiayu000/litellm-rs117—~1.3kAutomated safety check: PassMIT
Dd PupDataDog/pup1k—~2.2kAutomated safety check: PassApache-2.0
GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb6.7k—~4kAutomated safety check: NotesApache-2.0
Rocketmq Rust Local Clustermxsm/rocketmq-rust1.5k—~2kAutomated safety check: PassApache-2.0
GitHub Actions CreatorFNOSP/FlyNarwhal4951 repos~2.4kAutomated safety check: PassAGPL-3.0

Similar skills

  • Observability Architecture

    majiayu000/litellm-rs

    LiteLLM-RS Observability Architecture. An agent skill from majiayu000/litellm-rs.

    117 GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Dd Pup

    DataDog/pup

    Official

    Datadog CLI (pup). An agent skill from DataDog/pup.

    1k GitHub stars~2.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • GreptimeDB Dev Docker Image

    GreptimeTeam/greptimedb

    Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.

    6.7k GitHub stars~4k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Rocketmq Rust Local Cluster

    mxsm/rocketmq-rust

    Set up, start, verify, inspect, and stop local development clusters from the current rocketmq-rust checkout.

    1.5k GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • GitHub Actions Creator

    FNOSP/FlyNarwhal

    A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.

    495 GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • Asupersync Mega Skill

    Dicklesworthstone/asupersync

    Build, migrate, debug, and maintain Asupersync. An agent skill from Dicklesworthstone/asupersync.

    281 GitHub stars~2.9k tokensUpdated today
    DevOps & CloudAuto-check passed

More from datadog-labs/agent-skills

All 38 skills in this repo
  • Bootstrap a reproducible LLM Observability experiment through the Python ddtrace SDK or the Node dd-trace SDK.

    177 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Dd Account Setup

    datadog-labs/agent-skills

    Ensure the user has an authenticated Datadog account with a valid DDAPIKEY on the right region before any Datadog setup or instrumentation.

    177 GitHub stars~4.4k tokensUpdated today
    Auto-check: notes
  • Dd Orchestrator

    datadog-labs/agent-skills

    Entry point for Datadog onboarding. An agent skill from datadog-labs/agent-skills.

    177 GitHub stars~6.7k tokensUpdated today
    Auto-check passed
  • Dd Apm

    datadog-labs/agent-skills

    APM - install, onboard, instrument, enable, set up, configure, traces, services, dependencies, performance analysis, Data Streams Monitoring (DSM), queue lag, pipeline latency.

    177 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Agent Install

    datadog-labs/agent-skills

    Install the Datadog Agent on Kubernetes using the Datadog Operator — required before enabling Single Step Instrumentation (SSI), which automatically instruments applications for APM without code…

    177 GitHub stars~2.1k tokensUpdated today
    Auto-check: warnings
  • Dd AWS Integration

    datadog-labs/agent-skills

    Set up the Datadog AWS integration with Terraform - creates the cross-account IAM role Datadog assumes (external ID, no stored credentials), attaches the permission policies Datadog publishes, and…

    177 GitHub stars~6.8k tokensUpdated today
    Auto-check: notes

Works with

Categories

Questions about Dd Pup

What does Dd Pup do?

Datadog CLI (Rust). An agent skill from datadog-labs/agent-skills. Dd Pup is an agent skill from datadog-labs/agent-skills. Datadog CLI (Rust).

When should I use Dd Pup?

Dd Pup fits situations like: tasks that involve OAuth and OpenID Connect.

How do I install Dd Pup in Claude Code?

Run `npx skills add datadog-labs/agent-skills --skill dd-pup -a claude-code`. Or copy the skill folder (dd-pup in datadog-labs/agent-skills) into .claude/skills/dd-pup in your project. Claude Code loads it when a task matches its description.

How do I install Dd Pup in Codex?

Run `npx skills add datadog-labs/agent-skills --skill dd-pup -a codex`. Or copy the skill folder (dd-pup in datadog-labs/agent-skills) into .agents/skills/dd-pup in your project. Codex loads it when a task matches its description.

Can I use Dd Pup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add datadog-labs/agent-skills --skill dd-pup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dd-pup, .gemini/skills/dd-pup, .github/skills/dd-pup and .opencode/skills/dd-pup in your project.

What does Dd Pup need to run?

Going by SKILL.md and its folder, Dd Pup needs the command-line tools its instructions call (jq) and credentials named DD_API_KEY and DD_APP_KEY. Our summary lists: A credential in DD_API_KEY; A credential in DD_APP_KEY.

Does Dd Pup access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dd Pup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dd Pup use?

Dd Pup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dd Pup use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dd Pup?

Skills that share tags, products or a category with Dd Pup: Observability Architecture (majiayu000/litellm-rs, 117 stars), Dd Pup (DataDog/pup, 1k stars), GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars) and Rocketmq Rust Local Cluster (mxsm/rocketmq-rust, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dd Pup?

datadog-labs (a GitHub organization) maintains it in datadog-labs/agent-skills, which has 177 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 7, 2026.

Source: datadog-labs/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.