Skip to content

工具授权

AI 要执行命令、写文件之前需要你授权。这一页管理已经保存下来的授权规则,入口在「设置 → 工具授权」。

规则是怎么产生的

对话中 AI 请求调用工具时会弹出授权弹窗,你有两个选择:

  • 始终允许:在当前项目记住一条允许规则,以后符合规则的调用自动放行。规则是精准匹配的(比如 git pullrm temp.log)。如果命令里含管道、重定向、命令替换,无法被记住,只能单次放行。
  • 拒绝:只拒绝这一次,不产生规则。

另外系统有一份内置白名单:少量完全无害、只读、不派生子进程的命令(lspwdcatgreppstopgit status 等)不弹窗直接放行。

页面结构

规则分「当前项目」和「全局」两组,点标题可折叠。

每条规则显示判定图标(对勾是允许,叉是禁止)、工具名、匹配范围与判定,例如 git pull · 允许整个工具 · 允许

  • 项目规则右侧有个地球图标,可以把这条规则提升为全局,对所有项目生效;提升后它从本项目列表消失。
  • 规则行左滑露出红色删除按钮。

关于「禁止」规则

授权弹窗里没有「禁止」这个选项(拒绝只影响单次),所以正常使用不会产生禁止规则。

禁止规则目前只能手动编辑配置文件产生:项目规则写在 <项目根>/.aicode/permissions.json,全局规则写在 ~/.aicode/permissions.json。手工编辑保存后 App 会在几秒内自动检测并刷新页面,规则立即生效。

配置文件格式:

json
{
  "permissions": {
    "allow": ["Bash(git pull)", "writeFile"],
    "deny": ["Bash(rm -rf /)"]
  }
}

全局禁止优先于项目允许

deny 里的规则会挡掉同名的 allow 规则。比如全局禁止了 Bash(rm -rf /),那么任何项目都不能放行这条命令。想给自己上一道保险,就往全局 deny 里加规则。

基于 GPL-3.0 协议开源