Resumo de Uso do Computador
Visão Geral
Use primeiro os dados locais do ActivityWatch. Esta skill é compatível com macOS, Windows e Linux, onde a API local do ActivityWatch e Python 3.9+ estiverem disponíveis. A configuração ideal com foco em privacidade registra apenas aplicativos em primeiro plano, títulos de janela sanitizados e estado AFK. Não instale extensões de navegador, ative aw-sync, configure armazenamento em nuvem ou exponha a API local.
O tempo preciso de uso de aplicativos e tempo AFK existe apenas a partir do momento em que o ActivityWatch começa a gravar. Não os infira a partir do tempo de atividade do processo, logs do sistema macOS, histórico de navegador ou bancos de dados não documentados.
Configuração e Verificação
Use esta seção apenas quando o ActivityWatch estiver ausente, parado ou precisar de reparo.
- Inspecione o aplicativo local do ActivityWatch, sua configuração de inicialização, processos locais e o diretório de dados do ActivityWatch do usuário atual. Não substitua uma instalação funcional.
- Deixe o usuário escolher uma fonte de instalação oficial. Antes de iniciá-lo ou ativar a inicialização automática, verifique o editor e o status de segurança do sistema operacional. No macOS, use
codesign --verify --deep --strictespctl --assess --type execute. Pare se a validação falhar, a menos que o usuário decida explicitamente o contrário. - Ative apenas os observadores de janela e AFK. Deixe o macOS solicitar permissão de Acessibilidade por meio de sua interface normal; nunca burle ou altere permissões de privacidade programaticamente.
- No Windows, execute
python -m pip install tzdatauma vez para que o Python possa resolver fusos horários IANA comoAsia/Singaporede forma consistente. - Confirme se o servidor local
http://127.0.0.1:5600tem bucketscurrentwindoweafkstatuscontendo eventos. O limite padrão de AFK é de 180 segundos.
Fallback sem ActivityWatch
Quando o aplicativo, API local, buckets ou eventos do intervalo solicitado estiverem indisponíveis:
- Marque tempo ativo, tempo AFK, sessões e contagens de inicialização como
unavailable, não como zero. - Um instantâneo do aplicativo atual em primeiro plano ou em execução é apenas evidência do presente, não do intervalo solicitado.
- Use o Tempo de Uso apenas quando o usuário disponibilizar seus totais visíveis; rotule como
Screen Time reportede não leia bancos de dados privados. - Inspecione o histórico do navegador apenas para uma solicitação explícita no nível do site. Inspecione documentos recentes ou histórico do terminal apenas após permissão explícita e específica da fonte. Trate todos esses resultados como pistas de metadados, não como durações.
Fluxo de Trabalho
- Estabeleça o intervalo de datas local e o fuso horário.
- Execute
scripts/activitywatch_summary.py --date today, use--period weekou--period monthem torno de uma data de referência, ou use datas inclusivas--start YYYY-MM-DD --end YYYY-MM-DD. Adicione--timezone Area/Citypara timestamps locais reproduzíveis. Mantenha--api-urlna interface de loopback. - Use
active_secondseafk_secondsapenas quando o ActivityWatch os confirmar. Descrevaforeground_sessionscomo intervalos de primeiro plano observados, não inicializações de processo. - Use nomes de aplicativos e títulos de janela sanitizados para reconstruir a linha do tempo. Um título é
confirmedapenas quando ele suporta diretamente a atividade descrita. - Quando o usuário precisar de relatórios por projeto/cliente ou faturáveis, ofereça um arquivo
--rulesJSON local opcional. Combine apenas títulos sanitizados. Explique que a primeira regra correspondente vence e nunca crie ou faça upload de regras sem consentimento. - Para saída em planilha, execute uma tabela por comando:
--format markdown --table appspara chat.--format tsv --table appspara copiar diretamente para software de planilha.--format tsv --table timelinepara linhas cronológicas.--format csv --table apps --csv-bom --output report.csvpara um arquivo compatível com Excel, apenas quando o usuário pedir para salvar um.--report client-timesheetpara linhas faturáveis de projeto/cliente.--report weekly-reviewpara uma tabela de revisão compacta.--report app-trendpara linhas de tendência diária local.
- Quando o ActivityWatch estiver indisponível, retorne seu motivo estruturado. As saídas Markdown, TSV e CSV fornecem colunas
status,reasonesource.
Regras de Privacidade
- Trate títulos de janela como confidenciais. Remova URLs, trunque títulos longos e nunca inclua URLs completas do navegador.
- Mantenha títulos sanitizados padrão para uma linha do tempo útil; use
--hide-titlesse o usuário quiser uma exportação sem títulos. - Use a menor quantidade útil de contexto do título; tabelas de aplicativos e resumo não precisam de títulos.
- Escape células de planilha que possam ser interpretadas como fórmulas.
- Mantenha relatórios locais na conversa atual. Não exporte, faça upload ou compartilhe dados de atividade sem aprovação explícita do usuário.