> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 工具

Qoder CLI 通过工具处理本地工作区和外部信息源。工具可以搜索和读取项目内容、修改文件、执行命令、获取网页内容、维护上下文，并通过 MCP 接入外部服务。

工具可以在交互式 TUI 会话和非交互式 Print Mode 中使用。实际可用的工具集合取决于当前会话、已启用的功能、MCP 配置和权限设置。

在 TUI 中使用 `/tools` 可以查看当前会话可用的工具。

<div id="search-and-explore">
  ## **搜索与探索**
</div>

Qoder CLI 会使用搜索和探索类工具先理解当前任务，再决定下一步操作。

| 范围   | 说明                   |
| :--- | :------------------- |
| 文件   | 在当前工作区中查找文件。         |
| 代码   | 搜索代码、文本和配置文件。        |
| 目录   | 浏览项目结构并定位相关路径。       |
| Web  | 当任务需要当前信息或公开资料时搜索网页。 |
| 网页内容 | 获取指定网页的内容。           |

<div id="read-project-context">
  ## **读取项目上下文**
</div>

Qoder CLI 可以读取文件和其他项目资产，为当前请求收集上下文。

| 功能      | 说明                  |
| :------ | :------------------ |
| 查看文件    | 读取源代码、文档、配置和其他文本资产。 |
| 读取大文件   | 当文件过大时，只读取相关片段。     |
| 读取文档类资产 | 在支持时读取 PDF 等文档格式。   |

<div id="edit-files">
  ## **编辑文件**
</div>

当任务需要变更时，Qoder CLI 可以在工作区中创建或修改文件。

| 功能          | 说明                               |
| :---------- | :------------------------------- |
| 修改文件        | 对已有文件进行定向修改。                     |
| 创建文件        | 新增源代码、测试、文档或配置等文件。               |
| 编辑 Notebook | 在支持 Notebook 的场景中修改 Notebook 内容。 |

文件编辑会经过权限系统。根据权限模式和规则，Qoder CLI 可能直接应用变更、请求确认，或阻止操作。

<div id="execute-commands">
  ## **执行命令**
</div>

当任务需要本地执行时，Qoder CLI 可以运行 shell 命令。

| 功能    | 说明                                   |
| :---- | :----------------------------------- |
| 运行命令  | 执行构建、测试、打包、Git 检查、项目排查或自定义 shell 命令。 |
| 运行长任务 | 跟踪耗时命令，例如测试套件或开发脚本。                  |

Shell 命令通常比只读操作风险更高。建议用权限规则允许常规命令，并对敏感命令设置询问或拒绝。

启用 [Shell 命令前缀](/zh/cli/using-cli#shell-command-prefix)后，Bash 工具会在完整 shell 命令组装完成后通过配置的可执行 wrapper 运行。权限检查和命令展示仍使用原始命令。wrapper 必须执行收到的单个命令参数，并保留进程输入输出和退出状态。

<div id="manage-context">
  ## **管理上下文**
</div>

部分工具用于帮助 Qoder CLI 维护当前任务和会话状态。

| 功能        | 说明                           |
| :-------- | :--------------------------- |
| 跟踪任务      | 在工作过程中维护轻量级计划或任务列表。          |
| 澄清问题      | 当缺少决策或关键信息时向用户提问。            |
| 管理记忆      | 在记忆能力可用时保存长期信息。              |
| 使用 Skills | 在配置后加载特定领域的说明或工作流。           |
| 规划工作      | 当任务需要先分析再执行时进入或退出 Plan Mode。 |

记忆和 Skills 会为模型提供上下文，但它们不是安全边界。需要强制策略时，请使用权限规则和 Hooks。

<div id="delegate-and-automate">
  ## **分派与自动化**
</div>

当当前环境启用相关能力时，Qoder CLI 可以使用分派和自动化能力。

| 功能        | 说明                             |
| :-------- | :----------------------------- |
| Subagents | 将特定工作分派给专门的 Agent。             |
| Workflows | 运行已配置的可重复工作流。                  |
| Goals     | 跟踪并执行较长周期的目标。                  |
| Worktrees | 当需要并行会话时，在独立 Git worktree 中工作。 |
| 定时任务      | 在调度能力启用时创建或管理定时任务。             |

具体可用范围取决于产品配置、功能开关和当前会话。

<div id="mcp-tools">
  ## **MCP 工具**
</div>

Qoder CLI 可以连接 Model Context Protocol（MCP）服务，以使用外部工具和数据源。MCP 服务配置完成后，它们的工具会出现在同一个 `/tools` 视图中，并经过相同的权限系统。

MCP 工具适合接入 Issue 系统、代码托管平台、数据库、浏览器自动化、内部平台或企业自定义服务。

MCP 配置请参考 [MCP Servers](/zh/cli/mcp-servers)。

<div id="control-tool-usage">
  ## **控制工具使用**
</div>

工具是否可见和工具是否允许执行是两件事。

| 控制项                                                          | 说明                       |
| :----------------------------------------------------------- | :----------------------- |
| `--tools`                                                    | 限制当前会话中可见的工具。            |
| `--allowed-tools`                                            | 预先允许指定工具或工具模式。           |
| `--disallowed-tools`                                         | 阻止指定工具或工具模式。             |
| `permissions.allow` / `permissions.ask` / `permissions.deny` | 写在 settings 文件中的持久化权限规则。 |
| `tools.exclude`                                              | 启动时从发现结果中移除工具。           |

示例：

```shell theme={null}
# 只读探索
qodercli --tools Read Grep Glob --allowed-tools 'Read,Grep,Glob'

# 允许常用状态检查命令
qodercli --allowed-tools 'Read,Grep,Bash(git status)'

# 在非交互式审查中禁止文件编辑
qodercli -p "review this repository" --disallowed-tools 'Write,Edit'
```

权限模式、规则语法和判定顺序请参考 [权限](/zh/cli/permissions)。拦截工具调用的 Hook 用法请参考 [Hooks](/zh/cli/hooks)。
