本文记录一次在 Windows 上把 Telegram Bot 接入本机 Codex 的完整流程。可以发给 AI 让它按步骤协助配置。
一、目标效果
最终链路如下:
text
Telegram Bot -> cc-connect 本机进程 -> Codex CLI -> 本地项目目录
你可以在 Telegram 里给 bot 发消息,让它调用本机 Codex 读取、分析、修改项目文件。
注意:cc-connect 是跑在本机的桥接程序。电脑关机、睡眠、断网,或者 cc-connect 进程没运行时,Telegram bot 都不会处理消息。
二、准备条件
需要提前准备:
- Windows 电脑
- Node.js / npm
- Codex CLI 已安装并可在本机运行
- Telegram Bot Token
- 一个本地项目目录,例如:
text
D:\your-project
Telegram Bot Token 通过 @BotFather 创建 bot 获取。不要把 token 发到公开渠道。
三、安装 cc-connect
Windows 上建议使用 npm.cmd,避免 PowerShell 执行策略拦截 .ps1:
powershell
npm.cmd install -g cc-connect
检查安装:
powershell
cc-connect.cmd --version
如果 PowerShell 报 .ps1 禁止执行,不要先改系统策略,优先改用 .cmd 或直接调用实际 exe。
四、创建配置文件
默认配置文件路径:
text
C:\Users\<你的用户名>\.cc-connect\config.toml
最小配置示例:
toml
language = "zh"
[log]
level = "info"
[[projects]]
name = "my-project"
admin_from = "你的Telegram数字ID"
[projects.agent]
type = "codex"
[projects.agent.options]
work_dir = "D:/your-project"
mode = "suggest"
[[projects.platforms]]
type = "telegram"
[projects.platforms.options]
token = "你的Telegram Bot Token"
allow_from = "你的Telegram数字ID"
首次不知道 Telegram 数字 ID 时,可以临时写:
toml
admin_from = "*"
allow_from = "*"
跑通后立刻改成自己的数字 ID。昵称、用户名都不等于数字 ID。
五、获取 Telegram 数字 ID
启动 bot 后,在 Telegram 里给 bot 发:
text
/whoami
或者看 cc-connect 日志中的 session/user 信息。拿到数字 ID 后,把配置改成:
toml
admin_from = "123456789"
allow_from = "123456789"
这样可以避免其他人控制你的本地 Codex。
六、Windows 上最常见的 Codex 坑
1. PowerShell 执行策略拦截
现象:
text
npm.ps1 无法加载
cc-connect.ps1 无法加载
解决:
powershell
npm.cmd install -g cc-connect
cc-connect.cmd --version
或者直接运行 npm 全局目录里的 cc-connect.exe。
2. Telegram 客户端能连,不代表 Bot API 能连
Telegram App 可能走客户端内置代理,但 cc-connect 访问的是:
text
https://api.telegram.org
诊断:
powershell
curl.exe -I https://api.telegram.org
如果这里不通,需要让命令行进程也能走代理或 VPN。
3. Codex 被 WindowsApps 别名劫持
Windows 上可能出现:
text
fork/exec C:\Program Files\WindowsApps\...\codex.exe: Access is denied.
原因:cc-connect 固定调用 codex,但 Windows 命令查找先命中了 WindowsApps 里的 App Alias,该路径对普通进程不可直接 fork/exec。
诊断:
powershell
where.exe codex
Get-Command codex -All
如果 where.exe codex 先看到 C:\Program Files\WindowsApps\...,就容易出问题。
可行解决方案:
- 找到真实 Codex CLI 路径,例如:
text
C:\Users\<用户名>\AppData\Local\OpenAI\Codex\bin\codex.exe
- 复制一份真实
codex.exe到一个普通目录,例如:
text
C:\cc-connect-bin\codex.exe
- 启动
cc-connect前,把这个目录放到PATH最前面。
启动脚本示例:
bat
@echo off
setlocal
set "PATH=C:\cc-connect-bin;%PATH%"
set "CC_CONNECT_EXE=%APPDATA%\npm\node_modules\cc-connect\bin\cc-connect.exe"
set "CC_CONNECT_CONFIG=%USERPROFILE%\.cc-connect\config.toml"
"%CC_CONNECT_EXE%" --config "%CC_CONNECT_CONFIG%" --force
然后用:
powershell
where.exe codex
确认第一项是:
text
C:\cc-connect-bin\codex.exe
4. 不要盲目配置 cli_path
不同版本的 cc-connect 对 Codex 配置字段支持不完全一致。某些稳定版可能不支持 cli_path,即使写了也会被忽略。
如果你遇到 cli_path 不生效,优先用 PATH 方案解决 Codex 查找问题。
七、启动 cc-connect
建议写一个 .bat 启动脚本:
bat
@echo off
setlocal
set "PATH=C:\cc-connect-bin;%PATH%"
set "CC_CONNECT_EXE=%APPDATA%\npm\node_modules\cc-connect\bin\cc-connect.exe"
set "CC_CONNECT_CONFIG=%USERPROFILE%\.cc-connect\config.toml"
"%CC_CONNECT_EXE%" --config "%CC_CONNECT_CONFIG%" --force
双击脚本即可启动。
检查进程:
powershell
Get-Process cc-connect
停止:
powershell
Stop-Process -Name cc-connect
八、验证是否真正跑通
日志里看到以下内容,才算 Telegram 和 cc-connect 连接成功:
text
telegram: connected
platform ready
telegram: registered bot commands
给 Telegram bot 发一条普通消息后,看到以下内容,才算 Codex 跑通:
text
message received
session spawned
turn complete
如果只看到 telegram: connected,只能说明 bot 连接了,不代表 Codex 已经能启动。
九、Telegram 常用命令
新开一个会话:
text
/new
查看状态:
text
/status
获取自己的 Telegram 数字 ID:
text
/whoami
查看会话:
text
/sessions
十、建议让 AI 帮你跑通时这样发提示词
可以把下面这段发给你的 AI:
text
请帮我在 Windows 上配置 cc-connect,把 Telegram Bot 接入本机 Codex CLI。
要求:
1. 用 npm.cmd 安装 cc-connect,避免 PowerShell .ps1 执行策略问题。
2. 配置文件写到 %USERPROFILE%\.cc-connect\config.toml。
3. Telegram token 用我提供的 token,但不要在输出中复述。
4. 项目目录是:<替换为你的项目目录>。
5. 优先使用 Codex agent,mode 先用 suggest。
6. 启动后检查日志是否出现 telegram: connected、platform ready。
7. 如果 Codex 报 WindowsApps Access denied,请检查 where.exe codex 和 Get-Command codex -All。
8. 如 WindowsApps 抢占 codex,请把真实 codex.exe 复制到普通目录,并用启动脚本把该目录放到 PATH 最前。
9. 跑通后让我发送 /whoami,再把 allow_from 和 admin_from 锁定为我的 Telegram 数字 ID。
10. 每一步都要验证,不要只看安装成功就判断跑通。
十一、最终避坑清单
- 不要公开 Telegram Bot Token。
- 不要长期使用
allow_from = "*"。 - Windows 上优先用
npm.cmd。 - 不要把 Telegram 客户端能连等同于 Bot API 能连。
telegram: connected只代表平台连上,不代表 Codex 能执行。- 遇到
WindowsApps Access denied,优先查where.exe codex。 cc-connect是本机服务,电脑关机后 bot 不会工作。- 修改项目文件只会发生在配置的
work_dir下,建议先用suggest或auto-edit,不要一开始就用高权限模式。