在微信或 Telegram 里直接连接你电脑上的 Codex / Claude
管理多会话、切换工作区,并接管已有原生会话
Better Call Codex 是一个个人电脑优先的聊天中枢。它把你电脑上的 codex / claude CLI 变成一个可通过微信或 Telegram 使用的远程编码助手。
它适合这些场景:
- 你已经在电脑上装好了
codex或claude - 你希望在手机上继续和本地 AI 协作
- 你希望一个项目里保留多个命名会话
- 你希望显式切换工作区、模型和原生会话,而不是依赖隐藏的 CLI 状态
一句话理解: 微信 / Telegram → 你的电脑 → Codex / Claude → 结果回到聊天窗口
✅ 微信 + Codex + 原生会话接管 ← 最成熟
🟡 Telegram + Codex ← 代码已完成,待真实 token 联调
🟡 Claude provider ← adapter 已实现,待生产验证
如果你现在只想快速跑起来,请直接按下面做。
- 已有可用的微信桥接账号
- 本机
codex可运行 - 本机有
node和pnpm
cd /Users/a-znk/code/harness
PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/pnpm install
cp .env.example .env如果你已经通过 OpenClaw 接好了微信,最简单的方法不是去想这个 token 是什么,而是直接读本机保存好的账号文件:
ls ~/.openclaw/openclaw-weixin/accounts
cat ~/.openclaw/openclaw-weixin/accounts/<你的账号文件名>.json你要找的是两个字段:
tokenbaseUrl
例如:
{
"token": "4740ec87ef67@im.bot:......",
"baseUrl": "https://ilinkai.weixin.qq.com"
}然后映射到 .env:
token→WECHAT_BOT_TOKENbaseUrl→WECHAT_BASE_URL
如果你不是通过 OpenClaw 接的微信桥,而是通过 wechat-agent-channel 初始化的,也可以直接读取:
cat ~/.wechat-agent-channel/wechat/account.json同样拿里面的:
tokenbaseUrl
HARNESS_ENABLE_WECHAT=true
HARNESS_LIVE_PROVIDERS=true
HARNESS_DEFAULT_PROVIDER=codex
WECHAT_BOT_TOKEN=<你的微信token>
WECHAT_BASE_URL=<你的微信桥地址>
WECHAT_SYNC_CURSOR_FILE=./data/wechat-sync-cursor.txt
CODEX_COMMAND=/Applications/Codex.app/Contents/Resources/codexcd /Users/a-znk/code/harness
PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/pnpm devcurl http://127.0.0.1:4318/health预期返回:
{ "ok": true }导入项目 /Users/a-znk/code/harness
状态
请帮我总结这个仓库是做什么的
如果你收到了真实 Codex 回复,说明部署成功。
- 微信真实接入(兼容 ClawBot / iLink)
- Codex 真实执行
- 一个工作区下支持多个会话
- 原生 Codex 会话发现、接管、切换
- 模型切换命令
- 聊天内导入 / 切换工作区
- 微信中文命令别名
- 微信和 Telegram allowlist
- 本地 HTTP 调试 API
- Telegram Bot API connector
- Claude provider adapter
- Telegram 真实 token 联调
- Claude 原生会话发现
- provider preset / 推理档位命令
- OpenClaw / 外部 transcript 导入
- 流式输出和 typing 状态
- allowlist 管理命令
Better Call Codex 把三件事明确分开,互不耦合:
Workspace -> 本地项目目录
Provider Session -> Codex / Claude 原生会话
Channel Binding -> 一个具体的微信 / Telegram 对话窗口
这意味着同一个微信会话可以同时做到:
- 选中工作区
harness - 保留一个当前 Codex 会话
- 保留一个当前 Claude 会话
- 在它们之间切换而不丢状态
- 把已有原生 Codex thread 接进来继续聊
|
最完整、最推荐。 适合:
|
代码已完成,待真实 token 联调。 最小配置: HARNESS_ENABLE_TELEGRAM=true
HARNESS_LIVE_PROVIDERS=true
HARNESS_DEFAULT_PROVIDER=codex
TELEGRAM_BOT_TOKEN=<your-token> |
状态与工作区
| 命令 | 微信别名 |
|---|---|
/status |
状态 |
/workspace list |
项目列表 |
/workspace use <slug> |
切换项目 <slug> |
/workspace import <path> |
导入项目 <path> |
Provider 与模型
| 命令 | 微信别名 |
|---|---|
/provider list |
无 |
/provider current |
无 |
/provider use codex |
切换模型 codex |
/provider use claude |
切换模型 claude |
/provider model current |
当前模型 |
/provider model use <model> |
切换具体模型 <model> |
/provider model clear |
无 |
Better Call Codex 会话
| 命令 | 微信别名 |
|---|---|
/session list |
会话列表 |
/session new [name] |
新建会话 [name] |
| `/session use <id | name |
| `/session archive <id | name |
/new [name] |
新任务 [name] |
| `/switch <id | name |
原生会话
| 命令 | 微信别名 |
|---|---|
| `/session attach <codex | claude> [name]` |
/session native list current |
当前目录会话 / 原生会话列表 |
/session native list all |
所有原生会话 |
| `/session native use [current | all] <index |
这是一个能控制你本机 coding agent 的系统,不要把它当成公开 bot 直接暴露。
微信:
WECHAT_ALLOW_FROM=<你的微信senderId>Telegram:
TELEGRAM_ALLOW_FROM=123456789
TELEGRAM_ALLOW_CHATS=-1001234567890如果这些 allowlist 为空,对应渠道就是开放的。
flowchart LR
subgraph Channels
A1["WeChat"]
A2["Telegram"]
end
subgraph Core
B["Channel Connector"]
C["HarnessRuntime"]
D["HarnessService"]
E["State Store"]
end
subgraph Providers
F1["Codex CLI"]
F2["Claude CLI"]
end
G["Native Session Catalog"]
H["HTTP Debug API"]
A1 & A2 --> B --> C --> D
D --> E
D --> F1 & F2
D --> G
H --> D
src/
├── app/ # 应用入口
├── auth/ # 鉴权 & allowlist
├── channels/ # WeChat / Telegram connector
├── core/ # 业务规则、命令、workspace/session 语义
├── domain/ # 领域模型
├── native/ # 原生会话发现
├── providers/ # Codex / Claude 执行适配
├── runtime/ # Connector 启动与 outbound 分发
├── storage/ # 文件和内存 state store
tests/ # 测试
docs/ # 部署文档
agent/ # 交接文档
优先用:
PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/pnpm dev按顺序检查:
HARNESS_ENABLE_WECHAT=trueHARNESS_LIVE_PROVIDERS=trueWECHAT_BOT_TOKEN正确WECHAT_BASE_URL正确WECHAT_ALLOW_FROM没把你自己挡住- 本机
codex本身可运行
这是 allowlist 在工作。
检查:
WECHAT_ALLOW_FROMTELEGRAM_ALLOW_FROMTELEGRAM_ALLOW_CHATS
优先用:
当前目录会话
因为它会:
- 按当前 workspace 过滤
- 优先显示精确 cwd
- 默认隐藏 subagent 噪音
PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/pnpm check
PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/pnpm build下一步最值得继续做的是:
- 用真实 Telegram token 做联调
- 增加 allowlist 管理命令
- 增加 provider preset / 推理档位抽象
- 增加 Claude 原生会话发现
- 增加 transcript 导入与迁移能力
- 增加 streaming / typing / 更好的交付体验
