ilink-hub 0.4.0

iLink-compatible multiplexer hub for WeChat ClawBot — route one WeChat account to multiple AI agent backends
Documentation
# 配置 AI 客户端

## 首次接入:终端二维码配对(推荐)

只需配置 Hub 地址,客户端首次启动会显示终端二维码,手机扫码确认即可获得 `vhub_` Token:

```bash
export WEIXIN_BASE_URL=http://127.0.0.1:8765
# 不设 WEIXIN_TOKEN — 走扫码配对
```

Rust 可复用 `ilink_hub::client::HubPairingClient`;或直接运行 `examples/wechatbot-echo` 体验完整流程。详见 [手机扫码配对](./pairing-tunnel.md)。

## 已有 Token 时

注册或配对完成后,将 Hub 地址和虚拟 Token 填入 AI 客户端。消息收发无需改代码,仅需替换连接信息。

::: tip 不确定你的 SDK 是否支持?
各 SDK 对 Hub 的兼容情况、以及我们为打通它们提交的上游 PR 进度,见 [SDK 兼容性与推进动态](./sdk-compatibility.md)。
:::

## 本地 CLI bridge(已独立为 im-agentproc)

原官方 `ilink-hub-bridge` 与上面客户端**协议相同**:虚拟 Token + `getupdates` / `sendmessage`,
但每收到一条**用户文本**就在本机 `spawn` YAML 里配置的命令,把 **stdout** 发回微信。

适合:把 **Claude Code、Codex、自写脚本** 接到微信,又不需要改 Hub 代码。

> **已拆分**:自 `0.4.0` 起,`ilink-hub-bridge` 拆到独立项目
> [jeffkit/im-agentproc]https://github.com/jeffkit/im-agentproc(crate `im-agentproc`> bin `im-agentproc`)。安装、profile 配置、示例 YAML 请到该仓库查阅。

与 Recursive / OpenClaw **可同时注册**:多占一个 `--name`,用微信 `/use` 在「大模型客户端」和「CLI bridge」之间切换。

## Recursive

::: code-group

```toml [配置文件 (~/.recursive/config.toml)]
[weixin]
base_url = "http://your-hub.example.com:8765"
token = "vhub_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

```bash [环境变量]
export WEIXIN_BASE_URL=http://your-hub.example.com:8765
export WEIXIN_TOKEN=vhub_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
recursive weixin
```

:::

## OpenClaw

```json
// ~/.openclaw/openclaw.json
{
  "channels": {
    "weixin": {
      "base_url": "http://your-hub.example.com:8765",
      "token": "vhub_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
  }
}
```

## 任何基于 `wechatbot` Rust SDK 的客户端

```rust
let bot = WeChatBot::new(BotOptions {
    base_url: Some("http://your-hub.example.com:8765".to_string()),
    token: "vhub_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".to_string(),
    ..Default::default()
});
```

## 通用方式(环境变量)

大多数兼容 iLink 协议的客户端都支持通过环境变量配置:

```bash
export WEIXIN_BASE_URL=http://your-hub.example.com:8765
export WEIXIN_TOKEN=vhub_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

## 用 wechatbot 快速验证(Echo 示例)

仓库自带一个最小测试客户端,使用 crates.io 上的 [`wechatbot`](https://crates.io/crates/wechatbot) SDK:

```bash
# 1. 注册客户端
ilink-hub register --name echo --label "echo test"

# 2. 运行示例(把 token 换成上一步输出)
cd examples/wechatbot-echo
export WEIXIN_BASE_URL=http://localhost:8765
export WEIXIN_TOKEN=vhub_xxxxxxxx
cargo run
```

微信发 `你好`,应收到 `Echo: 你好`。详见 [`examples/wechatbot-echo/README.md`](https://github.com/jeffkit/ilink-hub/tree/main/examples/wechatbot-echo)。

## 验证连接是否正常

启动客户端后,在微信中发送任意消息,观察客户端是否能正常接收和回复。

也可以在微信中发送 `/list` 查看哪些客户端在线:

```
已注册客户端:
  ● mac-home(Mac 本机)—— 在线
  ○ server-prod(生产服务器)—— 离线
```

## 常见问题

### 客户端显示「连接失败」或「认证错误」

1. 确认 Hub 服务正在运行(访问 `http://your-hub:8765/health` 应返回 `{"status":"ok"}`2. 确认虚拟 Token 正确(注意不要多空格或少字符)
3. 如果设置了 `ILINK_ADMIN_TOKEN`,注册时需要携带认证头,见 [配置参考]/reference/configuration

### 客户端能接收消息但发不出去

检查 Hub 日志,可能是 Token 映射问题。尝试重启 Hub 服务后再次测试。

### 多个客户端同时启动,消息只到一个

这是正常行为。iLink Hub 同一时间只将消息路由给**当前活跃客户端**。用微信命令 `/use <name>` 切换活跃后端,或使用 `/broadcast` 向所有在线后端广播。