コンピュータ使用サマリー
概要
まずはローカルのActivityWatchデータを使用します。このスキルは、ローカルのActivityWatch APIとPython 3.9以降が利用可能なmacOS、Windows、Linuxに対応しています。プライバシーバランスを考慮した設計では、フォアグラウンドアプリ、サニタイズされたウィンドウタイトル、AFK状態のみを記録します。ブラウザ拡張機能のインストール、aw-syncの有効化、クラウドストレージの設定、またはローカルAPIの公開は行わないでください。
正確な履歴アプリ時間とAFK時間は、ActivityWatchが記録を開始した時点からのみ存在します。プロセスの稼働時間、macOSシステムログ、ブラウザ履歴、または文書化されていないデータベースからこれらを推測しないでください。
セットアップと検証
このセクションは、ActivityWatchが存在しない、停止している、または修復が必要な場合にのみ使用します。
- ローカルのActivityWatchアプリケーション、その起動設定、ローカルプロセス、および現在のユーザーのActivityWatchデータディレクトリを検査します。動作中のインストール環境を置き換えないでください。
- ユーザーに公式のインストールソースを選択させます。起動または自動起動を有効にする前に、発行元とオペレーティングシステムのセキュリティステータスを確認します。macOSでは、
codesign --verify --deep --strictおよびspctl --assess --type executeを使用します。ユーザーが明示的に別の判断をしない限り、検証に失敗した場合は停止します。 - ウィンドウウォッチャーとAFKウォッチャーのみを有効にします。macOSには通常のインターフェースを通じてアクセシビリティ許可を要求させ、プログラムでプライバシー許可をバイパスまたは変更しないでください。
- Windowsでは、
python -m pip install tzdataを一度実行して、PythonがAsia/SingaporeなどのIANAタイムゾーンを一貫して解決できるようにします。 - ローカルの
http://127.0.0.1:5600サーバーにcurrentwindowバケットとafkstatusバケットがあり、イベントが含まれていることを確認します。デフォルトのAFKしきい値は180秒です。
ActivityWatchなしのフォールバック
アプリ、ローカルAPI、バケット、または要求された範囲のイベントが利用できない場合:
- アクティブ時間、AFK時間、セッション、起動回数をゼロではなく
unavailableとマークします。 - 現在の最前面アプリまたは実行中のアプリのスナップショットは、現在の証拠にすぎず、要求された範囲のものではありません。
- スクリーンタイムは、ユーザーが可視の合計値を利用可能にした場合にのみ使用し、「Screen Time reported」とラベル付けし、プライベートデータベースを読み取らないでください。
- ブラウザ履歴は、明示的なウェブサイトレベルの要求がある場合にのみ検査します。最近のドキュメントやターミナル履歴は、明示的でソース固有の許可を得た後でのみ検査します。そのような結果はすべて、時間ではなくメタデータの手がかりとして扱います。
ワークフロー
- ローカルの日付範囲とタイムゾーンを確立します。
scripts/activitywatch_summary.py --date todayを実行するか、アンカー日付を中心に--period weekまたは--period monthを使用するか、包括的な--start YYYY-MM-DD --end YYYY-MM-DD日付を使用します。再現可能なローカルタイムスタンプのために--timezone Area/Cityを追加します。--api-urlはループバックインターフェースに保持します。active_secondsとafk_secondsは、ActivityWatchがそれらを確認した場合にのみ使用します。foreground_sessionsは、プロセスの起動ではなく、観測されたフォアグラウンド間隔として説明します。- サニタイズされたアプリ名とウィンドウタイトルを使用してタイムラインを再構築します。タイトルは、説明されたアクティビティを直接サポートする場合にのみ
confirmedとなります。 - ユーザーがプロジェクト/クライアントまたは請求可能なレポートを必要とする場合は、オプションのローカルJSON
--rulesファイルを提供します。サニタイズされたタイトルのみを照合します。最初に一致したルールが優先され、同意なしにルールを作成またはアップロードしないことを説明します。 - スプレッドシート出力の場合は、コマンドごとに1つのテーブルを実行します。
--format markdown --table appsチャット用。--format tsv --table appsスプレッドシートソフトウェアに直接コピーする場合。--format tsv --table timeline時系列行の場合。--format csv --table apps --csv-bom --output report.csvExcel互換ファイルの場合(ユーザーが保存を明示的に要求した場合のみ)。--report client-timesheetプロジェクト/クライアントの請求可能行の場合。--report weekly-reviewコンパクトなレビューテーブルの場合。--report app-trendローカルの日次トレンド行の場合。
- ActivityWatchが利用できない場合は、構造化された理由を返します。Markdown、TSV、CSV出力は
status、reason、source列を提供します。
プライバシールール
- ウィンドウタイトルは機密情報として扱います。URLを削除し、長いタイトルは切り詰め、完全なブラウザURLは絶対に含めないでください。
- 有用なタイムラインのためにデフォルトのサニタイズされたタイトルを保持します。ユーザーがタイトルなしのエクスポートを希望する場合は
--hide-titlesを使用します。 - 最小限の有用なタイトルコンテキストを使用します。アプリケーションとサマリーテーブルにはタイトルは不要です。
- 数式として解釈される可能性のあるスプレッドシートセルをエスケープします。
- レポートは現在の会話にローカルに保持します。明示的なユーザー承認なしにアクティビティデータをエクスポート、アップロード、または共有しないでください。