English · 中文 · 日本語 · Español

CatchMe Logo

CatchMe:デジタル足跡をすべて記録

エージェントにもっと自分を理解させる:軽量・ベクトル不要・高機能。

License Python Platform Blog Report
Feishu WeChat Discord

機能  ·  仕組み  ·  LLM 設定  ·  はじめる  ·  コスト  ·  コミュニティ

あなたは作業に集中するだけ。CatchMe が残りを記録します — ローカル保存でプライバシーと安全を確保。

CatchMe ターミナルデモ

**🦞 エージェントを本当にパーソナルに**。CatchMe は CLI エージェント(OpenClaw、NanoBot、Claude、Cursor など)向けの Skill として提供されます。CatchMe は単体で起動でき、エージェントは CLI コマンドだけで記憶を問い合わせます。 ## 🎯 パーソナルなデジタル文脈を豊かに
コーディング

💻 パーソナルコーディングアシスタント

「今日 Claude Code で何を書いていた?」

• コードセッションの再生
• 編集したファイルを思い出す
• 入力内容をたどる
リサーチ

🔍 パーソナルディープリサーチ

「昨日 AI について何を読んでいた?」

• 閲覧した Web/PDF
• 入力した検索クエリ
• 読書情報の追跡
ファイル

📁 パーソナルファイルマネージャ

「今日どのファイルを変えた?」

• ファイル変更の追跡
• 開いたドキュメント
• 編集のレビュー
デジタルライフ

🧩 デジタルライフの俯瞰

「午後はどう過ごした?」

• アプリ利用の追跡
• ワークフローの再生
• アクティビティの想起
## ✨ 主な機能 ### 📹 常時オンのイベント取得 - **イベント駆動の記録**:タイマーも遅延もなく、マウス操作を十字マーカー付きで即座に取得。 - **豊富な文脈**:マウス操作を中心に、ウィンドウ、キーボード、クリップボード、通知、ファイルを追跡する 5 系統のレコーダー。 ### 🌲 インテリジェントな記憶の階層 - **自動整理**:生ストリームを 5 段階(日 → セッション → アプリ → 場所 → アクション)に構造化。 - **スマート要約**:各レベルで LLM が要約し、ログを検索可能な知識ツリーへ変換。 ### 🔍 ツリーベースの検索 - **ベクトル不要**:埋め込みと VDB をスキップ — ナビゲーションはツリー推論で行います。 - **トップダウン検索**:LLM が要約を読み、関連ブランチを選び、証拠まで掘り下げます。 ### 🤖 ゼロ設定のエージェント連携 - **1 ファイル設定**:Skill ファイルを任意の AI エージェントに置くだけで統合。 - **すぐ使える**:CLI による画面履歴の問い合わせ、追加設定は不要。 ### 🪶 超軽量・プライバシー優先 - **最小フットプリント**:SQLite + FTS5 で実行時 RAM 約 0.2GB。 - **ローカル&オフライン**:データはマシン内に留まり、Ollama / vLLM / LM Studio で完全オフラインも可能。 ### 🖥️ リッチな Web UI - **視覚的探索**:インタラクティブなタイムライン、記憶ツリーのナビ、リアルタイム監視。 - **自然な対話**:自然言語でデジタル足跡全体とチャット。

CatchMe Web ダッシュボード

## 💡 CatchMe のアーキテクチャ CatchMe は、生のデジタル活動を 3 つの並行ステージで構造化・検索可能な記憶に変換します。 ### 🔄 記録 → 整理 → 推論:混沌を検索可能な記憶へ **キャプチャ**。6 つのバックグラウンドレコーダーがウィンドウフォーカス、キー入力、マウス移動、スクリーンショット、クリップボード、通知を静かに追跡します。 **インデックス**。生イベントは階層アクティビティツリー(日 → セッション → アプリ → 場所 → アクション)に自動整理され、各ノードに LLM 要約が付きます。ベクトル埋め込みなしで高速かつ意味のある想起が可能です。 **検索**。質問に対し LLM が記憶ツリーを上から辿り、関連ノードを選び、スクリーンショットやキー入力などの生データを確認して、正確な回答を合成します。

CatchMe パイプライン:キャプチャ → インデックス → 検索

### 🌲 階層アクティビティツリー アクティビティツリーは CatchMe の記憶の中核です。デジタル生活の多層的・構造化ビューを提供し、高レベルの要約から細部まで辿れます。

階層アクティビティツリー

### 🔍 インテリジェントなツリー検索 従来のベクトル検索は使いません。LLM がアクティビティツリーを直接ナビゲートし、日をまたぐ複雑な推論と、生の活動履歴からの精密な証拠収集が可能です。

ツリー検索の流れ

**📖 詳しくは**:[ブログ](https://hkuds.github.io/CatchMe) で設計の深掘りと技術解説を公開しています。 ## 🧠 LLM 設定 ### **❗️ データプライバシーについて** • **100% ローカル保存**:スクリーンショット、キー入力、アクティビティツリーなどの生データはすべて `~/data/` に保存され、端末外に出ません。 • **オフライン優先**:ローカル LLM(Ollama、vLLM、LM Studio)でクラウドに依存しない完全オフライン運用が可能です。 • **⚠️ クラウド利用時の注意**:クラウド API を使う場合、日々の活動の要約に利用されます。**信頼できないエンドポイントはプライベートデータを晒す可能性があります** — プロバイダのデータ方針をよく確認してください。 ### **📋 要件** • **マルチモーダル**:テキスト + 画像を扱えるモデルであること。 • **コンテキスト長**:`config.json` の `max_tokens` 上限を超えるコンテキストウィンドウを確保してください。 • **コスト管理**:*強制的なコスト制限* には `llm.max_calls` で上限を設定するか、`filter.mouse_cluster_gap` を大きくして要約頻度を下げてください。 CatchMe はバックグラウンド要約とインテリジェント検索に LLM が必要です。**catchme init**(はじめる)で**ガイド付きセットアップ**するか、下記の**手動設定**に従ってください。 クラウド API の例: ```json { "llm": { "provider": "openrouter", "api_key": "sk-or-...", "api_url": null, "model": "google/gemini-3-flash-preview" } } ``` ローカル / オフラインの例: ```json { "llm": { "provider": "ollama", "api_key": null, "api_url": null, "model": "gemma3:4b" } } ```
対応 LLM プロバイダ | プロバイダ | 設定名 | デフォルト API URL | キー取得 | | ------------------------- | ------------------------ | ------------------------------------------------------- | -------------------------------------------------------------------- | | **OpenRouter** (gateway) | `openrouter` | `https://openrouter.ai/api/v1` | [openrouter.ai/keys](https://openrouter.ai/keys) | | **AiHubMix** (gateway) | `aihubmix` | `https://aihubmix.com/v1` | [aihubmix.com](https://aihubmix.com) | | **SiliconFlow** (gateway) | `siliconflow` | `https://api.siliconflow.cn/v1` | [cloud.siliconflow.cn](https://cloud.siliconflow.cn) | | **OpenAI** | `openai` | `https://api.openai.com/v1` | [platform.openai.com](https://platform.openai.com/api-keys) | | **Anthropic** | `anthropic` | `https://api.anthropic.com/v1` | [console.anthropic.com](https://console.anthropic.com) | | **DeepSeek** | `deepseek` | `https://api.deepseek.com/v1` | [platform.deepseek.com](https://platform.deepseek.com/api_keys) | | **Gemini** | `gemini` | `https://generativelanguage.googleapis.com/v1beta` | [aistudio.google.com](https://aistudio.google.com/apikey) | | **Groq** | `groq` | `https://api.groq.com/openai/v1` | [console.groq.com](https://console.groq.com/keys) | | **Mistral** | `mistral` | `https://api.mistral.ai/v1` | [console.mistral.ai](https://console.mistral.ai) | | **Moonshot / Kimi** | `moonshot` | `https://api.moonshot.ai/v1` | [platform.moonshot.cn](https://platform.moonshot.cn) | | **MiniMax** | `minimax` | `https://api.minimax.io/v1` | [platform.minimaxi.com](https://platform.minimaxi.com) | | **Zhipu AI (GLM)** | `zhipu` | `https://open.bigmodel.cn/api/paas/v4` | [open.bigmodel.cn](https://open.bigmodel.cn) | | **DashScope (Qwen)** | `dashscope` | `https://dashscope.aliyuncs.com/compatible-mode/v1` | [dashscope.console.aliyun.com](https://dashscope.console.aliyun.com) | | **VolcEngine** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | [console.volcengine.com](https://console.volcengine.com) | | **VolcEngine Coding** | `volcengine_coding_plan` | `https://ark.cn-beijing.volces.com/api/coding/v3` | [console.volcengine.com](https://console.volcengine.com) | | **BytePlus** | `byteplus` | `https://ark.ap-southeast.bytepluses.com/api/v3` | [console.byteplus.com](https://console.byteplus.com) | | **BytePlus Coding** | `byteplus_coding_plan` | `https://ark.ap-southeast.bytepluses.com/api/coding/v3` | [console.byteplus.com](https://console.byteplus.com) | | **Ollama** (local) | `ollama` | `http://localhost:11434/v1` | — | | **vLLM** (local) | `vllm` | `http://localhost:8000/v1` | — | | **LM Studio** (local) | `lmstudio` | `http://localhost:1234/v1` | — | > OpenAI 互換の任意エンドポイントが使えます — `api_url` と `api_key` を直接指定してください。
全設定パラメータ | セクション | パラメータ | 既定値 | 説明 | | ------------- | -------------------------- | ----------- | --------------------------------------------------- | | **web** | `host` | `127.0.0.1` | ダッシュボードのバインドアドレス | | | `port` | `8765` | ダッシュボードのポート | | **llm** | `provider` | — | LLM プロバイダ名(上表参照) | | | `api_key` | — | プロバイダの API キー | | | `api_url` | *(自動)* | カスタムエンドポイント;省略時はプロバイダごとに自動設定 | | | `model` | — | モデル名(プロバイダ依存) | | | `max_calls` | `0` | サイクルあたりの最大 LLM 呼び出し回数(`0` = 無制限;コスト制限に設定) | | | `max_images_per_cluster` | `5` | イベントクラスタあたり送る最大スクリーンショット枚数 | | **filter** | `window_min_dwell` | `3.0` | 記録前に必要な最小ウィンドウ滞在時間(秒) | | | `keyboard_cluster_gap` | `3.0` | キーボードイベントのクラスタ間隔(秒) | | | `mouse_cluster_gap` | `3.0` | マウスイベントをまとめる時間間隔(秒);**大きいほど LLM 要約が減る** | | **summarize** | `language` | `en` | 要約の出力言語(`en`、`zh` など) | | | `max_tokens_l0`–`l3` | `1200` | ツリー各レベルの最大トークン(L0=アクション … L3=セッション) | | | `temperature` | `0.4` | 要約用の温度 | | | `max_workers` | `2` | 並列要約ワーカー数 | | | `debounce_sec` | `3.0` | 要約トリガー前のデバウンス(秒) | | | `save_interval_sec` | `5.0` | ツリーの自動保存間隔(秒) | | **retrieve** | `max_prompt_chars` | `42000` | 検索プロンプトの最大文字数 | | | `max_iterations` | `15` | ツリー走査の最大反復回数 | | | `max_file_chars` | `8000` | 抽出ファイルからの最大文字数 | | | `max_select_nodes` | `7` | 反復あたりの最大ノード選択数 | | | `max_tokens_step` | `4096` | 検索ステップあたりの最大トークン数 | | | `max_tokens_answer` | `8192` | 最終回答の最大トークン数 | | | `temperature_select` | `0.3` | ノード選択の温度 | | | `temperature_answer` | `0.5` | 回答生成の温度 | | | `temperature_time_resolve` | `0.1` | 時刻解決の温度 | | | `max_tokens_time_resolve` | `1000` | 時刻解決の最大トークン数 |
## 🚀 はじめる ### 📦 インストール ```bash git clone https://github.com/HKUDS/catchme.git && cd catchme conda create -n catchme python=3.11 -y && conda activate catchme pip install -e . ``` > **macOS** — システム設定 → プライバシーとセキュリティで *アクセシビリティ*、*入力監視*、*画面収録* を許可 > **Windows** — グローバル入力監視のため管理者として実行 ### ⚡ 初期化 ```bash catchme init # 対話式:プロバイダ、API キー、モデル ``` ### 🔥 実行 ```bash catchme awake # 記録を開始 catchme web # 可視化とチャット # または CLI から catchme ask -- "今日は何をしていた?" ```
CLI リファレンス(抜粋) | コマンド | 説明 | | --------------------------- | ------------------------------------------------------ | | `catchme awake` | 記録デーモンを起動 | | `catchme web [-p PORT]` | Web ダッシュボード(既定 `http://127.0.0.1:8765`) | | `catchme ask -- "質問"` | 自然言語で活動を問い合わせ | | `catchme cost` | LLM トークン使用量(直近 10 分 / 今日 / 累計) | | `catchme disk` | ストレージ内訳とイベント数 | | `catchme ram` | 実行中プロセスのメモリ使用量 | | `catchme init` | 対話式:プロバイダ、API キー、モデル |
## 🦞 CatchMe がエージェントを本当にパーソナルに CatchMe は CLI エージェント(OpenClaw、NanoBot、Claude、Cursor など)向けの Skill として提供されます。 **🪶 エージェント連携:** CatchMe は自分で起動。エージェントは CLI コマンドだけで記憶を問い合わせます。 ```bash # 1. CatchMe を自分で起動 catchme awake # 2. 軽量 Skill をエージェントに渡す cp CATCHME-light.md ~/.cursor/skills/catchme/SKILL.md ``` **オプション B — フル Skill**(エージェントが CatchMe のライフサイクル全体を自律管理): ```bash cp CATCHME-full.md ~/.cursor/skills/catchme/SKILL.md ``` ### 🔧 既存ワークフローへの組み込み ```python from catchme import CatchMe from catchme.pipelines.retrieve import retrieve # 1. ワンライン検索 — 記録された活動全体の高速キーワード検索 with CatchMe() as mem: for e in mem.search("meeting notes"): print(e.timestamp, e.data) # 2. LLM 検索 — 画面履歴への自然言語 Q&A for step in retrieve("What was I working on this morning?"): if step["type"] == "answer": print(step["content"]) ``` ## 📊 コストと効率 *ベンチマーク:**MacBook Air M4 で 2 時間の連続・高負荷利用*** | 指標 | 値 | | --------------------------------------------- | ---------------------------------------------------------------------------- | | **実行時 RAM** | 約 0.2 GB | | **ディスク使用量** | 約 200 MB | | **トークン処理量** | 入力約 6 M、出力約 0.7 M | | **LLM コスト** — `qwen-3.5-plus` | 約 $0.42([Aliyun DashScope](https://home.console.aliyun.com/home/dashboard/)) | | **LLM コスト** — `gemini-3-flash-preview` | 約 $5.00([OpenRouter](https://openrouter.ai/models)) | | **検索の完了までの時間**(質問依存) | `gemini-3-flash-preview` 使用時、1 クエリあたり 5〜20 秒程度 | ## 🚀 ロードマップ コミュニティの声とともに CatchMe は進化します。予定している機能: **マルチデバイス記録**。LAN 同期ですべてのマシン上の GUI 活動を取得・統合。 **動的クラスタリング**。実際の作業パターンとフローにより適合する適応的アルゴリズムで、不要なコストを抑える。 **データ活用の強化**。現在の処理パイプラインを超えて、スクリーンショットとメタデータからより深い洞察を得る。 > 🌟 **スターを付けて** 今後のアップデートをフォロー — 応援が開発の原動力になります。 コメント、バグ報告、アイデア、Pull Request、どんな貢献も歓迎です。[CONTRIBUTING.md](../../CONTRIBUTING.md) を参照してください。 ## 🤝 コミュニティ ### 謝辞! CatchMe は次の優れたオープンソースに触発されています: | プロジェクト | インスピレーション | | --------------------------------------------------------------- | ----------------------------------------------------- | | [ActivityWatch](https://github.com/ActivityWatch/activitywatch) | オープンソース活動追跡の先駆け | | [Screenpipe](https://github.com/mediar-ai/screenpipe) | AI エージェント向け画面録画基盤 | | [Windrecorder](https://github.com/Antonoko/Windrecorder) | Windows 上の個人画面録画と検索 | | [OpenRecall](https://github.com/openrecall/openrecall) | Windows Recall の OSS 代替 | | [Selfspy](https://github.com/selfspy/selfspy) | 古典的なデーモン型活動ログ | | [PageIndex](https://github.com/HKUDS/PageIndex) | 埋め込みなしのツリー構造ドキュメント検索 | | [MineContext](https://github.com/volcengine/MineContext) | 先回り型コンテキスト認識 AI パートナーと画面キャプチャ | ### 🏛️ エコシステム CatchMe は **[HKUDS](https://github.com/HKUDS)** エージェントエコシステムの一員です — パーソナル AI エージェントの基盤を構築します:
NanoBot
超軽量パーソナル AI アシスタント
CLI-Anything
すべてのソフトウェアをエージェントネイティブに
ClawWork
AI アシスタントから AI コワーカーへ
ClawTeam
チーム自動化のためのエージェント群知能

CatchMe をご覧いただきありがとうございます

visitors