字节笔记本
2026年6月8日
OpenCode 的 YOLO 模式:官方还在讨论,社区已经跑起来了
用了 OpenCode 一段时间,每次 bash 操作都要手动确认,想做 YOLO 模式却发现官方还没有。翻了一圈 issue,现状很有意思:官方一堆 PR 停在提案阶段没合并,社区插件 opencode-yolo 反而先落地了。
官方状态:一堆 PR,没有合并
去 OpenCode 的 issue 区搜 YOLO,能找到好几个相关讨论。最早的是 2025 年 8 月就有人提了类似 Claude Code Shift+Tab 切换的快捷键需求,之后陆续有人提 --dangerously-skip-permissions flag、环境变量方案。最近的一个 issue 描述最详细,计划在 permission/next.ts 里自动审批所有 ask 规则,同时保留显式 deny 规则不动。
但截至目前,这些都还是 issue 状态,没有稳定可用的官方实现。
社区插件:opencode-yolo
真正可以用的是一个社区插件 @frankhommers/opencode-yolo。安装方式很简单,在 opencode.json 里加一行:
{
"plugin": ["@frankhommers/opencode-yolo"]
}全局配置放 ~/.config/opencode/opencode.json,项目级别放 .opencode/opencode.json。启动 OpenCode 会自动安装。
然后在 ~/.config/opencode/commands/yolo.md 创建一个 slash command:
---
name: yolo
description: Toggle or inspect YOLO mode (on/off/aggressive/status)
subtask: false
arguments:
- name: action
description: "One of: on, off, aggressive, status, start"
required: false
---这样就能在会话里用 /yolo on、/yolo off、/yolo status 切换了。
三种模式
- off:插件不干预,完全被动
- on:检测到 AI 发出的问句或"我接下来会..."之类的过渡语时,自动回复"直接执行,不要问"
- aggressive:在 on 的基础上,对所有不符合已知模式的消息也发一条推进提示
触发逻辑是文本匹配,支持英文和荷兰文(作者是荷兰人)。中文用户实际上落在 aggressive 模式覆盖的范围里,因为大部分中文询问句不会命中英文模式,aggressive 会对所有未命中消息都推一下。
状态存在项目根目录的 .yolo.json 里,建议加进 .gitignore。
两种设计哲学的差异
Claude Code 的 --dangerously-skip-permissions 是在权限层拦截点直接返回 allow,tool 压根不需要等待用户输入。OpenCode 这个插件的思路完全不同,它是在对话层面做的:检测到 AI 发出询问,立刻自动发一条用户消息回去推它继续。
前者是静默的,后者是主动的。前者对 AI 是透明的,后者会在 transcript 里留下一堆自动回复记录。某种程度上说,后者更像是一个"自动按 Enter"的脚本,而不是真正的权限豁免。
对于 context window 有限的长任务来说,这些自动回复可能会积累一定 token 消耗,这是用 Claude Code 的 YOLO 模式不会遇到的开销。
什么时候值得开
短平快的任务,对结果不那么敏感,或者在隔离环境里跑,开 on 模式合理。aggressive 模式适合明确知道任务范围、希望 AI 自主跑完整个流程、不想中途被问的场景。复杂的多步骤改动,还是老老实实开 ask,至少保留可审查点。
官方的真正 YOLO 支持估计早晚会来,但现在社区方案能用就够了。