CloudBurn supports two output formats: table for human-readable terminal output and json for machine-readable structured data.
table (default)
The table format renders findings as bordered ASCII tables. CloudBurn automatically adjusts column widths to fit your terminal and hides columns that have no data for the current scan.
Example output:
┌──────────┬──────────────────┬─────────┬────────────────────────┬───────────────────────┬──────┬─────────────────────────────────────────────────┐
│ Provider │ RuleId │ Service │ ResourceId │ Path │ Line │ Message │
├──────────┼──────────────────┼─────────┼────────────────────────┼───────────────────────┼──────┼─────────────────────────────────────────────────┤
│ aws │ CLDBRN-AWS-EBS-1 │ ebs │ aws_ebs_volume.main │ modules/storage/main │ 12 │ EBS volume is not using gp3; migrate from gp2 │
│ │ │ │ │ .tf │ │ to save up to 20% on storage costs │
└──────────┴──────────────────┴─────────┴────────────────────────┴───────────────────────┴──────┴─────────────────────────────────────────────────┘
When there are no findings, CloudBurn prints a confirmation message instead of an empty table.
json
The json format outputs a structured JSON object to stdout. Use this for scripting, CI annotation systems, or feeding results into other tools.
Example output:
{
"providers": [
{
"name": "aws",
"rules": [
{
"id": "CLDBRN-AWS-EBS-1",
"service": "ebs",
"findings": [
{
"resourceId": "aws_ebs_volume.main",
"path": "modules/storage/main.tf",
"line": 12,
"message": "EBS volume is not using gp3; migrate from gp2 to save up to 20% on storage costs"
}
]
}
]
}
]
}
Selecting a format
Pass --format as a global flag (before the subcommand):
cloudburn --format json scan ./iac
cloudburn --format json discover
Format precedence
--format flag > config file > table (default)
Setting a default in your config file
You can set a default format per scan type in .cloudburn.yml:
iac:
format: json
discovery:
format: table
See Configuration for the full config reference.
Piping JSON to jq
Extract only the finding messages:
cloudburn --format json scan ./iac | jq '.providers[].rules[].findings[].message'
Count total findings:
cloudburn --format json scan ./iac | jq '[.providers[].rules[].findings[]] | length'
Extract findings for a specific service:
cloudburn --format json scan ./iac | jq '.providers[].rules[] | select(.service == "ebs") | .findings'
What's next
| CI/CD Integration | Use JSON output in CI annotation workflows |
| Exit Codes | Combine JSON output with exit codes |
| Configuration | Set a default format in your config file |