pup (Datadog CLI)
Pup CLI for Datadog API operations. Supports OAuth2 and API key auth.
Quick Reference
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:
- Check context first (conversation history, prior command output, saved variables).
- If missing, run a discovery command first (list/search) to get valid values.
- If still missing or ambiguous, ask the user to confirm the exact value.
- Then run the target command.
- Never run commands with unresolved placeholders like
<env>or<monitor-id>.
Auth
Tokens expire (~1 hour). If a command fails with 401/403 mid-conversation:
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)
Command Reference
Monitors
Logs
Metrics
APM / Traces
Incidents
Dashboards
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.
- Fetch the source or update target with
--read-onlyand save the exact response as an immutable snapshot. Never overwrite this file with transformed JSON. - Build a separate mutation payload. Remove response-only fields before create/update:
author_handle,author_name,created_at,id,modified_at, andurl. - For a backup or clone, leave the source dashboard unchanged and change only explicitly requested fields, usually
titleordescription. Preservelayout_type,reflow_type, widget order, and every recursive widgetlayoutobject (x,y,width,height, andis_column_break). Repacking or compacting coordinates creates a derived layout, not an exact clone. - Create or update from
dashboard-payload.json, then fetch the destination into a new file. - Normalize away the response-only fields and compare the complete definitions. The only differences should be the fields intentionally changed.
- Also compare layout projections separately so a placement regression cannot hide in a large widget diff:
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
Synthetics
On-Call
Hosts / Infrastructure
Events
Downtimes
Users / Teams
Security
Audit Logs
Service Catalog
Notebooks
Workflows
Observability Pipelines
LLM Observability
Reference Tables
Cost Cloud Configs
Subcommand Discovery
If local help differs from this skill, compare pup --version with the latest stable release before inventing a workaround.
Error Handling
Install
See Setup Pup for installation instructions.


