第13章 终端命令
第13章 Terminal commands
v0 可以在你的项目沙箱中运行 bash 命令,用于测试、调试以及调用平台 CLI。你可以通过三种权限模式(Ask、Auto、Full)来控制它的自主程度。v0 能在项目沙箱内运行 bash 命令,测试交互、查看仓库、运行单元测试,以及调用 Vercel、GitHub 等平台 CLI。默认权限模式为 Auto,自主程度由你掌控。
v0 在终端里能做什么
v0 的 Bash 工具会在项目文件所在的同一个沙箱中执行命令。每条命令都在从项目根目录启动的全新 shell 中运行,因此 v0 会显式地串联各个操作,而不是依赖 shell 状态。
常见用途
- 在浏览器中测试交互:针对实时预览启动无头浏览器会话,验证用户流程并捕获错误。 - 查看提交历史:运行 git log、git blame 或 git diff,在修改文件前了解此前的改动。 - 编写并运行单元测试:执行项目的测试命令,阅读输出并直接修复失败项。 - 使用平台 CLI:调用 Vercel CLI(vercel logs、vercel inspect)和 GitHub CLI(gh pr view、gh issue list),不用离开对话即可查看部署、Pull Request 和 Issue。
如何提出请求
直接描述你想要的结果即可,例如:
- "在浏览器里测试一下注册流程,报告所有失败项。" - "看看这个文件最近 10 次提交,总结一下改了什么。" - "跑一遍单元测试,修复失败的用例。" - "查一下 Vercel 最新的部署日志,找出报错原因。"
v0 会自行选择合适的命令并执行,然后把输出结果融入下一条回复。
权限模式
v0 提供三种权限模式,控制终端权限层如何处理命令。该设置在新建对话时也会保留。
| 模式 | v0 的行为 | 适用场景 | | --- | --- | --- | | Ask Permissions | 按你的权限规则执行:允许的命令直接运行,禁止的命令被拦截,标记为 ask 或未被规则匹配的命令需要确认。 | 敏感项目、生产数据,或你希望逐条审查未明确放行的命令时。 | | Auto Permissions(默认) | 使用相同规则:允许的命令直接运行,禁止的命令被拦截,标记为 ask 的命令需要确认。未被匹配的命令由 v0 自行判断是否请求确认。 | 日常开发,希望 v0 自主推进的同时遵守配置规则。 | | Full Permissions | 跳过终端权限评估,直接运行命令,不检查 allow、ask 或 deny 规则。 | 一次性或非敏感项目,且你能接受无限制命令带来的风险。 |
Auto Permissions
Auto 是默认模式,适合大多数用户。v0 会不经确认直接运行内置允许列表中的命令,包括:
- 只读文件操作:ls、find、cat、head、tail、tree、wc、cd、pwd - 搜索与数据处理:grep、rg、jq - 本地 git:git status、git log、git diff、git show - 只读 GitHub CLI:gh pr view、gh pr list、gh pr diff、gh pr checks、gh issue view、gh repo view - 只读 Vercel CLI:vercel logs、vercel inspect、vercel list、vercel whoami、vercel activity - 输出:echo、whoami - 浏览器自动化与计时:agent-browser、sleep
未被匹配的命令不会自动批准或拒绝。v0 会根据它打算执行的操作,自行运行该命令或明确请求你的确认。如果某条命令在 Auto 模式下必须有确定的结果,可以为其添加 ask 或 deny 规则。
你可以在 Settings → Agent Permissions 中编辑这个列表,详见「自定义规则」。
Ask Permissions
Ask 模式会对每条标记为 ask 或未被规则匹配的命令弹出确认卡片。命中 allow 规则的命令仍直接运行,命中 deny 规则的命令会被拦截。
当你想要严格的反馈闭环时可以使用 Ask 模式,例如操作真实的生产数据库,或希望审计 v0 每一步操作的仓库。
Full Permissions
Full 模式会绕过终端权限评估,运行命令前不检查任何内置、团队或用户的 allow、ask、deny 规则,包括 shell 包装器(bash、sh、eval)、包执行(pnpm dlx、npx -y)、远程 git 操作(git push、gh pr create)以及破坏性命令。
只有同时满足以下两个条件时才建议使用 Full 模式:
- 你在做非敏感项目,不涉及生产凭证或关键数据。 - 你愿意事后审查 v0 的命令历史,而不是逐条事前批准。
设置权限模式
1. 在输入框工具栏中,打开模型选择器旁边的 + 菜单。 2. 选择 Auto Permissions,子菜单会显示当前模式。 3. 选择 Ask Permissions、Auto Permissions 或 Full Permissions。
所选设置会持续生效,直到你手动更改。
自定义规则
权限模式控制 v0 如何处理未匹配的命令,而规则本身(哪些命令属于允许、需确认或禁止)保存在设置中,可以直接编辑。打开 Settings → Agent Permissions 进行管理。
User 与 Team 作用域
权限面板有两个标签页:
- User:绑定你账号的规则,对你参与的所有项目生效。 - Team:由团队所有者设置、对全体成员生效的规则。只有团队所有者能编辑此标签页。
在 Ask 和 Auto 模式下,用户规则、团队规则和内置规则会一起评估。某个作用域的规则不一定会覆盖另一个作用域的规则,最终结果由匹配度最高的规则决定,详见「规则优先级」。
规则格式
每个作用域包含三个 JSON 数组:
| 数组 | 行为 | | --- | --- | | allow | 在 Ask 或 Auto 模式下,v0 直接运行匹配的命令,无需询问。 | | deny | 在 Ask 或 Auto 模式下,v0 拦截匹配的命令。 | | ask | 在 Ask 或 Auto 模式下,v0 运行匹配的命令前先向你确认。 |
模式格式为 Bash(<命令模式>),后缀 :* 表示匹配任意参数。例如:
``` { "allow": ["Bash(pnpm test:*)", "Bash(pnpm lint:*)"], "ask": ["Bash(git push:*)"], "deny": ["Bash(curl:*)"] } ```
规则优先级
对于每条命令,v0 按以下方式应用规则:
1. 收集所有匹配的内置、团队和用户模式。 2. 以 Bash(...) 内命令模式的长度(不含末尾的 :*)比较它们的具体程度。 3. 具体程度最高的匹配结果生效。因此更具体的 allow 可以优先于更宽泛的 ask 或 deny,反之亦然。 4. 若具体程度相同的生效模式结论相互冲突,v0 会请求确认。 5. 对于复合命令,v0 会评估其子命令,并按 deny、ask、未匹配、allow 的顺序取最严格的结果。
当设置合并时,如果同一条完全一致的模式同时出现在 allow 和 ask 中,allow 会移除相同的 ask 条目。匹配的 deny 会被保留;若它与其他生效结论的具体程度相同,冲突将按 ask 处理。
这些规则在 Full 模式下不适用,因为 Full 模式会跳过权限评估。
点击 Reset to default 可以丢弃自定义规则,恢复内置列表。
当前的删除防护
内置设置包含一条 deny 规则,拦截以 rm -rf 精确令牌序列开头的命令。在 Ask 和 Auto 模式下,它与其他规则一样参与具体程度和冲突判定;Full 模式则会跳过它。
这条规则只是一种防护,并非完整的沙箱安全边界。等价的参数写法以及通过某些 shell 包装器调用的命令可能不会命中它。沙箱和平台层面的其他控制仍可限制进程的访问范围,但不应把终端权限层当作抵御所有破坏性命令的防线。
如需删除文件,请让 v0 按文件名删除,这样它会使用内置的 Delete 工具。
了解 v0 agent 的其他功能:上一篇 Code viewer · 下一篇 Design mode