故障排查
检查安装
先运行 doctor:
- npx
- uvx
npx --yes wezterm-codex-status-line@0.1.2 doctor
uvx wezterm-codex-status-line doctor
OK 表示检查通过,MISSING 表示检查未通过。后者也可能表示配置内容无效。添加全局选项 --json 可查看详细结果:
npx --yes wezterm-codex-status-line@0.1.2 --json doctor
自定义安装目录需要继续传入相同的 --codex-home 或 --wezterm-module-dir。
找不到状态栏模块
出现 module 'codex_statusline' not found 时,检查安装目录是否存在 codex_statusline.lua,并在 WezTerm 配置中使用:
require("codex_statusline").setup()
默认目录为 ~/.config/wezterm。自定义目录需要位于 WezTerm 的模块搜索路径中。
如果缺少 codex_statusline_core 或其他子模块,运行完整更新:
npx --yes wezterm-codex-status-line@0.1.2 update
完成后重新加载 WezTerm 配置,再运行 doctor。
会话启动 hook 失败
出现 SessionStart hook (failed) 时:
- 运行
doctor,检查hooks和asset_integrity。 - 确认诊断输出中的
codex_home与当前 Codex 使用的目录一致。 - 运行
update,更新 hook 中的脚本路径。 - 启动新的 Codex 会话。
在其他终端中也出现该错误时,检查 hooks.json 是否仍指向已移动或删除的安装目录。
Codex 已运行,但没有状态栏
- 确认 WezTerm 配置调用了
setup(),并已重新加载配置。 - 设置
config.status_update_interval = 500,或保留已有的正数刷新间隔。 - 在 WezTerm 中启动新的 Codex 会话并发送一条消息。
- 运行
doctor,确认模块和 hook 检查通过。
仍未显示时,按收集调试信息开启日志。doctor 只检查文件,不能判断正在运行的窗格是否正常。
持续显示 waiting
状态栏还未找到当前窗格对应的会话记录。先发送一条消息,再检查:
- 会话启动 hook 是否报错。
$CODEX_HOME是否指向当前会话使用的目录。- Codex 是否运行在本地 WezTerm 窗格中。
- 同一工作目录是否存在多个活跃 Codex 会话。
恢复会话后,新映射可能稍后才出现。auto 模式无法确定对应会话时会保持等待,行为见会话与分屏。
持续显示 tokens: waiting
会话已关联,但还未收到 Token 用量。发送一条消息并等待 Codex 返回。仅打开会话选择器不会产生用量数据。
/model 切换后仍显示旧模型
启用终端标题桥,让状态栏在发送下一条消息之前读取新模型。仅依赖会话记录时,需要等待 Codex 将变化写入日志。
已启用标题桥的 Windows 用户运行 update --title-bridge,重新加载 WezTerm 配置,再启动或恢复 Codex 会话。标题应类似 codex | gpt-5.6-sol | high | app;旧的三段标题只能实时提供推理强度。
配置导入后没有变化
先确认已经用 configure --from <文件路径> 将下载的 JSON 导入本机,并重新加载 WezTerm 配置。
如果只在网页中点击“导入 JSON”,更改仅用于网页预览。另需检查 setup({...}) 是否设置了同名选项;Lua 中的值会覆盖 JSON。详见配置优先级。
JSON 配置无效
使用 --dry-run 检查文件:
npx --yes wezterm-codex-status-line@0.1.2 configure --from ./codex_statusline_config.json --dry-run
从网页导出完整配置后修改。常见错误包括缺少字段、未知键、颜色格式不为 #RRGGBB、字段重复或顺序列表为空。
图标显示方块或乱码
选择包含 Nerd Font 图标的 WezTerm 字体,或关闭 Powerline:
npx --yes wezterm-codex-status-line@0.1.2 configure --no-powerline
项目图标仍显示异常时,将 icon.text 改为 >_。修改后重新加载 WezTerm 配置。
出现重复状态栏
更新插件并重新加载 WezTerm 配置。确认多余窗格只显示状态栏后,可以手动关闭它。
状态栏右侧的版本号用于确认实际运行版本。仍有重复时,请附上布局和版本信息提交问题。
分屏后状态栏位置不对
先完成分屏,再启动 Codex,可以使状态栏与对应窗格对齐。已有状态栏上方再次分屏时,它可能横跨多个窗格,插件会保留现有布局。
手动关闭状态栏后,可以重新启动 Codex,或使用 codex-statusline-show 事件恢复。具体行为见会话与分屏。
Codex 退出后状态栏仍然存在
插件确认 Codex 退出后,默认等待两秒再关闭状态栏。如果子进程仍存活或无法确认进程状态,会保留状态栏。
运行 update 并重新加载 WezTerm 配置。若仍存在,检查是否修改了 bottom_pane.close_grace_seconds,并收集调试日志。
Codex 主窗格意外关闭
暂时移除 WezTerm 配置中的 setup() 调用并重新加载配置,再更新插件。提交问题时附上关闭发生前的操作和日志。
调整字体后显示异常
重新加载 WezTerm 配置。如果仍未恢复,运行 update 检查是否存在混用版本的文件。反馈时附上字体名称、字号和窗口大小。
下载附件失败
安装命令需要访问 github.com 和 release-assets.githubusercontent.com。遇到连接重置或超时时,检查终端的网络和代理配置。
npm 使用其代理设置;uv 使用 HTTP_PROXY、HTTPS_PROXY 等环境变量。能打开 GitHub 仓库页面并不一定表示可以下载附件。
收集调试信息
在 WezTerm 配置中启用日志:
require("codex_statusline").setup({ debug = true })
重新加载配置并复现问题。提交 Issue 时,提供:
- 操作系统、WezTerm、Codex CLI 和插件版本。
- 复现步骤及预期结果。
--json doctor的输出。CODEX_STATUSLINE_LOADED加载记录和问题发生时的日志。
日志可能包含用户名、目录、会话 ID 和本地命令,提交前请移除私人信息。排查完成后关闭 debug。