Skip to content
ccrawl

Output formats

Every output format, how to narrow columns, and how to template rows.

Every list command renders through the same formatter. Pick a format with -o, or let ccrawl choose: a table when writing to a terminal, JSONL when piped.

Formats

ccrawl search example.com -o table   # aligned columns for reading
ccrawl search example.com -o jsonl   # one JSON object per line, for piping
ccrawl search example.com -o json    # a single JSON array
ccrawl search example.com -o csv     # spreadsheet friendly
ccrawl search example.com -o tsv     # tab-separated
ccrawl search example.com -o url     # just the URL column
ccrawl search example.com -o raw     # the underlying bytes, unformatted
Format Best for
table Reading on a terminal
jsonl Piping into another tool, one object at a time
json Loading a whole result as an array
csv / tsv Spreadsheets and quick column math
url Feeding URLs into other commands
raw The unformatted bytes (response bodies, file contents)

Narrowing columns

Keep only the fields you want:

ccrawl search example.com --fields url,status,length

--no-header drops the header row in table and csv output, which is handy when a downstream tool expects bare rows.

Templating rows

For full control over each line, apply a Go text/template. Fields are the JSON keys, capitalised:

ccrawl search example.com --template '{{.URL}} {{.Status}}'
ccrawl search example.com --template '{{.URL}}	{{.Length}} bytes'

Why auto-detection helps

Because the default adapts to the destination, the same command reads well by hand and parses cleanly in a pipe:

ccrawl search example.com            # a table, because this is a terminal
ccrawl search example.com | wc -l    # JSONL, because this is a pipe

You only reach for -o when you want something other than that default.