mcpField
T
TaskHub

TaskHub

ローカル
github.com/FelixMUrphy生産性04 日前に更新

TaskHub について

TaskHubは、PC上のバックグラウンド処理を一元管理するWindowsトレイアプリです。AIエージェントが開始した処理もローカルAPI、MCPツール、CLI経由で登録でき、進捗表示や通知、処理ごとの制御を利用できます。

主な機能

  1. 01進捗・ログ・グラフの表示
  2. 02一時停止・再開・終了の操作
  3. 03Windows通知による状態報告
  4. 04Telegramで通知とボタンを利用
  5. 05MCPツール・CLI・ローカルAPI
  6. 06停止状態やプロセス消失の検出

活用シーン

  1. 01長時間のビルドやバックアップを追跡
  2. 02学習処理を監視してパラメーターを調整
  3. 03エージェント処理の完了や失敗を通知
  4. 04パネルからバックグラウンド処理を操作

MCP 対応

`taskhub mcp`でローカルMCPサーバーを提供し、Claude CodeやCodex向けのツールも設定できます。エージェントはタスク状態の報告・更新、通知、タスク一覧の取得、制御コマンドの受信を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbtaskhub-mcp-win-x64.mcpb4.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

TaskHub

CI

Windows PC のバックグラウンドで動作するすべてを、一か所で監視・制御できます — 学習の実行、シミュレーション、レンダリング、ビルド、バックアップ、そして AI エージェント(Claude、Codex、ChatGPT)が起動するスクリプト。

どのプロセスも、小さなローカル HTTP API を通じて進捗を報告すると、トレイアイコン、Windows 通知、ライブチャートやゲージ、独自のボタン(一時停止、パラメーターの変更、スナップショットの保存、強制終了)を備えたポップアップパネルが表示されます。クラウド不要、アカウント不要、ループバックのみです。

TaskHub のデモ:レンダリングが進捗とチャートをパネルに報告し、通知と Telegram で質問を行い、スマートフォンで回答をタップすると処理が続行されます

スクリプトで記録したデモデータ — レンダリングが進捗とチャートを報告し、通知と Telegram で「NAS にアップロードしますか?」と質問し、スマートフォンで回答をタップすると処理が続行されます。

⬇ 最新の setup.exe をダウンロード · 新着情報 · API リファレンス · プライバシー · ❤ スポンサーになる

この README を読んでいる AI エージェントへ Claude Code / Codex:TaskHub の MCP ツール(task_start、notify、…)を使用してください。表示されない場合は、curl を使わず、TaskHub tools (MCP) を有効にするようユーザーに依頼してください(パネル → ⚙ Settings → AI agents)。その後、新しいセッションを開始してください。詳細:API.md → AI agents。

理由

  • 6 時間かかるジョブを開始した後、コンソールを監視せずに、完了・失敗・停止状態になったときに知りたい。
  • AI エージェントに長時間実行するスクリプトを起動してもらうとき、TaskHub を使えば、ステータス報告と指示の受け取り(「学習率を下げて」「このエポックの後に停止して」)のための、文書化された方法を一つ用意できます。
  • 複数の処理を並行して実行し、すべての状況をひと目で把握したい。

機能

レンダリング(進捗、フレームあたりの秒数のチャート、VRAM ゲージ)と学習の実行(損失チャート)を表示した TaskHub パネル - **トレイアイコン**には、進行状況リングとアクティブなタスク数が表示されます。色で実行中/停滞/失敗/完了を示します。 - **パネル**(トレイアイコンをクリック):各タスクの進行状況、予想残り時間、ステータス、ログ、ウィジェットを表示します。ウィジェットは折れ線/面/棒グラフ、ゲージ、差分付きの統計、LED、キーと値のリスト、表、テキストです。 - **タスク自身が宣言するコントロール**:ボタン、数値/テキスト/選択入力、確認、シェルコマンド、ファイル/フォルダーを開く操作、正常な停止、一時停止/再開、強制終了に対応します。値はロングポーリングを通じてプロセスに返されます。 - **タスクのリンク**を開くとブラウザーに移動します。2.9 からは、ファイル/フォルダーのリンクがエクスプローラーに表示されます(実行はされません)。アドレスはリンクのツールチップに表示され、シェルコマンドには型付きの値がプレーンテキストとして渡されます(`&`、`|` などから追加コマンドが実行されることはありません)。 - **Windows 通知**は、デフォルトで完了/失敗/停滞時に表示されます。開始、マイルストーン(プレーンテキスト)、ログの通知は要求に応じて表示されます。タスクから要求された場合は、通知内にタスクのボタンと入力欄も表示されます。ライブ進行状況通知にも対応し、パネルを開いている間は通知を抑制します。 - **Claude Code と Codex をワンクリックで連携**:エージェント向けの TaskHub ツール(MCP)と、「完了/許可が必要」通知(フック)を利用できます — [下記](#claude-code-and-codex-one-click)を参照してください。 - **プランの使用状況** *(3.1 から。オンにするまで無効)*:Claude Code と Codex が5時間および週ごとの上限をどれだけ使用したかをパネルに表示します。75% と90%から警告します — [下記](#claude-code-and-codex-one-click)を参照してください。 - **Telegram**:自分のボットを通じて、同じ通知をスマートフォンで受け取れます。タスクのボタンにも対応します。タスクごとのライブ進行状況バーと、完了時のグラフを表示します。`/tasks`、`/mute`(オプションで、PCから離れているときのみ)に対応します — [Telegram](#telegram)を参照してください。 - **GitHub Actions** *(2.9 から)*:リポジトリのワークフロー実行をタスクとして表示します。進行状況と予想残り時間は、過去の通常の実行時間に基づきます(過去の実行がない場合はジョブ/ステップごと)。失敗したステップとログ末尾、キャンセル/再実行ボタン、アーティファクトとリリースへのリンクを表示します — [GitHub Actions](#github-actions)を参照してください。 - **Runpod** *(2.9 から)*:GPU ポッドをタスクとして表示します。GPU、リージョン、イメージ、$/h、使用額、稼働時間、SSH と Jupyter のリンク、負荷グラフ、停止ボタン付きの *GPU アイドル* 警告、残高と稼働可能時間および残高不足警告に対応します。停止/起動/再起動もできます(削除はパネル内のみ。ポッド名の入力が必要です)— [Runpod](#runpod)を参照してください。 - **Vast.ai** *(2.9 から)*:インスタンスをタスクとして表示します。Runpod と同様の情報(GPU、場所、イメージ、$/h、使用額、稼働時間、SSH、ディスクを含む負荷グラフ、*GPU アイドル*、残高/クレジットと稼働可能時間)に加え、停止/起動/再起動が可能です。削除はパネル内のみです — [Vast.ai](#vastai)を参照してください。 - **AWS** *(3.1 から。オンにするまで無効。AWS のドキュメントに基づいて構築されており、実際のアカウントでは未検証)*:*忘れていませんか?* リマインダー付きの EC2 インスタンスをタスクとして表示します。SageMaker のトレーニングジョブ、AWS Batch ジョブ、今月のコストと予測、AWS Budgets も、それぞれ個別のスイッチで有効にできます。読み取り専用です。[AWS](#aws)。 - **残高ガード** *(2.9 から。オンにするまで無効)*:Runpod と Vast.ai に対応します。任意の残高しきい値で警告(残高、$/h、残り時間)を表示し、停止しきい値に達すると、Windows と Telegram で *今すぐ停止*/*スヌーズ* の通知を表示した後、稼働中のマシンを**停止**します(削除はしません)— [残高ガード](#balance-guard)を参照してください。 - **停滞検出**(ハートビートのタイムアウト)と、プロセス終了時の *消失* 状態。 - **エージェントに適した設計**:MCP サーバー(`taskhub mcp`)、PATH 上で使えるネイティブの `taskhub` CLI、標準ライブラリのみを使用する Python クライアント、それ以外のすべてに対応するプレーン HTTP を提供します。`taskhub api` を実行すると、エージェントに必要なドキュメントが表示されます。 - **更新チェック**:新しいバージョンのリリース時に通知します(1日1回。設定 → *システム* から切り替えられ、*今すぐ確認* も実行できます。最新バージョンを使用している場合も、その場で結果を表示します)。 - **Windows の通知センターのようなパネル**:画面の右端に全高でドッキングし、スライドして出入りします(Windows のアニメーションがオフの場合は即時)。左端をドラッグして幅を変更できます。ピン留めすると開いたままになります(*2.9.7 から*、ピン留めしたパネルは画面端に固定されます。最大化したウィンドウは場所を空け、⚙ で有効にすると他のウィンドウも場所を空けます)。背景とカードはぼかしのある半透明です(*パネルの透明度*、2.9 から *カードの透明度* — ⚙ から設定)。ライト/ダークテーマとアクセントカラーは Windows に合わせるか、⚙ で設定できます。*2.9.4 から*、Windows 自体がぼかしを描画しない場合(省電力モードがオン、または Windows の設定で *透明効果* がオフ)にはその旨が表示され、該当設定へのリンクも表示されます。 - **設定** *(2.9 からパネル内、3.1 からアイコンタブ付きでパネルの横に表示)*:パネル内の ⚙(またはトレイメニューの *設定*)から、パネルの横に設定を開けます。セクションごとにアイコンタブがあり、外観、通知、Telegram、コネクター、AI エージェント、システム(自動起動、更新、データフォルダー、API リファレンス)、バージョン情報を設定できます。トレイメニューには、パネルを開く、ミュート、設定、サポート、終了のクイック操作のみが Windows 11 スタイルで表示されます。パネルがピン留めされている間は、設定を閉じるには設定自身のボタンを使います。 バッテリー駆動中(3.1 から)は、パネルと設定がスライドせず、即時に表示/非表示になります。 - UI 言語は10種類(English、Українська、Español、Deutsch、Français、Italiano、Português、Polski、中文、日本語)。 - ユーザーごとのインストールで、管理者権限も .NET ランタイムも不要です。自動起動は自己修復します。 ## クイックスタート 1. `TaskHub--setup.exe` を実行 → **インストール**(フォルダー、自動起動、PATH、Claude Code / Codex のオプションを選択します)。 2.9 以降、セットアップウィンドウは進行状況を表示したまま開き、最後に *TaskHub を開く* が表示されます。アンインストールも同じ手順で行えます (*データも削除する* を任意で選択できます)。 2. 何かを報告します:
taskhub notify "Render" "finished in 42 min"
taskhub run --name "Build" -- cmake --build build -j 16     # wraps any command, parses % from its output
taskhub run --name "Shot 12" -- blender -b shot12.blend -s 1 -e 240 -a   # 2.9.2: frame, samples, overall %, s/frame

バージョン 2.9.2 以降: taskhub run は、Blender のバックグラウンドレンダリング出力を自動的に認識します(Blender にアドオンを追加する必要はありません)。フレームとそのサンプル数、フレーム範囲が分かる場合の全体の進行状況(-s/-e または -f)、1 フレームあたりの秒数のグラフ、最後に保存されたファイル、レンダリングメモリを表示します。Blender はレンダリングに失敗しても終了コード 0 を返すため、Error: 行がタスクの失敗を示し(taskhub run は終了コード 1 を返します。Blender が終了時に出力するメモリリークに関する注記は対象外です)。動画出力(FFmpeg)と別ファイルとして保存されるステレオビューは、フレームごとにカウントされます(2.9.3)。このフレームの後に停止(パネル/通知)を選ぶと、フレームが保存されて次のフレームが始まった時点で Blender を終了します。この方法で停止した場合やクラッシュした場合、タスクには再開する場所が表示され、taskhub run は次のフレームを -s に設定した同じコマンドを出力します。--preset none を指定すると、この機能は無効になります。

from taskhub_client import Task, W, C          # stdlib only; installed next to taskhub.exe

with Task("Train", total=100, unit="epochs", source="codex",
          widgets=[W.chart("loss", "Loss", series=["train", "val"]), W.gauge("vram", "VRAM", max=24, unit="GB")],
          controls=[C.signal("lr", "Set LR", input=C.number(default=1e-3))], pausable=True) as t:
    t.on("lr", lambda v: set_lr(v))
    for e in range(100):
        t.wait_if_paused()
        if t.stop_requested: break
        t.progress(e + 1, status=f"epoch {e+1}", widgets={"loss": {"train": tl, "val": vl}, "vram": mem})
curl -s -X POST localhost:47800/api/notify -H "X-TaskHub: 1" -d '{"title":"Done","message":"backup ok"}'

AI エージェントを使用する場合 — Claude Code と Codex:TaskHub tools (MCP)(次のセクション)を有効にすれば、ほかに設定は必要ありません。その他のエージェント(ChatGPT、スクリプト、シェルを使える任意のツール)の場合は、AGENTS.md/カスタム指示に次の1行を追加します:

1分を超える作業は、TaskHub に報告してください(taskhub api でドキュメントを表示できます。コマンドは taskhub run --name ... -- <cmd> で実行してください)。

Claude Code と Codex:ワンクリック

セットアップダイアログ(および後から[Settings → AI agents])では、エージェントごとに独立したオプションを設定できます。3.1 以降、PC でエージェントを使用していて、まだ選択していない場合は、選択するまでパネルにカードが表示され、そのことを知らせる通知が 1 回表示されます。Connect を押すまでは、何も書き込まれません。

オプションできることTaskHub の書き込み先
通知(フック)エージェントが応答を完了したとき、または許可を求めているときにトーストを表示しますClaude Code:~/.claude/settings.json · Codex:~/.codex/hooks.json
プランの使用制限(3.1 以降。[Settings → AI agents]でエージェントごとに有効にするまでオフ)5 時間および週間の使用制限のうち、どれだけ使ったかをパネルに表示します。75% から警告付きで黄色、90% から警告付きで赤色になりますClaude Code:~/.claude/settings.json(statusLine) · Codex:なし。TaskHub が直接問い合わせます
TaskHub ツール(MCP)エージェントが notify、task_start/update/finish、task_commands、task_wait(2.9.2 以降)、task_list ツールを利用できるようになり、長時間実行するジョブが自動でパネルに表示されますClaude Code:~/.claude.json · Codex:~/.codex/config.toml

TaskHub は自身のエントリのみを追加し、アンインストール時に削除します(Store 版については以下を参照)。それ以外の内容はすべて保持されます(元の内容のバックアップ: *.taskhub.bak)。エージェント側での操作は次のとおりです。

  • Claude Code — 新しいローカルセッションを開始します(デスクトップアプリ → Code タブ → 環境を Local に設定、CLI、または VS Code)。 /mcp に taskhub が接続済みとして表示されます。クラウドセッションは Anthropic のサーバー上で実行されるため、PC 上の TaskHub に接続できません。
  • プランの使用制限 — Pro、Max、または Ultra プランが必要です。数値は Claude Code の次の返信後に表示され、セッションの実行中のみ更新されるため、古い値には経過時間が表示されます。 独自のステータス行は変更なく動作し続けます。独自のステータス行がない場合、Claude Code は空のステータス行を表示し、esc to interrupt などのヒントを非表示にします。詳細:API.md。
  • Codex のプランの使用制限 — Codex の実行中、TaskHub はモデルへのリクエストを行わずに 10 分ごとに Codex に数値を問い合わせます。これは Codex の開発元が実験的と呼ぶ機能に依存しているため、Codex の更新によって動作しなくなることがあります。その場合、数値が古くなるだけで、それ以外の機能は引き続き動作します。表示する数値がない場合は、パネルに理由が表示されます(PATH に見つからない、サインインしていない、読み取れなかったなど)。詳細:API.md。
  • Codex — Codex を再起動します。フック:Codex → Settings → Hooks → Trust all(新しいフックについて Codex が一度確認します)。 MCP:Codex の MCP サーバー一覧に taskhub サーバーが表示されます。

スクリプトから設定する場合:TaskHubHost.exe --integrations claude=on codex=on claude-mcp=on codex-mcp=off。手動で設定する場合: API.md → Claude Code hooks、Codex hooks、MCP server。

Telegram

Settings → Telegram:@BotFather でボットを作成し(/newbot)、そのトークンを貼り付けて Connect を押し、スマートフォンで QR コードをスキャンする(またはこの PC でリンクを開く)と、Start を押します(ボットとのプライベートチャットで行ってください。グループはリンクできません。メンバーなら誰でもタスクのボタンを押せてしまうためです)。設定ページですべてのセットアップが完了します (2.9.4 以降。それ以前は専用のウィンドウで行います)。後から別のアカウント(例:スマートフォンのアカウント)をリンクするには、New link を押します。Disconnect を押すと、この PC からボットのトークンが削除されます。以降、TaskHub に表示されるすべての通知がそのチャットにも届きます(ボットとやり取りできるのはそのチャットだけです)。タスクの通知ボタンはインラインボタンになり、選択肢や「はい/いいえ」も使えます。数値/テキスト入力では、ボットが値を尋ね、返信がタスクに送られます。ボタンを押すとタスクに戻ります。進捗状況のあるタスクでは、進捗バー、ETA、ステータス、タスクのボタンを含むサイレントメッセージが1件送信され、同じメッセージが更新されます(更新のたびに新しいメッセージは送信されません)。タスクが完了すると、グラフが1枚の画像として届きます(オプション Progress and charts、telegram_progress)。コマンド:/tasks、/mute、/unmute。オプション:PCから離れているときのみ送信します(キーボード/マウスの操作が5分間ない場合。config.json の telegram_away_minutes)。ボットのトークンは Windows Credential Manager に保存されます(2.9。以前は config.json。Credential Manager が利用できない場合は config.json に保存され、Settings に警告が表示されます)。メッセージは PC から Telegram Bot API に直接送信されます。2.9 以降、TaskHub はメッセージを破棄せず、Telegram の送信ペース(約1秒に1件、および Too many requests の後は Telegram が要求する時間)に合わせます。また、長いテキストは必ず届くよう短縮されます。

GitHub Actions

バージョン2.9以降。オンにするまで無効です。 Settings → Connectors → GitHub Actions(2.9.6 以降は設定ページですべて行えます):リポジトリ(owner/repo)を一覧に追加し、アクセス権を付与します。対象のリポジトリに限定した、ご自身のfine-grained token(Actions:Read and write、Contents:Read-only、Metadata:Read-only。Windows Credential Manager に保存され、config.json には保存されません)、または Git Credential Manager にすでに保存されているトークン(広範な権限があり、すべてのリポジトリが対象です)を使用します。ワークフローは変更されません。各実行は、リポジトリ、ワークフロー、ブランチ/タグ、コミット、実行者を含むタスクになります。失敗は常に通知され(Windows と Telegram)、成功は必要に応じて通知されます。TaskHub が接続するのは api.github.com のみです。オプションのログ末尾部分は、GitHub が発行する一時リンクを使って GitHub のログストレージから取得し、トークンは使用しません。トークンの有効期限が切れる1週間前に通知されます。承認待ちの実行(例:フォークからの実行)には Waiting for approval on GitHub と表示され、承認後に追跡が再開されます。リポジトリ名が変更されても追跡を続け、変更を報告します(repository moved to …)。GitHub のレート制限に達すると、ポーリングは一時停止します(2.9)。詳細:API.md → Connectors。 バージョン2.9.4以降: プルリクエスト、読み取り専用(同じウィンドウ内の2つのスイッチ。どちらもデフォルトではオフ):ご自身のレビュー待ちのプルリクエスト(トークンから見えるすべてのリポジトリが対象です。fine-grained token では、自身のリポジトリと公開リポジトリのみが対象です)と、一覧に追加したリポジトリのオープンな Dependabot プルリクエスト(トークンには Pull requests: Read-only の権限も必要です)。それぞれリンク付きのタスクになり、プルリクエストが表示されると通知されます。一覧から外れると、通知なしで終了します(Merged、Closed without merging、No longer waiting for your review)。マージ、承認、コメントは行われません。 トークンの取得方法: docs/keys/github.md(手順、最小権限、取り消し方法。українською)。

Runpod

バージョン 2.9 以降。オンにするまで無効です。 Settings → Connectors → Runpod:Runpod コンソール(Settings → API Keys)で取得した API キーを貼り付けます。Windows Credential Manager に保存され、config.json には保存されません。コネクターをオフにしてもキーは保持され、Remove を選ぶと削除されます。監視には読み取り専用キーで十分です。TaskHub はキーがアクションを実行できるかを最初に一度(以降は毎日)確認し、実行できる場合にのみ Stop / Start / Restart / Delete ボタンを表示します。各 Pod はタスク(rp-<pod id>)です。実行中または起動中はアクティブで、停止すると stopped、削除すると terminated の状態になります。GPU(タイプ × 数)、リージョン、イメージ、時間あたりの料金、これまでの使用料金(≈、Runpod の請求額に基づく)、稼働時間、SSH コマンド、Runpod のプロキシ経由で HTTP ポート(8888 の Jupyter など)にアクセスするための https リンク、および TaskHub 自身のポーリング(30 秒ごと)による GPU / VRAM と CPU / RAM のグラフが表示されます。Pod のすべての GPU の使用率が 30 分間 5 % 未満の場合(idle_minutes、idle_util)、TaskHub は GPU idle を警告します。Windows と Telegram で通知され、Stop ボタンも表示されます。残高と残り稼働時間(残高 ÷ 現在の時間あたりの使用額)は Settings と各 Pod に表示されます。残り 12 時間未満(low_runway_hours)、または残高が $ の low_balance を下回ると、TaskHub は一度警告します。$0 になると Runpod は Pod を停止し、ネットワークボリュームのない Pod を終了します。停止、起動、再起動には確認が必要です(停止と再起動は通知および Telegram からも実行できます)。削除はパネルでのみ実行でき、Pod 名を入力する必要があります(HTTP API 経由では実行できません)。TaskHub は api.runpod.io のみと通信します。Pod と請求には REST v2、残高には GraphQL を使用します(graphql_balance はデフォルトでオンです。残高を取得しない場合はオフにしてください)。詳細:API.md → Connectors。 キーの取得方法: docs/keys/runpod.md(手順、最小限の権限、取り消し方法;українською)。

Vast.ai

バージョン 2.9 以降。オンにするまで無効です。 Settings → Connectors → Vast.ai:Vast.ai コンソール(API keys ページ)で取得した API キーを貼り付けます。監視には instance_read、user_read、billing_read を付与したキーで十分です。アクションには instance_write が必要です。Windows Credential Manager に保存され、config.json には保存されません。コネクターをオフにしてもキーは保持され、Remove を選ぶと削除されます。Runpod と同様に、TaskHub はキーがアクションを実行できるかを最初に一度(以降は毎日)確認し、実行できる場合にのみ Stop / Start / Reboot / Delete ボタンを表示します。各インスタンスはタスク(va-<id>。ラベルが名前になります)です。実行中または起動中はアクティブで、停止すると stopped、破棄すると terminated の状態になります。GPU(タイプ × 数)、場所、イメージ、時間あたりの料金、これまでの使用料金(≈、Vast.ai の過去 30 日間の請求額に基づく)、稼働時間、SSH コマンド、Vast.ai コンソールへのリンク、および TaskHub 自身のポーリングによる GPU / VRAM と CPU / RAM / ディスクのグラフが表示されます(Vast.ai では負荷が報告されないことがよくあります。その場合、グラフは空欄のままです)。GPU idle と低残高の警告は Runpod と同様に機能します。Vast.ai は balance と credit を報告します。TaskHub は両方を表示し、残り稼働時間の計算には credit も含めます。$0 になると Vast.ai はインスタンスを停止します(停止中もストレージ料金は発生します)。支払い方法が登録されていない場合、インスタンスは削除予定になります。ホストが GPU を別のユーザーに貸し出していると、起動処理が Scheduling の状態で待機することがあります。その場合、TaskHub がその旨を表示します。TaskHub は console.vast.ai のみと通信します。詳細:API.md → Connectors。 キーの取得方法: docs/keys/vastai.md(手順、最小限の権限、取り消し方法;українською).

AWS

バージョン 3.1 以降で利用できます。有効にするまではオフです。AWS のドキュメントに基づいて作成し、シミュレーターでテストしていますが、実際のアカウントではまだテストしていません。 設定 → コネクター → AWS:読み取り専用ポリシーを設定した専用 IAM ユーザーのアクセスキーを貼り付けます (取得方法)。TaskHub がアカウント内の項目を開始、停止、変更することはありません。 EC2 インスタンスは、状態と稼働時間を示すタスクになります。アカウントで有効になっているすべてのリージョン、または指定したリージョンのみが対象です。設定した上限(デフォルトは 72 時間、0 = オフ)を超えて稼働しているインスタンスには、忘れていませんか? というリマインダーが表示され、稼働させておくインスタンス向けのボタンも用意されています。 以下の各項目には、それぞれ独立したスイッチと権限があります。SageMaker トレーニングジョブ(フェーズと時間。通常のトレーニングでは SageMaker がパーセンテージを報告しないため、TaskHub にも表示されません)、AWS Batch ジョブ(アレイジョブでは実際の進捗を表示)、Cost Explorer の今月のコストと予測(AWS はリクエストごとに $0.01 を請求します。TaskHub は 8 時間ごとに最大 2 回リクエストするため、月額約 $1.80 です。再起動しても追加料金はかかりません)、AWS Budgets(予算が上限を超えたときに通知を 1 回送信)。 詳細:API.md → コネクター。 キーの取得方法:docs/keys/aws.md(手順、最小限の権限、取り消し方法を記載。 ウクライナ語)。

残高ガード

バージョン 2.9 以降。オンにするまで無効です。 設定 → コネクター → Runpod / Vast.ai → 残高が少ない場合に自動停止。 各プロバイダーには、ドル単位のしきい値が 2 つあります。警告(デフォルトは $10)と停止(デフォルトは $2。警告のしきい値は停止のしきい値より高くする必要があります)。

  • 警告のしきい値に達すると、TaskHub は一度だけ警告します(Windows の通知。接続されている場合は Telegram にも通知します)。通知内容は、残高、現在の時間あたりの支出額、停止のしきい値に達するまでの時間です。残高が再び増加した後に限り、もう一度警告します。
  • 停止のしきい値に達すると、TaskHub は実行中のマシンの停止を通知し、今すぐ停止 と N 分スヌーズ のボタンを表示します(通知、Telegram、パネルの 残高ガード カードに表示されます)。返答がない場合は、返答時間の上限に達するとマシンを停止します(デフォルトは 10 分。現在の支出ペースで残高が $0 に達する時刻より後になることはありません。スヌーズも同様に上限が適用され、その期限が表示されます)。残高が停止のしきい値を超えるまでチャージすると、停止はキャンセルされます。
  • 停止のみです。TaskHub がマシンを削除、終了、破棄することはありません。 同じ設定で 自動停止しない と指定されたマシンはそのままにします。停止はそれぞれ確認されます(Runpod:EXITED、Vast.ai:実行中ではなくなったこと)。停止できなかったマシンは失敗として報告され、停止済みとは報告されません。
  • 残高を読み取れない場合(ネットワークがない、サービスが停止している、キーが取り消されたなど)、TaskHub は一度だけ警告し、期限に達しても何も停止しません(「自動停止を保留しました。手動で確認してください」)。残高を再び読み取れるようになるまで停止しません。読み取り専用キーでは警告のみ可能で、その旨は設定に表示されます。プロバイダーが残高 $0 でも停止しないアカウントも同様です(Runpod の後払い、カードを登録して自動請求される Vast.ai など)。このような場合、ガードは警告のみ行います。
  • 今すぐ停止 を選ぶと、まず確認を求めます。停止に失敗したマシンは、次回の残高読み取り時に再試行します。保留中の停止は TaskHub の再起動後も維持されます。ガードをオンにしても、従来の 残高が少ない 警告は引き続き機能します(ガードのしきい値で警告が二重に表示されることはありません)。
  • バージョン 2.9.3 以降: GPU がアイドル状態のときに自動停止 — 同じ設定にある GPU のアイドル状態が続いたら停止(分)(0 = オフ、デフォルト)で設定できます。残高ガードがオフでも使用できます。実行中のマシンですべての GPU が設定時間以上アイドル状態になると、今すぐ停止 / スヌーズ のボタン付きで同じ通知を表示します。GPU が再びビジー状態になるとキャンセルされ、期限に達した時点でもアイドル状態の場合に限り停止します(最新の読み取り結果があり、現在の設定時間以上アイドル状態であることが条件です。不明な負荷の場合は停止しません)。自動停止しない マシンはそのままにします。残高による停止と同時に発生した場合は、残高による停止が優先されます。
  • 停止後、TaskHub は停止したマシンと、停止中に発生するストレージ料金を通知します。金額はプロバイダーの料金表に基づく概算です。Runpod — コンテナディスクは消去され、課金されません。ボリュームディスクは停止中、$0.20 / GB / 月、ネットワークボリュームは従来どおり $0.07 / GB / 月です(サイズは Runpod から取得します。2.9.1 以降。Runpod の料金、ストレージの種類)。Vast.ai — インスタンスのストレージ料金 × ディスクサイズです(ホストごとに異なります。Vast.ai の料金)。設定には予測(「現在の支出ペースでは、残高が停止のしきい値に達する時刻は……」)と直近の停止履歴が表示されます。各停止(日時、マシン、理由、これまでの支出額、結果、ストレージ料金の概算)は、データフォルダー内の guard_log.json に保存されます(GET /api/guard/log)。
  • Runpod の請求は段階的に処理されます。残高は継続的に変化するのではなく、数分ごとに減少します(テストでは約 10 分ごとでした)。そのため、停止のしきい値を超えてから最大で約 10 分遅れて停止する可能性があります。余裕を持ったしきい値を設定してください(設定にもその旨が表示されます)。 詳細:API.md → 残高ガード。

インストールの詳細

セットアップダイアログでは、既定で %LOCALAPPDATA%\Programs\TaskHub(または任意のフォルダー)にインストールし、 taskhub CLI、taskhub_client.py、API.md を展開して、taskhub:// と アプリと機能 のエントリを登録し、(2.9 以降では) TaskHub をスタートメニューに追加します。既存のインストールに対しては、セットアップにインストール済みのバージョンとフォルダーが表示され(バージョンはインストール済みの exe から読み取られます)、フォルダー、自動起動、PATH の設定を維持したまま、更新、再インストール(同じバージョン)、または旧バージョンのインストールを選べます。インストールせずに実行 することもできます。

  • サイレントインストール:TaskHub-<version>-setup.exe --install [--dir PATH] [--no-autostart] [--no-path] [--claude|--no-claude] [--codex|--no-codex] [--claude-mcp|--no-claude-mcp] [--codex-mcp|--no-codex-mcp] --quiet(指定されていないエージェントオプションは変更されません)
  • アンインストール:アプリと機能 → TaskHub、または TaskHubHost.exe --uninstall [--quiet] [--purge] (--purge は %APPDATA%\TaskHub のデータに加え、2.9 以降では Telegram トークンと、TaskHub が保存した GitHub、Runpod、Vast.ai、AWS のキーも Windows 資格情報マネージャーから削除します。通常のアンインストールでは、再インストールに備えてこれらは保持されます)。Claude Code/Codex の設定からも TaskHub のエントリを削除します。
  • 自動起動のエントリが削除または変更されると、設定 → システム でオフにしない限り、自動起動が復元されます。 2.9 以降では、タスクマネージャー/設定 → アプリ → スタートアップ でオフにした場合もその設定が反映されます(TaskHub のスイッチにもオフと表示されます)。 2.9 より前は、自動起動が再びオンになっていました。
  • インストールとアンインストールの際は、まず実行中の TaskHub に終了を求め(タスクを保存します)、数秒以内に終了しない場合にのみプロセスを終了します (2.9 の動作。以前は、起動したものをすべて終了していました)。
  • 要件:Windows 10 1809 以降/11 x64(Microsoft Store 版:2.9 以降では Windows 10 2004 以降)、WebView2 ランタイム(現行の Windows にはプリインストール済み)。 2.9 以降では、ランタイムがない場合に TaskHub がその旨(Microsoft のダウンロードリンク付き)を表示し、WebView2 がクラッシュした場合はパネルが自動的に復旧します。Windows で TaskHub の通知がオフになっている場合、設定 → 通知 に警告と Windows の設定を開くボタンが表示されます。
  • ポート 47800、127.0.0.1 のみ、CSRF ヘッダーと Host/Origin チェック。オプションでベアラートークン(config.json の "token")。

更新:インストール済みのハブは 1 日に 1 回、GitHub で最新リリースを確認します(api.github.com へのリクエスト 1 回。ダウンロードもインストールも行いません。2.9.5 以降では、設定ページを開いたときに前回の確認から 15 分以上経過している場合も確認します)。新しいバージョンがあると通知が表示されます。設定 → システム には 今すぐ確認 と 毎日確認 のスイッチがあります(config.json の "update_check": false)。新しい setup.exe を実行して更新してください。

問題が発生した場合は、データフォルダー内の taskhub.log に状況が記録されています。3.1 以降では、config.json に "log_level": "debug" を設定すると、通知テキストやタスク名など、より詳しい情報が記録されます。情報はどこにも送信されませんが、共有する前にログの内容を確認してください。

トースト通知の表示時間:config.json の toast_seconds/toast_seconds_interactive(4 秒/8 秒)で設定します。表示時間が過ぎると、通知は通知センターに残ります。通知が集中した場合(2.9):1 分あたりの通知数は最大 toast_rate 件(10。0 は無制限)で、タスクごとに toast_task_gap 秒(2)間隔で 1 件までです。超過分は最新の通知にまとめられます(「通知がさらに +N 件」)。トースト通知と Telegram の両方が対象です。

ソースからビルドする

build.cmd(.NET 10 SDK が必要)→ dist\TaskHub-<version>-setup.exe(単一の自己完結型ファイル。CLI を先にビルドして埋め込みます)と、開発用の app\ が生成されます。build.cmd beta は同じバージョンに完全なログを付けたもので、リリースには使用しません。ソース:src\Host(Kestrel HTTP API、WinForms トレイ、WebView2 パネル、WinRT トースト。コネクターは src\Host\Connectors\<Name>\ にあります。README を参照)、src\Cli、ui\(パネルのページ。index.html と、ハブが組み立てる CSS/JS の各パーツ)、i18n\(翻訳、10 言語)、clients\python。

Microsoft Store 版:build.cmd の後、packaging\build-msix.ps1 → dist\TaskHub-<version>.msix(署名なし。Store が署名します。-Name/-Publisher/-PublisherDisplay は Partner Center から取得します)。コードは同じですが、パッケージ版の TaskHub にはセットアップや独自の更新チェックはなく、自動起動、taskhub://、taskhub コマンドは packaging\AppxManifest.xml で設定されます。-Register はテスト用にビルドフォルダーをパッケージとしてインストールします(開発者モード)。同時に使えるのは一方のエディションのみです。Store 版ではセットアップ exe 版のインストールを削除するか、「Keep both」を選んで Store 版の自動起動を無効にするよう促され、セットアップ exe 版では Store 版を置き換えるよう促されます。どちらも同じデータフォルダーとエージェント接続を使用します。パッケージ版は実際の %APPDATA% と HKCU(unvirtualizedResources)に書き込みます。 Windows はパッケージのアンインストール時に何も実行しないため、Store 版は %LOCALAPPDATA%\TaskHub\bin にある taskhub.exe のコピーをエージェントに指定します(パッケージ名を記録する store.json も配置されます)。パッケージが削除された後にエージェントがこれを起動すると、エージェントの設定から TaskHub のエントリを削除します(コピーは残ります。セットアップ exe 版では起動時に削除されます)。

テスト:tests\run_tests.cmd は分離されたハブ(ポート 47899、一時データ、トレイなし、通知なし)を起動し、api_test.py(API コントラクト、エージェントフック、CLI)、validation_test.py(入力検証:非有限数、ウィジェット属性、コントロール値、シェルコントロール)、parallel_test.py(8 個の同時ワーカー+通知の連続送信)、integration_test.py(Claude Code/Codex の設定編集。一時ホームフォルダー内)、install_test.py(一時フォルダーでのセットアップ/アンインストール)、mcp_test.py(taskhub mcp)、telegram_test.py(モック Bot API に接続する Telegram ブリッジ)、github_test.py、runpod_test.py、vastai_test.py、guard_test.py(モック API に対するコネクターと残高ガード)、aws_sigv4_test.py、aws_test.py(AWS のテストスイートに対する AWS 署名機能、シミュレーターに対するコネクター)、limits_test.py、codex_limits_test.py(プランの制限)、payload_bounds_test.py(ローカルプロセスが送信できる内容)、hooks_offer_test.py、hook_form_test.py(エージェントフック)、log_test.py(ログレベル、マスキング、ローテーション)を実行します。 プッシュのたびに GitHub Actions(.github/workflows/ci.yml、Windows ランナー)でビルドとこれらのテストを実行します。v<version> タグ(Settings.Version、build.cmd、両方の .csproj と一致するもの)をプッシュすると、セットアップ exe と SHA-256 を含むリリースも公開されます。 tests\demo_long.py はメインハブを使う約 20 分の対話型デモです。tools\demo\record.py は、このページの先頭にあるデモ(MP4、GIF、Store 用の 1920×1080 スチル画像)を、偽データとモック Telegram ボットを使った分離ハブ上で録画します。build.cmd の後に python tools\demo\record.py を実行します(Microsoft Edge と ffmpeg が必要です)。 セットアップとアンインストールのウィンドウは、何も変更せずに確認できます。set TASKHUB_SETUP_DRYRUN=1 を設定してから、セットアップ exe(または --uninstall)を実行すると、各手順が表示されるだけです。

ハブのコマンドライン:TaskHubHost.exe [--port N] [--data DIR] [--install|--uninstall [--quiet] [--purge] | --status | --panel [ID] | --integrations [claude|codex|claude-mcp|codex-mcp|claude-limits|codex-limits=on|off ...] | --no-tray]。exe と同じ場所に TaskHubHost.settings.json({"port": 47801, "data": "..."})を置くと、独立した 2 つ目のインスタンスを起動できます。

サポート

TaskHub は無料です。時間の節約に役立っている場合は、スポンサーになることで保守を支援できます — また、次にどのアイデアを実現する価値があるかを教えていただけます。バグ報告や機能リクエストは、Issuesまでお寄せください。

ライセンス

PolyForm Shield 1.0.0 — ソースを利用できます。仕事を含むあらゆる目的で、無料で使用、変更、共有できます。ただし、TaskHub と競合する製品を提供する場合を除きます(例:再パッケージ化、再販売)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。