Toasty — Windows向け軽量トースト通知CLI

Tool

概要

ToastyはWindows用の小型なトースト通知(通知バルーン)を表示するコマンドラインツールです。使い方はシンプルで、toasty “メッセージ” -t “タイトル” のように一行実行するだけで通知を表示できます。初回実行時に自動で自身を登録(トースト通知を送れるようにするためのショートカットやアプリIDの登録など)するため、ユーザーが面倒なセットアップをする必要がありません。また、Coding Agents(長時間実行タスクを監視するエージェント)との連携オプションを用意しており、エージェントが終わったらトーストで知らせる用途に適しています。依存関係を持たず、実行ファイルは約229KBと非常に軽量なのが特徴です。

GitHub

リポジトリの統計情報

  • スター数: 16
  • フォーク数: 0
  • ウォッチャー数: 16
  • コミット数: 30
  • ファイル数: 12
  • メインの言語: C++

主な特徴

  • 単一バイナリかつ依存無し(229KBと軽量)
  • 初回実行で自動登録し、追加セットアップ不要
  • CLIで簡単に通知を出せる(メッセージ、タイトル、インストール/アンインストール/ステータス管理)
  • Coding Agents向けのインストールフラグで連携可能

技術的なポイント

Toastyは「Windowsのネイティブ通知機構を最小限のコードで叩く」設計になっています。Windowsのトースト通知は内部的にはWinRT(またはCOMベースのAPI)を利用する仕組みで、通常はアプリケーションに対してAppUserModelIDやショートカットの登録、場合によってはトーストアクティベータの登録が必要になります。Toastyは初回実行時にこれらの前提を満たすための自動登録処理を行い、ユーザー側での複雑な準備を不要にしています(READMEの「Toasty auto-registers on first run」が示す通り)。技術実装はC++で、CMakeをビルドシステムに採用しているためVisual StudioやMSVC/GCCなど環境に応じたビルドが可能です。

依存ライブラリを持たない点の実現には、Win32/WinRT APIを直接呼び出すか、必要最小限のラッパーをソース内に含める形が想定されます。これによりビルド成果物は静的に最小化され、配布が容易になります。アイコンやリソースはプロジェクト内のiconsディレクトリ等に含まれ、通知表示時のビジュアルにも対応します。

CLIオプションとして —install [agent], —uninstall, —status が用意されており、これらはCoding Agentsのような外部プロセスと連携するためのフック(環境設定の追加、エージェントの登録解除、ステータス確認)を提供します。実装面では、エージェント連携のためにWindowsのタスクスケジューラやレジストリ、もしくはシェルショートカットの管理を行っている可能性が高く、システムに対する安全な変更管理(既存設定の検出と上書き回避)を意識した作りになっていると想像できます。

また、Toastyはクロスビルドよりも「Windowsネイティブ実行」を優先しているため、macOS/Linuxでは機能しません。ソースを読むことで、どのAPIを使っているか(例えばWinRTのNotifications APIやShell関連のAPI)を確認・拡張でき、プロジェクトはCMake構成なのでCIやローカルでのビルド、サイズ最適化のためのLTOや最小ランタイムオプションの適用も行いやすい構成です。設計上のトレードオフは、極小サイズと依存削減を優先するために高機能な通知テンプレートや複雑なアクション処理(ボタンや戻り値のハンドリングなど)を簡素化している点です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • CMakeLists.txt: file
  • DEVELOPMENT.md: file
  • PLAN-install.md: file

…他 7 ファイル

まとめ

非常に小さく依存無しで使える、手軽なWindowsトースト通知CLIです(実用性高し)。

リポジトリ情報:

READMEの抜粋:

Toasty

Toasty mascot

A tiny Windows toast notification CLI that knows how to hook into Coding Agents so you get notified when their long running tasks are finished. 229 KB, no dependencies.

Quick Start

toasty "Hello World" -t "Toasty"

That’s it. Toasty auto-registers on first run.

Usage

toasty <message> [options]
toasty --install [agent]
toasty --uninstall
toasty --status

Options:
  -t, --title <text>   S...