QClaw WeChatクライアント(TypeScript リバースエンジニアリング)

Library

概要

QClaw は Tencent が配布する Electron デスクトップアプリで、OpenClaw AI Gateway サービスをラップして動作します。本リポジトリ qclaw-wechat-client は、QClaw.app 内のリソース(app.asar)から抽出された実装をもとに、WeChat OAuth2(QRコード)ログインと jprx と呼ばれる独自ゲートウェイプロトコルを扱う TypeScript クライアントを単体モジュールとして再実装したものです。主に認証フローの追従、サーバーとのプロトコル通信実装、サンプルコード提供を目的としており、OpenClaw 系サービスと連携するツールや研究用途に適しています。リバースエンジニアリングに基づく実装のため、利用時は利用規約や法的リスクに注意が必要です。

GitHub

リポジトリの統計情報

  • スター数: 29
  • フォーク数: 6
  • ウォッチャー数: 29
  • コミット数: 5
  • ファイル数: 10
  • メインの言語: TypeScript

主な特徴

  • QClaw の WeChat Access API を逆解析して実装した TypeScript モジュール
  • WeChat OAuth2 の QRコード認証フローを扱うための処理を含む
  • Tencent の内部ゲートウェイプロトコル(jprx)を単体で実装
  • examples ディレクトリで利用例を提示し、統合の参考になる

技術的なポイント

このライブラリの技術的な核は「jprx と WeChat OAuth2 QR コードのプロトコル実装」にあります。QClaw(Electron アプリ)が内部的に行っている認証・通信手順を抽出し、Node/TypeScript 環境で再現できるように設計されています。具体的には、QR コードを用いた OAuth2 ログインフローの開始、QR スキャン後のトークン取得、そして取得した認証情報を用いた jprx ゲートウェイへの接続確立という一連の流れをライブラリ側で担います。jprx は独自のメッセージラップやエンコーディングを持つ可能性があり、そのデータシリアライズ/デシリアライズ、メッセージ識別、接続維持(ハートビートや再接続ロジック等)が実装上の注目点です。

TypeScript で書かれているため型定義があり、既存の Node.js プロジェクトや TypeScript ベースのアプリケーションに容易に組み込めます。examples フォルダには利用例が含まれており、認証からメッセージ送受信までの基本的な使い方を参照できます。リバースエンジニアリングに基づくため、Tencent側の仕様変更で壊れるリスクがあり、商用利用や大規模運用前には安定性と法的側面の確認が必要です。ライブラリ自体はプロトコル実装に集中しているため、UI やブラウザ上での QR 表示・スキャン処理などは呼び出し元で実装する設計が想定されます。

プロジェクトの構成

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

  • .gitignore: file
  • README.md: file
  • README.zh-CN.md: file
  • examples: dir
  • package.json: file

…他 5 ファイル

まとめ

QClaw の内部プロトコルを TypeScript で再現した実用的かつ調査向けのライブラリです(利用は注意)。

リポジトリ情報:

READMEの抜粋:

qclaw-wechat-client

中文文档

Reverse-engineered TypeScript client for QClaw’s WeChat Access API.

QClaw (管家 OpenClaw) is a Tencent Electron desktop app that wraps an OpenClaw AI Gateway service. It authenticates exclusively through WeChat OAuth2 QR-code login and communicates with Tencent backend servers via a jprx gateway protocol. This library implements that protocol as a standalone TypeScript module.

Origin

Extracted from QClaw.app -> Contents/Resources/app.asar