Communitygithub.com

liuyewang/computer-usage-summary-skill

Datenschutzorientierte, plattformübergreifende ActivityWatch-Zusammenfassungen für Codex.

Was ist computer-usage-summary-skill?

Diese Fähigkeit erstellt lokale, datenschutzfreundliche Zusammenfassungen der Computernutzung mithilfe von ActivityWatch und ist für macOS, Windows und Linux mit Python 3.9+ verfügbar. Sie ist ideal für Entwickler, die Arbeitszeiten, Projektabrechnungen oder tägliche Aktivitätstrends verfolgen möchten, ohne private Daten an die Cloud zu senden. Die Fähigkeit ruft Daten wie aktive Zeit, AFK-Zeit, Vordergrund-Sitzungen und gestartete Anwendungen von der lokalen ActivityWatch-API ab und bietet strukturierte Tabellenausgaben in Markdown, TSV oder CSV. Falls ActivityWatch nicht verfügbar ist, meldet die Fähigkeit „nicht verfügbar“ anstatt Nullen zu erraten, und bietet einen strukturierten Grund. Sie respektiert die Privatsphäre streng, indem sie Fenstertitel bereinigt, URLs entfernt und Daten ohne Zustimmung des Benutzers niemals exportiert oder hochlädt.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Computer Usage Summary

Übersicht

Lokale ActivityWatch-Daten zuerst verwenden. Dieser Skill unterstützt macOS, Windows und Linux, wo die lokale ActivityWatch-API und Python 3.9+ verfügbar sind. Die vorgesehene datenschutzausgewogene Einrichtung zeichnet nur Vordergrund-Apps, bereinigte Fenstertitel und den AFK-Status auf. Installieren Sie keine Browsererweiterungen, aktivieren Sie kein aw-sync, konfigurieren Sie keinen Cloud-Speicher und legen Sie die lokale API nicht offen.

Genaue historische App-Zeit und AFK-Zeit existieren nur ab dem Zeitpunkt, zu dem ActivityWatch mit der Aufzeichnung beginnt. Leiten Sie diese nicht aus der Prozesslaufzeit, macOS-Systemprotokollen, dem Browserverlauf oder undokumentierten Datenbanken ab.

Einrichtung und Überprüfung

Verwenden Sie diesen Abschnitt nur, wenn ActivityWatch fehlt, gestoppt ist oder repariert werden muss.

  1. Überprüfen Sie die lokale ActivityWatch-Anwendung, ihre Starteinstellung, lokale Prozesse und das ActivityWatch-Datenverzeichnis des aktuellen Benutzers. Ersetzen Sie keine funktionierende Installation.
  2. Lassen Sie den Benutzer eine offizielle Installationsquelle auswählen. Überprüfen Sie vor dem Starten oder Aktivieren des automatischen Starts den Herausgeber und den Sicherheitsstatus des Betriebssystems. Verwenden Sie unter macOS codesign --verify --deep --strict und spctl --assess --type execute. Stoppen Sie, wenn die Validierung fehlschlägt, es sei denn, der Benutzer entscheidet sich ausdrücklich dagegen.
  3. Aktivieren Sie nur die Fenster- und AFK-Überwacher. Lassen Sie macOS über seine normale Schnittstelle die Zugänglichkeitsberechtigung anfordern; umgehen oder ändern Sie Datenschutzberechtigungen niemals programmatisch.
  4. Führen Sie unter Windows einmalig python -m pip install tzdata aus, damit Python IANA-Zeitzonen wie Asia/Singapore konsistent auflösen kann.
  5. Bestätigen Sie, dass der lokale Server http://127.0.0.1:5600 die Buckets currentwindow und afkstatus mit Ereignissen enthält. Der Standard-AFK-Schwellenwert beträgt 180 Sekunden.

Fallback ohne ActivityWatch

Wenn die App, die lokale API, die Buckets oder die Ereignisse im angeforderten Bereich nicht verfügbar sind:

  • Markieren Sie aktive Zeit, AFK-Zeit, Sitzungen und Startanzahlen als nicht verfügbar, nicht als null.
  • Eine aktuelle Momentaufnahme der vordersten oder laufenden App ist nur ein Beleg für die Gegenwart, nicht für den angeforderten Bereich.
  • Verwenden Sie die Bildschirmzeit nur, wenn der Benutzer ihre sichtbaren Summen verfügbar macht; kennzeichnen Sie sie als Bildschirmzeit gemeldet und lesen Sie keine privaten Datenbanken aus.
  • Durchsuchen Sie den Browserverlauf nur bei einer expliziten Anfrage auf Website-Ebene. Durchsuchen Sie aktuelle Dokumente oder den Terminalverlauf nur nach expliziter, quellspezifischer Genehmigung. Behandeln Sie alle derartigen Ergebnisse als Metadaten-Hinweise, nicht als Dauern.

Arbeitsablauf

  1. Legen Sie den lokalen Datumsbereich und die Zeitzone fest.
  2. Führen Sie scripts/activitywatch_summary.py --date today aus, verwenden Sie --period week oder --period month um ein Ankerdatum herum oder verwenden Sie inklusive Datumsangaben --start YYYY-MM-DD --end YYYY-MM-DD. Fügen Sie --timezone Area/City für reproduzierbare lokale Zeitstempel hinzu. Belassen Sie --api-url auf der Loopback-Schnittstelle.
  3. Verwenden Sie active_seconds und afk_seconds nur, wenn ActivityWatch sie bestätigt. Beschreiben Sie foreground_sessions als beobachtete Vordergrundintervalle, nicht als Prozessstarts.
  4. Verwenden Sie bereinigte App-Namen und Fenstertitel, um die Zeitleiste zu rekonstruieren. Ein Titel ist nur dann bestätigt, wenn er die beschriebene Aktivität direkt unterstützt.
  5. Wenn der Benutzer eine Projekt-/Kunden- oder abrechenbare Berichterstattung benötigt, bieten Sie eine optionale lokale JSON-Datei --rules an. Gleichen Sie nur bereinigte Titel ab. Erklären Sie, dass die erste übereinstimmende Regel gewinnt, und erstellen oder laden Sie niemals Regeln ohne Zustimmung hoch.
  6. Für die Tabellenkalkulationsausgabe führen Sie einen Befehl pro Tabelle aus:
    • --format markdown --table apps für den Chat.
    • --format tsv --table apps zum direkten Kopieren in Tabellenkalkulationssoftware.
    • --format tsv --table timeline für chronologische Zeilen.
    • --format csv --table apps --csv-bom --output report.csv für eine Excel-kompatible Datei, nur wenn der Benutzer darum bittet, eine zu speichern.
    • --report client-timesheet für abrechenbare Projekt-/Kundenzeilen.
    • --report weekly-review für eine kompakte Übersichtstabelle.
    • --report app-trend für lokale tägliche Trendzeilen.
  7. Wenn ActivityWatch nicht verfügbar ist, geben Sie den strukturierten Grund zurück. Markdown-, TSV- und CSV-Ausgaben enthalten die Spalten status, reason und source.

Datenschutzregeln

  • Behandeln Sie Fenstertitel als sensibel. Entfernen Sie URLs, kürzen Sie lange Titel und fügen Sie niemals vollständige Browser-URLs ein.
  • Behalten Sie standardmäßig bereinigte Titel für eine nützliche Zeitleiste bei; verwenden Sie --hide-titles, wenn der Benutzer einen titelfreien Export wünscht.
  • Verwenden Sie die geringste Menge an nutzbarem Titelkontext; Anwendungs- und Übersichtstabellen benötigen keine Titel.
  • Maskieren Sie Tabellenkalkulationszellen, die als Formeln interpretiert werden könnten.
  • Halten Sie Berichte lokal für die aktuelle Unterhaltung. Exportieren, hochladen oder teilen Sie Aktivitätsdaten nicht ohne ausdrückliche Zustimmung des Benutzers.

Verwandte Skills