wxauto について
wxauto は wxautox4 RESTful API を通じて WeChat を操作するスキルです。メッセージや連絡先の操作を自動化する用途向けで、コマンドラインスクリプトからローカルまたはリモートの Windows サービスに接続します。
主な機能
- 01メッセージ、ファイル、URL カードの送信
- 02現在および過去のメッセージ取得
- 03新着メッセージの監視とチャットウィンドウ管理
- 04友だちとグループの一覧取得
- 05サービスと WeChat のオンライン状態確認
- 06ローカルまたはリモート API サービスへの接続
活用シーン
- 01友だちやグループチャットへのメッセージ送信
- 02チャット履歴の取得と新着メッセージの監視
- 03連絡先、グループ、セッションの確認
- 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 を取得したら:
- 設定を環境変数に書き込むか、スクリプトの引数として直接渡します
- ヘルスチェックインターフェースにアクセスして接続を確認します:
GET /v1/wechat/status - 接続に失敗した場合は、ネットワークに到達できるか、サービスが起動しているか、token が正しいかを確認するようユーザーに伝えます
- 接続に成功したら、ユーザーの操作をそのまま実行します。ローカルへのインストール手順は不要です
Windows デバイス
まず、ローカルサービスが実行中か確認します(~/.wxautox/service_status.json を読み取り、ヘルスチェックを行います):
- ローカルサービスが実行中:自動的に接続します。ユーザー操作は不要です
- ローカルサービスが実行されていない:ユーザーに方法を選択してもらいます(下記「サービスが実行されていない場合の対処」を参照)
サービスの設定
- 認証:Bearer Token(
config.yamlのauth.tokenを参照。デフォルト値はtoken) - サービス状態ファイル:
~/.wxautox/service_status.json(サービス起動時に自動生成されます。Windows へのローカルデプロイ時のみ存在します)
設定の優先順位(高い順)
-
コマンドライン引数
python scripts/wxapi.py --base-url "http://192.168.1.100:8000" --token "my-token" send "好友" "消息" -
環境変数
# 通用(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" -
service_status.json - 自動検出(Windows へのローカルデプロイ時のみ利用可能)
-
config.yaml - サービスディレクトリ内の設定ファイル(Windows へのローカルデプロイ時のみ利用可能)
-
デフォルト値 -
http://localhost:8000、token はtoken
サービスディレクトリの検索順(Windows のみ)
WXAPI_SERVICE_DIR環境変数で指定されたパス~/.wxautox/service_status.jsonに記録されたservice_dir../wxauto-restful-api(skill ディレクトリを基準とした相対パス)~/wxauto-restful-api
サービスの起動(Windows のみ)
macOS / Linux ユーザーはこのセクションを実行する必要はありません。リモートサービスのアドレスをそのまま使用してください。
前提条件:
-
wxautox4 をインストールします:
pip install wxautox4Windows システムと Python 3.9–3.12 64 ビットが必要です
-
wxautox4 をアクティベートします:
wxautox4 -a your-activation-codeアクティベーションコードの取得先:https://docs.wxauto.org/plus
-
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/initialize | WeChat インスタンスを初期化 |
GET /v1/wechat/status | WeChat の状態を取得 |
POST /v1/wechat/send | メッセージを送信 |
POST /v1/wechat/sendfile | ファイルを送信 |
POST /v1/wechat/sendurlcard | URL カードを送信 |
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 デバイスで実行中のリモートサービスの情報を提供してください」
ユーザーに必要な情報:
- サービスアドレス(例:
http://192.168.1.100:8000) - Bearer Token(サーバー側の
config.yamlにあるauth.tokenの値。デフォルトはtoken)
取得後、接続を確認し、成功したらユーザーが当初依頼した操作を続行します。
Windows デバイス
コマンドの実行時に wxauto-restful-api サービスが稼働していないことが判明すると、wxapi.py は次の順序で自動復旧を試みます:
~/.wxautox/service_status.jsonのservice_dirを確認し、プロジェクトのパスを特定します- デフォルトのパスを検索します(上記の検索順を参照)
- プロジェクトディレクトリが見つかったら、サービスを自動的に起動します
上記の方法でプロジェクトディレクトリを特定できない場合は、そのままエラーを報告せず、質問ツールを使ってユーザーに尋ねてください:
質問内容:「wxauto-restful-api サービスが実行されていません。対処方法を選択してください」
選択肢:
- ローカルサービスを自動デプロイして起動 - GitHub からプロジェクトをクローンし、依存関係をインストールしてサービスを起動します(起動後、パスは
service_status.jsonに自動記録されます) - ローカルサービスのみ起動 - サービスディレクトリが存在する場合に起動します(ユーザーによるパスの指定が必要です)
- リモートサービスに接続 - 別の Windows デバイスで実行中のサービスに接続します。サービスアドレスと Token が必要です
- スキップ - ユーザーが自分で対処します
ユーザーが「ローカルサービスを自動デプロイして起動」を選択した場合、次の手順を実行します:
# 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
起動後、サービスが正常に実行されていることを確認し(ヘルスチェックインターフェースを確認)、ユーザーが当初依頼した操作を続行します。
注意事項
- WeChat クライアントは、サービスを実行する Windows デバイス上で起動した状態にしておく必要があります
- wxautox4 を使用するにはアクティベートが必要です(Windows 側のみ)
- PowerShell から API を直接呼び出さないでください(中国語の文字コードの問題があります)。Python スクリプトを使用してください
- サーバー側の
config.yamlにあるauth.tokenを変更して、セキュリティを強化してください - macOS / Linux ユーザー:ローカルへのインストール手順はすべてスキップし、リモートサービスのアドレスと Token を指定するだけで、すべての機能を使用できます