不再卡在“等待审批”:解决 Claude Code、Codex 和 OpenCode 的权限提示(无需完全开启 YOLO)

一套实用方法,帮你判断卡住的原因是真正的审批、配置没有生效,还是界面或连接问题,以及如何让会话安全地继续运行。

基于版本
CLI
0.2.17
预览 ref
a2c45c8

用 Claude Code、Codex 或 OpenCode 时,真正浪费时间的往往不是崩溃。

而是这样:

你启动了一个会话,它正在运行,你走开了……回来时却看到类似这样的提示:

  • “waiting for approval”(等待审批)
  • “needs permission”(需要权限)
  • “waiting for input”(等待输入)

如果你坐在终端前,这通常是 5 秒钟的决定。

但在手机上(或者你已经忘了它在做什么时),很容易出现两种情况:

  • 批准了你本不想批准的东西,或者
  • 一个小时什么都没做,因为你根本没注意到

这篇指南讲的是中间路线:

让会话持续推进,又不把审批变成“完全 YOLO”。

要点

  1. 先判断你面对的是哪种“审批”:
    • 真正的权限提示(预期之中)
    • 配置没有生效(很常见)
    • 界面或连接问题(也很常见)
  2. 如果你用的是 Codex,检查一下审批配置的层级和项目信任设置。
  3. 如果你在手机上,稳妥的做法是:在批准之前,用一个能在上下文中显示请求的界面打开会话。
  4. Happier 是可以帮上忙的选项之一:审批和权限请求会持久保存在收件箱(Inbox)中,点击通知会直接跳转到正确的会话和服务器。

问题(用大白话说)

审批是一道安全边界。

痛点不在于“有审批”,而在于审批变得:

  • 看不见(你没注意到)
  • 不明确(你不确定自己在批准什么)
  • 不一致(你改了配置,它还是在问)

这三个问题在手机上会更严重。

常见做法及其取舍

  • 全部关掉(YOLO /“never ask”):快,但在你疲惫时很危险。
  • 守在终端前直到完成:安全,但失去了运行长会话的意义。
  • 在手机上 SSH:能用,但在小小的终端里审查审批内容非常吃力。

如果你希望审批明确、并且能在手机上审查,Happier 是一款开源应用,让你跨设备运行和编排 Claude Code、Codex、OpenCode 及其他代理。

如果你第一次接触 Happier(它是什么、在哪里获取)

Happier 是一款面向 Claude Code、Codex 和 OpenCode 等会话的开源配套应用(移动端 / 网页 / 桌面端)。

工作流是:让会话在你信任的机器上运行,用手机上的 Happier 在上下文中审查审批。

开始设置:

第 1 步:给“审批”分类

情况 A:真正的权限提示

这是健康的情况:会话想做一些有副作用的事情。

如果你用的是 Happier,权限模式就是专门用来控制被询问频率的:

  • 默认(Default)
  • 只读(Read-only)
  • 安全 YOLO(Safe YOLO)(自动允许读取,写入前询问)
  • YOLO(在提供商允许的范围内尽量跳过询问)

并非每个提供商都支持所有模式。Happier 会显示实际生效的策略。

情况 B:配置没有生效(Codex 是常见例子)

Codex 有一套真正的配置分层模型。

如果你改了设置却没有任何变化,常见原因是:

  • 你编辑了错误位置的配置文件
  • 该设置被更高优先级的层覆盖了
  • 项目不受信任,所以项目配置没有被加载
  • 组织策略在强制限制

在 Codex 的文档中,这体现为:

  • 用户配置位于 ~/.codex/config.toml
  • 项目级配置和“信任”控制
  • approval_policy 和 sandbox_mode 等配置项

一个明显的信号:如果你看到有人贴出写着“never ask”的配置却仍然被询问,那不是你的错觉。确实存在看起来一模一样的环境相关 bug。

情况 C:界面正常,但连接断了

有时会话在等待,你看到的却是过期的数据流。

如果机器休眠了,或者你切换了网络,可能会出现:

  • 会话被阻塞
  • 但你看不到提示

这种情况下,“修复”方法就是重新连接,并打开正确的会话。

第 2 步:选择与风险相匹配的工作流

一条实用规则:

  • 在批准有实际副作用的操作(写入、安装)之前,先确认:
    • 它在做什么
    • 在哪里做
    • 最近改了什么

这就是适合手机的界面之所以重要的原因。

Happier 的工作流(当你希望审批明确时)

Happier 把“需要你处理的事情”作为真实数据来对待:

  • 全局收件箱(Inbox)
  • 审批请求
  • 权限请求
  • 用户操作请求(例如“Exit Plan Mode”)

重要的是,它在你切换页面后依然存在,而不是一个你错过的弹窗。

在移动端,通知路由也很严格:

  • 直接跳转到正确的会话
  • 避免在未知服务器上自动批准

故障排查

我设置了 approval_policy = "never",它还是在问

把它当作以下情况之一:

  • 信任设置或配置层级不匹配
  • 与环境相关的客户端 bug

可以尝试:

  • 确认实际加载的是哪一层配置
  • 在不同环境(WSL / 虚拟机)中测试同一个会话
  • 更新工具(这类问题常常被悄悄修复)

我在手机上看不到提示

通常是因为:

  • 通知路由或服务器配置不匹配,或者
  • 你打开的不是真正出现提示的那个会话

用一个统一的“待处理清单”(收件箱),而不是逐个查看多个会话。

相关指南

mobilepermissionsapprovalsclaudecodexopencodetroubleshooting
最后更新: 2026-10-26