Zenn

ActivityWatchを使って自分の生産性を簡単に記録・可視化しよう!🎉

2

3秒まとめ

  • ActivityWatchは完全無料でPC上の作業時間を自動記録してくれるオープンソースツール
  • アプリケーションやウィンドウ単位でどれだけ時間を使ったかが一目でわかる
  • 正規表現を使った柔軟なカテゴリ分けで生産性スコアも可視化できる
  • データはローカルに保存され、プライバシー重視の設計になっている

どんな人向けの記事?

  • 自分の作業時間を客観的に把握したい人
  • 「あれ、今日何やってたっけ?」と思うことが多い人
  • 生産性を向上させるために時間の使い方を見直したい人
  • RescueTimeなどの有料サービスの代わりになる無料ツールを探している人

みなさん、こんにちは!元薬剤師エンジニアのはがくんです。

「今日は何時間コーディングしたっけ?」「あれ、昨日何やってたんだっけ?」って思うことありませんか?

エンジニアたるもの、使った時間に対してアウトプットの質や量を最大化したい...そう考えると
時間管理はとても重要です。

でも、手動で時間を記録するのって面倒くさいですよね。既存のツールもいちいち仕事を始めるタイミングでON/OFFをスイッチングするなんてめんどくさすぎてやれる気がしない!そう思っていました。

そこで今回は 完全自動で作業時間を記録してくれる素晴らしいツール「ActivityWatch」 を紹介します!

ActivityWatchとは?

https://activitywatch.net/

ActivityWatchは、PC上であなたがどのように時間を使っているかを自動的に追跡するオープンソースアプリです。

ActivityWatchダッシュボード

特徴をざっと挙げると:

  • 完全無料でオープンソース
  • プライバシー重視(データはすべてローカルに保存)
  • Windows, macOS, Linux, Androidで利用可能
  • アプリケーションやウィンドウタイトル単位で時間を記録
  • ブラウザ拡張機能でウェブサイトの利用時間も記録可能
  • エディタプラグインでコーディング時間も記録可能

RescueTimeやManicTime、WakaTimeなどの有料サービスの代わりになる素晴らしいツールです!

なぜActivityWatchを使うべきか?

ぼくがActivityWatchを使い始めて気づいたメリットをいくつか紹介します:

  1. 時間の使い方の可視化: 「あれ、今日何してたっけ?」という疑問がなくなります。どのアプリで何時間過ごしたかが一目瞭然です。

  2. 生産性の向上: 自分がどれだけ生産的な活動に時間を使っているかを客観的に把握できます。「あ、今日全然コーディングできてないじゃん...」という気づきが行動改善につながります。

  3. プロジェクト管理: 各プロジェクトにどれだけ時間を投資しているかを正確に把握できます。これはフリーランスの方の請求書作成にも役立つかもしれません

  4. 習慣の形成: 毎日コーディングする習慣をつけたい場合、ActivityWatchで記録を見ることでモチベーション維持につながります。

  5. プライバシーの保護: データはすべてローカルに保存されるので、多くのSaaSプロダクトにつきまとうプライバシーへの問題が発生しません。

インストール方法

インストールはとても簡単です!

https://activitywatch.net/downloads/

  1. 公式サイトからお使いのOSに合ったインストーラをダウンロード
  2. インストーラを実行
  3. アプリを起動するだけ!

基本的な機能はインストールしてすぐに使えます。追加で以下のようなプラグインもあります:

ActivityWatchの使い方

基本的な使い方

インストールしたら、ActivityWatchは自動的にバックグラウンドで動作し始めます。データの確認は以下の手順で行えます:

  1. ActivityWatchを起動
  2. ブラウザで http://localhost:5600 にアクセス
  3. ダッシュボードが表示されます

ダッシュボードの見方

ダッシュボードでは、以下のような情報が確認できます:

  • アクティビティの概要: 一日のアクティビティをタイムライン形式で表示
  • アプリケーション使用時間: どのアプリをどれだけ使ったか
  • ウィンドウタイトル: どのウィンドウ(ファイル名やウェブサイト)を開いていたか
  • カテゴリ別の時間: 設定したカテゴリごとの時間使用量

カテゴリ分けの設定

ActivityWatchの超便利な機能の一つが、カテゴリ分けです。これを使うと、例えば「プログラミング」「ドキュメント作成」「SNS」などのカテゴリごとに時間を集計できます。

カテゴリ設定画面

設定方法は以下の通りです:

  1. ダッシュボードの「Settings」をクリック
  2. 「Categorization」を選択
  3. 「+」をクリック
  4. カテゴリ名と正規表現パターンを入力
  5. 生産性スコアを設定

例えば、以下のような設定ができます:

  • プログラミング: VSCode|PyCharm|IntelliJ (スコア: +1)
  • ドキュメント: Google Docs|Word|Notion (スコア: +0.5)
  • SNS: Twitter|Facebook|Instagram (スコア: -0.5)
  • 動画視聴: YouTube|Netflix (スコア: -1)

正規表現といっても、ただ | で区切るだけで必要なカテゴリ分けを実現できるでしょう。

さらにこのカテゴリ分けは、記録だけしておいて、後から変えることも可能!
とりあえず記録を始めてから、適切な粒度でカテゴリを振り直し、生産性を高めるための計画を立てることができるのです。

さらに、一日の生産性スコアが自動計算され、ダッシュボードのトップに表示されます。これがめちゃくちゃモチベーションになるんですよね!

データの活用方法

ActivityWatchのデータはJSON形式で簡単にエクスポートできます。これを使って、さらに高度な分析も可能です。

{
    "timestamp": "2025-03-15T12:43:35.535000+00:00",
    "duration": 12.681,
    "data": {
        "title": "home_screen.dart \u2014 dots_navigator",
        "app": "Code"
    }
}

このデータを使って、例えば以下のようなことができます:

  1. カスタムレポートの作成: Pythonなどを使って、自分好みのレポートを作成
  2. 長期的なトレンド分析: 月ごと、年ごとの時間使用パターンを分析
  3. LLMを使った分析: ChatGPTなどのLLMにデータを渡して、時間使用の最適化アドバイスをもらう

ぼくの使い方と気づき

ActivityWatchを使い始めて約3ヶ月経ちましたが、いくつか面白い発見がありました:

  1. 思ったより会議に時間を使っていた: リモートワークでも、Zoom会議で不要な時間を使っていることが判明。これを見て、不要な会議を減らす工夫をしました。

  2. 集中時間の把握: VSCodeを開いている時間が長くても、実際にコードを書いている時間調べ物をしている時間の比率がわかるようになりました。

  3. コーディングに集中できる時間の発見: 特に16-19時くらいをコーディングに使えることが多く、この時間をコア集中時間としてフォーカスしなおすことができました。

まとめ

ActivityWatchは、完全無料プライバシーを守りながら時間の使い方を可視化できる素晴らしいツールです。特に以下のような方におすすめです:

  • 自分の時間の使い方を客観的に把握したい方
  • 生産性を向上させたい方
  • プロジェクトごとの作業時間を記録したい方
  • データドリブンな自己改善をしたい方

時間管理は本当に重要です。
コードに向き合う絶対時間が生粋のエンジニアに比べて少ない可能性が高く、とにかく質を高めたい。そう考えています。
ActivityWatchを使い始めてから、「あれ、今日何してたっけ?」という不安がなくなり、時間の使い方に対する意識が大きく変わりました。

みなさんもぜひ試してみてください!何か面白い使い方を発見したら、ぜひ教えてくださいね🙌


ぼくはMinedia, inc. のFlutter/Go/GCP/LLM まわりを担当するエンジニアとして働いています。一緒に働く仲間を探しているのでぜひ興味がある方はXリクルートページから連絡をください!

ActivityWatchのようなツールを使って時間を可視化することで、設計やコーディングなどのコアタイムにフォーカスできるのは地味に便利。数年単位では大きな変化につながる良いツールだと思います。

✨ライク、フォローよろしくお願いします!

https://x.com/hagakun_yakuzai

2
株式会社マインディア テックブログ

Discussion

ログインするとコメントできます