Output formats

Specsheet emits output to show the progress made through the checks as they get executed. The format it outputs in is configurable, depending on what is needed.

Console (human-readable)

The default output type is intended for running Specsheet on the command-line.

$ specsheet checks.toml
 apt package 'cmatrix' is installed
1 test passed, 0 tests failed

If Specsheet is being run in a terminal, the output will be coloured by ANSI escape codes; if it’s being run in a pipeline or not to a terminal, it will not. To change this behaviour, use the --colour or --color command-line option.


The dots output is very minimal — it just prints one dot “.“ character for each check that passes, and one “X“ character for each check that fails. At the end, a description of each check that failed is displayed.

$ specsheet spec.toml --format dots

This output format is most useful when there are many tests to be run, with few estimated to fail.

JSON Lines

The JSON Lines output prints a JSON object for each check result as it happens. This is intended to be passed into an automated script.

If you want to format the JSON objects, pipe them through jq.

If you’d like the results as one large JSON document, rather than multiple ones on each line, use the JSON report format.


The Test Anything Protocol is a generic way to describe test output.

A description of each test is added to the end of each line, and the name of each file is printed as a diagnostic line. Here’s what it looks like:

$ specsheet spec.toml --format tap
# running spec.toml
ok 1 - Input file opened
ok 2 - First line of the input valid
ok 3 - Read the rest of the file
not ok 4 - Summarized correctly # TODO Not written yet

You can then pipe the output from Specsheet into anything that consumes TAP.