mcpField
W
wxauto

wxauto

github.com/cluic生産性35178 回インストール31 週間前に更新
リポジトリ

wxauto について

wxauto は wxautox4 RESTful API を通じて WeChat を操作するスキルです。メッセージや連絡先の操作を自動化する用途向けで、コマンドラインスクリプトからローカルまたはリモートの Windows サービスに接続します。

主な機能

  1. 01メッセージ、ファイル、URL カードの送信
  2. 02現在および過去のメッセージ取得
  3. 03新着メッセージの監視とチャットウィンドウ管理
  4. 04友だちとグループの一覧取得
  5. 05サービスと WeChat のオンライン状態確認
  6. 06ローカルまたはリモート API サービスへの接続

活用シーン

  1. 01友だちやグループチャットへのメッセージ送信
  2. 02チャット履歴の取得と新着メッセージの監視
  3. 03連絡先、グループ、セッションの確認
  4. 04macOS または Linux から Windows サービスに接続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cluic/wxauto-skill --skill wxauto

インストール後、Claude Code で/wxautoを入力して読み込まれたか確認します。

同梱ファイルscripts/wxapi.py

詳細

WeChat 自動化

wxautox4 RESTful API を通じて WeChat を操作します。メッセージの送受信、監視、友だち管理などの機能に対応しています。API サービスは Windows デバイス上で実行する必要があります(wxautox4 は Windows のみ対応)。ローカルまたはリモートから接続できます。

ステップ 0:プラットフォームの検出(最優先で実行)

ほかの操作を行う前に、まず現在のデバイスの OS を検出します:

import platform
print(platform.system())  # 返回 'Windows' / 'Darwin' / 'Linux'

結果に応じて、以下の分岐に進みます:


Windows 以外のデバイス(macOS / Linux)

wxautox4 サービスは Windows 上でのみ実行できます。現在のデバイスにサービスをインストールまたは起動しようとしないでください。

ユーザーにリモートサービスの情報を直接尋ねます(AskUserQuestion または同等のツールを使用):

问题1:请提供 wxauto-restful-api 服务地址(例如 http://192.168.1.100:8000)
问题2:请提供服务的 Bearer Token(见服务端 config.yaml 的 auth.token,默认为 token)

アドレスと token を取得したら:

  1. 設定を環境変数に書き込むか、スクリプトの引数として直接渡します
  2. ヘルスチェックインターフェースにアクセスして接続を確認します:GET /v1/wechat/status
  3. 接続に失敗した場合は、ネットワークに到達できるか、サービスが起動しているか、token が正しいかを確認するようユーザーに伝えます
  4. 接続に成功したら、ユーザーの操作をそのまま実行します。ローカルへのインストール手順は不要です

Windows デバイス

まず、ローカルサービスが実行中か確認します(~/.wxautox/service_status.json を読み取り、ヘルスチェックを行います):

  • ローカルサービスが実行中:自動的に接続します。ユーザー操作は不要です
  • ローカルサービスが実行されていない:ユーザーに方法を選択してもらいます(下記「サービスが実行されていない場合の対処」を参照)

サービスの設定

  • 認証:Bearer Token(config.yaml の auth.token を参照。デフォルト値は token)
  • サービス状態ファイル:~/.wxautox/service_status.json(サービス起動時に自動生成されます。Windows へのローカルデプロイ時のみ存在します)
設定の優先順位(高い順)
  1. コマンドライン引数

    python scripts/wxapi.py --base-url "http://192.168.1.100:8000" --token "my-token" send "好友" "消息"
    
  2. 環境変数

    # 通用(macOS/Linux/Windows)
    export WXAPI_BASE_URL="http://192.168.1.100:8000"
    export WXAPI_TOKEN="my-token"
    
    # Windows PowerShell
    $env:WXAPI_BASE_URL = "http://192.168.1.100:8000"
    $env:WXAPI_TOKEN = "my-token"
    
  3. service_status.json - 自動検出(Windows へのローカルデプロイ時のみ利用可能)

  4. config.yaml - サービスディレクトリ内の設定ファイル(Windows へのローカルデプロイ時のみ利用可能)

  5. デフォルト値 - http://localhost:8000、token は token

サービスディレクトリの検索順(Windows のみ)
  1. WXAPI_SERVICE_DIR 環境変数で指定されたパス
  2. ~/.wxautox/service_status.json に記録された service_dir
  3. ../wxauto-restful-api(skill ディレクトリを基準とした相対パス)
  4. ~/wxauto-restful-api

サービスの起動(Windows のみ)

macOS / Linux ユーザーはこのセクションを実行する必要はありません。リモートサービスのアドレスをそのまま使用してください。

前提条件:

  1. wxautox4 をインストールします:

    pip install wxautox4
    

    Windows システムと Python 3.9–3.12 64 ビットが必要です

  2. wxautox4 をアクティベートします:

    wxautox4 -a your-activation-code
    

    アクティベーションコードの取得先:https://docs.wxauto.org/plus

  3. API サービスをデプロイして起動します:

    # 进入服务目录
    cd C:\path\to\wxauto-restful-api
    # 启动服务
    python run.py
    

    または、バックグラウンドで起動します:

    Start-Process python -ArgumentList "run.py" -WorkingDirectory "C:\path\to\wxauto-restful-api" -WindowStyle Hidden
    

スクリプトのパス

スクリプトの呼び出しには、skill ディレクトリのルートからの相対パスを使用します:

python scripts/wxapi.py send "好友" "消息"

ヘルプを表示:

python scripts/wxapi.py --help

利用可能なコマンド

初期化と状態
# 初始化微信实例
python scripts/wxapi.py init

# 获取服务状态
python scripts/wxapi.py status

# 检查是否在线
python scripts/wxapi.py online

# 获取我的信息
python scripts/wxapi.py myinfo
メッセージの送信
# 主窗口发送
python scripts/wxapi.py send "好友名" "消息内容"

# 精确匹配
python scripts/wxapi.py send "好友名" "消息内容" --exact

# @群成员
python scripts/wxapi.py send "群名" "开会了" --at "张三,李四"

# 子窗口发送
python scripts/wxapi.py send-chat "好友名" "消息内容"
メッセージの読み取り
# 获取聊天记录(主窗口)
python scripts/wxapi.py getmsg "好友名"

# 获取聊天记录(子窗口)
python scripts/wxapi.py getmsg-chat "好友名"

# 获取历史消息
python scripts/wxapi.py history "好友名" --count 100

# 获取新消息(主窗口轮询)
python scripts/wxapi.py newmsg

# 获取新消息(子窗口)
python scripts/wxapi.py newmsg-chat "好友名"
監視の管理
# 添加监听(打开子窗口)
python scripts/wxapi.py listen "好友名"
セッション管理
# 获取会话列表
python scripts/wxapi.py session

# 获取所有子窗口
python scripts/wxapi.py windows

# 切换聊天窗口
python scripts/wxapi.py chatwith "好友名" --exact
リストの取得
# 好友列表
python scripts/wxapi.py friends

# 群聊列表
python scripts/wxapi.py groups
ページの制御
# 切换到聊天页面
python scripts/wxapi.py switch-chat

# 切换到联系人页面
python scripts/wxapi.py switch-contact
ヘルプの表示
python scripts/wxapi.py --help

API インターフェース一覧

wxauto-restful-api サービスに基づきます:

WeChat 機能インターフェース
インターフェース説明
POST /v1/wechat/initializeWeChat インスタンスを初期化
GET /v1/wechat/statusWeChat の状態を取得
POST /v1/wechat/sendメッセージを送信
POST /v1/wechat/sendfileファイルを送信
POST /v1/wechat/sendurlcardURL カードを送信
POST /v1/wechat/getallmessage現在のウィンドウのメッセージを取得
POST /v1/wechat/gethistorymessage履歴メッセージを取得
POST /v1/wechat/getnextnewmessage新しいメッセージを取得
POST /v1/wechat/getsessionセッション一覧を取得
POST /v1/wechat/getsubwindow指定したサブウィンドウを取得
POST /v1/wechat/getallsubwindowすべてのサブウィンドウを取得
POST /v1/wechat/chatwithチャットウィンドウを切り替え
POST /v1/wechat/getfriends友だち一覧を取得
POST /v1/wechat/getmyinfo自分の情報を取得
POST /v1/wechat/getrecentgroupsグループチャット一覧を取得
POST /v1/wechat/switch/chatチャットページに切り替え
POST /v1/wechat/switch/contact連絡先ページに切り替え
POST /v1/wechat/isonlineオンライン状態を確認
チャットインターフェース(サブウィンドウ)
インターフェース説明
POST /v1/chat/sendサブウィンドウからメッセージを送信
POST /v1/chat/getallmessageサブウィンドウのすべてのメッセージを取得
POST /v1/chat/getnewmessageサブウィンドウの新しいメッセージを取得
POST /v1/chat/msg/quote引用メッセージを送信
POST /v1/chat/closeサブウィンドウを閉じる

API の直接呼び出し(代替方法)

HTTP API を直接呼び出す場合は、Python を使用してください(中国語の文字コードの問題があるため、PowerShell は使用しないでください):

import requests

headers = {"Authorization": "Bearer token", "Content-Type": "application/json"}
body = {"who": "好友名", "msg": "消息内容"}
resp = requests.post("http://localhost:8000/v1/wechat/send", headers=headers, json=body)
print(resp.json())

レスポンス形式

すべての API は、統一された形式で応答します:

{
  "success": true,
  "message": "操作成功",
  "data": { ... }
}

サービスが実行されていない場合の対処

Windows 以外のデバイス

ローカルでサービスを起動できません。そのままエラーを報告せず、質問ツールを使ってユーザーに尋ねてください:

質問内容:「現在のデバイス(macOS/Linux)では wxautox4 サービスを実行できません。Windows デバイスで実行中のリモートサービスの情報を提供してください」

ユーザーに必要な情報:

  1. サービスアドレス(例:http://192.168.1.100:8000)
  2. Bearer Token(サーバー側の config.yaml にある auth.token の値。デフォルトは token)

取得後、接続を確認し、成功したらユーザーが当初依頼した操作を続行します。


Windows デバイス

コマンドの実行時に wxauto-restful-api サービスが稼働していないことが判明すると、wxapi.py は次の順序で自動復旧を試みます:

  1. ~/.wxautox/service_status.json の service_dir を確認し、プロジェクトのパスを特定します
  2. デフォルトのパスを検索します(上記の検索順を参照)
  3. プロジェクトディレクトリが見つかったら、サービスを自動的に起動します

上記の方法でプロジェクトディレクトリを特定できない場合は、そのままエラーを報告せず、質問ツールを使ってユーザーに尋ねてください:

質問内容:「wxauto-restful-api サービスが実行されていません。対処方法を選択してください」

選択肢:

  1. ローカルサービスを自動デプロイして起動 - GitHub からプロジェクトをクローンし、依存関係をインストールしてサービスを起動します(起動後、パスは service_status.json に自動記録されます)
  2. ローカルサービスのみ起動 - サービスディレクトリが存在する場合に起動します(ユーザーによるパスの指定が必要です)
  3. リモートサービスに接続 - 別の Windows デバイスで実行中のサービスに接続します。サービスアドレスと Token が必要です
  4. スキップ - ユーザーが自分で対処します

ユーザーが「ローカルサービスを自動デプロイして起動」を選択した場合、次の手順を実行します:

# 1. 克隆项目到用户目录
cd ~
git clone https://github.com/cluic/wxauto-restful-api.git

# 2. 创建虚拟环境
cd wxauto-restful-api
python -m venv .venv

# 3. 激活虚拟环境并安装依赖
.venv\Scripts\activate
pip install -r requirements.txt

# 4. 后台启动服务
python run.py

起動後、サービスが正常に実行されていることを確認し(ヘルスチェックインターフェースを確認)、ユーザーが当初依頼した操作を続行します。

注意事項

  1. WeChat クライアントは、サービスを実行する Windows デバイス上で起動した状態にしておく必要があります
  2. wxautox4 を使用するにはアクティベートが必要です(Windows 側のみ)
  3. PowerShell から API を直接呼び出さないでください(中国語の文字コードの問題があります)。Python スクリプトを使用してください
  4. サーバー側の config.yaml にある auth.token を変更して、セキュリティを強化してください
  5. macOS / Linux ユーザー:ローカルへのインストール手順はすべてスキップし、リモートサービスのアドレスと Token を指定するだけで、すべての機能を使用できます

コメント