Formato de exportação
A exportação, parte do Deskami Plus, grava o mesmo registro minuto a minuto que o Deskami guarda no seu Mac. Nada é acrescentado, estimado ou preenchido. Esta página descreve o que há no arquivo.
Convenções
- Uma célula vazia no CSV, ou
nullno JSON, significa não medido. Um0significa medido, e deu zero. - Os nomes das colunas ficam em inglês em todos os idiomas e são fixos; só mudam junto com uma nova
export_version. - Os arquivos são UTF-8. O CSV é separado por vírgulas e tem uma linha de cabeçalho.
- Os horários ficam em UTC no formato ISO 8601, como
2026-09-28T07:41:00Z. As datas sãoYYYY-MM-DD: o dia do calendário em que o minuto foi registrado. - Os números decimais usam ponto, nunca separador de milhar. Os booleanos são
trueefalse. - Há uma linha para cada minuto em que o Deskami registrou alguma coisa, e nenhuma para os minutos em que não registrou nada.
Colunas dos minutos
O CSV tem estas colunas, nesta ordem; no JSON, os mesmos campos formam cada minuto. O nome entre parênteses é a coluna no arquivo bruto do banco de dados.
minute_utc— horário. O início do minuto, em UTC. (minute_utc, em segundos Unix)local_day— data. O dia do calendário ao qual este minuto pertence, no fuso horário em que o Mac estava naquele momento. Ele é fixado na gravação; uma mudança posterior de fuso horário não o move. (day_key)setup_id— inteiro. A configuração em uso: uma câmera mais uma disposição das telas. No JSON, as configurações estão listadas emsetups. (profile_id)seconds_at_desk— de 0 a 60. Segundos em que a câmera viu você neste minuto. Comcamera_offem false, 0 significa que a câmera estava ligada e não viu você. (present_s)posture_deviation— número, 0 ou mais. O quanto sua cabeça e seus ombros ficaram abaixo da sua própria referência, na média do minuto, como múltiplo do limiar de aviso em vigor naquele momento: 0 na referência, 1 no limiar. Vazio quando a postura não foi medida. (posture_dev)posture_peak— número, 0 ou mais. O maior valor da mesma medida dentro do minuto. (posture_peak)distance_deviation— número, 0 ou mais. O quanto seu rosto estava mais perto da tela do que na sua referência, na mesma escala, calculado pela distância entre seus olhos na imagem. (distance_dev)blinks— inteiro. Piscadas contadas enquanto os olhos podiam ser medidos. Vazio quando não podiam. (blinks)incomplete_blinks— inteiro. Piscadas cujo momento mais fechado não chegou perto o bastante do fechamento completo. Vazio quando não deu para julgar. (incomplete_blinks)head_pitch_degrees— número. Inclinação média da cabeça em graus, como a câmera informa: em relação à câmera, não à sua referência. (head_pitch)confidence— de 0 a 1. Confiança média da detecção do rosto. (confidence)light— de 0 a 1. Brilho médio da região do rosto, de 0 escuro a 1 claro. Não o do ambiente. (light)eyes_measured— booleano. Os olhos puderam ser medidos pelo menos uma vez neste minuto. Quando é false,blinks,incomplete_blinkseeye_observed_secondsficam vazios. (eye_valid)eye_observed_seconds— de 0 a 60. Segundos em que os olhos foram realmente observados. As piscadas por minuto sãoblinks× 60 ÷eye_observed_seconds. (eye_observed_s)look_aways— inteiro. Olhadas para longe completas, o hábito 20-20-20. Vazio quando o olhar para longe não estava sendo medido. (gaze_breaks)camera_off— booleano. A câmera estava desligada neste minuto: você a desligou, outro app estava com ela ou a permissão foi retirada. As colunas da câmera ficam então vazias; as de apps e de atividade ainda podem estar preenchidas. (camera_off)declared_break— booleano. Você disse ao Deskami que estava em uma pausa. O minuto conta como fora da mesa, não importa o que a câmera tenha visto. (declared_break)front_app— texto. O identificador de pacote (bundle identifier) do app que ficou na frente durante a maior parte do minuto, comocom.apple.Safari. Vazio quando essa leitura estava desligada, a tela estava bloqueada ou não havia nada na frente. Nunca um título de janela. (app_id)app_switches— inteiro. Quantas vezes o app na frente mudou neste minuto. (app_switches)active_seconds— de 0 a 60. Segundos em que o teclado ou o mouse tinham sido tocados nos últimos 15 segundos. Só o tempo desde o último evento é lido, nunca as teclas. Vazio quando essa leitura estava desligada. (active_s)call_seconds— de 0 a 60. Segundos em que um app de chamadas estava na frente, ou em que um mesmo app estava com o microfone e o alto-falante abertos juntos. Vazio quando não medido, incluindo todo minuto registrado antes de o Deskami começar a medir isso. (meeting_s)
JSON
O arquivo JSON é um único objeto. Ele começa com um cabeçalho: export_version, app_version, exported_at, time_zone (no momento da exportação), database_schema_version, range (kind, from, to) e setups (id, camera_name, created_at).
Depois vem days, um objeto para cada dia registrado no período. Cada dia traz o próprio resumo, os próprios minutos e os próprios avisos:
local_dayeminutes_at_desk, a soma deseconds_at_deskdividida por 60.breaks: períodos de 5 minutos ou mais e de menos de 2 horas fora da mesa, entre dois períodos na mesa. O tempo com a câmera desligada não conta para nenhum dos lados.posture_fine_minutes(posture_deviationabaixo de 1) eposture_attention_minutes(1 ou mais).blink_rate: piscadas por minuto ao longo do tempo em que os olhos foram observados;nullcom menos de um minuto de observação.incomplete_blink_ratio:nullquando não houve piscadas suficientes para julgar.reminders_by_signal: avisos mostrados, contados por sinal.minutes: as colunas dos minutos acima, um objeto por minuto.reminders: um objeto por aviso, comtime_utc,local_day,setup_id,signal(posture,distance,blink,incompleteBlinkougaze),build_up_seconds(tempo acima do limiar antes do aviso),recover_seconds(tempo até voltar para baixo dele;nullquando a medição parou antes),asked(se a pergunta sobre a sua referência foi mostrada) eanswer(nullquando não houve pergunta; caso contrário,trueoufalse).
O PDF não é uma tabela: é o próprio resumo — o resumo do dia, a semana ou o mês — impresso em uma página exatamente como aparece na tela. Cada número nele é o número da tela.
O arquivo bruto
Ajustes › Geral › Dados › Mostrar no Finder revela history.sqlite, ao lado de history.sqlite-wal e history.sqlite-shm. Enquanto o Deskami está rodando, os minutos mais recentes ainda podem estar no arquivo -wal; copie os três arquivos ou encerre o Deskami antes. Se você apagar esses arquivos enquanto o Deskami está rodando, ele começa um registro novo e vazio em poucos segundos. A exportação sempre grava um instantâneo completo. O que o banco de dados guarda está listado na página de privacidade.