export
The export command writes report, task, or summary data to a file - CSV, JSON, or Excel - for backup or use outside kasl.
kasl export [DATA] [OPTIONS]Arguments
Section titled “Arguments”DATA(default:report):report: The daily report - intervals, tasks, productivity.tasks: The date’s tasks.summary: The month’s totals and per-day hours, askasl sumcounts them.all: Report + tasks + summary - one JSON file, or suffixed files for CSV/Excel.
Options
Section titled “Options”-f, --format <FORMAT>(default:csv):csv,json(pretty-printed), orexcel(one worksheet per export, headers and autofit applied).-o, --output <PATH>: Custom output file path. If omitted, a name is generated from timestamp, data type, and format:kasl_export_20250115_143022.csv.-d, --date <DATE>(default:today):todayorYYYY-MM-DD. Forsummary, this picks the month; forreport/tasks, the exact date.--hourly: Render the daily report as an hourly (SiServer-style) grid instead of a list of intervals - one row per hour of the workday, each with a description of the work performed. Hours (or parts of hours) that fall inside a break or pause get a localized break label instead - “Break” in English, or the Russian equivalent whenreport.language = "ru"is set in the config. This flag only affectsexport report --format excel; it is ignored for every other data type/format combination.
Examples
Section titled “Examples”# Export today's report as CSV (the default)kasl export
# Export a specific date's report as Excelkasl export report --date 2026-08-15 --format excel
# Export today's report as an hourly Excel gridkasl export report --format excel --hourly
# Export all tasks as JSONkasl export tasks --format json
# Export the current month's summary as Excelkasl export summary --format excel
# Export everything to one JSON filekasl export all --format json --output backup.jsonSample Output
Section titled “Sample Output”A CSV report export is written in three sections - intervals, summary, tasks - separated by blank rows, so one file holds the whole day:
WORK INTERVALS,,,Index,Start,End,Duration1,09:12,13:30,04:182,14:18,16:02,01:443,16:29,18:04,01:35,,,SUMMARY,,,Date,2026-08-08,,Total Hours,07:37,,Productivity,96.1%,,,,,TASKS,,,ID,Name,Comment,Completeness1,PROJ-412 Fix session timeout on the settings page,stale cookie jar,100%A JSON tasks export is a plain array, no wrapper object:
[ { "id": 1, "name": "PROJ-412 Fix session timeout on the settings page", "comment": "stale cookie jar", "completeness": 100 }]An Excel export writes a single worksheet holding the same rows the CSV export would contain. No charts are generated.
The month’s hours
Section titled “The month’s hours”A summary export is the month kasl sum shows, in the export’s shape: a day’s hours are the work its report counts - the intervals between long pauses, with the ones shorter than min_work_interval left out - so a day reads the same in the report, in sum and in the file. A company rest day the reporting API names is in it too, with is_workday: false and the full day it counts as; total_days counts the days that were recorded. Until 1.21 the export had arithmetic of its own - the day’s end minus its start, lunch and all - which gave the same day a second length.