Skip to content

6.3 --allowedTools - 允許的工具列表

--allowedTools 標誌允許您指定應允許的工具列表,無需提示使用者獲得許可權。這可以簡化工作流程,減少許可權提示的頻率。

标志语法

bash


claude --allowedTools <tool1> <tool2> ... [其他选项]

功能描述

--allowedTools 標誌會:

  1. 指定允許的工具列表
  2. 這些工具在使用時不會提示使用者獲得許可權
  3. 其他工具仍會按正常許可權流程處理

使用示例

基本用法

bash


claude --allowedTools "Bash(git log:*)" "Bash(git diff:*)" "Read"

允許特定的 Bash 命令和 Read 工具。

允许读取工具

bash


claude --allowedTools "Read" "Grep" "Glob"

允許檔案讀取和搜尋工具。

允许特定命令

bash


claude --allowedTools "Bash(npm test:*)" "Bash(npm run build:*)"

允許特定的 npm 命令。

结合其他标志

bash


claude --allowedTools "Read" "Edit" --add-dir ./src

允許讀取和編輯工具,並新增工作目錄。

工具格式

工具的格式為:工具名称(模式)

  • 工具名稱 :如 BashReadEdit
  • 模式 :可選,指定工具的使用模式或引數

常用工具

工具名稱描述

Bash| 執行 shell 命令 Read| 讀取檔案內容 Edit| 編輯檔案 Grep| 搜尋文字 Glob| 查詢檔案 Write| 寫入檔案

使用场景

1. 只读操作

bash


claude --allowedTools "Read" "Grep" "Glob"

只允許讀取操作,避免意外修改。

2. 安全命令

bash


claude --allowedTools "Bash(git log:*)" "Bash(git diff:*)"

只允許安全的 git 只讀命令。

3. 测试命令

bash


claude --allowedTools "Bash(npm test:*)" "Bash(python -m pytest:*)"

只允許測試相關命令。

4. 构建命令

bash


claude --allowedTools "Bash(npm run build:*)" "Bash(cmake --build:*)"

只允許構建相關命令。

注意事項

  1. 許可權覆蓋--allowedTools 會覆蓋 settings.json 中的設定
  2. 工具存在 :指定的工具必須存在且可用
  3. 模式匹配 :工具模式應該準確,避免過於寬泛
  4. 安全考慮 :只允許真正需要的工具,避免安全風險
  5. 許可權提示 :未在列表中的工具仍會提示使用者獲得許可權

最佳實踐

  1. 最小許可權 :只允許真正需要的工具,遵循最小許可權原則
  2. 明確模式 :使用明確的工具模式,避免過於寬泛的匹配
  3. 定期審查 :定期審查允許的工具列表,移除不需要的
  4. 文件記錄 :記錄允許的工具及其原因
  5. 測試驗證 :測試允許的工具是否按預期工作

--disallowedTools 的對比

標誌行為適用場景

--allowedTools| 白名單,只允許指定的工具| 嚴格控制,只允許特定操作 --disallowedTools| 黑名單,禁止指定的工具| 靈活控制,禁止危險操作

## 常见问题

### Q: 可以同时使用 `--allowedTools` 和 `--disallowedTools` 吗?

A: 可以,`--allowedTools` 优先级更高,会覆盖 `--disallowedTools`。

### Q: 工具模式支持通配符吗?

A: 是的,支持 `*` 通配符进行模式匹配。

### Q: 如何知道可用的工具列表?

A: 可以使用 `/tool list` 命令查看所有可用工具。

### Q: 允许的工具会持久化吗?

A: 不会,`--allowedTools` 只对当前会话有效。要持久化,请在 settings.json 中设置。

## 相关标志


  * `--disallowedTools`:禁止的工具列表
  * `--dangerously-skip-permissions`:跳過所有許可權提示
  * `--permission-mode`:指定許可權模式

## 实际应用示例

### CI/CD 环境

    bash


    #!/bin/bash
    # 在 CI/CD 中只允许安全操作
    claude \
      --allowedTools \
        "Bash(git log:*)" \
        "Bash(git diff:*)" \
        "Read" \
        "Grep" \
      "审查代码变更"

### 只读分析

    bash


    #!/bin/bash
    # 只读分析,避免意外修改
    claude \
      --allowedTools "Read" "Grep" "Glob" \
      "分析这个项目的结构"

基于 MIT 许可发布 | 永久导航