EasyTouch — クロスプラットフォーム自動化ツール
概要
EasyTouchは、マウス/キーボード/画面/ウィンドウ/システム資源などを操作するクロスプラットフォームの自動化ツールです。CLI(コマンドライン)またはMCP(プロトコル/コントロールモード)を通じて各種コマンドを受け付け、単発の操作からスクリプトによる連続操作まで対応します。Windows、Linux、macOSに対応し、プラットフォーム固有のネイティブAPI呼び出しを各実装フォルダに分離することで移植性と拡張性を両立しています。主要コマンドにはマウス移動やクリック、キー操作、テキスト入力(中文対応)、スクリーンキャプチャやウィンドウリスト取得などが含まれます。(約300字)
リポジトリの統計情報
- スター数: 6
- フォーク数: 3
- ウォッチャー数: 6
- コミット数: 4
- ファイル数: 14
- メインの言語: C#
主な特徴
- クロスプラットフォーム対応:Windows / Linux / macOSで動作する自動化コマンド群を提供
- マウス・キーボード・画面・ウィンドウ・システム情報など幅広い操作をサポート
- CLIおよびMCPという2つの利用モードでスクリプトや外部連携に対応
- プラットフォームごとにネイティブ実装を分離し、拡張と保守がしやすい構成
技術的なポイント
EasyTouchはC#をベースに設計され、クロスプラットフォームで動作する自動化機能をモジュール化して提供しています。リポジトリ内にはプラットフォーム別の実装ディレクトリ(EasyTouch-Linux、EasyTouch-Macなど)があり、ここでそれぞれのOS向けにネイティブAPIやシステムコールを呼び出すラッパー実装が収められている構成です。これにより、共通のコマンドインターフェースを維持しつつ内部実装をOSごとに切り替えられます。
コマンド設計は比較的シンプルで、マウス操作(mouse_move、mouse_click、mouse_down、mouse_up、mouse_scroll、mouse_position)やキーボード操作(key_press、key_down、key_up、type_text)などを基本にしています。type_textは中国語を含む多言語入力を考慮しており、キーイベントの送出だけでなく必要に応じてIME操作やUnicode入力処理を行う実装が想定されます。スクリーン操作やウィンドウ制御は、画面キャプチャ/ウィンドウ列挙/フォーカス変更などのAPIを通じて行われ、解像度やスケーリング差異への考慮が必要です。
CLIモードではコマンドラインから直接操作を送ることで簡単に自動化を実行でき、MCPモードはおそらくデーモンやサーバとして常駐し、外部クライアントからの命令を受けるプロトコル(RPCやソケットなど)を提供するためのモードです。こうした2モード構成は、単発のバッチ操作と長時間稼働するサービス連携の双方をカバーします。
拡張性の観点では、共通のコマンドインターフェースを持つことで、新しい操作(例:音声出力、より高度なウィンドウ管理、画像認識を用いた座標決めなど)をモジュールとして追加しやすくなっています。また、ネイティブ呼び出し部分はプラットフォーム固有のファイルに分離されているため、特定OSのAPI変更や最適化が他のプラットフォームに影響を与えにくい設計です。テストやCIのために、モック層を挟んでコマンド層の単体テストを行うことも可能です。
運用面では、権限(例:XサーバーやWaylandでの操作権限、macOSのアクセシビリティ権限、Windowsの管理権限)やセキュリティを慎重に扱う必要があります。リモート制御や常駐モードを使う場合は認証・アクセス制御の設計も重要です。総じて、EasyTouchはシンプルなコマンド型自動化フレームワークとして、プラットフォームの違いを吸収しつつ拡張性と実用性を両立した設計が特徴です。(約700〜900字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitattributes: file
- .github: dir
- .gitignore: file
- EasyTouch-Linux: dir
- Linux向けのネイティブ実装が格納されていると想定。X11/Wayland呼び出しやコマンドラッパー、ビルドスクリプトが含まれる可能性があります。
- EasyTouch-Mac: dir
- macOS専用の実装。CGEventやAccessibility APIなどを呼び出すコードや設定ファイルを含む想定です。
…他 9 ファイル
補足(構成上の想定):
- README.md(プロジェクト概要・コマンド一覧・利用方法)
- ランタイム/ビルド設定(.csprojやスクリプト)が存在し、.NET Core / .NET(クロスプラットフォーム)でビルド可能な設計
- 各プラットフォームディレクトリはネイティブAPI呼び出しのラッパー、ユーティリティ、プラットフォーム固有の依存関係を含む
- CLI実行バイナリやMCPサーバーのエントリポイントが別ファイルに分かれている構造が想定される
まとめ
クロスプラットフォームでのシステム自動化をシンプルなコマンド群で実現する実用的なツール。拡張性とOS分離設計が魅力。
リポジトリ情報:
- 名前: EasyTouch
- 説明: 説明なし
- スター数: 6
- 言語: C#
- URL: https://github.com/whuanle/EasyTouch
- オーナー: whuanle
- アバター: https://avatars.githubusercontent.com/u/2189761?v=4
READMEの抜粋:
EasyTouch (et)
一个跨平台的系统自动化操作工具,支持鼠标、键盘、屏幕、窗口、系统资源等多种操作。支持 CLI 和 MCP 两种使用方式。
支持平台:Windows、Linux、macOS
功能模块
1. 鼠标控制 (Mouse)
| 命令 | 描述 |
|---|---|
mouse_move | 移动鼠标到指定坐标 (相对/绝对) |
mouse_click | 鼠标点击 (左/右/中键,单击/双击) |
mouse_down | 鼠标按下 |
mouse_up | 鼠标释放 |
mouse_scroll | 鼠标滚轮滚动 |
mouse_position | 获取当前鼠标位置 |
2. 键盘控制 (Keyboard)
| 命令 | 描述 |
|---|---|
key_press | 按键按下并释放 |
key_down | 按键按下 |
key_up | 按键释放 |
type_text | 输入文本字符串 (支持中文) |