Build from source
You need Rust 1.93.1 with a C compiler, Node 24.22.1+ and pnpm 9.15.4. CI builds on Linux, macOS and Windows.
git clone https://github.com/thisnick/agent-wechat && cd agent-wechatpnpm install --frozen-lockfilepnpm native:build # Rust workspace, including the wx binarypnpm native:testpnpm build # TypeScript packages, OpenClaw plugin and these docsThe binary is packages/native-client-rust/target/debug/wx. To build the Docker image:
pnpm build:image # tags agent-wechat-native:localRelease builds, CI and the publishing process are described in deploy/native/README.md. Contributor rules are in AGENTS.md.
Included features
Normal builds include the call API, native call worker, Opus codec and local microphone/speaker adapters. Local development, CI and release builds use the same default feature set; no feature-selection flags are needed.
cargo build --manifest-path packages/native-client-rust/Cargo.toml -p wx-nativeThe executable is packages/native-client-rust/target/debug/wx. Install the
selected OS’s audio development libraries when building from source. A headless
daemon does not open local audio devices. Account permissions and native
transmission admission still determine which calls are available.
Try the browser client
-
Start the local simulator and connected browser client:
Terminal window pnpm client:devIt prints a local browser URL and the location of its synthetic data.
-
Open the URL, add an account, then use Simulate scan and Simulate phone approval. Chats open automatically after approval.
-
Open Simulator controls in a conversation to receive a message, send from the simulated phone, or try a rejected or unconfirmed send.
-
Receive an image to see standard quality load automatically. Download original keeps the full image on the agent-wechat hub; once available, Save original saves it to your device. Opening a chat clears its unread badge after history loads. New messages stay in view when you are at the bottom. Scroll up to load older messages automatically without losing your place, then select Latest messages to return. Load older messages also lets you retry a failed page.
-
Attach, paste or drop files into the composer. File types are detected automatically. Review or remove the staged files, then select Send to send your text and each file as separate messages. Unsent files stay with their account and chat while the client is open.