ilink-hub 0.4.0

iLink-compatible multiplexer hub for WeChat ClawBot — route one WeChat account to multiple AI agent backends
Documentation
# 常见问题 FAQ

## 基本问题

### Q: 这个工具能做什么?

让你用**一个微信账号**同时连接多个 AI 工具(Claude Code、Recursive、OpenClaw 等),并在微信里随时切换。无需改 AI 工具的代码,只需修改服务器地址。

### Q: 我需要懂编程才能用吗?

不一定。有两种使用方式:

- **桌面应用**[下载地址]/guide/installation#desktop):双击安装,图形界面,不需要终端
- **命令行版本**:需要会打开终端、执行基础命令

如果只是想在微信里和 Claude 聊天,推荐先用桌面版。

### Q: 使用前需要准备什么?

需要在微信中开启 **ClawBot(龙虾插件)**。**无需申请审核**,更新微信到最新版,进入「我 → 设置 → 插件」找到 ClawBot 开启即可。

ClawBot 是微信官方内置功能,2026 年 3 月上线,目前灰度推送中,部分用户可能暂时看不到插件入口。

### Q: 支持群聊消息吗?

取决于微信 iLink API 本身的能力。iLink Hub 会透明转发所有消息类型,只要原始 iLink API 支持的,Hub 都会转发。

### Q: 有图形界面版本吗?

有。提供 macOS、Windows、Linux 的桌面应用,见[桌面应用安装说明](/guide/installation#desktop)。

### Q: 开源协议是什么?可以商用吗?

MIT 协议,免费商用。详见 [LICENSE](https://github.com/jeffkit/ilink-hub/blob/main/LICENSE)。

---

## 安装与启动

### Q: macOS 提示「无法验证开发者」,无法打开

这是 macOS Gatekeeper 的安全限制。有两种解决方式:

**桌面版**:右键点击应用 → 「打开」,然后在弹出对话框里点「打开」。

**命令行版**:在终端运行:
```bash
xattr -rd com.apple.quarantine /usr/local/bin/ilink-hub
```

### Q: Linux 运行报错「glibc version not found」

当前预编译二进制要求 glibc 2.17+(CentOS 7+、Ubuntu 16.04+)。如果你的系统版本更老:
- 推荐使用 Docker 方式(不依赖宿主 glibc)
- 或从源码编译

### Q: 启动后无法访问 8765 端口

1. 检查防火墙/安全组是否开放 8765 端口
2. 确认监听地址是 `0.0.0.0:8765`(而不是 `127.0.0.1:8765`)——后者只允许本机访问
3. 验证 Hub 是否正常运行:`curl http://localhost:8765/health`

---

## 登录问题

### Q: 二维码扫了没有反应

- 确认用的是**已开通 iLink 的微信账号**,普通账号无法授权
- 二维码有效期约 2 分钟,超时后重新运行命令
- 扫码后手机上应该会弹出授权确认页,点确认才算完成

### Q: 二维码不显示或显示乱码

终端不支持 Unicode 块字符。解决方式:
- macOS 推荐使用 iTerm2 或系统自带的「终端」应用
- Windows 推荐使用 Windows Terminal
- Docker 场景下用 `docker compose logs -f` 查看容器日志

### Q: 登录成功但 Hub 启动后提示「upstream connection failed」

可能原因:
1. Token 已过期 → 再次运行 `ilink-hub serve` 完成扫码,或执行 `ilink-hub login`
2. 网络不通 → 确认服务器可以访问 `ilinkai.weixin.qq.com`
3. 数据库路径不一致 → 确认 `DATABASE_URL` 指向同一个数据库文件

---

## 客户端问题

### Q: 客户端显示在线但收不到消息

1. 在微信发送 `/list` 确认该客户端是否为当前活跃路由
2. 如果不是,发送 `/use <客户端名称>` 切换
3. 检查客户端日志是否有连接错误

### Q: 多个客户端同时在线,消息为什么只发给一个?

这是设计行为。Hub 同一时间只有一个「活跃客户端」接收消息,用微信命令 `/use <名称>` 切换。如需同时发给所有客户端,用 `/broadcast <消息内容>`。如果只想临时给某个后端发一条消息而不切换当前后端,可用 `@<名称> <消息>`(会在该后端上新建一个临时会话,详见[微信命令](/reference/commands))。

### Q: 消息到了但回复失败(sendmessage 报错)

通常是 `context_token` 过期(微信的会话令牌有时间限制)。这是正常现象,用户重新发消息后 Hub 会自动生成新的映射。

### Q: bridge 一直在线但微信发文字没反应 {#bridge-no-msg}

> bridge(原 `ilink-hub-bridge`)已拆到独立项目 [im-agentproc]https://github.com/jeffkit/im-agentproc> 下列排查思路通用,具体命令以 im-agentproc 文档为准。

1. 确认已对该后端执行 `/use <注册时用的名称>`,且 `/list` 里该客户端为**在线**
2. 查看 bridge 终端:是否有报错、或超时日志
3. 先发纯文本测试(图片/语音等是否触发取决于 profile 配置)
4. Hub 地址和 Token 是否与注册时输出的一致(注意不要多空格)

### Q: 注册时提示「name already exists」

客户端名称已存在。要么换一个名称,要么先在 Web UI 或命令行删除旧客户端。

---

## 数据库

### Q: 数据库文件在哪里?

由 `DATABASE_URL` 决定。未设置时默认使用 **`~/.ilink-hub/ilink-hub.db`**(SQLite)。Docker 部署示例中常为卷内的 **`/data/ilink-hub.db`**。

### Q: 可以从 SQLite 迁移到 PostgreSQL 吗?

目前需要重新登录和重新注册客户端(尚未提供数据迁移工具)。建议从一开始就选好数据库类型。

---

## 性能与稳定性

### Q: Hub 会因为消息队列满而崩溃吗?

不会。每个客户端的消息队列上限为 200 条,超出时最旧的消息会被丢弃(不影响新消息),服务不会崩溃。

### Q: Hub 重启后会丢失消息吗?

内存中尚未被客户端取走的消息会丢失,但客户端注册、路由设置、会话映射等状态已持久化到数据库,重启后无需重新配置。

### Q: 多个 Hub 实例可以同时运行吗?

目前不支持(多个实例都会抢占同一个真实 iLink 连接)。单实例已足够大多数使用场景。