Communitygithub.com

liuyewang/computer-usage-summary-skill

Resumos do ActivityWatch focados em privacidade para Codex, compatíveis com várias plataformas.

O que é computer-usage-summary-skill?

Esta skill utiliza dados locais do ActivityWatch para gerar resumos de uso do computador de forma privada e multiplataforma (macOS, Windows, Linux). Ela extrai tempo ativo, tempo AFK, sessões de aplicativos e títulos de janela sanitizados diretamente da API local do ActivityWatch, sem depender de serviços em nuvem, extensões de navegador ou bancos de dados não documentados. A skill é projetada para evitar inferências imprecisas e só relata dados quando confirmados pelo ActivityWatch, com fallback estruturado quando ele está indisponível. Comandos flexíveis permitem gerar relatórios em Markdown, TSV ou CSV, incluindo quadros de horários por projeto/cliente e revisões semanais, sempre respeitando regras rígidas de privacidade, como remoção de URLs de títulos e não exportação de dados sem consentimento explícito.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add liuyewang/computer-usage-summary-skill

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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.

  1. 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.
  2. 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 --strict e spctl --assess --type execute. Pare se a validação falhar, a menos que o usuário decida explicitamente o contrário.
  3. 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.
  4. No Windows, execute python -m pip install tzdata uma vez para que o Python possa resolver fusos horários IANA como Asia/Singapore de forma consistente.
  5. Confirme se o servidor local http://127.0.0.1:5600 tem buckets currentwindow e afkstatus contendo 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 reported e 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

  1. Estabeleça o intervalo de datas local e o fuso horário.
  2. Execute scripts/activitywatch_summary.py --date today, use --period week ou --period month em torno de uma data de referência, ou use datas inclusivas --start YYYY-MM-DD --end YYYY-MM-DD. Adicione --timezone Area/City para timestamps locais reproduzíveis. Mantenha --api-url na interface de loopback.
  3. Use active_seconds e afk_seconds apenas quando o ActivityWatch os confirmar. Descreva foreground_sessions como intervalos de primeiro plano observados, não inicializações de processo.
  4. Use nomes de aplicativos e títulos de janela sanitizados para reconstruir a linha do tempo. Um título é confirmed apenas quando ele suporta diretamente a atividade descrita.
  5. Quando o usuário precisar de relatórios por projeto/cliente ou faturáveis, ofereça um arquivo --rules JSON 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.
  6. Para saída em planilha, execute uma tabela por comando:
    • --format markdown --table apps para chat.
    • --format tsv --table apps para copiar diretamente para software de planilha.
    • --format tsv --table timeline para linhas cronológicas.
    • --format csv --table apps --csv-bom --output report.csv para um arquivo compatível com Excel, apenas quando o usuário pedir para salvar um.
    • --report client-timesheet para linhas faturáveis de projeto/cliente.
    • --report weekly-review para uma tabela de revisão compacta.
    • --report app-trend para linhas de tendência diária local.
  7. Quando o ActivityWatch estiver indisponível, retorne seu motivo estruturado. As saídas Markdown, TSV e CSV fornecem colunas status, reason e source.

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-titles se 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.

Habilidades Relacionadas