You can use the /tools command to manage permissions for tools that
Kiro uses to perform actions on your system. This provides granular control over what
actions Kiro can perform.
| Command | Description |
|---|---|
help | Shows help related to tools. |
trust | Trusts a specific tool for the session. |
untrust | Reverts a tool to per-request confirmation. |
trust-all | Trusts all tools (equivalent to deprecated /acceptall). |
reset | Resets all tools to default permission levels. |
To view the current permission settings for all tools:
$ kiro-cli chat Kiro> /tools
This displays a list of all available tools and their current permission status (trusted or per-request).
Tool permissions have two possible states:
To trust or untrust a specific tool for the current session:
Kiro> /tools trust read Kiro> /tools untrust shell
You can also trust all tools at once with /tools trust-all(equivalent to
the deprecated /acceptall command):
Kiro> /tools trust-all
The following image shows the status of the CLI tools when they are all in their default trust status.
The following tools are natively available for Kiro to use:
| Tool | Description |
|---|---|
read | Reads files and directories on your system. |
write | Creates and modifies files on your system. |
shell | Executes bash commands on your system. |
aws | Makes AWS CLI calls to interact with AWS services. |
report | Opens a browser to report an issue with the chat to AWS. |
When Kiro attempts to use a tool that doesn't have explicit permission, it will ask for your approval before proceeding. You can choose to allow or deny the action, or trust the tool for the remainder of your session.
When Kiro asks to run a shell command, you can choose how broadly to trust it. Instead of trusting the entire shell tool, you get an interactive picker with tiered options scoped to the specific command. For example, if Kiro wants to run git pull --rebase, you see these options:
Press (↑↓) to navigate (⏎) to select scope > Full command → git pull --rebase Partial command → git pull * Base command → git * Entire Tool → *
The trust tiers from most restrictive to least restrictive are:
| Tier | What it trusts | Example pattern |
|---|---|---|
| Full command | The exact command as written | git pull --rebase |
| Partial command | The command and its subcommand, with any arguments | git pull * |
| Base command | The base command with any arguments | git * |
| Entire Tool | All shell commands | * |
After you select a tier, Kiro confirms the trusted pattern (for example, ✓ Trusted: git pull --rebase). The picker only shows tiers that are meaningfully different — if the command has no subcommand, the partial tier is skipped. For chained commands (pipes, &&), Kiro generates trust patterns for each command in the chain and deduplicates them.
Trusted patterns persist for the session and are stored as regex in the agent's allowedCommands setting. For more on how allowedCommands works, see Shell tool settings.
The read and write tools also support granular trust when accessing paths outside the current working directory. By default, both tools are trusted for the current working directory. When Kiro needs to read or write a file outside that directory, you get a picker with tiered options:
Press (↑↓) to navigate (⏎) to select scope > Specific paths → ~/.config/app/settings.json Complete directory → ~/.config/app Entire Tool → *
The trust tiers from most restrictive to least restrictive are:
| Tier | What it trusts | Example |
|---|---|---|
| Specific paths | Only the exact file paths requested | ~/.config/app/settings.json |
| Complete directory | All files in the containing directory | ~/.config/app |
| Entire Tool | All read or write operations everywhere | * |
Paths within the current working directory do not trigger the picker.
Each tool has a default trust behavior. read is trusted by default for the current working directory. When Kiro uses a tool, it shows you the trust permission being used. You can also specify trust permissions as part of starting a kiro-cli chat session.
Here are some examples of when to use different permission levels:
Managing tool permissions