Output Formats
dtctl supports multiple output formats to suit different workflows – from human-readable tables for interactive use to structured JSON for scripting and AI agents.
Table (Default)
The default output format is a compact, human-readable table:
dtctl get workflows
ID NAME STATE TRIGGER LAST RUN
wf-abc123 Daily Health Check enabled Schedule 2025-01-15 08:00
wf-def456 Incident Remediation enabled Event 2025-01-15 12:34
wf-ghi789 Weekly Report enabled Schedule 2025-01-13 06:00
JSON
Output as JSON for scripting and piping to tools like jq:
dtctl get workflow wf-123 -o json
# Pipe to jq for field extraction
dtctl get workflows -o json | jq '.[].name'
YAML
Output as YAML, useful for round-tripping with dtctl apply:
dtctl get workflow wf-123 -o yaml
Wide
The wide format adds additional columns that are hidden in the default table view:
dtctl get workflows -o wide
ID NAME STATE TRIGGER OWNER LAST RUN LAST STATUS
wf-abc123 Daily Health Check enabled Schedule user@example.com 2025-01-15 08:00 SUCCESS
wf-def456 Incident Remediation enabled Event user@example.com 2025-01-15 12:34 FAILED
Describe
The describe command renders a vertical key-value view with full detail:
dtctl describe workflow wf-123
ID: wf-abc123
Name: Daily Health Check
State: enabled
Trigger: Schedule (0 8 * * *)
Owner: user@example.com
Created: 2025-01-01 10:00:00
Modified: 2025-01-14 15:30:00
Tasks: 3
CSV
Export as CSV for spreadsheets and data pipelines:
# Export workflows to a CSV file
dtctl get workflows -o csv > workflows.csv
# Export DQL query results as CSV
dtctl query 'fetch logs | filter status == "ERROR" | limit 100' -o csv > errors.csv
Plain Mode
The --plain flag disables colors, progress indicators, and interactive prompts. This is useful for piping output or running in non-interactive environments:
dtctl get workflows --plain
Color output follows the no-color.org standard:
--plainflag disables colorNO_COLORenvironment variable disables color- Non-TTY output (piped) disables color automatically
FORCE_COLOR=1overrides TTY detection to force color on
Command Catalog
dtctl can describe its own commands in machine-readable form:
# Full command catalog as JSON
dtctl commands -o json
# Brief catalog (compact, ideal for AI agent bootstrap)
dtctl commands --brief -o json
# Human-readable how-to guide in Markdown
dtctl commands howto
Agent Mode
The --agent (or -A) flag wraps all output in a structured JSON envelope designed for AI agent consumption:
dtctl get workflows --agent
{
"ok": true,
"result": [...],
"context": {
"verb": "get",
"resource": "workflow",
"suggestions": [...]
}
}
Agent mode is auto-detected when running inside AI agent environments (GitHub Copilot, Claude Code, Cursor, OpenCode, and others). To opt out of auto-detection:
dtctl get workflows --no-agent
Agent mode implies --plain – no colors and no interactive prompts. See AI Agent Mode for full details.
Pagination
List commands support server-side pagination with the --chunk-size flag:
# Fetch in chunks of 200
dtctl get workflows --chunk-size 200
# Default chunk size is 500
dtctl get workflows
# Disable chunking (fetch all at once)
dtctl get workflows --chunk-size=0
All pages are fetched automatically and combined into a single result set.