Skip to content

Commit 8afadfe

Browse files
authored
feat: add wechat channel integration (#12)
* feat: add wechat channel integration * fix: improve wechat channel status controls * fix: improve wechat resume handling * fix lint
1 parent d6569e6 commit 8afadfe

14 files changed

Lines changed: 2186 additions & 53 deletions

channels/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,51 @@ Error: `claude CLI exit code 1`
255255

256256
---
257257

258+
## Weixin Channel
259+
260+
Experimental text-only Weixin channel backed by a Node sidecar bridge.
261+
262+
### Current MVP Scope
263+
264+
- Receive text messages and create tasks
265+
- Reply to task result messages to resume a saved session
266+
- Send task completion/failure text notifications back to the same peer
267+
- Start QR-code login automatically when there is no saved session
268+
- Reuse `/dir` and `/agent` command handling
269+
270+
### 1. Enable the Channel
271+
272+
```bash
273+
curl -X POST http://127.0.0.1:9712/api/channels/settings \
274+
-H 'Content-Type: application/json' \
275+
-d '{
276+
"weixin_enabled": "true",
277+
"weixin_default_working_dir": "/path/to/your/project",
278+
"weixin_base_url": "https://ilinkai.weixin.qq.com",
279+
"weixin_account_id": ""
280+
}'
281+
```
282+
283+
### 2. Start AgentForge
284+
285+
```bash
286+
uv run taskboard.py
287+
```
288+
289+
If enabled, AgentForge will attempt to launch the bridge process. On a first-time login it will emit a QR event and keep polling until you confirm on your phone:
290+
291+
```text
292+
[Weixin] Bridge started
293+
```
294+
295+
### Notes
296+
297+
- This is a text-only MVP.
298+
- The bridge implements the QR login flow and the documented `getupdates` / `sendmessage` HTTP protocol directly.
299+
- The first version is single-account oriented from the AgentForge side, even though the upstream Weixin plugin supports multiple accounts.
300+
301+
---
302+
258303
## Adding New Channels
259304

260305
Create a new file under `channels/` that imports and subclasses `Channel` from

0 commit comments

Comments
 (0)