{"product":"cli","releases":[{"date":"2026-06-08","entries":[{"areas":["developers"],"breaking":false,"content_html":"\u003cp\u003eEvery list and get command takes the same output flag now:\u003c/p\u003e\n\u003cdiv class=\"code-block\"\u003e\n  \u003cbutton type=\"button\" class=\"code-copy\" aria-label=\"Copy code\" data-copy-code\u003e\n    \u003csvg data-copy viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003crect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\"\u003e\u003c/rect\u003e\n      \u003cpath d=\"M5 15V5a2 2 0 0 1 2-2h10\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n    \u003csvg data-check viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003cpath d=\"M20 6 9 17l-5-5\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003escreenly --output json asset list\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003escreenly --output csv screen list \u0026gt; screens.csv\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003escreenly screen list                     \u003cspan style=\"color:#999;font-style:italic\"\u003e# table, as before\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ccode\u003e--output\u003c/code\u003e (or \u003ccode\u003e-o\u003c/code\u003e) sits on the root command, so it works the same way everywhere rather than\nbeing a flag each subcommand had to declare for itself. That is what makes CSV possible without\nadding it fourteen more times.\u003c/p\u003e\n\u003cp\u003eCSV is the addition worth knowing about. A screen inventory that goes to somebody in facilities, or\na monthly export into a spreadsheet, no longer needs a JSON parser in the middle of it.\u003c/p\u003e\n\u003cp\u003eThe old \u003ccode\u003e--json\u003c/code\u003e flag still works and prints a deprecation warning. It goes to standard error, so a\nscript redirecting output to a file gets clean data in the file and the warning on the terminal.\u003c/p\u003e\n","description":"A global --output flag takes table, json or csv, replacing the per-command --json flag that only some commands had.","title":"One output flag for every command, with CSV alongside JSON","type":"release","url":"https://www.screenly.io/releases/cli/1.2.0/output-formats/"}],"json":"https://www.screenly.io/releases/cli/1.2.0/v1.json","product":"cli","product_label":"Screenly CLI","url":"https://www.screenly.io/releases/cli/1.2.0/","version":"1.2.0"}],"title":"Screenly CLI 1.2.0","url":"https://www.screenly.io/releases/cli/1.2.0/","version":1}