Dash0 CLI
Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
LessMore
Releases24Avg7/moVersionsv1.0.0 to v1.12.1
New Components
spam-filters: Add spam-filters command with list, get, create, update, and delete subcommands (#132) Manage dataset-scoped spam filters viadash0 spam-filters <subcommand>. Supports file-based input (-f), dry-run validation, and all standard output formats (table, wide, json, yaml, csv).
Bug Fixes
recording-rules: Fix recording rules create and update not passing the dataset as a query parameter (#130) The--datasetflag and profile dataset were silently ignored forrecording-rules createandrecording-rules update. Updateddash0-api-client-goto v1.11.1 which passes the dataset as a query parameter.
New Components
recording-rules: Add recording rules commands (create, list, get, update, delete) for managing Prometheus recording rules via the PrometheusRule CRD format. (#126)
Enhancements
config: Add--profileglobal flag andDASH0_PROFILEenvironment variable to select a profile per invocation. (#127) The selector overrides the active profile on disk for the current invocation without modifying~/.dash0/. Precedence is--profileflag →DASH0_PROFILE→ the active profile. A non-existent profile fails before any API call with a message listing the available profiles. Passing an empty value falls through to the next step.config showannotates theProfile:line with the source when a selector is in effect.
New Components
api: Add experimentalapicommand for raw HTTP calls to the Dash0 API. (#122) Thedash0 -X apicommand performs a raw HTTP request against any Dash0 API endpoint, reusing the active profile's API URL, auth token, and (by default) dataset. It is useful for endpoints that do not yet have a dedicated subcommand.
Enhancements
metrics: Reworkmetrics instantwith new flags and output formats (#45) Add--promqlflag (replacing the deprecated--query),--filterfor PromQL label matcher generation,--from(replacing the deprecated--time),-o csvoutput format,--skip-header, and--columnfor columnar table and CSV output. Thetimestampandvaluecolumns are always included automatically. Deprecated flags (--query,--time) remain functional for backwards compatibility.logs, spans, traces: Promotelogs query,spans query,spans send, andtraces getcommands to stable (#124) These commands no longer require the--experimental(-X) flag.
New Components
notification-channels: Add notification-channels command for managing notification channels (list, get, create, update, delete) (#119) Notification channels are organization-level resources (no --dataset flag). The command uses CRD-enveloped NotificationChannelDefinition types with file-based input. All subcommands are experimental and require the -X flag.
Bug Fixes
check-rules:check-rules updatenow accepts PrometheusRule CRD files (#110) Previously,check-rules update -ffailed with "no check rule ID provided" when given a PrometheusRule CRD file, because it did not detect the kind and route to the PrometheusRule parser. Bothapplyandcheck-rules createalready handled this correctly.dashboards:dashboards updatenow accepts PersesDashboard CRD files (#111) Previously,dashboards update -fdid not detect PersesDashboard CRD files, so the CRD-specific conversion (v1alpha1/v1alpha2 normalization, ID extraction from labels, annotation mapping) was skipped. Bothapplyanddashboards createalready handled this correctly.
New Components
agent-mode: Add agent mode for AI coding agents (#68) When active, agent mode defaults output to JSON, returns errors as JSON on stderr, emits --help as structured JSON, skips confirmation prompts, and disables colored output. Agent mode is activated via --agent-mode, the DASH0_AGENT_MODE environment variable, or auto-detection of known AI agent environment variables (CLAUDE_CODE, MCP_SESSION_ID, CURSOR_SESSION_ID, etc.).
Bug Fixes
dashboards: Clear dashboard ID from the request body before update calls to avoid server-side rejection (#101) When updating a dashboard whose user-defined ID is a UUID, the server rejects the request if the same ID appears in both the URL path parameter and the request body. The CLI now strips the ID from the body before sending the update, since it is already passed as the URL path parameter.dashboards: Fix PersesDashboard annotations (folder-path, sharing, source) being silently dropped during conversion (#103) User-settable annotations (dash0.com/folder-path,dash0.com/sharing,dash0.com/source) on PersesDashboard CRDs were not carried over when converting to a Dashboard definition, affecting bothapplyanddashboards create.
Enhancements
query:--filternow accepts JSON filter criteria copied from the Dash0 UI (#96) The --filter flag on logs query and spans query now accepts JSON arrays and objects as produced by the Dash0 UI "copy filter criteria" feature, in addition to the existing text-based filter syntax. JSON and text filters can be mixed freely.
Bug Fixes
apply: Preserve user-settable annotations and permissions on asset round-trips (#99)dash0.com/folder-path,dash0.com/source, anddash0.com/sharingannotations were silently dropped duringapply,<asset> createand<asset> update.spec.permissionson views and synthetic checks was also stripped.
Enhancements
apply: Migrate asset create/update from Import APIs to standard CRUD APIs (#90) Theapplycommand and individual assetcreate/updatesubcommands now use the standard Create and Update APIs instead of the Import APIs, which are intended for one-time migrations.
Bug Fixes
apply: When an asset definition includes a user-defined ID,applynow always upserts, making repeated applies idempotent and preventing duplicate assets from being created. (#94)
Enhancements
output: Theupdateandapplycommands now show a unified diff of changes (#66)dashboards:<asset> list -o yamland-o jsonnow output full asset definitions instead of summary list items (#67) YAML output is a multi-document stream (separated by---) that can be piped directly todash0 apply -f -. JSON output is an array of full asset definitions. This applies to all four asset types: dashboards, check-rules, views, and synthetic-checks.
Enhancements
errors: Include API response body in error messages when the backend does not return a structured error (#75) Previously, errors like 400 Bad Request only showed the HTTP status code and trace ID. Now, the full response body is displayed so that users can see the reason for the failure.dashboards: Make the<id>argument ofdash0 <asset> updateoptional (#76) When the<id>argument is omitted, the ID is extracted from the file content. This applies to all asset types: dashboards, check rules, synthetic checks, and views.
Bug Fixes
dashboards: Fixdashboards updateoverwritingdash0Extensions.idwith the origin string (#77) Unify ID and name extraction betweenapplyand per-asset CRUD commands by delegating to sharedExtract*functions ininternal/asset/.dashboards: Stop force-setting origin in asset update commands (#78) Thesynthetic-checks update,views update, andcheck-rules updatecommands were force-setting the origin to"dash0-cli", causing 400 errors when updating assets originally created with a different origin.
Bug Fixes
views: Fix view deeplink URLs to use the correct path for each view type (#72) Previously, all view deeplinks used/goto/logsregardless of view type. Now each view type maps to its correct deeplink path (e.g.,/goto/traces/explorerfor span views,/goto/metrics/explorerfor metric views). Theviews listoutput also includes a new TYPE column.
New Components
teams: Add experimental team and member management commands (#47) Newteamscommands: list, get, create, update, delete, add-members, remove-members. Newmemberscommands: list, invite, remove. All commands require the--experimental(-X) flag.
Enhancements
assets: Add CSV output format to asset list commands (#62) Thedashboards list,check-rules list,views list, andsynthetic-checks listcommands now accept-o csv. CSV output includes all columns from thewideformat (name, id, dataset, origin, url).query:--columnflag forlogs query,spans query, andtraces getto customize displayed columns (#56) Users can now select which columns appear in table and CSV output using repeatable--columnflags. Predefined columns have short aliases (e.g.,time,severity,bodyfor logs). Any OTLP attribute key can be used as a column, enabling ad-hoc display of arbitrary attributes.
New Components
spans: Addspans querycommand to query spans from Dash0 (#51) Supports table, CSV, and OTLP JSON output formats with filtering, time range selection, and pagination.spans: Addspans sendcommand to send spans to Dash0 via OTLP (#51) Supports span kind, status, duration, trace/span ID (auto-generated or explicit), parent span, span links, resource/span/scope attributes, and custom instrumentation scope.traces: Addtraces getcommand to retrieve all spans in a trace from Dash0 (#51) Displays spans in table, JSON (OTLP/JSON), or CSV format. Table output shows timestamp, duration, trace ID, span ID, parent ID, span name, status, service name, and span links. Supports--follow-span-linksto recursively fetch traces linked through span links.
Enhancements
logs: Color-code severity levels inlogs querytable output (#46) Severity levels (FATAL, ERROR, WARN, DEBUG, TRACE) are now color-coded when output is a terminal. A new global--colorflag (env:DASH0_COLOR) controls color output:semantic(default) ornone.output: Add--skip-headerflag to suppress the header row in tabular output formats (#50) Available on all assetlistcommands (table and wide formats),config profiles listandlogs query(table and CSV formats).

