@foxden-app/foxclaw 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,259 +1,297 @@
1
- 中文 | [English](./README_EN.md)
2
-
3
- # FoxClaw
4
-
5
- FoxClaw Foxden agents 的本地执行爪。
6
-
7
- 它运行在你自己的电脑上,让受信任的 Telegram 或微信聊天可以控制本机 Codex 环境。你不需要公网服务器:FoxClaw 通过本地 `codex app-server` 与 Codex 通信,把审批留在你的电脑上,并把工作会话发送回手机。
8
-
9
- ## 从这里开始
10
-
11
- - 已经有 Codex、OpenClaw、QwenPaw、Hermes、OpenCode 或 Kimi CLI 这类能操作 shell 的 agent?优先使用 [Agent 辅助安装](./docs/agent-assisted-install.md),这是推荐路径。
12
- - 不熟悉 Node、Telegram 机器人或 Codex CLI?使用 [新手安装指南](./docs/install-for-beginners.md)。
13
- - 已经熟悉 Git、Node 和 `.env` 文件?可以直接使用下面的快速设置。
14
- - 遇到问题?查看 [故障排查](./docs/troubleshooting.md)。
15
-
16
- 如果你希望做到这些,FoxClaw 会很适合:
17
-
18
- - 在手机上使用 Codex,同时不把自己的电脑暴露到公网
19
- - 将代码、shell 访问、认证、审批和运行数据都保留在自己的机器上
20
- - 让一个受信任的 Telegram 用户作为远程操作者
21
-
22
- 最小安装只需要一个 Telegram bot token、你的 Telegram 数字用户 ID、Node.js 24,以及一份已经登录的 `codex` CLI。首次安装通常需要 10-20 分钟。
23
-
24
- 30 秒产品示例:FoxClaw 运行后,向你的 Telegram 机器人发送 `List files in DEFAULT_CWD`。FoxClaw 会让本地 Codex 检查你电脑上的那个目录,并把答案发回 Telegram。
25
-
26
- ## 环境要求
27
-
28
- - macOS 或 Linux,并且有可用的 `codex` CLI
29
- - 主机上的 Codex 已完成认证
30
- - Node.js 24+
31
- - 来自 `@BotFather` 的 Telegram bot token
32
- - 你的 Telegram 数字用户 ID
33
-
34
- ## npm 快速设置
35
-
36
- ```bash
37
- npm install -g @foxden-app/foxclaw
38
- foxclaw init
39
- $EDITOR ~/.foxclaw/.env
40
- foxclaw doctor
41
- foxclaw start
42
- ```
43
-
44
- pnpm 用户可以使用:
45
-
46
- ```bash
47
- pnpm add -g @foxden-app/foxclaw
48
- foxclaw init
49
- $EDITOR ~/.foxclaw/.env
50
- foxclaw doctor
51
- foxclaw start
52
- ```
53
-
54
- 运行 `doctor` 或 `start` 前先编辑 `.env`。私聊模式的最小配置:
55
-
56
- ```dotenv
57
- TG_BOT_TOKEN=123456:telegram-token
58
- TG_ALLOWED_USER_ID=123456789
59
- DEFAULT_CWD=/absolute/path/to/workspace
60
- DEFAULT_APPROVAL_POLICY=on-request
61
- DEFAULT_SANDBOX_MODE=workspace-write
62
- ```
63
-
64
- 默认配置文件是 `~/.foxclaw/.env`。如果你想把配置放在别处,可以设置 `FOXCLAW_ENV=/path/to/.env`。
65
-
66
- `foxclaw start` 会运行检查并安装或重启后台服务;这个命令是幂等的,升级后可以再执行一次。
67
-
68
- FoxClaw 只接受来自 `TG_ALLOWED_USER_ID` 的消息。把机器人放进群组并不会让每个群成员都能使用它。
69
-
70
- <details>
71
- <summary>FoxClaw 运行后可以做什么</summary>
72
-
73
- - 允许一个 Telegram 用户通过私聊、群组和话题控制
74
- - 可选的微信/iLink 通道,复用同一套桥接核心
75
- - 使用 `/threads`、`/open`、`/new`、`/where` 和 `/interrupt` 进行稳定的聊天到线程绑定
76
- - 从手机控制线程生命周期:重命名、归档、取消归档、fork、回滚、compact、review 和 diff
77
- - 面向单个聊天的设置面板:模型、reasoning effort、Fast service tier、access preset、Agent/Plan 模式和 active-turn 行为
78
- - Codex 账户控制:`/account`、`/quota`、`/login_device`、`/login_cancel`、`/auth add <name>`,以及带保护的 `/logout confirm`
79
- - 当某个认证触发用量限制时,在本地 `auth.json_*` 候选之间自动切换 Codex 认证
80
- - 针对命令、文件变更和细粒度权限审批的内联按钮
81
- - 针对工具在 turn 中提出的结构化问题显示 MCP elicitation 卡片
82
- - Skills、MCP、hooks、plugins、apps、feature flags、config、requirements 和 provider diagnostics
83
- - 使用 SQLite 持久化绑定、offset、审批、待处理输入提示和审计日志
84
- - 单实例进程锁,避免同一个 bot token 上出现重复 Telegram polling
85
-
86
- </details>
87
-
88
- ## 服务与调试
89
-
90
- 推荐使用:
91
-
92
- ```bash
93
- foxclaw start
94
- ```
95
-
96
- 它会在 Linux 上安装或重启用户级 systemd 服务,在 macOS 上安装或重载 launchd。需要查看服务状态时:
97
-
98
- ```bash
99
- systemctl --user status foxclaw.service
100
- journalctl --user -u foxclaw.service -f
101
- ```
102
-
103
- 前台调试时可以直接运行:
104
-
105
- ```bash
106
- foxclaw serve
107
- ```
108
-
109
- 默认运行时文件存储在 `~/.foxclaw`:
110
-
111
- - store:`~/.foxclaw/data/bridge.sqlite`
112
- - bridge log:`~/.foxclaw/logs/service.log`
113
- - status:`~/.foxclaw/runtime/status.json`
114
- - app-server state:`~/.foxclaw/runtime/codex-app-server.json`
115
- - app-server log:`~/.foxclaw/logs/codex-app-server.log`
116
-
117
- 可以用 `STORE_PATH`、`LOCK_PATH`、`CODEX_APP_SERVER_STATE_PATH` `CODEX_APP_SERVER_LOG_PATH` 覆盖 store、lock app-server 路径。
118
-
119
- ## telegram-codex-app-bridge 迁移
120
-
121
- FoxClaw 最初 fork 自 `Gan-Xing/telegram-codex-app-bridge`,并继续以 MIT License 分发。
122
-
123
- 升级已有本地安装时:
124
-
125
- ```bash
126
- systemctl --user disable --now telegram-codex-app-bridge.service 2>/dev/null || true
127
- test -e ~/.foxclaw || cp -a ~/.telegram-codex-app-bridge ~/.foxclaw
128
- foxclaw start
129
- ```
130
-
131
- 如果使用 launchd 安装,先卸载旧 plist(如存在):
132
-
133
- ```bash
134
- launchctl unload ~/Library/LaunchAgents/com.ganxing.telegram-codex-app-bridge.plist 2>/dev/null || true
135
- foxclaw start
136
- ```
137
-
138
- 旧运行时目录不会被自动读取。如果你想保留现有绑定、缓存线程列表、审批和状态数据,请手动复制一次。
139
-
140
- ## Telegram 设置
141
-
142
- 1. 使用 `@BotFather` 创建机器人,并把 token 填入 `TG_BOT_TOKEN`。
143
- 2. 获取你的 Telegram 数字用户 ID,并填入 `TG_ALLOWED_USER_ID`。
144
- 3. 使用 `foxclaw start` 启动 FoxClaw。
145
- 4. 打开与机器人的私聊并发送 `/help`。
146
-
147
- 可选的群组/话题配置:
148
-
149
- ```dotenv
150
- TG_ALLOWED_CHAT_ID=-1001234567890
151
- TG_ALLOWED_TOPIC_ID=42
152
- ```
153
-
154
- - 留空 `TG_ALLOWED_CHAT_ID` 表示使用私聊模式。
155
- - 只设置 `TG_ALLOWED_CHAT_ID` 时,允许一个群组作为默认会话范围。
156
- - 同时设置 `TG_ALLOWED_CHAT_ID` 和 `TG_ALLOWED_TOPIC_ID` 时,绑定一个话题作为默认范围。
157
- - 即使配置了群组,`TG_ALLOWED_USER_ID` 仍然可以继续使用私聊。
158
-
159
- 查找群组和话题 ID:
160
-
161
- 1. 停止 FoxClaw。
162
- 2. 在目标群组或话题中发送一条消息。
163
- 3. 打开 `https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates`。
164
- 4. 读取 `message.chat.id` 作为 `TG_ALLOWED_CHAT_ID`。
165
- 5. 读取 `message.message_thread_id` 作为 `TG_ALLOWED_TOPIC_ID`。
166
-
167
- 如果 FoxClaw 还在运行,它可能会在你检查前消费掉该 update。
168
-
169
- ## Telegram 群组检查清单
170
-
171
- 对于群组或超级群里的自然语言消息:
172
-
173
- 1. 将机器人加入目标群组。
174
- 2. 在 `@BotFather` 中禁用机器人的 `privacy mode`。
175
- 3. 将机器人提升为该群管理员。
176
- 4. 如果是在加入群组后才修改隐私模式,请移除并重新加入机器人。
177
-
178
- 即使 privacy mode 阻止普通消息,`/status@botname` 这样的显式命令也可能正常工作,所以请用一条普通消息验证群组设置。
179
-
180
- ## Codex App-Server 生命周期
181
-
182
- 默认配置:
183
-
184
- ```dotenv
185
- CODEX_APP_AUTOLAUNCH=true
186
- CODEX_APP_LAUNCH_CMD=codex app
187
- CODEX_APP_SERVER_STATE_PATH=
188
- CODEX_APP_SERVER_LOG_PATH=
189
- CODEX_APP_SYNC_ON_OPEN=true
190
- CODEX_APP_SYNC_ON_TURN_COMPLETE=false
191
- ```
192
-
193
- FoxClaw 会把 `codex app-server` 启动为一个由 bridge 管理的 detached 进程,并记录它的 pid 和端口。重启时,如果记录的 app-server 进程仍然存活,FoxClaw 会重新连接;否则会启动一个新进程。`/auth_reload` 和认证切换会重启托管的 app-server,从而重新加载当前 `auth.json`。
194
-
195
- 正常安装不需要固定的 Codex app-server 端口。
196
-
197
- ## 命令
198
-
199
- - `/help`
200
- - `/setup` 打开统一偏好设置面板
201
- - `/fast <on|off|toggle>`
202
- - `/active <steer|queue>`
203
- - `/status`、`/account`、`/quota`
204
- - `/quota_nudge <credits|usage_limit> confirm`
205
- - `/login_device`、`/login_cancel [id]`、`/logout confirm`
206
- - `/auth [list|use <n>|enable <n>|disable <n>|reload|add <name>]`
207
- - `/threads [query]`、`/threads archived`、`/open <n>`
208
- - `/goal [objective|pause|resume|done|budget <tokens|off>|clear confirm]`
209
- - `/history [limit]`、`/files <query>`、`/remote`
210
- - `/new [cwd]`
211
- - `/steer <message>`、`/takeover <message>`、`/queue <message>`
212
- - `/review [base <branch>|commit <sha>|custom <instructions>]`
213
- - `/diff`、`/fork [name]`、`/undo [n]`、`/rollback [n]`
214
- - `/rename <name>`、`/compact`、`/archive`、`/unarchive <n>`
215
- - `/skills [query]`、`/skill <name>`、`/skill_enable <name>`、`/skill_disable <name>`
216
- - `/loaded`、`/hooks`、`/plugins [query]`、`/apps [reload]`、`/features`、`/config`、`/requirements`、`/provider`
217
- - `/mcp`、`/mcp_reload`、`/mcp_login <server>`、`/mcp_resource <server> <uri>`
218
- - `/models`、`/model`、`/effort`、`/permissions`、`/access`、`/mode`、`/plan` `/agent`
219
- - `/reveal`、`/where`、`/interrupt`
220
-
221
- 普通文本会发送到当前线程;如果当前没有绑定线程,则创建一个新线程。
222
-
223
- ## 微信/iLink
224
-
225
- 微信支持是可选的,默认关闭:
226
-
227
- ```dotenv
228
- WX_ENABLED=true
229
- WX_ALLOWED_ILINK_USER_IDS=
230
- ```
231
-
232
- 构建后运行一次二维码登录助手:
233
-
234
- ```bash
235
- foxclaw weixin-login
236
- ```
237
-
238
- 微信运行时文件默认存储在 `~/.foxclaw/weixin`。
239
-
240
- ## Codex Skill
241
-
242
- 本仓库内置一个 Codex skill:[`skills/foxclaw`](./skills/foxclaw)。当你想让 Codex 在本机或另一台 Mac 上通过 SSH bootstrap FoxClaw、写入 `.env`、构建、运行 doctor、安装 launchd,并指导首次消息验证时,可以使用它。
243
-
244
- ## 故障排查
245
-
246
- `doctor` 失败、Telegram 没有回复、服务日志、重启行为和迁移问题,请查看 [故障排查](./docs/troubleshooting.md)。
247
-
248
- ## 运维命令
249
-
250
- ```bash
251
- foxclaw doctor
252
- foxclaw status
253
- foxclaw start
254
- foxclaw uninstall-systemd
255
- ```
256
-
257
- ## 贡献
258
-
259
- 欢迎在 `https://github.com/foxden-app/foxclaw` 提交 issue 和 PR。
1
+ 中文 | [English](./README_EN.md)
2
+
3
+ # 🦊 FoxClaw · 狸爪
4
+
5
+ **一个更适配编程需求的移动端 AI 编码助手。**
6
+
7
+ FoxClaw(狸爪)让你通过 Telegram 或微信远程操控本机的 Codex,实现手机端的 AI 编程。你可以离开办公桌去吃饭、在跑步机上、在陪小孩逛公园——你的 Codex 依然在正常工作,并随时向你汇报进展。
8
+
9
+ 不需要公网服务器。FoxClaw 跑在你自己电脑上,在本地和 `codex app-server` 通信,审批在你电脑上完成,结果推送回手机。
10
+
11
+ ## 为什么是 FoxClaw
12
+
13
+ **为什么选 Codex 作为底层引擎?**
14
+
15
+ 1. **开源且接口完整** — Codex 是 OpenAI 开源的 CLI agent,提供了 `codex app-server`,暴露了完整的 JSON-RPC 接口,可以被外部程序精确控制。
16
+ 2. **GPT 模型体验领先** — Codex 使用 GPT 系列模型(包括 o3/o4-mini 等),在实际编码体验上表现优秀。
17
+ 3. **多账号额度切换** — 支持多个 OpenAI 账号的免费额度(Plus 试用、Team 试用、多账号免费额度等)自动轮换。5 小时用量限制一到,自动切换下一个账号继续工作,不用手动操作。
18
+
19
+ **适合这些场景:**
20
+
21
+ - 🍜 离开办公桌去吃饭,Codex 继续编码,有审批需求时手机上点一下
22
+ - 🚶 通勤路上、旅途中,不用打开电脑也能下发编码任务、查看进展
23
+ - 🏃 在跑步机上、陪小孩逛公园,随时监控编码进程、做调试审批
24
+ - 🔒 代码、shell、认证、审批、运行数据全部留在本机,不暴露到公网
25
+ - 👤 只允许一个受信任的 Telegram 用户远程操作
26
+
27
+ ## 从这里开始
28
+
29
+ - 手头有 Codex、OpenClaw、QwenPaw、Hermes、OpenCode、Kimi CLI 之类能跑 shell 的 agent?推荐走 [Agent 辅助安装](./docs/agent-assisted-install.md)。
30
+ - Node、Telegram 机器人、Codex CLI 不太熟?看 [新手安装指南](./docs/install-for-beginners.md)。
31
+ - Git、Node、`.env` 都玩得转?直接往下看快速设置。
32
+ - 卡住了?看 [故障排查](./docs/troubleshooting.md)。
33
+
34
+ 最低要求:一个 Telegram bot token、你的 Telegram 数字用户 ID、Node.js 24、一份已登录的 `codex` CLI。首次安装大约 10–20 分钟。
35
+
36
+ **30 秒体验**:启动 FoxClaw 后,给你的 Telegram 机器人发一句 `List files in DEFAULT_CWD`。Codex 会在本地检查那个目录,然后把结果发回 Telegram。
37
+
38
+ ## 环境要求
39
+
40
+ - macOS 或 Linux,`codex` CLI 可用
41
+ - Codex 已完成登录认证
42
+ - Node.js 24+
43
+ - 一个 `@BotFather` 创建的 Telegram bot token
44
+ - 你的 Telegram 数字用户 ID
45
+
46
+ ## 快速设置
47
+
48
+ ```bash
49
+ npm install -g @foxden-app/foxclaw
50
+ foxclaw init
51
+ $EDITOR ~/.foxclaw/.env
52
+ foxclaw doctor
53
+ foxclaw start
54
+ ```
55
+
56
+ pnpm 用户:
57
+
58
+ ```bash
59
+ pnpm add -g @foxden-app/foxclaw
60
+ foxclaw init
61
+ $EDITOR ~/.foxclaw/.env
62
+ foxclaw doctor
63
+ foxclaw start
64
+ ```
65
+
66
+ `doctor` 或 `start` 之前先把 `.env` 填好。私聊模式最小配置:
67
+
68
+ ```dotenv
69
+ TG_BOT_TOKEN=123456:telegram-token
70
+ TG_ALLOWED_USER_ID=123456789
71
+ DEFAULT_CWD=/absolute/path/to/workspace
72
+ DEFAULT_APPROVAL_POLICY=on-request
73
+ DEFAULT_SANDBOX_MODE=workspace-write
74
+ ```
75
+
76
+ 配置文件默认在 `~/.foxclaw/.env`。想放别处的话设 `FOXCLAW_ENV=/path/to/.env`。
77
+
78
+ `foxclaw start` 会自动检查环境并安装/重启后台服务,幂等操作,升级后再跑一次就行。
79
+
80
+ FoxClaw 只响应 `TG_ALLOWED_USER_ID` 的消息——把机器人拉进群不代表群里所有人都能用。
81
+
82
+ <details>
83
+ <summary>FoxClaw 能做什么</summary>
84
+
85
+ **核心能力:**
86
+ - 通过 Telegram 私聊、群组、话题控制本地 Codex
87
+ - 可选微信/iLink 通道,复用同一套桥接核心
88
+ - 手机上完整管理 Codex 线程生命周期:创建、重命名、归档、fork、回滚、compact、review、diff
89
+ - 命令、文件变更、细粒度权限审批的内联按钮——手机上一键审批
90
+ - MCP elicitation 卡片——工具在 turn 中提出结构化问题时展示
91
+
92
+ **多账号管理:**
93
+ - Codex 账户管理:`/account`、`/quota`、`/login_device`、`/auth add <name>`
94
+ - 触发用量限制时自动在本地 `auth.json_*` 之间切换认证——5 小时限制到了自动换号
95
+ - `/auth` 面板查看、启用、禁用、切换候选账号
96
+
97
+ **线程与会话:**
98
+ - `/threads`、`/open`、`/new`、`/where`、`/interrupt`——稳定的聊天-线程绑定
99
+ - 每个聊天独立的设置面板:模型、reasoning effort、Fast tier、access preset、Agent/Plan 模式
100
+ - Skills、MCP、hooks、plugins、apps、feature flags、config、requirements、provider diagnostics
101
+
102
+ **可靠性:**
103
+ - SQLite 持久化:绑定、offset、审批、待处理提示、审计日志
104
+ - 单实例进程锁,防止同一 bot token 重复 polling
105
+
106
+ </details>
107
+
108
+ ## 多账号切换
109
+
110
+ FoxClaw 的一大特色是自动多账号切换。当一个账号的 5 小时用量限制触发时,FoxClaw 会自动切换到下一个可用账号继续工作。
111
+
112
+ 设置方式:
113
+
114
+ 1. Codex 的 auth 目录(通常是 `~/.codex/`)中放置多个认证文件,命名为 `auth.json_personal`、`auth.json_team` 等。
115
+ 2. `/auth add <name>` 通过 Telegram 直接添加新账号。
116
+ 3. 用 `/auth` 查看所有候选账号状态。
117
+ 4. `/auth enable <n>` / `/auth disable <n>` 控制哪些账号参与自动轮换。
118
+
119
+ Codex 报告用量限制错误时,FoxClaw 会自动:
120
+ - 切换到下一个未失败的候选账号
121
+ - 重启 app-server 加载新认证
122
+ - 用新账号重试刚才失败的请求
123
+
124
+ ## 服务与调试
125
+
126
+ 推荐方式:
127
+
128
+ ```bash
129
+ foxclaw start
130
+ ```
131
+
132
+ Linux 上会安装/重启用户级 systemd 服务,macOS 上安装/重载 launchd。查看状态:
133
+
134
+ ```bash
135
+ systemctl --user status foxclaw.service
136
+ journalctl --user -u foxclaw.service -f
137
+ ```
138
+
139
+ 需要前台调试时:
140
+
141
+ ```bash
142
+ foxclaw serve
143
+ ```
144
+
145
+ 运行时文件默认在 `~/.foxclaw`:
146
+
147
+ | 用途 | 路径 |
148
+ |------|------|
149
+ | 数据库 | `~/.foxclaw/data/bridge.sqlite` |
150
+ | Bridge 日志 | `~/.foxclaw/logs/service.log` |
151
+ | 状态 | `~/.foxclaw/runtime/status.json` |
152
+ | App-server 状态 | `~/.foxclaw/runtime/codex-app-server.json` |
153
+ | App-server 日志 | `~/.foxclaw/logs/codex-app-server.log` |
154
+
155
+ 可通过 `STORE_PATH`、`LOCK_PATH`、`CODEX_APP_SERVER_STATE_PATH`、`CODEX_APP_SERVER_LOG_PATH` 覆盖。
156
+
157
+ ## 从 telegram-codex-app-bridge 迁移
158
+
159
+ FoxClaw 最初 fork 自 `Gan-Xing/telegram-codex-app-bridge`,继续以 MIT License 分发。
160
+
161
+ 升级已有安装:
162
+
163
+ ```bash
164
+ systemctl --user disable --now telegram-codex-app-bridge.service 2>/dev/null || true
165
+ test -e ~/.foxclaw || cp -a ~/.telegram-codex-app-bridge ~/.foxclaw
166
+ foxclaw start
167
+ ```
168
+
169
+ macOS launchd 用户先卸载旧 plist:
170
+
171
+ ```bash
172
+ launchctl unload ~/Library/LaunchAgents/com.ganxing.telegram-codex-app-bridge.plist 2>/dev/null || true
173
+ foxclaw start
174
+ ```
175
+
176
+ 旧目录不会被自动读取。如果要保留已有的绑定、线程缓存、审批和状态数据,手动复制一次即可。
177
+
178
+ ## Telegram 设置
179
+
180
+ 1. `@BotFather` 创建机器人,token 填入 `TG_BOT_TOKEN`。
181
+ 2. 拿到你的 Telegram 数字用户 ID,填入 `TG_ALLOWED_USER_ID`。
182
+ 3. `foxclaw start` 启动。
183
+ 4. 打开和机器人的私聊,发 `/help`。
184
+
185
+ 可选——群组/话题配置:
186
+
187
+ ```dotenv
188
+ TG_ALLOWED_CHAT_ID=-1001234567890
189
+ TG_ALLOWED_TOPIC_ID=42
190
+ ```
191
+
192
+ - `TG_ALLOWED_CHAT_ID` 留空 → 纯私聊模式。
193
+ - 只填 `TG_ALLOWED_CHAT_ID` 允许一个群组作为默认会话范围。
194
+ - 两个都填 → 绑定到某个话题。
195
+ - 配了群组后,`TG_ALLOWED_USER_ID` 的私聊依然可用。
196
+
197
+ **怎么找群组和话题 ID:**
198
+
199
+ 1. 先停掉 FoxClaw。
200
+ 2. 在目标群组/话题里发一条消息。
201
+ 3. 浏览器打开 `https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates`。
202
+ 4. `message.chat.id` → 填 `TG_ALLOWED_CHAT_ID`。
203
+ 5. `message.message_thread_id` → 填 `TG_ALLOWED_TOPIC_ID`。
204
+
205
+ > 如果 FoxClaw 还在跑,它可能会先把这条 update 消费掉,所以要先停。
206
+
207
+ ## Telegram 群组检查清单
208
+
209
+ 要让机器人在群组/超级群里收到普通消息:
210
+
211
+ 1. 把机器人加进目标群组。
212
+ 2. `@BotFather` 里关掉 `privacy mode`。
213
+ 3. 把机器人设为群管理员。
214
+ 4. 如果是加群之后才改的隐私模式,把机器人踢出去再重新加。
215
+
216
+ > 注意:即使 privacy mode 挡住了普通消息,`/status@botname` 这种显式命令可能还是能用的。所以验证群组设置时,请用一条普通文本消息测试。
217
+
218
+ ## Codex App-Server 生命周期
219
+
220
+ 默认配置:
221
+
222
+ ```dotenv
223
+ CODEX_APP_AUTOLAUNCH=true
224
+ CODEX_APP_LAUNCH_CMD=codex app
225
+ CODEX_APP_SERVER_STATE_PATH=
226
+ CODEX_APP_SERVER_LOG_PATH=
227
+ CODEX_APP_SYNC_ON_OPEN=true
228
+ CODEX_APP_SYNC_ON_TURN_COMPLETE=false
229
+ ```
230
+
231
+ FoxClaw 会把 `codex app-server` 作为 detached 子进程启动,记录其 pid 和端口。重启时如果进程还活着就直接重连,否则拉起新进程。`/auth_reload` 和认证切换会重启 app-server 以重新加载 `auth.json`。
232
+
233
+ 一般不需要手动固定 app-server 端口。
234
+
235
+ ## 命令
236
+
237
+ - `/help`
238
+ - `/setup` — 统一设置面板
239
+ - `/fast <on|off|toggle>`
240
+ - `/active <steer|queue>`
241
+ - `/status`、`/account`、`/quota`
242
+ - `/quota_nudge <credits|usage_limit> confirm`
243
+ - `/login_device`、`/login_cancel [id]`、`/logout confirm`
244
+ - `/auth [list|use <n>|enable <n>|disable <n>|reload|add <name>]`
245
+ - `/threads [query]`、`/threads archived`、`/open <n>`
246
+ - `/goal [objective|pause|resume|done|budget <tokens|off>|clear confirm]`
247
+ - `/history [limit]`、`/files <query>`、`/remote`
248
+ - `/new [cwd]`
249
+ - `/steer <message>`、`/takeover <message>`、`/queue <message>`
250
+ - `/review [base <branch>|commit <sha>|custom <instructions>]`
251
+ - `/diff`、`/fork [name]`、`/undo [n]`、`/rollback [n]`
252
+ - `/rename <name>`、`/compact`、`/archive`、`/unarchive <n>`
253
+ - `/skills [query]`、`/skill <name>`、`/skill_enable <name>`、`/skill_disable <name>`
254
+ - `/loaded`、`/hooks`、`/plugins [query]`、`/apps [reload]`、`/features`、`/config`、`/requirements`、`/provider`
255
+ - `/mcp`、`/mcp_reload`、`/mcp_login <server>`、`/mcp_resource <server> <uri>`
256
+ - `/models`、`/model`、`/effort`、`/permissions`、`/access`、`/mode`、`/plan`、`/agent`
257
+ - `/reveal`、`/where`、`/interrupt`
258
+
259
+ 直接发文本会送到当前线程;没有绑定线程时自动创建新线程。
260
+
261
+ ## 微信/iLink
262
+
263
+ 微信支持默认关闭,需要手动开启:
264
+
265
+ ```dotenv
266
+ WX_ENABLED=true
267
+ WX_ALLOWED_ILINK_USER_IDS=
268
+ ```
269
+
270
+ 构建完成后跑一次二维码登录:
271
+
272
+ ```bash
273
+ foxclaw weixin-login
274
+ ```
275
+
276
+ 微信运行时文件在 `~/.foxclaw/weixin`。
277
+
278
+ ## Codex Skill
279
+
280
+ 仓库自带一个 Codex skill:[`skills/foxclaw`](./skills/foxclaw)。用它可以让 Codex 通过 SSH 在本机或远程 Mac 上 bootstrap FoxClaw——写 `.env`、构建、跑 doctor、装 launchd、引导首次消息验证,一条龙。
281
+
282
+ ## 故障排查
283
+
284
+ `doctor` 报错、Telegram 没回复、服务日志看不懂、重启行为异常、迁移出问题——都看 [故障排查](./docs/troubleshooting.md)。
285
+
286
+ ## 运维命令
287
+
288
+ ```bash
289
+ foxclaw doctor
290
+ foxclaw status
291
+ foxclaw start
292
+ foxclaw uninstall-systemd
293
+ ```
294
+
295
+ ## 贡献
296
+
297
+ 欢迎到 [GitHub](https://github.com/foxden-app/foxclaw) 提 issue 和 PR。