Skip to content

Kiro Terminal integration 允许你用自然语言描述想做的事,由 Kiro 转换为终端命令并在执行前请求审批。你可以配置 trusted commands 自动通过常用命令,也可以用 command denylist 阻止危险模式被自动执行。

Kiro Terminal:用自然语言执行命令并控制审批风险

Kiro 的 terminal integration 让你不用记住每条命令语法,可以直接描述目标,例如“安装依赖”“查看 git status”“启动开发服务器”。Kiro 会把请求转换成可执行命令,并在执行前让你审批。

这类能力很适合 AI IDE 工作流:Chat 里讨论问题,Terminal 里执行命令,输出再回到 Chat 里分析。但命令执行有风险,所以审批和信任规则必须认真配置。

基本使用方式

你可以直接对 Kiro 说:

text
Install the project dependencies
text
Check the git status
text
Find all TypeScript files in the src folder
text
Run the development server

Kiro 会生成对应终端命令,并在运行前展示给你。你可以选择:

  • Modify:修改命令后再运行。
  • Reject:取消执行。
  • Run:只执行这一次。
  • Run and Trust:执行并信任未来类似命令。

Trusted commands 怎么工作

Trusted commands 用前缀匹配决定哪些命令可以自动通过。你可以在 Settings → Kiro Agent: Trusted Commands 中配置,支持用户级和工作区级设置。

如果配置:

json
["npm install", "git status"]

那么 npm installgit status 会被信任,但 npm install --savegit status --short 不会自动通过,因为它们不是精确匹配。

如果配置:

json
["npm install *"]

npm install --savenpm install express 等以该模式匹配的命令可以自动通过。

如果配置:

json
["npm *", "git *"]

所有以 npm git 开头的命令都会被信任,包括带管道、重定向、链式命令的复杂命令。这很方便,也更危险。

不要轻易使用 universal trust

如果 trusted commands 写成:

json
["*"]

任何命令都会被信任。除非你非常确定运行环境隔离且风险可控,否则不建议这样做。

对真实项目来说,更安全的做法是只信任低风险、可重复的命令,例如 git statusnpm test *,而不要信任会删除、写入、推送或改权限的命令。

Command denylist

Command denylist 是另一层安全保护。它使用 substring matching,只要命令中包含 denylist 字符串,即使匹配 trusted commands,也需要人工审批。

建议加入这些危险模式:

json
{
  "kiroAgent.commandDenylist": [
    "rm -rf",
    "sudo",
    "chmod 777",
    "eval",
    "curl | sh",
    "wget | sh",
    "> /dev/",
    "mkfs",
    "dd if="
  ]
}

审批顺序是:

  1. 先检查 denylist,命中则必须人工审批。
  2. 再检查 trusted commands,匹配则自动通过。
  3. 都不匹配时,默认要求人工审批。

例如信任 npm *,但 denylist 包含 --force,那么 npm install --force 仍需要手动确认。

使用 #terminal 引用终端上下文

你可以在 Chat 中用 #terminal 引用当前活动终端的最近输出:

text
#terminal analyze the error from the last npm run build

注意:#terminal 指向当前 active / visible terminal。如果你打开了多个终端,使用前要确认想引用的终端是当前活动终端。

Kiro 可以基于真实输出做错误分析、解释日志、建议下一步,并识别反复出现的环境或依赖问题。

常见问题

Q: Kiro 运行命令前会先问我吗?

A: 默认会。除非命令匹配 trusted commands 且没有命中 denylist,否则会要求审批。

Q: Run and Trust 安全吗?

A: 取决于命令模式。信任 git status 风险很低,信任 git *npm * 风险更高,因为复杂链式命令也可能被前缀匹配放行。

Q: #terminal 引用哪个终端?

A: 引用当前活动或可见的终端窗口。多个终端并存时要先切到正确终端。