概要
Dayflowは、画面活動を自動でタイムライン化し、AI要約と気を散らす瞬間をハイライトするmacOSアプリ。 プライバシー重視設計で、AIプロバイダーも選択可能。 軽量・低負荷・MITライセンス・オープンソース。 セットアップも簡単で、ローカルまたはクラウド処理を選択可能。 今後はダッシュボードや日誌機能も追加予定。
Dayflowとは
- Dayflow はmacOSネイティブアプリ(SwiftUI製)
- 画面を 1FPS で録画し、15分ごとにAIで解析
- 活動のタイムラインと要約カードを自動生成
- アプリサイズ25MB、メモリ約100MB、CPU使用率1%未満 の軽量設計
- プライバシー重視:AIプロバイダーを Gemini(APIキー持参) または ローカル(Ollama/LM Studio) から選択
- MITライセンス・完全オープンソース
- 画面録画の許可のみ必要(macOS設定で管理)
開発動機
- カレンダーよりも 実際の画面活動 が真実の時間記録
- 維持不要で信頼できる「静かなアシスタント」的タイムラインを目指す
- データ所有・AI選択・ローカル処理の自由度を重視
- 監視型アプリは完全な透明性が必須との思想
- 集中力を尊重し、簡単に オフ できる設計
主な機能
- 自動タイムライン生成 と要約
- 1FPS録画による 低負荷 運用
- 15分ごとの解析で リアルタイム性 確保
- 3日で自動削除される録画データ
- 気を散らす瞬間 のハイライト表示
- SwiftUI によるネイティブUX
- Sparkle 連携で自動アップデート
- 今後: カスタムダッシュボード、 日誌機能 追加予定
仕組み
- キャプチャ :1FPS、15秒単位で録画
- 解析 :15分ごとにAIへ最新映像を送信
- 生成 :AIが活動要約カードを作成
- 表示 :視覚的なタイムラインで日中の活動を確認
- クリーンアップ :3日以上前の録画を自動削除
AI処理フロー
- Gemini利用時 :
- 2回のLLMコールで動画解析・カード生成
- ネイティブな動画理解による効率的処理
- ローカルモデル利用時(Ollama/LM Studio) :
- 30フレーム抽出→各フレームごとにLLMコール→統合
- 合計33回以上のLLMコールで処理負荷が高め
- 処理品質や速度に違いあり
クイックスタート
- エンドユーザー :GitHub Releasesから Dayflow.dmg をダウンロード
- アプリ起動後、画面・音声録音許可を付与(macOS設定で管理)
- 開発者 :Xcode 15+でDayflow.xcodeprojを開き、Run
- Gemini利用時は GEMINI_API_KEY を環境変数に設定
インストール要件
- macOS 13.0+
- Xcode 15+ (開発ビルド時)
- Gemini利用時は APIキー (https://ai.google.dev/gemini-api/docs/api-key)
データとプライバシー
- ローカル保存先:
- アプリサポートフォルダ:~/Library/Application Support/Dayflow/
- 録画:~/Library/Application Support/Dayflow/recordings/
- DB:~/Library/Application Support/Dayflow/chunks.sqlite
- 1FPS録画、15分ごと解析、3日保持
- 削除方法 :アプリ終了後、上記フォルダを削除し再起動でリセット可能
- Gemini :Google API利用時、課金プロジェクトがあるとプロンプト/レスポンスは学習に使われない(Paid Services扱い)
- ローカル(Ollama/LM Studio) :完全オフライン処理、プライバシー最重視
- ローカル推論はGPU負荷・バッテリー消費増(Apple Silicon推奨)
macOSの権限
- 画面録画・音声録音の許可が必須
- 設定変更:
- システム設定 → プライバシーとセキュリティ → 画面とシステム音声の録音
設定・デバッグ
- AIプロバイダー選択 (Gemini or ローカル)
- キャプチャ開始/停止はメインUIから
- デバッグ画面でバッチ内容確認
- メニューバーアイコンから録画確認可能
自動アップデート
- Sparkle によるSwift Package Manager連携
- デフォルトで 毎日自動チェック・ダウンロード
- バージョン表示と手動アップデートも可能
プロジェクト構成
- Dayflow/(アプリ本体・UI・解析パイプライン)
- docs/(ドキュメント・スクリーンショット)
- scripts/(リリース自動化・Sparkle署名等)
トラブルシューティング
- 画面キャプチャが空白/失敗:設定でDayflowの録画許可を確認
- APIエラー:Gemini APIキーとネットワーク接続を確認
今後のロードマップ
- カスタムダッシュボード (任意の質問・傾向追跡)
- 日誌機能 (ハイライト振り返り・メモ追加)
- 小型VLMのファインチューニング
コントリビューション・ライセンス
- PR歓迎(大きな変更は事前にIssueで相談推奨)
- MITライセンス (無保証・AS IS)
- Sparkle, Google AI Gemini API, Ollama, LM Studioに感謝
HN向け補足と技術スタック
- Dayflow は「実際に何をしていたか」を自動で把握するmacOSアプリ
- 画面内容を ローカル/クラウドVLM で理解し、意味的なタイムラインを生成
- 例:「Chrome: 3時間」ではなく「PRコメント確認: 45分」「Rustスレッド閲覧: 20分」「認証デバッグ: 1.5時間」など具体的な活動単位で記録
- Rewind の初期ユーザーの経験から着想
- 完全ローカル利用 (qwen2.5-vl-3bモデル)も可能、クラウドアップロード・アカウント不要
- MITライセンス・フルソース公開 (https://github.com/JerryZLiu/Dayflow)
- Gemini APIキー による高品質解析も選択可(Keychain保存・プライバシー対策有)
- 技術スタック: SwiftUI + ローカルsqliteDB、macOSネイティブAPIで効率的キャプチャ
- ローカルLLMは「埋め込み」せず、既存Ollama/LLMStudio等との連携前提
- qwen2.5-vl-3b(約4GB) が品質とサイズの最適バランス
- Gemini 2.5 Pro等の高性能モデルとの品質差・処理回数の工夫(例:15分区間でローカル32回/Gemini 2回)
- 今後は Gemini出力でローカルモデル学習 や カスタムダッシュボード 開発を進行予定
まとめ
- Dayflow は、作業内容を自動で意味的に記録し、プライバシーと操作性を両立するmacOSアプリ
- ローカル/クラウドの選択やオープンソース性で安心して利用可能
- 生産性向上や作業分析に役立つ新しいタイムライン体験を提供