跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

权限模式

CodeBuddy Code 的 default / acceptEdits / auto / dontAsk / plan / bypassPermissions / delegate 模式、切换方式,以及权限判定的先后顺序。

权限模式决定 CodeBuddy 在编辑文件、运行命令、访问网络或调用高风险工具前,是自动继续、询问还是直接拒绝。注意模式只是权限系统的一层:每次工具调用先后经过 hooks 和交互型工具的特殊处理、deny 规则、可信 allow 规则、命令安全检查(仅交互式)、ask 规则、bypassPermissions 短路、不可信 allow 规则、当前模式的基线策略、非交互兜底与 auto/dontAsk 的最终收口。所以 deny 永远比模式更强;auto 只接管「最后仍然会 ask 的动作」;dontAsk 不是更宽松,而是「不弹框,直接拒绝未预批准动作」;bypassPermissions 也不是绝对放行,前面的 deny/ask 规则与危险命令检查仍可能拦住它。

模式不询问就能做的事适用场景
default信任目录内的 Read默认;敏感工作 / 上手期
acceptEdits信任目录内的 Read 与 Edit 系列边写边用 git diff 复核
auto原本会 ask 的动作交给分类器判定 allow/deny想减少打断但保留安全边界
dontAsk仅已预批准的动作;其余直接拒绝非交互自动化 / 固定白名单
plan委托给进入 plan 前的模式;额外允许写入会话计划文件动手前先摸清代码
bypassPermissions跳过绝大多数审批仅用于沙箱容器、VM、离线 dev container
delegate仅协调类工具(Agent、TaskCreate、SendMessage 等)主代理只拆分派发,执行交给子代理

切换:会话中按 Shift+Tab 循环:default → bypassPermissions → acceptEdits → auto(可用时)→ plan → delegate;dontAsk 不在循环里,只能通过命令行、settings 或 SDK/IDE 控制信号进入。启动时 codebuddy --permission-mode <mode>;非交互也可用,如 codebuddy -p --permission-mode dontAsk "…";-y / --dangerously-skip-permissions 等价于 --permission-mode bypassPermissions。持久化默认值写在 ~/.codebuddy/settings.json 或项目 settings 的 permissions.defaultMode。IDE 集成还有 fullAccess、work 等程序化模式,不在循环里。完整的规则求值顺序见官方「权限规则」。