Communitygithub.com

liuyewang/computer-usage-summary-skill

Resúmenes de actividad multiplataforma centrados en la privacidad para Codex, basados en ActivityWatch.

¿Qué es computer-usage-summary-skill?

Esta habilidad proporciona resúmenes detallados del uso del ordenador utilizando datos locales de ActivityWatch, priorizando la privacidad del usuario. Es compatible con macOS, Windows y Linux donde ActivityWatch y Python 3.9+ estén disponibles. Su configuración recomendada registra solo aplicaciones en primer plano, títulos de ventana sanitizados y estado AFK (lejos del teclado), sin necesidad de extensiones de navegador, sincronización en la nube ni exponer la API local. La habilidad permite consultar el tiempo activo, tiempo AFK, sesiones de aplicaciones y lanzamientos en diferentes rangos de fecha (hoy, semana, mes o rangos personalizados), y ofrece múltiples formatos de salida como Markdown, TSV y CSV. Además, incluye reglas de privacidad estrictas: los títulos de ventana se tratan como sensibles, se eliminan URLs y se evita la exportación no autorizada de datos. Cuando ActivityWatch no está disponible, la habilidad retorna un estado estructurado indicando la razón, en lugar de asumir valores por defecto. También cuenta con un modo de respaldo que puede usar Screen Time, historial del navegador o documentos recientes solo con permisos explícitos del usuario.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Resumen de uso del ordenador

Información general

Usa primero los datos locales de ActivityWatch. Esta habilidad es compatible con macOS, Windows y Linux donde la API local de ActivityWatch y Python 3.9+ estén disponibles. La configuración recomendada para equilibrar la privacidad registra solo aplicaciones en primer plano, títulos de ventana sanitizados y el estado AFK. No instales extensiones de navegador, habilites aw-sync, configure almacenamiento en la nube o expongas la API local.

El tiempo histórico preciso de aplicaciones y tiempo AFK solo existe desde el momento en que ActivityWatch comienza a grabar. No los infieras a partir del tiempo de actividad del proceso, registros del sistema de macOS, historial del navegador o bases de datos no documentadas.

Configuración y verificación

Usa esta sección solo cuando ActivityWatch falte, esté detenido o necesite reparación.

  1. Inspecciona la aplicación local de ActivityWatch, su configuración de inicio, los procesos locales y el directorio de datos de ActivityWatch del usuario actual. No reemplaces una instalación que funcione.
  2. Deja que el usuario elija una fuente de instalación oficial. Antes de iniciarla o habilitar el inicio automático, verifica el editor y el estado de seguridad del sistema operativo. En macOS, usa codesign --verify --deep --strict y spctl --assess --type execute. Detente si la validación falla a menos que el usuario decida explícitamente lo contrario.
  3. Habilita solo los observadores de ventana y AFK. Deja que macOS solicite el permiso de Accesibilidad a través de su interfaz normal; nunca omitas ni cambies los permisos de privacidad mediante programación.
  4. En Windows, ejecuta python -m pip install tzdata una vez para que Python pueda resolver zonas horarias IANA como Asia/Singapore de manera consistente.
  5. Confirma que el servidor local http://127.0.0.1:5600 tenga buckets de currentwindow y afkstatus que contengan eventos. El umbral AFK predeterminado es de 180 segundos.

Respaldo sin ActivityWatch

Cuando la aplicación, la API local, los buckets o los eventos del rango solicitado no estén disponibles:

  • Marca el tiempo activo, tiempo AFK, sesiones y recuentos de inicio como no disponible, no como cero.
  • Una instantánea de la aplicación actual en primer plano o en ejecución solo es evidencia del presente, no del rango solicitado.
  • Usa Screen Time solo cuando el usuario ponga a disposición sus totales visibles; etiquétalo como Screen Time reportado y no leas bases de datos privadas.
  • Inspecciona el historial del navegador solo para una solicitud explícita a nivel de sitio web. Inspecciona documentos recientes o el historial de terminal solo después de un permiso explícito y específico de la fuente. Trata todos estos resultados como pistas de metadatos, no como duraciones.

Flujo de trabajo

  1. Establece el rango de fecha local y la zona horaria.
  2. Ejecuta scripts/activitywatch_summary.py --date today, usa --period week o --period month alrededor de una fecha de referencia, o usa fechas inclusivas --start YYYY-MM-DD --end YYYY-MM-DD. Añade --timezone Area/City para marcas de tiempo locales reproducibles. Mantén --api-url en la interfaz de bucle local.
  3. Usa active_seconds y afk_seconds solo cuando ActivityWatch los confirme. Describe foreground_sessions como intervalos observados en primer plano, no como inicios de procesos.
  4. Usa nombres de aplicaciones y títulos de ventana sanitizados para reconstruir la línea de tiempo. Un título es confirmado solo cuando respalda directamente la actividad descrita.
  5. Cuando el usuario necesite informes por proyecto/cliente o facturables, ofrece un archivo JSON --rules local opcional. Coincide solo con títulos sanitizados. Explica que la primera regla que coincida gana y nunca crees ni subas reglas sin consentimiento.
  6. Para la salida en hoja de cálculo, ejecuta una tabla por comando:
    • --format markdown --table apps para el chat.
    • --format tsv --table apps para copiar directamente en un software de hoja de cálculo.
    • --format tsv --table timeline para filas cronológicas.
    • --format csv --table apps --csv-bom --output report.csv para un archivo compatible con Excel, solo cuando el usuario pida guardarlo.
    • --report client-timesheet para filas facturables de proyecto/cliente.
    • --report weekly-review para una tabla de revisión compacta.
    • --report app-trend para filas de tendencia diaria local.
  7. Cuando ActivityWatch no esté disponible, devuelve su motivo estructurado. Las salidas Markdown, TSV y CSV proporcionan columnas de status, reason y source.

Reglas de privacidad

  • Trata los títulos de ventana como información sensible. Elimina URLs, trunca títulos largos y nunca incluyas URLs completas del navegador.
  • Mantén los títulos sanitizados predeterminados para una línea de tiempo útil; usa --hide-titles si el usuario desea una exportación sin títulos.
  • Usa la menor cantidad útil de contexto de título; las tablas de aplicaciones y resúmenes no necesitan títulos.
  • Escapa las celdas de la hoja de cálculo que podrían interpretarse como fórmulas.
  • Mantén los informes locales en la conversación actual. No exportes, subas ni compartas datos de actividad sin la aprobación explícita del usuario.

Skills relacionados