Overview

Output Formats

Choose between table and JSON output formats for CloudBurn CLI results.


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 IntegrationUse JSON output in CI annotation workflows
Exit CodesCombine JSON output with exit codes
ConfigurationSet a default format in your config file