Формат експорту
Експорт, частина Deskami Plus, вивантажує той самий похвилинний запис, який Deskami веде на твоєму Mac. Нічого не додається, не оцінюється і не дописується. На цій сторінці описано, що лежить у файлі.
Домовленості
- Порожня клітинка в CSV або
nullу JSON означає не виміряно.0означає виміряно, і це був нуль. - Назви стовпців усіма мовами англійські й незмінні; вони змінюються лише разом із новим значенням
export_version. - Файли в кодуванні UTF-8. У CSV значення розділено комами, перший рядок — заголовки.
- Час указано в UTC у форматі ISO 8601, наприклад
2026-09-28T07:41:00Z. Дати записано якYYYY-MM-DD: це календарний день, під яким записано хвилину. - У дробових числах стоїть крапка, роздільника тисяч немає ніколи. Логічні значення —
trueіfalse. - На кожну хвилину, у яку Deskami щось записав, припадає один рядок; для хвилин, коли він нічого не записав, рядка немає.
Стовпці хвилин
У CSV ці стовпці йдуть у такому порядку; у JSON ті самі поля складають кожну хвилину. Назва в дужках — це стовпець у вихідному файлі бази даних.
minute_utc— час. Початок хвилини, в UTC. (minute_utc, у секундах Unix-часу)local_day— дата. Календарний день, до якого належить хвилина, у часовому поясі, в якому тоді був Mac. Фіксується під час запису; пізніша зміна часового поясу його не зсуває. (day_key)setup_id— ціле число. Робоче місце, що використовується: камера плюс розташування екранів. У JSON робочі місця перелічено вsetups. (profile_id)seconds_at_desk— від 0 до 60. Секунди, у які камера бачила тебе в цю хвилину. Якщоcamera_offдорівнює false, 0 означає, що камеру було ввімкнено і вона тебе не бачила. (present_s)posture_deviation— число, 0 або більше. Наскільки голова і плечі були нижче за твій власний орієнтир, у середньому за хвилину, в одиницях порога нагадування, що діяв у той момент: 0 на рівні орієнтира, 1 на порозі. Порожньо, якщо поставу не вимірювали. (posture_dev)posture_peak— число, 0 або більше. Найбільше значення тієї самої величини за хвилину. (posture_peak)distance_deviation— число, 0 або більше. Наскільки ближче до екрана було твоє обличчя, ніж під час знімання орієнтира, у тій самій шкалі, за відстанню між очима в кадрі. (distance_dev)blinks— ціле число. Кліпання, підраховані, поки очі вдавалося вимірювати. Порожньо, якщо не вдавалося. (blinks)incomplete_blinks— ціле число. Кліпання, у яких найвужча мить не підійшла достатньо близько до закриття. Порожньо, якщо оцінити не було змоги. (incomplete_blinks)head_pitch_degrees— число. Середній нахил голови вперед-назад у градусах, як його повідомляє камера: відносно камери, а не твого орієнтира. (head_pitch)confidence— від 0 до 1. Середня впевненість виявлення обличчя. (confidence)light— від 0 до 1. Середня яскравість ділянки обличчя, від 0 (темно) до 1 (світло). Не яскравість кімнати. (light)eyes_measured— логічне значення. Очі хоча б раз вдалося виміряти в цю хвилину. Якщо значення false,blinks,incomplete_blinksіeye_observed_secondsпорожні. (eye_valid)eye_observed_seconds— від 0 до 60. Секунди, у які за очима справді вдавалося стежити. Кліпань за хвилину:blinks× 60 ÷eye_observed_seconds. (eye_observed_s)look_aways— ціле число. Завершені погляди вдалину, звичка 20-20-20. Порожньо, якщо погляд удалину не вимірювався. (gaze_breaks)camera_off— логічне значення. Камеру в цю хвилину було вимкнено: ти вимкнув її сам, її займав інший застосунок або дозвіл було відкликано. Стовпці камери тоді порожні; стовпці застосунків і активності все одно можуть бути заповнені. (camera_off)declared_break— логічне значення. Перерва за твоїми словами: ти сказав Deskami, що в тебе перерва. Хвилина рахується як час поза столом, хоч би що бачила камера. (declared_break)front_app— текст. Ідентифікатор пакета (bundle identifier) застосунку, який був попереду більшу частину хвилини, наприкладcom.apple.Safari. Порожньо, якщо цей показник було вимкнено, екран було заблоковано або попереду нічого не було. Ніколи не заголовок вікна. (app_id)app_switches— ціле число. Скільки разів у цю хвилину змінився застосунок попереду. (app_switches)active_seconds— від 0 до 60. Секунди, у які клавіатури або миші торкалися протягом останніх 15 секунд. Читається лише час від останньої події, ніколи не клавіші. Порожньо, якщо цей показник було вимкнено. (active_s)call_seconds— від 0 до 60. Секунди, у які попереду був застосунок для дзвінків або один застосунок одночасно тримав відкритими мікрофон і динамік. Порожньо, якщо не вимірювалося, зокрема в усіх хвилинах, записаних до того, як Deskami почав це вимірювати. (meeting_s)
JSON
Файл JSON — один об’єкт. Він починається із заголовка: export_version, app_version, exported_at, time_zone (на момент експорту), database_schema_version, range (kind, from, to) і setups (id, camera_name, created_at).
Далі йде days — по об’єкту на кожен записаний день у діапазоні. Кожен день несе своє зведення, хвилини й нагадування:
local_dayіminutes_at_desk— сумаseconds_at_desk, поділена на 60.breaks: відрізки поза столом тривалістю від 5 хвилин, але коротші за 2 години, між двома відрізками за столом. Час із вимкненою камерою не зараховується ні туди, ні сюди.posture_fine_minutes(posture_deviationнижче 1) іposture_attention_minutes(1 і вище).blink_rate: кліпання за хвилину за час, поки за очима стежили;null, якщо стежили менше хвилини.incomplete_blink_ratio:null, якщо оцінити вдалося надто мало кліпань.reminders_by_signal: показані нагадування, підраховані за сигналами.minutes: стовпці хвилин, описані вище, по об’єкту на хвилину.reminders: по об’єкту на кожне нагадування, з полямиtime_utc,local_day,setup_id,signal(posture,distance,blink,incompleteBlinkабоgaze),build_up_seconds(час вище порога до нагадування),recover_seconds(час до повернення нижче порога;null, якщо вимірювання зупинилося раніше),asked(чи було показано запитання про твій орієнтир) іanswer(null, якщо запитання не ставили, інакшеtrueабоfalse).
PDF — не таблиця: це саме зведення — зведення дня, тиждень чи місяць, — надруковане на одній сторінці точно так, як воно виглядає на екрані. Кожне число в ньому — те саме, що на екрані.
Вихідний файл
Налаштування › Основні › Дані › Показати у Finder виділяє history.sqlite, поруч із яким лежать history.sqlite-wal і history.sqlite-shm. Поки Deskami працює, найсвіжіші хвилини можуть ще лежати у файлі -wal; скопіюй усі три файли або спершу заверши Deskami. Якщо ти їх видалиш, поки Deskami працює, він за кілька секунд почне вести новий, порожній запис. Експорт завжди записує повний зріз даних. Що зберігається в базі даних, перелічено на сторінці про приватність.