SpyBara
Go Premium

Documentation 2026-09-30 23:00 UTC to 2026-10-01 10:00 UTC

50 files changed +1,043 −620. View all changes and history on the product overview
2026
Thu 1 10:00

admin-setup.md +1 −0

Details

106| [Disable claude.ai sync](/docs/zh-CN/settings-reference#syncclaudeaiskills) | 停止 Claude Code 加载[您的开发人员在 claude.ai 上启用的 skills](/docs/zh-CN/skills#how-synced-skills-behave) 和[插件](/docs/zh-CN/plugins/loading#synced-plugins)。如果您为组织关闭 claude.ai 上的 Skills,Claude Code 会停止同步两者,在 v2.1.273 或更高版本上,它也会删除已同步的那些。要在不关闭 Skills 的情况下停止其中任一个,在托管设置中将其键设置为 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/zh-CN/settings-reference#syncclaudeaiskills) | 停止 Claude Code 加载[您的开发人员在 claude.ai 上启用的 skills](/docs/zh-CN/skills#how-synced-skills-behave) 和[插件](/docs/zh-CN/plugins/loading#synced-plugins)。如果您为组织关闭 claude.ai 上的 Skills,Claude Code 会停止同步两者,在 v2.1.273 或更高版本上,它也会删除已同步的那些。要在不关闭 Skills 的情况下停止其中任一个,在托管设置中将其键设置为 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/zh-CN/settings-reference#allowmanagedhooksonly) | 限制哪些 hooks 运行并限制 HTTP hook URL;请参阅[`allowManagedHooksOnly` 下运行的内容](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)了解完整的效果列表 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |107| [Hook restrictions](/docs/zh-CN/settings-reference#allowmanagedhooksonly) | 限制哪些 hooks 运行并限制 HTTP hook URL;请参阅[`allowManagedHooksOnly` 下运行的内容](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)了解完整的效果列表 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

108| [Login enforcement](/docs/zh-CN/settings-reference#forceloginmethod) | 限制登录到特定方法或 Anthropic 组织。方法限制适用于 VS Code 扩展、Agent SDK、`claude setup-token` 和 `/install-github-app`,以及终端的交互式登录屏幕(通过 `/login` 或首次运行入门到达),预先选择方法但不强制执行;Claude Code 在终端、VS Code 扩展和 Agent SDK 中验证 claude.ai 账户登录的组织,不检查 Claude Console 登录或[网关](/docs/zh-CN/claude-apps-gateway)登录。在 v2.1.212 之前,仅终端登录应用任一密钥。设置后,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止;云提供商会话不受影响,除非这些凭证之一或由较早的 Claude Console 登录保存的 API 密钥也存在 | `forceLoginMethod`、`forceLoginOrgUUID` |108| [Login enforcement](/docs/zh-CN/settings-reference#forceloginmethod) | 限制登录到特定方法或 Anthropic 组织。方法限制适用于 VS Code 扩展、Agent SDK、`claude setup-token` 和 `/install-github-app`,以及终端的交互式登录屏幕(通过 `/login` 或首次运行入门到达),预先选择方法但不强制执行;Claude Code 在终端、VS Code 扩展和 Agent SDK 中验证 claude.ai 账户登录的组织,不检查 Claude Console 登录或[网关](/docs/zh-CN/claude-apps-gateway)登录。在 v2.1.212 之前,仅终端登录应用任一密钥。设置后,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 进行身份验证的会话在启动时被阻止;云提供商会话不受影响,除非这些凭证之一或由较早的 Claude Console 登录保存的 API 密钥也存在 | `forceLoginMethod`、`forceLoginOrgUUID` |

109| [Provider restrictions](/docs/zh-CN/settings-reference#allowedproviders) | 限制机器可以使用的 API 提供商。不在列表中的提供商上的会话在启动时、登录时以及下次联系 API 时被拒绝。需要 Claude Code v2.1.285 或更高版本 | `allowedProviders` |

109| [Disable agent view](/docs/zh-CN/agent-view#how-background-sessions-are-hosted) | 关闭 `claude agents`、`--bg`、`/background` 和按需监督程序 | `disableAgentView` |110| [Disable agent view](/docs/zh-CN/agent-view#how-background-sessions-are-hosted) | 关闭 `claude agents`、`--bg`、`/background` 和按需监督程序 | `disableAgentView` |

110| [Configure the corporate launcher](/docs/zh-CN/corporate-launcher) | 使用必需的企业启动器作为[后台代理监督程序](/docs/zh-CN/agent-view#how-background-sessions-are-hosted)、其工作程序和[其他涵盖的后台进程](/docs/zh-CN/corporate-launcher#what-the-launcher-covers)的前缀,而不是关闭代理视图 | `processWrapper` |111| [Configure the corporate launcher](/docs/zh-CN/corporate-launcher) | 使用必需的企业启动器作为[后台代理监督程序](/docs/zh-CN/agent-view#how-background-sessions-are-hosted)、其工作程序和[其他涵盖的后台进程](/docs/zh-CN/corporate-launcher#what-the-launcher-covers)的前缀,而不是关闭代理视图 | `processWrapper` |

111| [Model restrictions](/docs/zh-CN/model-config#restrict-model-selection) | `availableModels` 筛选模型选择器中显示的模型。添加 `enforceAvailableModels` 也会限制自动选择的默认模型。请参阅[表面覆盖](/docs/zh-CN/model-config#surface-coverage)了解此设置如何到达 CLI、web 和 IDE | `availableModels`、`enforceAvailableModels` |112| [Model restrictions](/docs/zh-CN/model-config#restrict-model-selection) | `availableModels` 筛选模型选择器中显示的模型。添加 `enforceAvailableModels` 也会限制自动选择的默认模型。请参阅[表面覆盖](/docs/zh-CN/model-config#surface-coverage)了解此设置如何到达 CLI、web 和 IDE | `availableModels`、`enforceAvailableModels` |

Details

418 ```418 ```

419</CodeGroup>419</CodeGroup>

420 420 

421要确认阻止,请在 `PreToolUse` 下注册回调,使用 `Write|Edit` 匹配器,并要求代理在 `/etc` 下创建文件:Write 工具在消息流中的结果包含 `Writing to /etc is not allowed`,并且不会创建任何文件。

422 

421<h3 id="auto-approve-specific-tools">423<h3 id="auto-approve-specific-tools">

422 自动批准特定工具424 自动批准特定工具

423</h3>425</h3>


468 470 

469当事件触发时,所有匹配的 hooks 并行运行。对于权限决策,最严格的结果获胜:单个 `deny` 会阻止工具调用,无论其他 hooks 返回什么。由于完成顺序是不确定的,请编写每个 hook 以独立行动,而不是依赖另一个 hook 已运行。471当事件触发时,所有匹配的 hooks 并行运行。对于权限决策,最严格的结果获胜:单个 `deny` 会阻止工具调用,无论其他 hooks 返回什么。由于完成顺序是不确定的,请编写每个 hook 以独立行动,而不是依赖另一个 hook 已运行。

470 472 

471下面的示例为每个工具调用注册三个独立检查:473下面的示例为每个工具调用注册三个独立检查。其中的 hook 名称,例如 Python 中的 `audit_logger` 或 TypeScript 中的 `auditLogger`,代表您定义的回调:

472 474 

473<CodeGroup>475<CodeGroup>

474 ```python Python theme={null}476 ```python Python theme={null}


500 使用多工具匹配器过滤502 使用多工具匹配器过滤

501</h3>503</h3>

502 504 

503使用多工具匹配器在相关工具间共享一个回调。此示例注册三个具有不同范围的匹配器:505使用多工具匹配器在相关工具间共享一个回调。此示例注册三个具有不同范围的匹配器,其中每个 hook 名称代表您定义的回调:

504 506 

505* 管道分隔的精确列表(`Write|Edit|NotebookEdit`)仅对文件修改工具触发 `file_security_hook`。507* 管道分隔的精确列表(`Write|Edit|NotebookEdit`)仅对文件修改工具触发 `file_security_hook`。

506* 正则表达式(`^mcp__`)对任何名称以 `mcp__` 开头的 MCP 工具触发 `mcp_audit_hook`。508* 正则表达式(`^mcp__`)对任何名称以 `mcp__` 开头的 MCP 工具触发 `mcp_audit_hook`。


585 ```587 ```

586</CodeGroup>588</CodeGroup>

587 589 

590要确认 hook 触发,请注册回调并要求代理将小任务委派给子代理,例如列出当前目录中的文件:当子代理完成时,回调会打印 `[SUBAGENT] Completed:` 行,其中包含子代理的 ID 和脚本路径。

591 

588<h3 id="make-http-requests-from-hooks">592<h3 id="make-http-requests-from-hooks">

589 从 hooks 发出 HTTP 请求593 从 hooks 发出 HTTP 请求

590</h3>594</h3>

Details

121 121 

122权限模式提供对 Claude 如何使用工具的全局控制。您可以在调用 `query()` 时设置权限模式,或在流式会话期间动态更改它。122权限模式提供对 Claude 如何使用工具的全局控制。您可以在调用 `query()` 时设置权限模式,或在流式会话期间动态更改它。

123 123 

124如果您没有设置权限模式,Claude Code 会根据[会话启动时的模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)中的规则选择起始权限模式:

125 

126* 当适用时,来自会话的[设置文件](/docs/zh-CN/settings#where-settings-live)中的 `permissions.defaultMode`

127* 否则使用内置默认值,可以是[自动模式](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode)

128 

129在自动模式下启动的会话会放弃广泛的允许规则,例如裸 `Bash` 条目,如[自动模式如何评估操作](/docs/zh-CN/permission-modes#how-auto-mode-evaluates-actions)所述。如果您的应用程序依赖于 `default` 模式或此类规则,请显式传递 `default`。

130 

131在 TypeScript Agent SDK v0.3.286 之前,省略 `permissionMode` 与传递 `default` 相同。

132 

124<h3 id="available-modes">133<h3 id="available-modes">

125 可用模式134 可用模式

126</h3>135</h3>

agent-sdk/python.md +210 −71

Details

616 示例 - 使用 ClaudeSDKClient 进行流式输入616 示例 - 使用 ClaudeSDKClient 进行流式输入

617</h4>617</h4>

618 618 

619`query()` 也接受用户消息字典的异步可迭代对象,因此你可以在发送时组装提示或包含内容块,如图像。Claude Code 在第一个产生的消息到达时立即开始响应,无需等待可迭代对象完成,`receive_response()` 在结束该响应的 `ResultMessage` 处停止。将 Claude 应该在回答前读取的所有内容放入一条消息中,如本生成器所做的那样,并将每个 `query()` 调用与其自己的 `receive_response()` 循环配对。

620 

619```python theme={null}621```python theme={null}

620import asyncio622import asyncio

621from claude_agent_sdk import ClaudeSDKClient623from claude_agent_sdk import ClaudeSDKClient

622 624 

623 625 

624async def message_stream():626async def message_stream():

625 """Generate messages dynamically."""627 """Assemble the prompt at send time and yield it as one user message."""

626 yield {628 readings = {"Temperature": "25°C", "Humidity": "60%"}

627 "type": "user",629 data = ", ".join(f"{name}: {value}" for name, value in readings.items())

628 "message": {"role": "user", "content": "Analyze the following data:"},

629 }

630 await asyncio.sleep(0.5)

631 yield {

632 "type": "user",

633 "message": {"role": "user", "content": "Temperature: 25°C, Humidity: 60%"},

634 }

635 await asyncio.sleep(0.5)

636 yield {630 yield {

637 "type": "user",631 "type": "user",

638 "message": {"role": "user", "content": "What patterns do you see?"},632 "message": {

633 "role": "user",

634 "content": f"Analyze the following sensor data and describe any patterns you see: {data}",

635 },

639 }636 }

640 637 

641 638 


2712 2709 

2713所有内置 Claude Code 工具的输入/输出模式文档。虽然 Python SDK 不将这些导出为类型,但它们代表消息中工具输入和输出的结构。2710所有内置 Claude Code 工具的输入/输出模式文档。虽然 Python SDK 不将这些导出为类型,但它们代表消息中工具输入和输出的结构。

2714 2711 

2712每个显示的输出是您从该工具的 [`UserMessage.tool_use_result`](#usermessage) 读取的值。关键名称完全按照 Claude Code 发出的方式出现。带有 `| None` 注释的关键字,以及带有"present when"或"optional"注释的关键字,在不适用时会被省略。

2713 

2715<h3 id="agent">2714<h3 id="agent">

2716 Agent2715 Agent

2717</h3>2716</h3>


2805```python theme={null}2804```python theme={null}

2806{2805{

2807 "status": "remote_launched",2806 "status": "remote_launched",

2808 "taskId": str, # 远程任务的 ID2807 "taskId": str, # 分派任务的 ID

2809 "sessionUrl": str, # 远程云会话的链接2808 "sessionUrl": str, # 云会话的链接

2810 "description": str, # 任务描述2809 "description": str, # 任务描述

2811 "prompt": str, # 代理运行的提示2810 "prompt": str, # 代理运行的提示

2812 "outputFile": str, # 代理输出被写入的文件路径2811 "outputFile": str, # 代理输出被写入的文件路径

2813}2812}

2814```2813```

2815 2814 

2816返回来自子代理的结果。输出在 `status` 字段上进行区分:`"completed"` 用于完成的任务,`"async_launched"` 用于后台任务,`"remote_launched"` 用于 Claude Code 分派到远程云会话的任务,其中 `sessionUrl` 链接到该会话,`taskId` 标识它。如果 Claude Code [保留了子代理的隔离 worktree](/docs/zh-CN/worktrees#isolate-subagents-with-worktrees),`completed` 变体上的 `worktreePath` 是找到它的位置,`worktreeBranch` 是当 Claude Code 使用 git 创建 worktree 时的分支。2815返回来自子代理的结果。输出在 `status` 字段上进行区分:`"completed"` 用于完成的任务,`"async_launched"` 用于后台任务,`"remote_launched"` 用于 Claude Code 分派到云会话的任务,其中 `sessionUrl` 链接到该会话,`taskId` 标识它。如果 Claude Code [保留了子代理的隔离 worktree](/docs/zh-CN/worktrees#isolate-subagents-with-worktrees),`completed` 变体上的 `worktreePath` 是找到它的位置,`worktreeBranch` 是当 Claude Code 使用 git 创建 worktree 时的分支。

2817 2816 

2818在 `completed` 变体上,`resolvedModel` 命名子代理启动时的模型,当应用 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 或其他覆盖时,它可能与请求的 `model` 输入不同。此字段需要 Claude Code v2.1.174 或更高版本。在 `async_launched` 变体上,`resolvedModel` 命名代理移到后台时使用的模型,因此在后台转换之前发生的交换会反映在那里。两个变体上的 `modelsUsed` 字段按顺序列出使用的模型,连续重复被折叠;仅当模型在运行中被交换时才设置。`modelsUsed` 和后台转换时的 `resolvedModel` 行为需要 Claude Code v2.1.212 或更高版本。2817在 `completed` 变体上,`resolvedModel` 命名子代理启动时的模型,当应用 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 或其他覆盖时,它可能与请求的 `model` 输入不同。此字段需要 Claude Code v2.1.174 或更高版本。在 `async_launched` 变体上,`resolvedModel` 命名代理移到后台时使用的模型,因此在后台转换之前发生的交换会反映在那里。两个变体上的 `modelsUsed` 字段按顺序列出使用的模型,连续重复被折叠;仅当模型在运行中被交换时才设置。`modelsUsed` 和后台转换时的 `resolvedModel` 行为需要 Claude Code v2.1.212 或更高版本。

2819 2818 


2885 2884 

2886**工具名称:** `Bash`2885**工具名称:** `Bash`

2887 2886 

2888关于设置前台上限的内容,见 [超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。关于后台时间限制,见 [后台命令](/docs/zh-CN/tools-reference#background-commands)。2887关于设置前台上限的内容,见 [超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。关于后台时间限制,见 [后台命令的时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)。

2889 2888 

2890**输入:**2889**输入:**

2891 2890 


2962 2961 

2963```python theme={null}2962```python theme={null}

2964{2963{

2965 "message": str, # 确认消息2964 "filePath": str, # 被编辑的文件

2966 "replacements": int, # 进行的替换次数2965 "oldString": str, # 被替换的文本

2967 "file_path": str, # 被编辑的文件路径2966 "newString": str, # 替换它的文本

2967 "originalFile": str | None, # 编辑前的文件内容

2968 "structuredPatch": [ # 更改的 diff hunks

2969 {

2970 "oldStart": int,

2971 "oldLines": int,

2972 "newStart": int,

2973 "newLines": int,

2974 "lines": list[str],

2975 }

2976 ],

2977 "userModified": bool, # 用户是否在接受前更改了建议的编辑

2978 "replaceAll": bool, # 是否替换了所有出现

2979 "gitDiff": { # 文件的可选 git diff 摘要

2980 "filename": str,

2981 "status": "modified" | "added",

2982 "additions": int,

2983 "deletions": int,

2984 "changes": int,

2985 "patch": str,

2986 "repository": str | None, # 可用时的 GitHub owner/repo

2987 } | None,

2968}2988}

2969```2989```

2970 2990 


2984}3004}

2985```3005```

2986 3006 

2987**输出(文本文件):**3007输出根据 Claude 读取的内容采用以下形状之一。检查 `type` 键来区分它们。

3008 

3009**输出(type: `"text"`):**

2988 3010 

2989```python theme={null}3011```python theme={null}

2990{3012{

2991 "content": str, # 带行号的文件内容3013 "type": "text",

2992 "total_lines": int, # 文件中的总行数3014 "file": {

2993 "lines_returned": int, # 实际返回的行数3015 "filePath": str, # 被读取的文件

3016 "content": str, # 返回的内容

3017 "numLines": int, # 返回内容中的行数

3018 "startLine": int, # 内容开始的行号

3019 "totalLines": int, # 文件中的总行数

3020 "truncatedByTokenCap": bool | None, # 当整个文件读取超过令牌上限且内容是第一页时出现且为 True

3021 },

2994}3022}

2995```3023```

2996 3024 

2997**输出(图像):**3025**输出(type: `"image"`):**

2998 3026 

2999```python theme={null}3027```python theme={null}

3000{3028{

3001 "image": str, # Base64 编码的图像数据3029 "type": "image",

3002 "mime_type": str, # 图像 MIME 类型3030 "file": {

3003 "file_size": int, # 文件大小(字节)3031 "base64": str, # Base64 编码的图像数据

3032 "type": "image/jpeg" | "image/png" | "image/gif" | "image/webp", # 图像 MIME 类型

3033 "originalSize": int, # 原始文件大小(字节)

3034 "dimensions": { # 坐标映射的可选大小信息

3035 "originalWidth": int | None, # 可选;原始宽度(像素)

3036 "originalHeight": int | None, # 可选;原始高度(像素)

3037 "displayWidth": int | None, # 可选;调整大小后的宽度

3038 "displayHeight": int | None, # 可选;调整大小后的高度

3039 } | None,

3040 },

3041}

3042```

3043 

3044**输出(type: `"notebook"`):**

3045 

3046```python theme={null}

3047{

3048 "type": "notebook",

3049 "file": {

3050 "filePath": str, # 被读取的笔记本

3051 "cells": list, # 笔记本单元格

3052 },

3053}

3054```

3055 

3056**输出(type: `"pdf"`):**

3057 

3058```python theme={null}

3059{

3060 "type": "pdf",

3061 "file": {

3062 "filePath": str, # 被读取的 PDF

3063 "base64": str, # Base64 编码的 PDF 数据

3064 "originalSize": int, # 文件大小(字节)

3065 },

3066}

3067```

3068 

3069**输出(type: `"parts"`):**

3070 

3071```python theme={null}

3072{

3073 "type": "parts",

3074 "file": {

3075 "filePath": str, # 被读取的 PDF

3076 "originalSize": int, # 文件大小(字节)

3077 "count": int, # 提取为图像的页数

3078 "outputDir": str, # 包含提取的页面图像的目录

3079 },

3080 "firstPage": int | None, # 可选的第一个提取页面的文档页码

3081}

3082```

3083 

3084**输出(type: `"file_unchanged"`):**

3085 

3086```python theme={null}

3087{

3088 "type": "file_unchanged", # 文件自 Claude 在此会话中上次读取以来未更改,因此不重复内容

3089 "file": {

3090 "filePath": str,

3091 },

3092 "source": "seeded" | None, # 当较早的副本来自在启动时加载的 CLAUDE.md 或内存文件而不是 Read 调用时出现

3004}3093}

3005```3094```

3006 3095 


3023 3112 

3024```python theme={null}3113```python theme={null}

3025{3114{

3026 "message": str, # 成功消息3115 "type": "create" | "update", # 写入是创建了新文件还是覆盖了现有文件

3027 "bytes_written": int, # 写入的字节数3116 "filePath": str, # 被写入的文件

3028 "file_path": str, # 被写入的文件路径3117 "content": str, # 被写入的内容

3118 "structuredPatch": [ # Diff hunks;对于新文件、未更改或 Claude Code 跳过 diff 时为空

3119 {

3120 "oldStart": int,

3121 "oldLines": int,

3122 "newStart": int,

3123 "newLines": int,

3124 "lines": list[str],

3125 }

3126 ],

3127 "originalFile": str | None, # 之前的内容;对于新文件或之前的内容太大而无法包含时为 None

3128 "gitDiff": { # 文件的可选 git diff 摘要

3129 "filename": str,

3130 "status": "modified" | "added",

3131 "additions": int,

3132 "deletions": int,

3133 "changes": int,

3134 "patch": str,

3135 "repository": str | None, # 可用时的 GitHub owner/repo

3136 } | None,

3137 "userModified": bool | None, # 可选;用户是否在接受前编辑了建议的内容

3029}3138}

3030```3139```

3031 3140 


3048 3157 

3049```python theme={null}3158```python theme={null}

3050{3159{

3051 "matches": list[str], # 匹配的文件路径数组3160 "durationMs": int, # 运行搜索所花费的时间(毫秒)

3052 "count": int, # 找到的匹配数3161 "numFiles": int, # 返回的路径数,任何截断后

3053 "search_path": str, # 使用的搜索目录3162 "filenames": list[str], # 匹配的文件路径

3163 "truncated": bool, # 结果是否在 100 文件限制处被截断

3164 "totalMatches": int | None, # 可选的截断前匹配文件的总数;当 countIsComplete 为 False 时为下界

3165 "countIsComplete": bool | None, # 可选;totalMatches 是否精确

3054}3166}

3055```3167```

3056 3168 

3169`totalMatches` 和 `countIsComplete` 需要 Claude Code v2.1.191 或更高版本。

3170 

3057<h3 id="grep">3171<h3 id="grep">

3058 Grep3172 Grep

3059</h3>3173</h3>


3074 "-B": int | None, # 每个匹配前显示的行数3188 "-B": int | None, # 每个匹配前显示的行数

3075 "-A": int | None, # 每个匹配后显示的行数3189 "-A": int | None, # 每个匹配后显示的行数

3076 "-C": int | None, # 每个匹配前后显示的行数3190 "-C": int | None, # 每个匹配前后显示的行数

3191 "context": int | None, # 每个匹配前后显示的行数;-C 是别名

3192 "-o": bool | None, # 仅打印每行的匹配部分

3077 "head_limit": int | None, # 将输出限制为前 N 行/条目3193 "head_limit": int | None, # 将输出限制为前 N 行/条目

3194 "offset": int | None, # 在应用 head_limit 前跳过前 N 行/条目

3078 "multiline": bool | None, # 启用多行模式3195 "multiline": bool | None, # 启用多行模式

3079}3196}

3080```3197```

3081 3198 

3082**输出(content 模式):**3199**输出:**

3083 3200 

3084```python theme={null}3201```python theme={null}

3085{3202{

3086 "matches": [3203 "mode": "content" | "files_with_matches" | "count" | None, # 使用的输出模式

3087 {3204 "numFiles": int, # 结果中的文件数;在 content 模式中始终为 0

3088 "file": str,3205 "filenames": list[str], # files_with_matches 模式中的匹配文件;在其他模式中为空

3089 "line_number": int | None,3206 "content": str | None, # content 模式中的匹配行,或 count 模式中的每个文件计数

3090 "line": str,3207 "numLines": int | None, # content 中的行数,在 content 模式中出现

3091 "before_context": list[str] | None,3208 "numMatches": int | None, # 总匹配计数,在 count 模式中出现

3092 "after_context": list[str] | None,3209 "totalFiles": int | None, # 可选的 head_limit 和 offset 前的总数,在 files_with_matches 模式中

3093 }3210 "totalLines": int | None, # 可选的 head_limit 和 offset 前的总数,在 content 模式中

3094 ],3211 "appliedLimit": int | None, # 当 head_limit 截断结果时出现

3095 "total_matches": int,3212 "appliedOffset": int | None, # 当应用了 offset 时出现

3096}3213}

3097```3214```

3098 3215 

3099**输出(files\_with\_matches 模式):**3216Grep 在每个输出模式中返回此 dict 形状。哪些可选键存在取决于 `output_mode`。

3100 3217 

3101```python theme={null}3218`totalFiles` 需要 Claude Code v2.1.208 或更高版本。`totalLines` 需要 Claude Code v2.1.210 或更高版本。

3102{

3103 "files": list[str], # 包含匹配的文件

3104 "count": int, # 包含匹配的文件数

3105}

3106```

3107 3219 

3108<h3 id="notebookedit">3220<h3 id="notebookedit">

3109 NotebookEdit3221 NotebookEdit


3127 3239 

3128```python theme={null}3240```python theme={null}

3129{3241{

3130 "message": str, # 成功消息3242 "new_source": str, # 写入单元格的源代码

3131 "edit_type": "replaced" | "inserted" | "deleted", # 执行的编辑类型3243 "old_source": str | None, # 之前的单元格源代码,对于 replace 和 delete 出现

3132 "cell_id": str | None, # 受影响的单元格 ID3244 "cell_id": str | None, # 编辑的单元格的 ID,当可用时

3133 "total_cells": int, # 编辑后笔记本中的总单元格数3245 "cell_type": "code" | "markdown", # 单元格类型

3246 "language": str, # 笔记本的编程语言

3247 "edit_mode": str, # 使用的编辑模式

3248 "error": str | None, # 操作失败时的错误消息

3249 "notebook_path": str, # 笔记本文件

3250 "original_file": str, # 编辑前的笔记本内容

3251 "updated_file": str, # 编辑后的笔记本内容

3134}3252}

3135```3253```

3136 3254 


3228 3346 

3229```python theme={null}3347```python theme={null}

3230{3348{

3231 "message": str, # 成功消息3349 "oldTodos": [ # 更新前的待办事项列表

3232 "stats": {"total": int, "pending": int, "in_progress": int, "completed": int},3350 {

3351 "content": str,

3352 "status": "pending" | "in_progress" | "completed",

3353 "activeForm": str,

3354 }

3355 ],

3356 "newTodos": [ # 更新后的待办事项列表

3357 {

3358 "content": str,

3359 "status": "pending" | "in_progress" | "completed",

3360 "activeForm": str,

3361 }

3362 ],

3233}3363}

3234```3364```

3235 3365 


3401 3531 

3402```python theme={null}3532```python theme={null}

3403{3533{

3404 "message": str, # 确认消息3534 "plan": str | None, # 呈现给用户的计划

3405 "approved": bool | None, # 用户是否批准了计划3535 "isAgent": bool, # 当子代理调用工具时为 True

3536 "filePath": str | None, # 当计划被保存到文件时出现

3537 "hasTaskTool": bool | None, # 可选;Agent 工具是否在当前上下文中可用

3538 "planWasEdited": bool | None, # 当用户在批准前编辑了计划时出现且为 True

3539 "awaitingLeaderApproval": bool | None, # 当队友将计划发送给团队负责人以获得批准时出现且为 True

3540 "requestId": str | None, # 该批准请求的可选 ID

3406}3541}

3407```3542```

3408 3543 


3420}3555}

3421```3556```

3422 3557 

3558结果是一个列表而不是 dict,所以 `tool_use_result` 为此工具保存一个 `list`。

3559 

3423**输出:**3560**输出:**

3424 3561 

3425```python theme={null}3562```python theme={null}

3426{3563[ # 每个资源一个条目

3427 "resources": [

3428 {3564 {

3429 "uri": str,3565 "uri": str, # 资源 URI

3430 "name": str,3566 "name": str, # 资源名称

3431 "description": str | None,3567 "mimeType": str | None, # 可选 MIME 类型

3432 "mimeType": str | None,3568 "description": str | None, # 可选描述

3433 "server": str,3569 "server": str, # 提供此资源的服务器

3434 }3570 }

3435 ],3571]

3436 "total": int,

3437}

3438```3572```

3439 3573 

3440<h3 id="readmcpresource">3574<h3 id="readmcpresource">


3457```python theme={null}3591```python theme={null}

3458{3592{

3459 "contents": [3593 "contents": [

3460 {"uri": str, "mimeType": str | None, "text": str | None, "blob": str | None}3594 {

3595 "uri": str, # 资源 URI

3596 "mimeType": str | None, # 可选 MIME 类型

3597 "text": str | None, # 文本内容,或关于二进制内容的注释

3598 "blobSavedTo": str | None, # 当 Claude Code 将二进制内容保存到磁盘时出现;保存文件的路径

3599 }

3461 ],3600 ],

3462 "server": str,3601 "error": str | None, # 当服务器无法读取资源时出现

3463}3602}

3464```3603```

3465 3604 

Details

575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 为代理结果定义输出格式。请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)了解详情 |575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | 为代理结果定义输出格式。请参阅[结构化输出](/docs/zh-CN/agent-sdk/structured-outputs)了解详情 |

576| `outputStyle` | `string` | `undefined` | 不是 `Options` 字段。改为在内联 [`settings`](/docs/zh-CN/settings) 对象或设置文件中设置 `outputStyle`。请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style) |576| `outputStyle` | `string` | `undefined` | 不是 `Options` 字段。改为在内联 [`settings`](/docs/zh-CN/settings) 对象或设置文件中设置 `outputStyle`。请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style) |

577| `pathToClaudeCodeExecutable` | `string` | 从捆绑的本地二进制文件自动解析 | Claude Code 可执行文件的路径。仅在安装期间跳过可选依赖项或您的平台不在支持的集合中时需要 |577| `pathToClaudeCodeExecutable` | `string` | 从捆绑的本地二进制文件自动解析 | Claude Code 可执行文件的路径。仅在安装期间跳过可选依赖项或您的平台不在支持的集合中时需要 |

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | 会话的权限模式 |578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | 会话的权限模式。如果您省略它,会话可以在自动模式下启动。请参阅[权限模式](/docs/zh-CN/agent-sdk/permissions#permission-modes)了解 Claude Code 如何选择启动权限模式 |

579| `permissionPromptToolName` | `string` | `undefined` | 权限提示的 MCP 工具名称 |579| `permissionPromptToolName` | `string` | `undefined` | 权限提示的 MCP 工具名称 |

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 谁回答权限提示:`'host'` 将它们路由到您的 [`canUseTool`](#canusetool) 回调或 `permissionPromptToolName` 工具,`'none'` [拒绝会提示的调用](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)。需要 Claude Code v2.1.259 或更高版本 |580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 谁回答权限提示:`'host'` 将它们路由到您的 [`canUseTool`](#canusetool) 回调或 `permissionPromptToolName` 工具,`'none'` [拒绝会提示的调用](/docs/zh-CN/agent-sdk/permissions#how-permissions-are-evaluated)。需要 Claude Code v2.1.259 或更高版本 |

581| `persistSession` | `boolean` | `true` | 当为 `false` 时,禁用会话持久化到磁盘。会话之后无法恢复 |581| `persistSession` | `boolean` | `true` | 当为 `false` 时,禁用会话持久化到磁盘。会话之后无法恢复 |


716| `reloadOutputStyles()` | 重新读取[输出样式](/docs/zh-CN/output-styles)从磁盘,以便您在会话中期添加或编辑的样式文件对运行的会话可用。使用 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 进行解决,列出重新加载后可用的样式名称。需要 Agent SDK v0.3.261 或更高版本 |716| `reloadOutputStyles()` | 重新读取[输出样式](/docs/zh-CN/output-styles)从磁盘,以便您在会话中期添加或编辑的样式文件对运行的会话可用。使用 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 进行解决,列出重新加载后可用的样式名称。需要 Agent SDK v0.3.261 或更高版本 |

717| `accountInfo()` | 返回帐户信息 |717| `accountInfo()` | 返回帐户信息 |

718| `reconnectMcpServer(serverName)` | 按名称重新连接 MCP 服务器。如果名称也匹配设置文件(如 `.mcp.json` 或 `~/.claude.json`)中的条目,Claude Code 会重新连接您通过 [`mcpServers`](#options) 或 `setMcpServers()` 配置的服务器,而不是设置文件条目。该解析顺序需要 Claude Code v2.1.257 或更高版本 |718| `reconnectMcpServer(serverName)` | 按名称重新连接 MCP 服务器。如果名称也匹配设置文件(如 `.mcp.json` 或 `~/.claude.json`)中的条目,Claude Code 会重新连接您通过 [`mcpServers`](#options) 或 `setMcpServers()` 配置的服务器,而不是设置文件条目。该解析顺序需要 Claude Code v2.1.257 或更高版本 |

719| `toggleMcpServer(serverName, enabled)` | 按名称启用或禁用 MCP 服务器,名称解析与 `reconnectMcpServer()` 相同。禁用会断开服务器连接 |719| `toggleMcpServer(serverName, enabled)` | 按名称启用或禁用 MCP 服务器,名称解析与 `reconnectMcpServer()` 相同。禁用会断开 stdio、SSE 或 HTTP 服务器的连接并移除其工具;对于您使用 `setMcpServers()` 在会话中期添加的服务器,工具移除需要 Claude Code v2.1.285 或更高版本 |

720| `setMcpServers(servers)` | 动态替换此会话的 MCP 服务器集。使用 [`McpSetServersResult`](#mcpsetserversresult) 进行解决,命名添加和删除的服务器以及任何错误 |720| `setMcpServers(servers)` | 动态替换此会话的 MCP 服务器集。使用 [`McpSetServersResult`](#mcpsetserversresult) 进行解决,命名添加和删除的服务器以及任何错误 |

721| `readMcpResource(serverName, uri)` | *Alpha.* 从连接的 MCP 服务器读取一个 MCP Apps `ui://` 资源,以便您的应用程序可以呈现工具的小部件。使用 [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) 进行解决。需要 TypeScript Agent SDK v0.3.280 或更高版本 |721| `readMcpResource(serverName, uri)` | *Alpha.* 从连接的 MCP 服务器读取一个 MCP Apps `ui://` 资源,以便您的应用程序可以呈现工具的小部件。使用 [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) 进行解决。需要 TypeScript Agent SDK v0.3.280 或更高版本 |

722| `streamInput(stream)` | 将输入消息流式传输到查询以进行多轮对话 |722| `streamInput(stream)` | 将输入消息流式传输到查询以进行多轮对话 |


1819```typescript theme={null}1819```typescript theme={null}

1820type SDKStartupFailureReason =1820type SDKStartupFailureReason =

1821 | "org_pin_api_key_conflict"1821 | "org_pin_api_key_conflict"

1822 | "provider_not_allowed"

1822 | "org_verify_failed"1823 | "org_verify_failed"

1823 | "org_pin_mismatch"1824 | "org_pin_mismatch"

1824 | "managed_settings_invalid"1825 | "managed_settings_invalid"


1841| 值 | 停止会话的原因 |1842| 值 | 停止会话的原因 |

1842| :- | :- |1843| :- | :- |

1843| `org_pin_api_key_conflict` | 托管设置[需要第一方或 Cloud 网关登录](/docs/zh-CN/authentication#restrict-login-to-your-organization),并配置了 Anthropic API 密钥、身份验证令牌或 `apiKeyHelper` |1844| `org_pin_api_key_conflict` | 托管设置[需要第一方或 Cloud 网关登录](/docs/zh-CN/authentication#restrict-login-to-your-organization),并配置了 Anthropic API 密钥、身份验证令牌或 `apiKeyHelper` |

1845| `provider_not_allowed` | 托管设置[列出此机器可能使用的 API 提供商](/docs/zh-CN/settings-reference#allowedproviders),会话设置为不在列表中的提供商,或设置未固定的端点。需要 Claude Code v2.1.285 或更高版本 |

1844| `org_verify_failed` | 登录的组织无法针对 pin 进行验证,例如由于网络故障或已撤销的令牌 |1846| `org_verify_failed` | 登录的组织无法针对 pin 进行验证,例如由于网络故障或已撤销的令牌 |

1845| `org_pin_mismatch` | 登录属于 pin 不允许的组织 |1847| `org_pin_mismatch` | 登录属于 pin 不允许的组织 |

1846| `managed_settings_invalid` | 无法读取托管策略设置,pin 未命名任何组织,或[托管模型限制](/docs/zh-CN/errors#managed-settings-block-the-default-model)为默认选项留下没有允许的模型 |1848| `managed_settings_invalid` | 无法读取托管策略设置,pin 未命名任何组织,或[托管模型限制](/docs/zh-CN/errors#managed-settings-block-the-default-model)为默认选项留下没有允许的模型 |


2059| `tool_use_id` | `string` | 此拒绝回答的 `tool_use` 块的 ID |2061| `tool_use_id` | `string` | 此拒绝回答的 `tool_use` 块的 ID |

2060| `agent_id` | `string` | 当拒绝的调用源自子代理内部时的子代理 ID。镜像主机端路由的 `can_use_tool` 上的字段 |2062| `agent_id` | `string` | 当拒绝的调用源自子代理内部时的子代理 ID。镜像主机端路由的 `can_use_tool` 上的字段 |

2061| `decision_reason_type` | `string` | 决定组件的鉴别器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |2063| `decision_reason_type` | `string` | 决定组件的鉴别器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |

2062| `decision_reason` | `string` | 来自决定组件的人类可读原因,如果可用 |2064| `decision_reason` | `string` | 来自决定组件的人类可读原因,当可用时 |

2063| `message` | `string` | 在 `tool_result` 中返回给模型的拒绝消息 |2065| `message` | `string` | 在 `tool_result` 中返回给模型的拒绝消息 |

2064 2066 

2065<h3 id="sdkpermissiondenial">2067<h3 id="sdkpermissiondenial">


3181};3183};

3182```3184```

3183 3185 

3184执行 Bash 命令,支持可选超时和后台执行。工作目录在命令之间保持不变,包括多轮会话后续轮次中运行的命令;shell 状态(如导出的环境变量)不保持。有关哪些目录更改会保持的限制,请参阅[命令之间保持什么](/docs/zh-CN/tools-reference#what-persists-between-commands)。有关设置前台上限的内容,请参阅[超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。有关后台时间限制,请参阅[后台命令](/docs/zh-CN/tools-reference#background-commands)。3186执行 Bash 命令,支持可选超时和后台执行。工作目录在命令之间保持不变,包括多轮会话后续轮次中运行的命令;shell 状态(如导出的环境变量)不保持。有关哪些目录更改会保持的限制,请参阅[命令之间保持什么](/docs/zh-CN/tools-reference#what-persists-between-commands)。有关设置前台上限的内容,请参阅[超时和输出限制](/docs/zh-CN/tools-reference#timeout-and-output-limits)。有关后台时间限制,请参阅[后台命令的时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)。

3185 3187 

3186<h3 id="monitor">3188<h3 id="monitor">

3187 Monitor3189 Monitor


4085 4087 

4086`timedOutAfterMs` 是超时时间(以毫秒为单位),当命令达到其超时并移至后台而不是显式启动时设置。`backgroundCwdHint` 在后台命令包含目录更改内置命令(如 `cd`、`pushd`、`popd` 或 `chdir`)时设置,并注意会话工作目录未更改。两个字段都需要 Claude Code v2.1.210 或更高版本。4088`timedOutAfterMs` 是超时时间(以毫秒为单位),当命令达到其超时并移至后台而不是显式启动时设置。`backgroundCwdHint` 在后台命令包含目录更改内置命令(如 `cd`、`pushd`、`popd` 或 `chdir`)时设置,并注意会话工作目录未更改。两个字段都需要 Claude Code v2.1.210 或更高版本。

4087 4089 

4088当在前台运行的子代理拥有后台命令时,该命令[在该子代理的运行结束时结束](/docs/zh-CN/tools-reference#background-commands)。Claude Code 在此类命令上将 `backgroundEndsWithFinalResponse` 设置为 `true`,并在命令存活该轮时省略该字段,如主对话或后台子代理启动的命令那样。该字段需要 Claude Code v2.1.227 或更高版本。4090当在前台运行的子代理拥有后台命令时,该命令[在该子代理的运行结束时结束](/docs/zh-CN/tools-reference#when-a-background-command-stops)。Claude Code 在此类命令上将 `backgroundEndsWithFinalResponse` 设置为 `true`,并在命令存活该轮时省略该字段,如主对话或后台子代理启动的命令那样。该字段需要 Claude Code v2.1.227 或更高版本。

4089 4091 

4090Claude Code 将 `gitOperation.commit.branch` 设置为 git 提交摘要行中命名的分支,对于在分离 HEAD 上进行的提交则省略它。该字段需要 Agent SDK v0.3.227 或更高版本。Claude Code 将 `gh pr reopen` 命令报告为 `reopened` PR 操作,这需要 Agent SDK v0.3.234 或更高版本。4092Claude Code 将 `gitOperation.commit.branch` 设置为 git 提交摘要行中命名的分支,对于在分离 HEAD 上进行的提交则省略它。该字段需要 Agent SDK v0.3.227 或更高版本。Claude Code 将 `gh pr reopen` 命令报告为 `reopened` PR 操作,这需要 Agent SDK v0.3.234 或更高版本。

4091 4093 

agent-view.md +2 −20

Details

8 8 

9Agent view 通过 `claude agents` 打开,是所有后台会话的一个屏幕:什么正在运行、什么需要你的输入、什么已完成。调度新会话,一目了然地查看它们的状态而不是滚动浏览记录,只在需要时才介入。每个后台会话都是一个完整的 Claude Code 对话,在没有终端连接的情况下继续运行,所以你可以随时打开它、回复并离开。9Agent view 通过 `claude agents` 打开,是所有后台会话的一个屏幕:什么正在运行、什么需要你的输入、什么已完成。调度新会话,一目了然地查看它们的状态而不是滚动浏览记录,只在需要时才介入。每个后台会话都是一个完整的 Claude Code 对话,在没有终端连接的情况下继续运行,所以你可以随时打开它、回复并离开。

10 10 

11<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-light.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=7a186c96ed47d6700d084d77e786be65" className="dark:hidden" alt="终端中的 Agent view:标题显示 Claude Code v2.1.140、模型、工作目录和摘要计数。会话分组在'需要输入'、'正在工作'和'已完成'下,底部有调度输入和键盘提示页脚。" width="1772" height="780" data-path="images/agent-view-light.png" />11<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=d6905012bee31f3e6b3920b09c05dd02" className="dark:hidden" alt="终端中的 Agent view。顶部的一行计算等待输入、正在工作和已完成的会话。四个会话分组在'需要输入'、'正在工作'和'已完成'下。每行显示会话的名称、其最新状态或问题以及时间。底部是用于描述新任务的输入和一行键盘提示。" width="1872" height="680" data-path="images/agent-view-light.png" />

12 12 

13<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-dark.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=a5bed7434bae368faea3a8f023b52aa2" className="hidden dark:block" alt="终端中的 Agent view:标题显示 Claude Code v2.1.140、模型、工作目录和摘要计数。会话分组在'需要输入'、'正在工作'和'已完成'下,底部有调度输入和键盘提示页脚。" width="1772" height="780" data-path="images/agent-view-dark.png" />13<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-dark.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=fc3c195bfc57e313ced1f1beb36cee93" className="hidden dark:block" alt="终端中的 Agent view。顶部的一行计算等待输入、正在工作和已完成的会话。四个会话分组在'需要输入'、'正在工作'和'已完成'下。每行显示会话的名称、其最新状态或问题以及时间。底部是用于描述新任务的输入和一行键盘提示。" width="1872" height="680" data-path="images/agent-view-dark.png" />

14 14 

15当你有多个独立任务 Claude 可以在不需要你观看每一步的情况下处理时,使用 agent view。调度一个 bug 修复、一个拉取请求审查和一个不稳定测试调查作为三行,在另一个窗口中继续工作,当一行显示它需要你或有结果时检查回来。15当你有多个独立任务 Claude 可以在不需要你观看每一步的情况下处理时,使用 agent view。调度一个 bug 修复、一个拉取请求审查和一个不稳定测试调查作为三行,在另一个窗口中继续工作,当一行显示它需要你或有结果时检查回来。

16 16 


966 966 

967Claude Code 永远不会重新启动运行[shell 命令](#run-a-shell-command)的行,无论是从 `Enter` 还是从 `claude attach`,因为那样会再次运行该命令;该行的消息和 `claude attach` 都说该命令不会再次运行。967Claude Code 永远不会重新启动运行[shell 命令](#run-a-shell-command)的行,无论是从 `Enter` 还是从 `claude attach`,因为那样会再次运行该命令;该行的消息和 `claude attach` 都说该命令不会再次运行。

968 968 

969<h4 id="terminal-host-died">

970 终端主机已死亡

971</h4>

972 

973在 Linux 和 WSL 上,主管每隔几秒检查一次每个主机进程,无论您是否打开会话,当进程已退出但其与主管的连接从未关闭时,将会话标记为失败。

974 

975* 在代理视图中,该行显示 `terminal host process died — press Enter to restart`。在它上面按 `Enter`,Claude Code 在新的主机进程上重新启动会话。

976* 从 shell,`claude attach <id>` 重新启动已标记为失败的会话。否则它报告原因并退出,告诉您运行 `claude attach <id>`。

977 

978<h4 id="session-isn’t-responding">

979 会话没有响应

980</h4>

981 

982当主管接受打开但约十秒内没有输出到达时,Claude Code 结束尝试并提供重新启动。仅仅停滞的会话,例如跨机器睡眠,不会达到此提议:主管[在打开时自己重新启动它](#read-session-state)。

983 

984* 在代理视图中,页脚显示 `Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).` 在同一行上再次按 `Enter`,Claude Code 停止无响应的进程并重新启动会话;没有第二次按下,它不会停止任何内容。

985* 从 shell,`claude attach <id>` 报告原因并退出,告诉您运行 `claude stop <id>`,然后 `claude attach <id>`。

986 

987<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">969<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

988 会话在启动前失败,并显示 `possibly low memory` 注释970 会话在启动前失败,并显示 `possibly low memory` 注释

989</h3>971</h3>

Details

384 384 

385模型别名(如 `opus`)不充当固定版本,Claude Code 无法识别的模型 ID(如应用推理配置文件 ARN)也不充当固定版本。385模型别名(如 `opus`)不充当固定版本,Claude Code 无法识别的模型 ID(如应用推理配置文件 ARN)也不充当固定版本。

386 386 

387当这些检查发现您的账户无法调用的模型时,Claude Code 会在这台机器上记住该拒绝长达一天,在此期间启动时会跳过记住的模型,而不再询问 Amazon Bedrock。Claude Code 会在距离上次检查已过十分钟后再次检查当前默认模型的记住拒绝,因此您的管理员重新启用的默认模型会恢复。要关闭此内存功能,请设置 [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/zh-CN/env-vars)。

388 

389<h3 id="when-a-model-is-disabled-mid-session">

390 当模型在会话中被禁用时

391</h3>

392 

393如果您的账户失去对会话正在运行的模型的访问权限,例如因为管理员在您的 Amazon Bedrock 账户中禁用了它,Claude Code 会将会话切换到另一个模型,而不是使每个请求都失败,并显示 `Switched to <fallback> because <model> is not available`。它尝试与启动回退相同的模型:首先尝试同一层级的早期版本,对于没有可用 Opus 版本的 Opus 会话,则使用默认 Sonnet 模型。

394 

395切换仅适用于您未固定的层级,这与启动回退的条件相同。在您选择的特定版本上的会话,或在[应用推理配置文件 ARN](#map-each-model-version-to-an-inference-profile) 上的会话,会保持其模型,没有回退模型链,请求会失败。在[自动模式](/docs/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)中,Claude Code 仅切换到自动模式在 Amazon Bedrock 上支持的模型。如果这些模型中也没有可用的,请求会失败并显示 [AWS 身份验证失败](/docs/zh-CN/errors#aws-authentication-failed),并提示启用该模型。

396 

397您配置的[回退模型链](/docs/zh-CN/model-config#fallback-model-chains)会替换层级切换:在这些拒绝上,Claude Code 会切换到您配置的回退模型。要使被拒绝的请求失败而不是切换,请设置 [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/zh-CN/env-vars)。您配置的回退链仍会在这些拒绝上切换;如果您希望每个被拒绝的请求都失败,也请移除该链。

398 

387<h2 id="cross-region-inference-profile-prefixes">399<h2 id="cross-region-inference-profile-prefixes">

388 跨区域推理配置文件前缀400 跨区域推理配置文件前缀

389</h2>401</h2>

artifacts.md +1 −1

Details

398| [环境变量](/docs/zh-CN/env-vars) | 设置 `CLAUDE_CODE_DISABLE_ARTIFACT=1` |398| [环境变量](/docs/zh-CN/env-vars) | 设置 `CLAUDE_CODE_DISABLE_ARTIFACT=1` |

399| [权限规则](/docs/zh-CN/permissions) | 将 `Artifact` 添加到 `permissions.deny` |399| [权限规则](/docs/zh-CN/permissions) | 将 `Artifact` 添加到 `permissions.deny` |

400 400 

401一旦您在 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 文件中或使用 `CLAUDE_CODE_DISABLE_ARTIFACT` 关闭 artifacts,或您的管理员在[托管设置](/docs/zh-CN/server-managed-settings)中关闭它们,任何设置文件都无法将其重新打开。在 v2.1.242 之前,[优先级堆栈](/docs/zh-CN/settings#settings-precedence)中较高位置的文件可能会重新打开 artifacts,即使较低优先级的文件设置了 `"enableArtifact": false`。401一旦您在 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 文件中或使用 `CLAUDE_CODE_DISABLE_ARTIFACT` 关闭 artifacts,或您的管理员在[托管设置](/docs/zh-CN/server-managed-settings)中关闭它们,任何设置文件都无法将其重新打开。

402 402 

403您也可以在项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中设置 `"enableArtifact": false` 来为该项目中的会话关闭 artifacts。任何文件中的 `"enableArtifact": true` 都不会将其重新打开。在项目和本地设置中支持此键需要 Claude Code v2.1.242 或更高版本。403您也可以在项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 中设置 `"enableArtifact": false` 来为该项目中的会话关闭 artifacts。任何文件中的 `"enableArtifact": true` 都不会将其重新打开。在项目和本地设置中支持此键需要 Claude Code v2.1.242 或更高版本。

404 404 

Details

194* **云提供商会话,例如 Amazon Bedrock**:仅在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 凭证,或由早期 Claude Console 登录保存的 API 密钥仍然存在于机器上时被阻止。删除它,会话就会启动。这些会话针对您的云提供商进行身份验证,其访问策略管理它们194* **云提供商会话,例如 Amazon Bedrock**:仅在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 凭证,或由早期 Claude Console 登录保存的 API 密钥仍然存在于机器上时被阻止。删除它,会话就会启动。这些会话针对您的云提供商进行身份验证,其访问策略管理它们

195* **[Anthropic 配置文件或联合凭证](#anthropic-profiles-and-federation-credentials)**:不被阻止,除非 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 凭证,或由早期 Claude Console 登录保存的 API 密钥也存在于机器上。这些密钥不检查配置文件属于哪个组织195* **[Anthropic 配置文件或联合凭证](#anthropic-profiles-and-federation-credentials)**:不被阻止,除非 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 凭证,或由早期 Claude Console 登录保存的 API 密钥也存在于机器上。这些密钥不检查配置文件属于哪个组织

196 196 

197<h3 id="restrict-which-api-providers-a-machine-may-use">

198 限制机器可能使用的 API 提供商

199</h3>

200 

201[`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 在 [托管设置](/docs/zh-CN/managed-settings) 中列出托管机器可能通过哪些服务访问 Claude,例如 Anthropic API、Amazon Bedrock 或 LLM 网关。它补充 `forceLoginMethod` 和 `forceLoginOrgUUID`,它们管理会话在与 Anthropic 通信时使用的账户。需要 Claude Code v2.1.285 或更高版本。

202 

203```json managed-settings.json theme={null}

204{

205 "forceLoginMethod": "claudeai",

206 "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],

207 "allowedProviders": ["anthropic", "bedrock"]

208}

209```

210 

211使用此文件,登录到您的 claude.ai 组织或为 Amazon Bedrock 配置的开发人员正常启动。为任何其他提供商设置的会话在启动时被拒绝,运行中切换到一个的会话在其下一个请求时被拒绝。[托管设置不允许此 API 提供商](/docs/zh-CN/errors#managed-settings-dont-allow-this-api-provider) 显示每条消息。

212 

213* **允许 LLM 网关或代理**:列出 `"customEndpoint"` 并在同一源的托管 `env` 块中设置网关的 URL。[设置参考](/docs/zh-CN/settings-reference#allowedproviders) 列出每个值并说明哪些端点变量需要托管 `env` 引脚。

214* **在托管机器上部署**:将列表放在承载您的其余策略的托管源中。条目的 [范围说明](/docs/zh-CN/settings-reference#allowedproviders) 说明服务器托管列表如何与其结合。

215* **仅服务器托管设置**:您仅在 [服务器托管设置](/docs/zh-CN/server-managed-settings) 中设置的列表仅到达获取您的组织设置的会话,因此将其视为您无法通过设备管理到达的机器的便利,而不是强制执行。[平台可用性](/docs/zh-CN/server-managed-settings#platform-availability) 列出哪些会话获取它们。

216 

197<h2 id="credential-management">217<h2 id="credential-management">

198 凭证管理218 凭证管理

199</h2>219</h2>

Details

281 从 `/permissions` 编辑规则281 从 `/permissions` 编辑规则

282</h2>282</h2>

283 283 

284要在不打开设置文件的情况下查看和编辑分类器规则,请运行 [`/permissions`](/docs/zh-CN/permissions#manage-permissions) 并选择 **Auto mode** 选项卡。该选项卡需要 Claude Code v2.1.246 或更高版本,仅当 [auto mode 对您的会话可用](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 时才会显示。284要在不打开设置文件的情况下查看和编辑分类器规则和 `environment` 条目,请运行 [`/permissions`](/docs/zh-CN/permissions#manage-permissions) 并选择 **Auto mode** 选项卡。该选项卡需要 Claude Code v2.1.246 或更高版本,仅当 [auto mode 对您的会话可用](/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode) 时才会显示。

285 285 

286该选项卡列出了来自 [分类器读取的每个作用域](#where-the-classifier-reads-configuration) 的 `allow`、`soft_deny`、`hard_deny` 和 `environment` 条目,并显示内置规则是否对每个部分生效。Claude Code 将来自 [managed settings](/docs/zh-CN/server-managed-settings) 或 `--settings` 标志的条目显示为只读,并将您在该选项卡上所做的每项更改保存到 `~/.claude/settings.json`。从该选项卡中,您可以:286Claude Code 将来自 [managed settings](/docs/zh-CN/server-managed-settings) 或 `--settings` 标志的条目显示为只读,并将您在该选项卡上所做的每项更改保存到 `~/.claude/settings.json`。

287 

288* 在 `allow`、`soft_deny` 和 `hard_deny` 部分中添加、编辑或删除规则。当您向某个部分添加第一条规则时,Claude Code 也会插入 `"$defaults"`,以便 [内置规则](#override-the-block-and-allow-rules) 保持生效。

289* 关闭或重新打开 `allow`、`soft_deny` 或 `hard_deny` 的内置规则。Claude Code 通过在您的列表中为该部分添加或删除 `"$defaults"` 来记录该选择,因此一个部分需要至少有一条您自己的规则,然后才能关闭其内置规则。

290* 在编辑器中将 `environment` 条目编辑为一个文档。如果您还没有配置任何 `environment` 条目,Claude Code 首先会询问是否替换内置环境,然后在完整的内置文本上打开编辑器。保存时,Claude Code 会将您的 `autoMode.environment` 数组替换为该文档。包含 `"$defaults"` 行以 [保留内置条目](#define-trusted-infrastructure)。

291 287 

292<h2 id="route-all-shell-commands-through-the-classifier">288<h2 id="route-all-shell-commands-through-the-classifier">

293 通过分类器路由所有 shell 命令289 通过分类器路由所有 shell 命令

Details

1387 1387 

1388`parentSettingsBehavior: "merge"` 保持 Claude Desktop 向其嵌入式 Claude Code 会话传递出站允许列表的功能;[向 Claude Desktop 会话传递策略](/docs/zh-CN/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)解释了该机制以及选择加入必须位于的位置。1388`parentSettingsBehavior: "merge"` 保持 Claude Desktop 向其嵌入式 Claude Code 会话传递出站允许列表的功能;[向 Claude Desktop 会话传递策略](/docs/zh-CN/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)解释了该机制以及选择加入必须位于的位置。

1389 1389 

1390为了防止开发者通过云提供商变量或他们自己的 `ANTHROPIC_BASE_URL` 绕过网关,请在同一文件中添加 `"allowedProviders": ["gateway"]`。Claude Code 随后会拒绝机器上未设置为云网关的每个会话,并仅允许网关在它是 `forceLoginGatewayUrl` 命名的网关或文件的 `env` 块将其 URL 设置为 `ANTHROPIC_BASE_URL` 的网关时。`claude gateway` 拒绝在设置该列表的机器上运行,因此请在网关主机上保持该密钥关闭。请参阅设置参考中的 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 条目。需要 Claude Code v2.1.285 或更高版本。

1391 

1390将 `managed-settings.json` 文件部署到每个设备,通常通过你的 MDM 平台。文件路径因平台而异。请参阅[每个机制存储策略的位置](/docs/zh-CN/managed-settings#where-each-mechanism-stores-the-policy)。1392将 `managed-settings.json` 文件部署到每个设备,通常通过你的 MDM 平台。文件路径因平台而异。请参阅[每个机制存储策略的位置](/docs/zh-CN/managed-settings#where-each-mechanism-stores-the-policy)。

1391 1393 

1392默认情况下,Windows 上的注册表策略或 macOS 上的托管首选项 plist 会替换 `managed-settings.json` 文件而不是与其合并,除了[上面的例外密钥和跨源检查](#precedence-with-other-managed-sources)。此代码片段中的所有三个密钥都遵循最高优先级源规则,因此通过组策略或配置文件传递策略的团队必须改为将所有三个密钥放在该机制中。1394默认情况下,Windows 上的注册表策略或 macOS 上的托管首选项 plist 会替换 `managed-settings.json` 文件而不是与其合并,除了[上面的例外密钥和跨源检查](#precedence-with-other-managed-sources)。此代码片段中的所有三个密钥都遵循最高优先级源规则,因此通过组策略或配置文件传递策略的团队必须改为将所有三个密钥放在该机制中。

Details

84| `--dangerously-skip-permissions` | 跳过权限提示。等同于 `--permission-mode bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)了解此操作跳过和不跳过的内容。对于使用 `--bg` 启动的会话,当主管重新启动会话时,该模式[持续存在](/docs/zh-CN/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | 跳过权限提示。等同于 `--permission-mode bypassPermissions`。请参阅[权限模式](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode)了解此操作跳过和不跳过的内容。对于使用 `--bg` 启动的会话,当主管重新启动会话时,该模式[持续存在](/docs/zh-CN/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

85| `--debug` | 启用调试模式,可选类别过滤,例如 `--debug='mcp,startup'` 或 `--debug='!1p'`。过滤器仅在 `=` 形式中绑定;空格分隔的过滤器启用调试模式而不进行过滤 | `claude --debug='mcp,startup'` |85| `--debug` | 启用调试模式,可选类别过滤,例如 `--debug='mcp,startup'` 或 `--debug='!1p'`。过滤器仅在 `=` 形式中绑定;空格分隔的过滤器启用调试模式而不进行过滤 | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | 将调试日志写入特定文件路径。隐式启用调试模式。优先于 `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | 将调试日志写入特定文件路径。隐式启用调试模式。优先于 `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--desktop` | 在当前目录上打开 [Claude Desktop 应用](/docs/zh-CN/desktop)并退出而不在终端中启动会话。添加 `--continue` 或 `--resume` 与会话 ID 以[在 Desktop 中打开该会话](/docs/zh-CN/desktop#coming-from-the-cli)。`--resume` 这里仅接受会话 ID,不接受名称或记录文件路径。不接受提示和除 `--verbose` 和 `--debug` 标志外的其他标志,因为应用自己启动会话。在 macOS 和 x64 Windows 上可用,当您使用 Claude 订阅登录时。需要 Claude Code v2.1.285 或更高版本 | `claude --desktop` |

87| `--disable-slash-commands` | 为此会话禁用所有 skills 和命令 | `claude --disable-slash-commands` |88| `--disable-slash-commands` | 为此会话禁用所有 skills 和命令 | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | 拒绝规则。裸工具名称从 Claude 的上下文中删除匹配的工具:`"Edit"` 删除 Edit,`"*"` 删除每个工具,`"mcp__*"` 删除每个 MCP 工具。作用域规则(如 `Bash(rm *)`)使工具保持可用,仅拒绝[如所写](/docs/zh-CN/permissions#bash-rule-limits)匹配的调用。命名 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 的规则在任何其他工具保持时无法删除它 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |89| `--disallowedTools`, `--disallowed-tools` | 拒绝规则。裸工具名称从 Claude 的上下文中删除匹配的工具:`"Edit"` 删除 Edit,`"*"` 删除每个工具,`"mcp__*"` 删除每个 MCP 工具。作用域规则(如 `Bash(rm *)`)使工具保持可用,仅拒绝[如所写](/docs/zh-CN/permissions#bash-rule-limits)匹配的调用。命名 [`EndConversation`](/docs/zh-CN/tools-reference#endconversation-tool-behavior) 的规则在任何其他工具保持时无法删除它 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | 为当前会话设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。选项:`low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`。可用级别取决于模型。`ultracode` 请求 `xhigh` 努力,[ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode) 打开,需要 Claude Code v2.1.203 或更高版本。覆盖此会话的 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 和 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 设置,不持续 | `claude --effort high` |90| `--effort` | 为当前会话设置[努力级别](/docs/zh-CN/model-config#adjust-effort-level)。选项:`low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`。可用级别取决于模型。`ultracode` 请求 `xhigh` 努力,[ultracode](/docs/zh-CN/workflows#let-claude-decide-with-ultracode) 打开,需要 Claude Code v2.1.203 或更高版本。覆盖此会话的 [`modelSettings`](/docs/zh-CN/settings-reference#modelsettings) 和 [`effortLevel`](/docs/zh-CN/settings-reference#effortlevel) 设置,不持续 | `claude --effort high` |


111| `--no-chrome` | 为此会话禁用[Chrome 浏览器集成](/docs/zh-CN/chrome) | `claude --no-chrome` |112| `--no-chrome` | 为此会话禁用[Chrome 浏览器集成](/docs/zh-CN/chrome) | `claude --no-chrome` |

112| `--no-session-persistence` | 禁用会话持久性,以便会话不保存到磁盘且无法恢复。仅打印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-CN/env-vars) 环境变量在任何模式下执行相同操作 | `claude -p --no-session-persistence "query"` |113| `--no-session-persistence` | 禁用会话持久性,以便会话不保存到磁盘且无法恢复。仅打印模式。[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-CN/env-vars) 环境变量在任何模式下执行相同操作 | `claude -p --no-session-persistence "query"` |

113| `--output-format` | 为打印模式指定输出格式(选项:`text`、`json`、`stream-json`) | `claude -p "query" --output-format json` |114| `--output-format` | 为打印模式指定输出格式(选项:`text`、`json`、`stream-json`) | `claude -p "query" --output-format json` |

114| `--permission-mode` | 在指定的[权限模式](/docs/zh-CN/permission-modes)中开始。接受 `default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 或 `manual` 作为 `default` 的别名。`manual` 别名选择 UI 标记为 Manual 的权限模式,需要 Claude Code v2.1.200 或更高版本;`claude --help` 列出它代替 `default`,两个值都有效。覆盖设置文件中的 `defaultMode`。没有此标志或 `--dangerously-skip-permissions`,新会话在[会话启动的权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)中描述的权限模式中启动。对于 `-p`,当没有配置任何内容时为 `default` | `claude --permission-mode plan` |115| `--permission-mode` | 在指定的[权限模式](/docs/zh-CN/permission-modes)中开始。接受 `default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` 或 `manual` 作为 `default` 的别名。`manual` 别名选择 UI 标记为 Manual 的权限模式,需要 Claude Code v2.1.200 或更高版本;`claude --help` 列出它代替 `default`,两个值都有效。覆盖设置文件中的 `defaultMode`。没有此标志或 `--dangerously-skip-permissions`,新会话在[会话启动的权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in)中描述的权限模式中启动,这也涵盖 `-p` 运行启动的内容 | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | 指定 MCP 工具以在非交互模式下处理权限提示。Claude Code 在运行第一个转之前等待该工具的 MCP 服务器连接,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 启动超时,默认 30 秒。<br /><br />提示工具无法批准标记为[需要用户交互](/docs/zh-CN/mcp#require-approval-for-a-specific-tool)的 MCP 工具:Claude Code 将其 `allow` 结果转换为拒绝。此限制需要 Claude Code v2.1.199 或更高版本 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |116| `--permission-prompt-tool` | 指定 MCP 工具以在非交互模式下处理权限提示。Claude Code 在运行第一个转之前等待该工具的 MCP 服务器连接,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 启动超时,默认 30 秒。<br /><br />提示工具无法批准标记为[需要用户交互](/docs/zh-CN/mcp#require-approval-for-a-specific-tool)的 MCP 工具:Claude Code 将其 `allow` 结果转换为拒绝。此限制需要 Claude Code v2.1.199 或更高版本 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | 在打印模式下设置谁回答权限提示。使用默认 `host`,Claude Code 将它们发送到 Agent SDK 主机或 `--permission-prompt-tool` 工具。当没有人可以回答时传递 `none`,Claude Code 改为拒绝它们。请参阅[在无人值守运行中关闭权限提示](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)。需要 Claude Code v2.1.259 或更高版本 | `claude -p --permission-prompts none "query"` |117| `--permission-prompts` | 在打印模式下设置谁回答权限提示。使用默认 `host`,Claude Code 将它们发送到 Agent SDK 主机或 `--permission-prompt-tool` 工具。当没有人可以回答时传递 `none`,Claude Code 改为拒绝它们。请参阅[在无人值守运行中关闭权限提示](/docs/zh-CN/headless#turn-off-permission-prompts-in-unattended-runs)。需要 Claude Code v2.1.259 或更高版本 | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | 从目录或 `.zip` 存档加载 plugin,或从[plugins 文件夹](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session)加载多个,仅用于此会话。每个标志采用一个路径。重复标志以获取更多路径:`--plugin-dir A --plugin-dir B.zip`。传递 plugins 文件夹需要 Claude Code v2.1.265 或更高版本 | `claude --plugin-dir ./my-plugin` |118| `--plugin-dir` | 从目录或 `.zip` 存档加载 plugin,或从[plugins 文件夹](/docs/zh-CN/plugins/create#load-a-directory-or-archive-for-one-session)加载多个,仅用于此会话。每个标志采用一个路径。重复标志以获取更多路径:`--plugin-dir A --plugin-dir B.zip`。传递 plugins 文件夹需要 Claude Code v2.1.265 或更高版本 | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | 从 URL 获取 plugin `.zip` 存档,仅用于此会话。重复标志以获取多个 plugins,或在单个引用值中传递空格分隔的 URL | `claude --plugin-url https://example.com/plugin.zip` |119| `--plugin-url` | 从 URL 获取 plugin `.zip` 存档,仅用于此会话。重复标志以获取多个 plugins,或在单个引用值中传递空格分隔的 URL | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | 打印响应而不进行交互模式(有关编程使用详情,请参阅 [Agent SDK 文档](/docs/zh-CN/agent-sdk/overview)) | `claude -p "query"` |120| `--print`, `-p` | 打印响应而不进行交互模式(有关编程使用详情,请参阅 [Agent SDK 文档](/docs/zh-CN/agent-sdk/overview))。对于在仍在运行的后台会话上 `--resume`,请参阅[恢复会话](/docs/zh-CN/sessions#resume-a-running-background-session) | `claude -p "query"` |

120| `--prompt-suggestions` | 在生成提示建议的每个转之后发出 `prompt_suggestion` 消息,其中包含预测的下一个用户提示;非常短的对话可能不会产生任何。需要 `--print`、`--output-format stream-json` 和 `--verbose`。请参阅[提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |121| `--prompt-suggestions` | 在生成提示建议的每个转之后发出 `prompt_suggestion` 消息,其中包含预测的下一个用户提示;非常短的对话可能不会产生任何。需要 `--print`、`--output-format stream-json` 和 `--verbose`。请参阅[提示建议](/docs/zh-CN/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

121| `--ref <branch>` | 使用 `--environment`,基于命名的 ref 而不是本地 `HEAD` 的新会话检出 | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |122| `--ref <branch>` | 使用 `--environment`,基于命名的 ref 而不是本地 `HEAD` 的新会话检出 | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |

122| `--remote` | `--cloud` 的已弃用别名,包括现有会话形式 | `claude --remote "Fix the login bug"` |123| `--remote` | `--cloud` 的已弃用别名,包括现有会话形式 | `claude --remote "Fix the login bug"` |


124| `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,[远程控制](/docs/zh-CN/remote-control)自动生成会话名称的前缀。默认为您的机器主机名,生成名称如 `myhost-graceful-unicorn`。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果 | `claude remote-control --remote-control-session-name-prefix dev-box` |125| `--remote-control-session-name-prefix <prefix>` | 当未设置显式名称时,[远程控制](/docs/zh-CN/remote-control)自动生成会话名称的前缀。默认为您的机器主机名,生成名称如 `myhost-graceful-unicorn`。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以获得相同效果 | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | 从 stdin 重新发出用户消息回到 stdout 以进行确认。需要 `--input-format stream-json` 和 `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |126| `--replay-user-messages` | 从 stdin 重新发出用户消息回到 stdout 以进行确认。需要 `--input-format stream-json` 和 `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | 在受限模式下启动。当评估工具在共享机器上驱动 `claude` 且 Claude Code 不得运行命令或读取该机器的用户和项目设置时使用。Claude Code 删除运行命令或代码的内置工具和 WebFetch,除非您在 `--tools` 中单独命名它们,而不是通过 `default` 预设。它还将内置文件工具限制在[工作目录](/docs/zh-CN/permissions#working-directories),仅加载[托管设置](/docs/zh-CN/managed-settings)和 `--settings`,拒绝 [`bypassPermissions`](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode),并[拒绝从受限会话创建云会话](/docs/zh-CN/errors#cloud-sessions-cannot-be-created-from-a-restricted-session)。需要 Claude Code v2.1.248 或更高版本 | `claude --restricted -p "query"` |127| `--restricted` | 在受限模式下启动。当评估工具在共享机器上驱动 `claude` 且 Claude Code 不得运行命令或读取该机器的用户和项目设置时使用。Claude Code 删除运行命令或代码的内置工具和 WebFetch,除非您在 `--tools` 中单独命名它们,而不是通过 `default` 预设。它还将内置文件工具限制在[工作目录](/docs/zh-CN/permissions#working-directories),仅加载[托管设置](/docs/zh-CN/managed-settings)和 `--settings`,拒绝 [`bypassPermissions`](/docs/zh-CN/permission-modes#skip-all-checks-with-bypasspermissions-mode),并[拒绝从受限会话创建云会话](/docs/zh-CN/errors#cloud-sessions-cannot-be-created-from-a-restricted-session)。需要 Claude Code v2.1.248 或更高版本 | `claude --restricted -p "query"` |

127| `--resume`, `-r` | 按 ID 或名称恢复特定会话,或显示交互式选择器以选择会话。代替 ID,您可以传递会话的 `.jsonl` [记录文件](/docs/zh-CN/sessions#where-transcripts-are-stored)的绝对路径。选择器和名称搜索包括使用 `/add-dir` 添加此目录的会话。当您传递会话 ID 时,Claude Code 搜索当前项目目录及其 git worktrees,然后搜索此机器上的所有其他项目。在 v2.1.223 之前,ID 搜索仅涵盖当前项目目录及其 git worktrees。[后台会话](/docs/zh-CN/agent-view)在选择器中显示,标记为 `bg` | `claude --resume auth-refactor` |128| `--resume`, `-r` | 按 ID 或名称恢复特定会话,或显示交互式选择器以选择会话。代替 ID,您可以传递会话的 `.jsonl` [记录文件](/docs/zh-CN/sessions#where-transcripts-are-stored)的绝对路径。选择器和名称搜索包括使用 `/add-dir` 添加此目录的会话。当您传递会话 ID 时,Claude Code 搜索当前项目目录及其 git worktrees,然后搜索此机器上的所有其他项目。在 v2.1.223 之前,ID 搜索仅涵盖当前项目目录及其 git worktrees。[后台会话](/docs/zh-CN/agent-view)在选择器中显示,标记为 `bg`。恢复仍在运行的[打开该会话](/docs/zh-CN/sessions#resume-a-running-background-session)在此终端中通过 `claude attach`,您在命令行上传递的提示作为其下一个转进行。在 v2.1.285 之前,Claude Code 拒绝并打印 `claude attach` 命令以改为运行 | `claude --resume auth-refactor` |

128| `--safe-mode` | 禁用所有自定义以排除故障的损坏配置:CLAUDE.md、skills、plugins、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载。身份验证、模型选择、内置工具和权限正常工作,这与 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) 不同。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管 plugins、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不适用。用于检查自定义是否触发[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)。设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars) | `claude --safe-mode` |129| `--safe-mode` | 禁用所有自定义以排除故障的损坏配置:CLAUDE.md、skills、plugins、hooks、MCP 服务器、自定义命令和代理、输出样式、工作流、自定义主题、自定义快捷键、状态行和文件建议命令、LSP 服务器和自动内存不加载。身份验证、模型选择、内置工具和权限正常工作,这与 [`--bare`](/docs/zh-CN/headless#start-faster-with-bare-mode) 不同。托管设置策略仍然适用,包括策略配置的 hooks、状态行和文件建议命令;托管 plugins、托管 skills、托管 CLAUDE.md 和策略配置的 MCP 服务器不适用。用于检查自定义是否触发[自动模型回退](/docs/zh-CN/model-config#automatic-model-fallback)。设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars) | `claude --safe-mode` |

129| `--session-id` | 为对话使用特定的会话 ID(必须是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |130| `--session-id` | 为对话使用特定的会话 ID(必须是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | 要加载的设置源的逗号分隔列表(`user`、`project`、`local`)。请参阅[代理视图](/docs/zh-CN/agent-view#what-carries-over-when-you-background)和[代理团队](/docs/zh-CN/agent-teams#context-and-communication)以了解从此会话启动的会话继承列表 | `claude --setting-sources user,project` |131| `--setting-sources` | 要加载的设置源的逗号分隔列表(`user`、`project`、`local`)。请参阅[代理视图](/docs/zh-CN/agent-view#what-carries-over-when-you-background)和[代理团队](/docs/zh-CN/agent-teams#context-and-communication)以了解从此会话启动的会话继承列表 | `claude --setting-sources user,project` |

Details

439 439 

440* **Claude 运行的命令**:云环境不设置自己的命令超时,因此 Bash 工具的默认值适用。Claude 默认等待 2 分钟的命令,最多可以要求 10 分钟。440* **Claude 运行的命令**:云环境不设置自己的命令超时,因此 Bash 工具的默认值适用。Claude 默认等待 2 分钟的命令,最多可以要求 10 分钟。

441 441 

442 当命令达到其[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)时,Claude Code [将其移到后台](/docs/zh-CN/tools-reference#background-commands),而不是停止它,除非命令以 `sleep` 开头。以这种方式移动的命令可以继续运行最多 30 分钟,然后 Claude Code 在其[后台时间限制](/docs/zh-CN/tools-reference#background-commands)处停止它。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为 `1800000` 毫秒以上会延长该限制以及前台默认值。442 当命令达到其[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)时,Claude Code [将其移到后台](/docs/zh-CN/tools-reference#foreground-commands-that-move-to-the-background),而不是停止它,除非命令以 `sleep` 开头。以这种方式移动的命令可以继续运行最多 30 分钟,然后 Claude Code 在其[后台时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)处停止它。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为 `1800000` 毫秒以上会延长该限制以及前台默认值。

443* **SessionStart hooks**:Claude Code 在 600 秒后取消 `command` hook,除非您在 hook 条目上设置 [`timeout`](/docs/zh-CN/hooks#common-fields)(以秒为单位)。Claude Code 不会对您使用 [`async: true`](/docs/zh-CN/hooks#run-hooks-in-the-background) 运行的 hook 强制执行超时。443* **SessionStart hooks**:Claude Code 在 600 秒后取消 `command` hook,除非您在 hook 条目上设置 [`timeout`](/docs/zh-CN/hooks#common-fields)(以秒为单位)。Claude Code 不会对您使用 [`async: true`](/docs/zh-CN/hooks#run-hooks-in-the-background) 运行的 hook 强制执行超时。

444* **设置脚本**:花费超过大约五分钟的脚本不会被缓存。[脚本要求](#script-requirements)涵盖如何保持在该时间以下。444* **设置脚本**:花费超过大约五分钟的脚本不会被缓存。[脚本要求](#script-requirements)涵盖如何保持在该时间以下。

445* **空闲会话**:会话在一段时间不活动后停止,其 VM 被回收。[设置环境变量](#set-environment-variables)描述会话在每种情况下会获取什么,[环境已过期](/docs/zh-CN/claude-code-on-the-web#environment-expired)涵盖如何重新打开 VM 被回收的会话。445* **空闲会话**:会话在一段时间不活动后停止,其 VM 被回收。[设置环境变量](#set-environment-variables)描述会话在每种情况下会获取什么,[环境已过期](/docs/zh-CN/claude-code-on-the-web#environment-expired)涵盖如何重新打开 VM 被回收的会话。

commands.md +1 −1

Details

132| `/remote-control` | 使此会话可从 claude.ai 进行 [Remote Control](/docs/zh-CN/remote-control)。在未登录时运行它会打印 Remote Control 需要 claude.ai 订阅并告诉你如何登录;在 v2.1.206 之前它报告 `Unknown command: /remote-control`。别名:`/rc` |132| `/remote-control` | 使此会话可从 claude.ai 进行 [Remote Control](/docs/zh-CN/remote-control)。在未登录时运行它会打印 Remote Control 需要 claude.ai 订阅并告诉你如何登录;在 v2.1.206 之前它报告 `Unknown command: /remote-control`。别名:`/rc` |

133| `/remote-env` | 为你从 CLI 启动的 cloud sessions 选择默认[云环境](/docs/zh-CN/cloud-environments#select-an-environment-from-the-cli) |133| `/remote-env` | 为你从 CLI 启动的 cloud sessions 选择默认[云环境](/docs/zh-CN/cloud-environments#select-an-environment-from-the-cli) |

134| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。没有名称,从对话历史自动生成一个。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本。从每个重命名表面,包括 claude.ai 和桌面应用,Claude Code 用空格替换新名称中的控制和不可见字符,并将名称限制在 200 个字符。如果名称在移除不可见字符后为空,Claude Code 拒绝它并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度限制需要 Claude Code v2.1.221 或更高版本。如果这台机器上的另一个活跃会话已经使用你传递的名称,Claude Code 应用[它的变体](/docs/zh-CN/sessions#name-your-sessions) |134| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。没有名称,从对话历史自动生成一个。也可在非交互模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更高版本。从每个重命名表面,包括 claude.ai 和桌面应用,Claude Code 用空格替换新名称中的控制和不可见字符,并将名称限制在 200 个字符。如果名称在移除不可见字符后为空,Claude Code 拒绝它并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度限制需要 Claude Code v2.1.221 或更高版本。如果这台机器上的另一个活跃会话已经使用你传递的名称,Claude Code 应用[它的变体](/docs/zh-CN/sessions#name-your-sessions) |

135| `/resume [session]` | 按 ID 或名称恢复对话,或打开会话选择器。[后台会话](/docs/zh-CN/agent-view)在选择器中标记为 `bg` 出现;仍在运行的会话无法在此处恢复,所以从 `claude agents` 附加到它或先在那里停止它。别名:`/continue` |135| `/resume [session]` | 按 ID 或名称恢复对话,或打开会话选择器。[后台会话](/docs/zh-CN/agent-view)在选择器中标记为 `bg` 出现。恢复仍在运行的会话,从选择器或按 ID 或名称,[打开该会话](/docs/zh-CN/sessions#resume-a-running-background-session):你的当前对话移到后台,此终端附加到运行的会话。在空提示符上按 `←` 返回代理视图,它也列出你离开的对话。在 v2.1.285 之前,Claude Code 拒绝并告诉你使用 `claude attach` 打开会话或先停止它。别名:`/continue` |

136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-CN/code-review#review-a-diff-locally) 的别名:审查当前差异,或你传递的 PR 号、分支或路径,例如 `/review 1234`,并采用相同的工作量级别和标志。没有给定级别时,审查重用你输入的最后一个 `low` 到 `max` 级别;有关确切规则,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。对于深度云审查,使用 [`/code-review ultra`](/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,运行 GitHub 拉取请求号的单遍、只读审查,在运行不带参数时列出打开的 PR 以选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多代理引擎 |136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-CN/code-review#review-a-diff-locally) 的别名:审查当前差异,或你传递的 PR 号、分支或路径,例如 `/review 1234`,并采用相同的工作量级别和标志。没有给定级别时,审查重用你输入的最后一个 `low` 到 `max` 级别;有关确切规则,请参阅[本地审查差异](/docs/zh-CN/code-review#review-a-diff-locally)。对于深度云审查,使用 [`/code-review ultra`](/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,运行 GitHub 拉取请求号的单遍、只读审查,在运行不带参数时列出打开的 PR 以选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多代理引擎 |

137| `/rewind` | 倒带对话和/或代码到上一个点,或从选定的消息总结。请参阅[检查点](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |137| `/rewind` | 倒带对话和/或代码到上一个点,或从选定的消息总结。请参阅[检查点](/docs/zh-CN/checkpointing)。别名:`/checkpoint`、`/undo` |

138| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 启动并驱动你的项目应用以查看更改工作,而不仅仅是通过测试。请参阅[运行和验证你的应用](/docs/zh-CN/skills#run-and-verify-your-app) |138| `/run` | **[Skill](/docs/zh-CN/skills#bundled-skills)。** 启动并驱动你的项目应用以查看更改工作,而不仅仅是通过测试。请参阅[运行和验证你的应用](/docs/zh-CN/skills#run-and-verify-your-app) |

Details

1634 1634 

1635如果您需要更大的窗口而不是更小的对话,Fable 模型、Sonnet 5 及更高版本、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 万令牌的上下文窗口。有关按计划的可用性以及如何选择 `[1m]` 模型变体,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。压缩在更大的限制下以相同的方式工作。1635如果您需要更大的窗口而不是更小的对话,Fable 模型、Sonnet 5 及更高版本、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 万令牌的上下文窗口。有关按计划的可用性以及如何选择 `[1m]` 模型变体,请参阅[扩展上下文](/docs/zh-CN/model-config#extended-context)。压缩在更大的限制下以相同的方式工作。

1636 1636 

1637Sonnet 5.5 和 Sonnet 5 以 1M 上下文窗口运行,没有 `[1m]` 变体可选择。有关其自动压缩阈值和 LLM 网关异常,请参阅[Sonnet 5.5 和 Sonnet 5 上下文窗口](/docs/zh-CN/model-config#sonnet-5-5-and-sonnet-5-context-window)。1637Sonnet 5.5 和 Sonnet 5 以 1M 上下文窗口运行,没有 `[1m]` 变体可选择。有关其自动压缩阈值,请参阅[Sonnet 5.5 和 Sonnet 5 上下文窗口](/docs/zh-CN/model-config#sonnet-5-5-and-sonnet-5-context-window),以及[网关后面的上下文窗口](/docs/zh-CN/model-config#context-window-behind-a-gateway),了解当您将 `ANTHROPIC_BASE_URL` 设置为 [LLM 网关](/docs/zh-CN/llm-gateway)时 Claude Code 如何调整窗口大小。

1638 1638 

1639自动压缩运行的位置取决于您的模型和配置。有关每个模型的边界,请参阅[默认自动压缩阈值](/docs/zh-CN/model-config#default-auto-compact-thresholds),如果 Claude Code 为您的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)假设了错误的窗口,请参阅[更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。1639自动压缩运行的位置取决于您的模型和配置。有关每个模型的边界,请参阅[默认自动压缩阈值](/docs/zh-CN/model-config#default-auto-compact-thresholds),如果 Claude Code 为您的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)假设了错误的窗口,请参阅[更正网关或自定义模型 ID 的窗口](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。

1640 1640 

costs.md +1 −1

Details

51 51 

52该行中的未命中、预期重建以及热或冷部分的含义如下:52该行中的未命中、预期重建以及热或冷部分的含义如下:

53 53 

54* **Misses(未命中)**:重新处理缓存已保存内容的请求,包括最后一次未命中的时间以及这些请求写回缓存的令牌数。当请求重新处理了超过 5% 且至少 2,000 个令牌的内容时,Claude Code 会将请求计为未命中,这些内容本可以从缓存中读取。[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)列出了常见原因。当 Claude Code 能够识别最后一次未命中的可能原因时,该行也会命名它,例如 `likely cause: tool definitions changed`。可能原因文本需要 Claude Code v2.1.260 或更高版本。54* **Misses(未命中)**:重新处理缓存已保存内容的请求,包括最后一次未命中的时间以及这些请求写回缓存的令牌数。[使缓存失效的操作](/docs/zh-CN/prompt-caching#actions-that-invalidate-the-cache)列出了常见原因。当 Claude Code 能够识别最后一次未命中的可能原因时,该行也会命名它,例如 `likely cause: tool definitions changed`。可能原因文本需要 Claude Code v2.1.260 或更高版本。

55* **Expected rebuilds(预期重建)**:当 Claude Code 本身刚刚重写对话时,通过[压缩](/docs/zh-CN/prompt-caching#compacting-the-conversation)或从上下文中清除旧工具结果,它会将相同类型的未命中计为预期重建。此部分仅在至少发生过一次预期重建后出现。55* **Expected rebuilds(预期重建)**:当 Claude Code 本身刚刚重写对话时,通过[压缩](/docs/zh-CN/prompt-caching#compacting-the-conversation)或从上下文中清除旧工具结果,它会将相同类型的未命中计为预期重建。此部分仅在至少发生过一次预期重建后出现。

56* **Warm or cold(热或冷)**:缓存的前缀是否仍在其[缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)内,以及生效的 TTL。当缓存冷时,该行显示会话已空闲多长时间。当没有响应报告缓存令牌时,该行以 `no prompt caching reported by the API` 结尾。56* **Warm or cold(热或冷)**:缓存的前缀是否仍在其[缓存生命周期](/docs/zh-CN/prompt-caching#cache-lifetime)内,以及生效的 TTL。当缓存冷时,该行显示会话已空闲多长时间。当没有响应报告缓存令牌时,该行以 `no prompt caching reported by the API` 结尾。

57 57 

desktop.md +8 −0

Details

967 967 

968要将 CLI 会话移动到 Desktop,在终端中运行 `/desktop`。Claude 保存你的会话并在桌面应用中打开它,然后退出 CLI。此命令在 macOS 和 x64 Windows 上可用,当你使用 Claude 订阅登录时。它不适用于 API 密钥身份验证或 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。968要将 CLI 会话移动到 Desktop,在终端中运行 `/desktop`。Claude 保存你的会话并在桌面应用中打开它,然后退出 CLI。此命令在 macOS 和 x64 Windows 上可用,当你使用 Claude 订阅登录时。它不适用于 API 密钥身份验证或 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。

969 969 

970从你的 shell,[`claude --desktop`](/docs/zh-CN/cli-reference#cli-flags) 直接打开 Desktop,无需启动终端会话。它需要 Claude Code v2.1.285 或更高版本,并具有与 `/desktop` 相同的平台和登录要求。没有其他参数时,它在当前目录中打开 Desktop。要在 Desktop 中打开现有的 CLI 会话,添加 `--continue` 以获取此目录中最近的对话,或使用 `--resume` 和 `/status` 显示的会话 ID:

971 

972```bash theme={null}

973claude --desktop --resume <session-id>

974```

975 

976Claude Code 打印 `Opening session <session-id> in Claude Desktop`,会话在应用中打开,命令退出。会话名称不能代替 ID。Claude Code 不会移动在另一个终端中打开或仍在后台运行的会话。如果未安装 Claude Desktop,命令会打印下载链接并退出。

977 

970你也可以从 Desktop 内部使用 `/resume` 选择 CLI 会话。此命令在本地会话中可用,不在 SSH、WSL 或云会话中可用。978你也可以从 Desktop 内部使用 `/resume` 选择 CLI 会话。此命令在本地会话中可用,不在 SSH、WSL 或云会话中可用。

971 979 

972要在 Desktop 中继续终端会话:980要在 Desktop 中继续终端会话:

env-vars.md +8 −6

Details

56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59赋值行在成功时不会打印任何内容,因此在运行 `claude` 之前,通过在同一 shell 中打印变量来确认它已设置:59赋值行在成功时不会打印任何内容。要确认变量已设置,请在同一 shell 中打印它:

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS, Linux, WSL">62 <Tab title="macOS, Linux, WSL">


127数值变量(如超时、令牌预算和重试次数)除了接受纯数字外,还接受科学记数法和数字分隔符拼写,除非变量的行注明仅接受纯数字。例如,Claude Code 将 `2e3` 读作 2000,将 `64_000` 读作 64000。在 v2.1.211 之前,这些拼写可能会无声地设置一个更小的值,例如 `1e6` 将超时设置为 1。127数值变量(如超时、令牌预算和重试次数)除了接受纯数字外,还接受科学记数法和数字分隔符拼写,除非变量的行注明仅接受纯数字。例如,Claude Code 将 `2e3` 读作 2000,将 `64_000` 读作 64000。在 v2.1.211 之前,这些拼写可能会无声地设置一个更小的值,例如 `1e6` 将超时设置为 1。

128 128 

129<Note>129<Note>

130 对于打开或关闭行为的变量,设置 `1` 或 `true` 以打开,设置 `0` 或 `false` 以关闭,不区分大小写。130 对于打开或关闭行为的变量,设置 `1`、`true`、`yes` 或 `on` 以打开,设置 `0`、`false`、`no` 或 `off` 以关闭,不区分大小写。

131 131 

132 某些变量仅读取您是否设置了它们,因此任何非空值(包括 `0`)都会打开该行为,而通过取消设置变量或将其设置为空值来关闭该行为。这些变量的工作方式如下:132 某些变量仅读取您是否设置了它们,因此任何非空值(包括 `0`)都会打开该行为,而通过取消设置变量或将其设置为空值来关闭该行为。这些变量的工作方式如下:

133 133 


192| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的正文空闲超时,当没有字节到达时中止流式模型响应。设置为 `0` 以关闭超时,例如当缓慢的 [网关](/docs/zh-CN/llm-gateway) 或本地模型在块之间暂停超过 5 分钟时,或 `1` 以为每个提供商保持打开。未设置时,超时在除直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 之外的提供商上处于活跃状态。[流监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) 独立运行,即使您在此处设置 `0`,也会中止长时间的无声暂停 |192| `API_FORCE_IDLE_TIMEOUT` | 覆盖 5 分钟的正文空闲超时,当没有字节到达时中止流式模型响应。设置为 `0` 以关闭超时,例如当缓慢的 [网关](/docs/zh-CN/llm-gateway) 或本地模型在块之间暂停超过 5 分钟时,或 `1` 以为每个提供商保持打开。未设置时,超时在除直接 Anthropic API、[Claude Platform on AWS](/docs/zh-CN/claude-platform-on-aws) 和设置了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 之外的提供商上处于活跃状态。[流监视程序](/docs/zh-CN/network-config#streaming-idle-watchdogs) 独立运行,即使您在此处设置 `0`,也会中止长时间的无声暂停 |

193| `API_TIMEOUT_MS` | API 请求的超时时间(毫秒)(默认值:600000,或 10 分钟;最大值:2147483647)。在缓慢网络上请求超时或通过代理路由时增加此值。超过最大值的值会导致底层计时器溢出,导致请求立即失败 |193| `API_TIMEOUT_MS` | API 请求的超时时间(毫秒)(默认值:600000,或 10 分钟;最大值:2147483647)。在缓慢网络上请求超时或通过代理路由时增加此值。超过最大值的值会导致底层计时器溢出,导致请求立即失败 |

194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API 密钥用于身份验证(参见 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API 密钥用于身份验证(参见 [Amazon Bedrock API 密钥](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | 前台 Bash 或 PowerShell 工具命令的默认超时时间(毫秒)(默认值:120000,或 2 分钟)。超过 30 分钟的默认值也成为后台命令的默认 [时间限制](/docs/zh-CN/tools-reference#background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |195| `BASH_DEFAULT_TIMEOUT_MS` | 前台 Bash 或 PowerShell 工具命令的默认超时时间(毫秒)(默认值:120000,或 2 分钟)。超过 30 分钟的默认值也成为后台命令的默认 [时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |

196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。参见 [输出限制](/docs/zh-CN/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 读回到命令结果中的 bash 输出的最大字符数(默认值:30000;最大值:150000)。如果您设置了 [`bashOutputMaxChars`](/docs/zh-CN/settings-reference#bashoutputmaxchars) 设置,Claude Code 会忽略此变量。参见 [输出限制](/docs/zh-CN/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | 模型可以为前台 Bash 或 PowerShell 工具命令设置的最大超时时间(毫秒)(默认值:600000,或 10 分钟)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的较大者。超过 2 小时的有效上限也成为后台命令的最大 [时间限制](/docs/zh-CN/tools-reference#background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |197| `BASH_MAX_TIMEOUT_MS` | 模型可以为前台 Bash 或 PowerShell 工具命令设置的最大超时时间(毫秒)(默认值:600000,或 10 分钟)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的较大者。超过 2 小时的有效上限也成为后台命令的最大 [时间限制](/docs/zh-CN/tools-reference#time-limit-for-background-commands)。后台时间限制需要 Claude Code v2.1.285 或更高版本 |

198| `BETA_TRACING_ENDPOINT` | [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta) 的 OTLP 端点:使用 `ENABLE_BETA_TRACING_DETAILED=1`,日志和跟踪转到那里而不是配置的导出器。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |198| `BETA_TRACING_ENDPOINT` | [详细测试版跟踪](/docs/zh-CN/monitoring-usage#traces-beta) 的 OTLP 端点:使用 `ENABLE_BETA_TRACING_DETAILED=1`,日志和跟踪转到那里而不是配置的导出器。在您的 shell、用户设置或托管设置中设置它。在 [项目和本地设置](/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |

199| `CCR_FORCE_BUNDLE` | 设置为 `1` 以强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 捆绑并上传您的本地存储库,而不是从其远程克隆 |199| `CCR_FORCE_BUNDLE` | 设置为 `1` 以强制 [`claude --cloud`](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github) 捆绑并上传您的本地存储库,而不是从其远程克隆 |

200| `CLAUDECODE` | 在 Claude Code 生成的子进程中设置为 `1`(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令、stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程)。IDE 扩展也在其集成终端中设置此项。用于检测脚本何时在 Claude Code 生成的子进程内运行。要检查当前进程是由工具调用或 hook 直接生成的,而不是在 Claude Code 启动的 stdio MCP 服务器内,请改用 `CLAUDE_CODE_CHILD_SESSION` |200| `CLAUDECODE` | 在 Claude Code 生成的子进程中设置为 `1`(Bash 和 PowerShell 工具、tmux 会话、[hook](/docs/zh-CN/hooks) 命令、[状态行](/docs/zh-CN/statusline) 命令、stdio [MCP 服务器](/docs/zh-CN/mcp) 子进程)。IDE 扩展也在其集成终端中设置此项。用于检测脚本何时在 Claude Code 生成的子进程内运行。要检查当前进程是由工具调用或 hook 直接生成的,而不是在 Claude Code 启动的 stdio MCP 服务器内,请改用 `CLAUDE_CODE_CHILD_SESSION` |


263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 设置为 `1` 以禁用文件 [checkpointing](/docs/zh-CN/checkpointing)。`/rewind` 命令将无法恢复代码更改。覆盖 [`fileCheckpointingEnabled`](/docs/zh-CN/settings-reference#filecheckpointingenabled) 设置 |

264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以删除内置提交和 PR 工作流说明以及 Claude 上下文中的 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 设置为 `1` 以删除内置提交和 PR 工作流说明以及 Claude 上下文中的 git 状态快照。在使用您自己的 git 工作流 skills 时很有用。当设置时优先于 [`includeGitInstructions`](/docs/zh-CN/settings-reference#includegitinstructions) 设置 |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动将 Opus 4.0 和 4.1 重新映射到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 设置为 `1` 以防止在 Anthropic API 上自动将 Opus 4.0 和 4.1 重新映射到当前 Opus 版本。在您想有意固定较旧模型时使用。重新映射不在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上运行 |

266| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | 设置为 `1` 以停止 Claude Code 在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#when-a-model-is-disabled-mid-session) 和 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai#when-a-model-is-disabled-mid-session) 上在您的帐户在会话中途失去对会话模型的访问权限时切换到较旧的模型;拒绝的请求立即失败。您配置的 [回退模型链](/docs/zh-CN/model-config#fallback-model-chains) 仍在该拒绝时切换,[启动模型检查](/docs/zh-CN/amazon-bedrock#startup-model-checks) 仍在启动时回退。需要 Claude Code v2.1.285 或更高版本 |

266| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您终端的本机选择复制行为 |267| `CLAUDE_CODE_DISABLE_MOUSE` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用鼠标跟踪。使用 `PgUp` 和 `PgDn` 的键盘滚动仍然有效。使用此选项保持您终端的本机选择复制行为 |

267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。当您希望滚轮滚动在 Claude Code 内工作但不希望点击定位光标、展开工具输出或打开链接时使用此选项。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |268| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 设置为 `1` 以在 [全屏呈现](/docs/zh-CN/fullscreen) 中禁用点击、拖动和悬停处理,同时保持鼠标滚轮滚动。当您希望滚轮滚动在 Claude Code 内工作但不希望点击定位光标、展开工具输出或打开链接时使用此选项。当两者都设置时,`CLAUDE_CODE_DISABLE_MOUSE` 优先。需要 Claude Code v2.1.195 或更高版本 |

268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 设置为 `1` 以停止 Claude Code 在 API 请求因连接级错误(如连接重置或 TLS 握手错误)失败时重新读取 [mTLS 客户端证书和密钥](/docs/zh-CN/network-config#mtls-authentication)。禁用重新加载后,Claude Code 仅在下次应用设置或下次启动时加载轮换的文件。需要 Claude Code v2.1.232 或更高版本 |269| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 设置为 `1` 以停止 Claude Code 在 API 请求因连接级错误(如连接重置或 TLS 握手错误)失败时重新读取 [mTLS 客户端证书和密钥](/docs/zh-CN/network-config#mtls-authentication)。禁用重新加载后,Claude Code 仅在下次应用设置或下次启动时加载轮换的文件。需要 Claude Code v2.1.232 或更高版本 |


352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、hooks 和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下,Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限的 Windows 安装上工作。进程范围绕过无论此设置如何都永远不会覆盖 Group Policy `MachinePolicy` 或 `UserPolicy` |353| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 设置为 `1` 以停止 Claude Code 在为工具调用、hooks 和状态行命令生成 PowerShell 时传递 `-ExecutionPolicy Bypass`,并改为尊重机器的有效执行策略。默认情况下,Claude Code 在进程范围内绕过执行策略,以便 `.ps1` 脚本和模块导入在默认受限的 Windows 安装上工作。进程范围绕过无论此设置如何都永远不会覆盖 Group Policy `MachinePolicy` 或 `UserPolicy` |

353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在 [非交互模式](/docs/zh-CN/headless#background-tasks-at-exit) 中使用 `-p` 标志后,在最后一个转向后等待后台子代理和工作流的空闲等待的上限(毫秒)。每次 Claude 采取转向处理后台结果时,空闲等待重新开始。默认值:`600000`,或 10 分钟。当空闲等待达到上限时,Claude Code 停止等待剩余的后台任务并退出。设置为 `0` 以无限期等待。此上限与适用于纯后台 shell 的五秒宽限期分开。需要 Claude Code v2.1.182 或更高版本 |354| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在 [非交互模式](/docs/zh-CN/headless#background-tasks-at-exit) 中使用 `-p` 标志后,在最后一个转向后等待后台子代理和工作流的空闲等待的上限(毫秒)。每次 Claude 采取转向处理后台结果时,空闲等待重新开始。默认值:`600000`,或 10 分钟。当空闲等待达到上限时,Claude Code 停止等待剩余的后台任务并退出。设置为 `0` 以无限期等待。此上限与适用于纯后台 shell 的五秒宽限期分开。需要 Claude Code v2.1.182 或更高版本 |

354| `CLAUDE_CODE_PROCESS_WRAPPER` | 通过给定为 argv 前缀(如 `/opt/corp/launcher`)的企业启动器启动 Claude Code 从其自己的二进制文件启动的进程,例如托管 [代理视图](/docs/zh-CN/agent-view) 会话的后台服务。在用户或 [托管设置](/docs/zh-CN/managed-settings) 的 `env` 块中设置它,而不是作为 shell 导出,以便分离的后台服务继承它;项目和本地设置无法设置它。等同于 [`processWrapper` 设置](/docs/zh-CN/settings-reference#processwrapper),需要 Claude Code v2.1.210 或更高版本;当两者都设置时,此变量优先。VS Code 扩展通过其 `claudeProcessWrapper` 设置单独配置其自己的启动器。在 Windows 上被忽略。参见 [在企业启动器后面运行 Claude Code](/docs/zh-CN/corporate-launcher) 了解值格式、启动器涵盖的内容以及启动器必须满足的合同。需要 Claude Code v2.1.208 或更高版本 |355| `CLAUDE_CODE_PROCESS_WRAPPER` | 通过给定为 argv 前缀(如 `/opt/corp/launcher`)的企业启动器启动 Claude Code 从其自己的二进制文件启动的进程,例如托管 [代理视图](/docs/zh-CN/agent-view) 会话的后台服务。在用户或 [托管设置](/docs/zh-CN/managed-settings) 的 `env` 块中设置它,而不是作为 shell 导出,以便分离的后台服务继承它;项目和本地设置无法设置它。等同于 [`processWrapper` 设置](/docs/zh-CN/settings-reference#processwrapper),需要 Claude Code v2.1.210 或更高版本;当两者都设置时,此变量优先。VS Code 扩展通过其 `claudeProcessWrapper` 设置单独配置其自己的启动器。在 Windows 上被忽略。参见 [在企业启动器后面运行 Claude Code](/docs/zh-CN/corporate-launcher) 了解值格式、启动器涵盖的内容以及启动器必须满足的合同。需要 Claude Code v2.1.208 或更高版本 |

355| `CLAUDE_CODE_PROJECT_DIR_NAME` | 与 `CLAUDE_CONFIG_DIR` 一起设置以选择 `projects/` 目录名称 Claude Code 在其下存储该会话的成绩单和自动内存,代替从工作目录路径派生的名称。例如,使用 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 启动 Claude Code 在 `/srv/tenant-a/projects/work/` 下存储它们。当 `CLAUDE_CONFIG_DIR` 未设置时,Claude Code 忽略此变量,并仅从启动 `claude` 的环境读取它,从不从 [设置文件 `env` 块](#in-settings-files)。参见 [自己命名项目目录](/docs/zh-CN/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更高版本 |356| `CLAUDE_CODE_PROJECT_DIR_NAME` | 与 `CLAUDE_CONFIG_DIR` 一起设置以选择 `projects/` 目录名称 Claude Code 在其下存储该会话的成绩单和自动内存,代替从工作目录路径派生的名称。例如,使用 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 启动 Claude Code 在 `/srv/tenant-a/projects/work/` 下存储它们。当 `CLAUDE_CONFIG_DIR` 未设置时,Claude Code 忽略此变量,并读取它仅从启动 `claude` 的环境,从不从 [设置文件 `env` 块](#in-settings-files)。参见 [自己命名项目目录](/docs/zh-CN/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更高版本 |

356| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择主对话的 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime):您的交互式、`-p` 和 SDK 转向,加上与它们内联运行的帮助程序。优先于 `promptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |357| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 设置 `5m` 或 `1h`,Claude Code 接受的唯一值,以选择主对话的 [提示缓存 TTL](/docs/zh-CN/prompt-caching#cache-lifetime):您的交互式、`-p` 和 SDK 转向,加上与它们内联运行的帮助程序。优先于 `promptCacheTtl` 设置和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆盖它。API 以更高的速率计费 1 小时缓存写入。需要 Claude Code v2.1.242 或更高版本 |

357| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向自定义代理时传播 W3C 跟踪上下文。传播涵盖模型和 HTTP MCP 请求上的 `traceparent` 标头以及 Bash、PowerShell 和 hook 子进程的 `TRACEPARENT` 环境变量。默认情况下,传播仅在直接连接到 Anthropic API 时启用。在 v2.1.152 中添加。参见 [跟踪(测试版)](/docs/zh-CN/monitoring-usage#traces-beta) |358| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 设置为 `1` 以在 `ANTHROPIC_BASE_URL` 指向自定义代理时传播 W3C 跟踪上下文。传播涵盖模型和 HTTP MCP 请求上的 `traceparent` 标头以及 Bash、PowerShell 和 hook 子进程的 `TRACEPARENT` 环境变量。默认情况下,传播仅在直接连接到 Anthropic API 时启用。在 v2.1.152 中添加。参见 [跟踪(测试版)](/docs/zh-CN/monitoring-usage#traces-beta) |

358| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 并代表其管理模型提供商路由的主机平台设置。设置时,Claude Code 在设置文件中忽略提供商选择、端点和身份验证变量(如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`),因此用户设置无法覆盖主机的路由。Claude Code 也忽略 [托管设置](/docs/zh-CN/managed-settings) 中的模型选择密钥(如 `model`、`fallbackModel` 和 `modelOverrides`),无论哪个托管源传递它们,因此主机的模型配置优先于过期的托管模型固定。Claude Code 也忽略托管 `env` 块中的模型选择变量(如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列);托管设置中的 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 允许列表仍然适用,除非主机提供其自己的。Claude Code 也跳过它在第三方提供商(如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry)上否则应用的自动遥测选择退出,因此遥测遵循标准 `DISABLE_TELEMETRY` 选择退出。参见 [按 API 提供商的默认行为](/docs/zh-CN/data-usage#default-behaviors-by-api-provider) |359| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 并代表其管理模型提供商路由的主机平台设置。设置时,Claude Code 在设置文件中忽略提供商选择、端点和身份验证变量(如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`),因此用户设置无法覆盖主机的路由。Claude Code 也忽略 [托管设置](/docs/zh-CN/managed-settings) 中的模型选择密钥(如 `model`、`fallbackModel` 和 `modelOverrides`),无论哪个托管源传递它们,因此主机的模型配置优先于过期的托管模型固定。Claude Code 也忽略托管 `env` 块中的模型选择变量(如 `ANTHROPIC_MODEL` 和 `ANTHROPIC_DEFAULT_*_MODEL` 系列);托管设置中的 [`availableModels`](/docs/zh-CN/settings-reference#availablemodels) 允许列表仍然适用,除非主机提供其自己的。Claude Code 也跳过它在第三方提供商(如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 和 Microsoft Foundry)上否则应用的自动遥测选择退出,因此遥测遵循标准 `DISABLE_TELEMETRY` 选择退出。参见 [按 API 提供商的默认行为](/docs/zh-CN/data-usage#default-behaviors-by-api-provider) |

359| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |360| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 设置为 `1` 以允许代理执行 DNS 解析而不是调用者。对于代理应处理主机名解析的环境选择加入 |

360| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从 hook 或设置脚本读取此项以检测您是否在云会话中 |361| `CLAUDE_CODE_REMOTE` | 当 Claude Code 作为 [云会话](/docs/zh-CN/claude-code-on-the-web) 运行时自动设置为 `true`。从 hook 或设置脚本读取此项以检测您是否在云会话中 |

361| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中自动设置为当前会话的 ID。读取此项以构造回到会话成绩单的链接。参见 [将输出链接回会话](/docs/zh-CN/cloud-environments#link-output-back-to-the-session) |362| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在 [云会话](/docs/zh-CN/claude-code-on-the-web) 中自动设置为当前会话的 ID。读取此项以构造回到会话成绩单的链接。参见 [将输出链接回会话](/docs/zh-CN/cloud-environments#link-output-back-to-the-session) |


381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求而不是拒绝它的代理。当您的组织禁用快速模式时,API 仍然拒绝快速模式请求 |382| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 设置为 `1` 以跳过客户端 [快速模式](/docs/zh-CN/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性检查,用于拦截检查请求而不是拒绝它的代理。当您的组织禁用快速模式时,API 仍然拒绝快速模式请求 |

382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳过 Microsoft Foundry 的 Azure 身份验证,用于代理或网关注入其自己的 `Authorization` 标头。Claude Code 发送没有 Azure 凭证的请求并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。当设置 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 时被忽略。在 v2.1.203 之前,此变量使 Microsoft Foundry 客户端无法发送请求,除非也设置了 API 密钥 |383| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳过 Microsoft Foundry 的 Azure 身份验证,用于代理或网关注入其自己的 `Authorization` 标头。Claude Code 发送没有 Azure 凭证的请求并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。当设置 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 时被忽略。在 v2.1.203 之前,此变量使 Microsoft Foundry 客户端无法发送请求,除非也设置了 API 密钥 |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |384| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳过 Amazon Bedrock Mantle 的 AWS 身份验证(例如,使用 LLM 网关时) |

385| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [启动模型检查](/docs/zh-CN/amazon-bedrock#startup-model-checks) 在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock) 和 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai) 上记住在此机器上哪些模型他们发现您的帐户无法调用,最多一天。设置为 `1` 以关闭该内存。需要 Claude Code v2.1.285 或更高版本 |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话成绩单写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |386| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 设置为 `1` 以跳过将提示历史和会话成绩单写入磁盘。使用此变量启动的会话不出现在 `--resume`、`--continue` 或向上箭头历史中。对于临时脚本会话很有用 |

385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |387| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 跳过 Google Cloud's Agent Platform 的 Google 身份验证(例如,使用 LLM 网关时) |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 设置为 `1` 以使用 `--output-format stream-json` 启动的会话为启动失败写入 [结果消息,说明 Claude Code 为什么拒绝启动](/docs/zh-CN/agent-sdk/typescript#startup_failure_reason),否则仅以 stderr 结束。需要 Claude Code v2.1.274 或更高版本 |388| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 设置为 `1` 以使用 `--output-format stream-json` 启动的会话为启动失败写入 [结果消息,说明 Claude Code 为什么拒绝启动](/docs/zh-CN/agent-sdk/typescript#startup_failure_reason),否则仅以 stderr 结束。需要 Claude Code v2.1.274 或更高版本 |

errors.md +352 −323

Details

322| `Transcript writes are failing (...)` | [会话保存警告](#transcript-writes-are-failing) |322| `Transcript writes are failing (...)` | [会话保存警告](#transcript-writes-are-failing) |

323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [会话保存警告](#transcript-saving-is-off-skip-prompt-history) |323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [会话保存警告](#transcript-saving-is-off-skip-prompt-history) |

324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [会话保存警告](#transcript-saving-is-off-child-session-marker) |324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [会话保存警告](#transcript-saving-is-off-child-session-marker) |

325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [配置警告](#fullscreen-failed-start-notice) |325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [全屏渲染](/docs/zh-CN/fullscreen#fullscreen-renderer-didnt-finish-starting) |

326| `Claude Code exited after an unrecoverable interface error (...)` | [配置警告](#exited-after-an-unrecoverable-interface-error) |326| `Claude Code exited after an unrecoverable interface error (...)` | [配置警告](#exited-after-an-unrecoverable-interface-error) |

327| `Agent descriptions are over the 15.0k-token limit` | [配置警告](#agent-descriptions-are-over-the-15000-token-limit) |327| `Agent descriptions are over the 15.0k-token limit` | [配置警告](#agent-descriptions-are-over-the-15000-token-limit) |

328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [配置警告](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [配置警告](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |


331| `Remote managed settings failed to load (<cause>)` | [配置警告](#remote-managed-settings-failed-to-load) |331| `Remote managed settings failed to load (<cause>)` | [配置警告](#remote-managed-settings-failed-to-load) |

332| `Managed settings were not approved; exiting without applying them.` | [配置警告](#managed-settings-were-not-approved) |332| `Managed settings were not approved; exiting without applying them.` | [配置警告](#managed-settings-were-not-approved) |

333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [配置警告](#managed-settings-block-the-default-model) |333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [配置警告](#managed-settings-block-the-default-model) |

334| `Your organization's managed settings allow Claude Code to use: <providers>` | [配置警告](#managed-settings-dont-allow-this-api-provider) |

335| `Your organization's managed settings allow Claude Code to use no API provider at all` | [配置警告](#managed-settings-dont-allow-this-api-provider) |

334| `MCP server <name> is blocked by enterprise managed policy` | [配置警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |336| `MCP server <name> is blocked by enterprise managed policy` | [配置警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |

335| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [配置警告](#managed-settings-document-could-not-be-parsed) |337| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [配置警告](#managed-settings-document-could-not-be-parsed) |

336| `Managed settings drop-in directory could not be read` | [配置警告](#managed-settings-document-could-not-be-parsed) |338| `Managed settings drop-in directory could not be read` | [配置警告](#managed-settings-document-could-not-be-parsed) |

339| `Unable to read managed policy settings` | [配置警告](#unable-to-read-managed-policy-settings) |

337| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [配置警告](#otelheadershelper-failed) |340| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [配置警告](#otelheadershelper-failed) |

338| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [配置警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |341| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [配置警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

339| `headersHelper not run — this workspace has no persisted trust` | [配置警告](#headershelper-not-run) |342| `headersHelper not run — this workspace has no persisted trust` | [配置警告](#headershelper-not-run) |


2846 命令行错误2849 命令行错误

2847</h2>2850</h2>

2848 2851 

2849这些错误来自 `claude` 命令行及其子命令、您在提示符处提交的命令名称,以及诸如 `/security-review` 之类的命令,这些命令通过运行 shell 命令来收集上下文,然后再运行其提示。它们也来自 `/tui`,它会重新启动 CLI。2852这些错误来自 `claude` 命令行及其子命令、您在提示符处提交的命令名称,以及诸如 `/security-review` 之类的命令,这些命令在运行其提示之前通过运行 shell 命令来收集上下文。它们也来自 `/tui`,它会重新启动 CLI。

2850 2853 

2851<h3 id="conflict-between-bg-and-print">2854<h3 id="conflict-between-bg-and-print">

2852 \--bg 和 --print 之间的冲突2855 `--bg` 和 `--print` 之间的冲突

2853</h3>2856</h3>

2854 2857 

2855此消息需要 Claude Code v2.1.198 或更高版本。您在同一个 `claude` 调用中将 `--bg` 与 `-p` 或 `--print` 结合使用。`--bg` 启动一个[后台会话](/docs/zh-CN/agent-view#from-your-shell),您稍后可以使用 `claude agents` 附加到该会话,而 `--print` 以[非交互方式](/docs/zh-CN/headless)运行,永远不会启动 `claude agents` 附加到的交互会话。在 v2.1.198 之前,此组合会以静默方式创建一个永远无法附加的后台作业。2858此消息需要 Claude Code v2.1.198 或更高版本。您在同一个 `claude` 调用中将 `--bg` 与 `-p` 或 `--print` 结合使用。`--bg` 启动一个[后台会话](/docs/zh-CN/agent-view#from-your-shell),您稍后可以使用 `claude agents` 附加到该会话,而 `--print` 以[非交互方式](/docs/zh-CN/headless)运行,永远不会启动 `claude agents` 附加到的交互会话。在 v2.1.198 之前,此组合会以静默方式创建一个永远无法附加的后台作业。

2856 2859 

2857```text theme={null}2860```text theme={null}

2861--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

2858```2862```

2859 2863 

2860**要做什么:**2864**应该做什么:**

2861 2865 

2862* 删除 `-p` 或 `--print`。`--bg` 将提示作为其位置参数,因此 `claude --bg "<task>"` 是完整命令。请参阅[从您的 shell 分派新代理](/docs/zh-CN/agent-view#from-your-shell)。2866* 删除 `-p` 或 `--print`。`--bg` 将提示作为其位置参数,所以 `claude --bg "<task>"` 是完整的命令。请参阅[从您的 shell 分派新代理](/docs/zh-CN/agent-view#from-your-shell)。

2863* 要以非交互方式运行提示并打印结果而不是创建后台会话,请删除 `--bg` 并运行 `claude -p "<task>"`2867* 要以非交互方式运行提示并打印结果而不是创建后台会话,请删除 `--bg` 并运行 `claude -p "<task>"`

2864 2868 

2865<h3 id="invalid-agents-configuration">2869<h3 id="invalid-agents-configuration">

2866 无效的 --agents 配置2870 无效的 `--agents` 配置

2867</h3>2871</h3>

2868 2872 

2869您传递给 `--agents` 的值无效,因此 `claude` 以代码 1 退出,而不是启动会话。当您传递 `--safe-mode` 或设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars#variables) 时,Claude Code 忽略 `--agents` 完全。使用 `--resume` 或 `--continue` 时,内联 JSON 值不被检查,会话启动;从文件读取的值在每次启动时被检查。在 v2.1.242 之前,Claude Code 无论如何都会启动会话。2873您传递给 `--agents` 的值无效,所以 `claude` 以代码 1 退出,而不是启动会话。当您传递 `--safe-mode` 或设置 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-CN/env-vars#variables) 时,Claude Code 会完全忽略 `--agents`。使用 `--resume` 或 `--continue` 时,不会检查内联 JSON 值,会话会启动;从文件读取的值在每次启动时都会被检查。在 v2.1.242 之前,Claude Code 无论如何都会启动会话。

2870 2874 

2871```text theme={null}2875```text theme={null}

2872Error: Invalid --agents configuration:2876Error: Invalid --agents configuration:


2876 2879 

2877第一行之后的内容取决于值如何失败。Claude Code 按顺序运行这些检查,并在第一个失败的检查处停止。如果您的值有两种问题,您只有在修复第一个问题后才会看到第二个问题:2880第一行之后的内容取决于值如何失败。Claude Code 按顺序运行这些检查,并在第一个失败的检查处停止。如果您的值有两种问题,您只有在修复第一个问题后才会看到第二个问题:

2878 2881 

28791. 当值以 `{` 开头但不能解析为 JSON 时,或 `--agents` 文件的内容不能解析时,Claude Code 打印一行 `invalid JSON:` 行,其中包含 JSON 解析器自己的消息28821. 当值以 `{` 开头但不能解析为 JSON,或 `--agents` 文件的内容不能解析时,Claude Code 会打印一行 `invalid JSON:`,其中包含 JSON 解析器自己的消息

28802. 当它解析但代理定义与 [CLI 定义的子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope) 的架构不匹配时,Claude Code 为每个问题打印一行28832. 当它解析但代理定义与 [CLI 定义的子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)的架构不匹配时,Claude Code 会为每个问题打印一行

28813. 当代理名称以 `-` 开头时,Claude Code 打印 `<name>: agent names must not start with '-'`28843. 当代理名称以 `-` 开头时,Claude Code 会打印 `<name>: agent names must not start with '-'`

2882 2885 

2883当有超过 20 个问题行时,Claude Code 打印前 20 个,并用 `…and N more` 替换其余的。2886当有超过 20 行问题时,Claude Code 会打印前 20 行,并用 `…and N more` 替换其余部分。

2884 2887 

2885使用 `--print` 时,`--agents` 也接受[JSON 文件的路径](/docs/zh-CN/sub-agents#choose-the-subagent-scope)代替内联对象。在 v2.1.281 之前,`--agents` 仅接受内联 JSON,并将文件路径视为无效 JSON。文件形式有其自己的拒绝,打印在此消息的位置,包括这些:2888使用 `--print` 时,`--agents` 也接受 [JSON 文件的路径](/docs/zh-CN/sub-agents#choose-the-subagent-scope)代替内联对象。在 v2.1.281 之前,`--agents` 仅接受内联 JSON,并将文件路径视为无效 JSON。文件形式有其自己的拒绝,打印在此消息的位置,包括这些:

2886 2889 

2887* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在交互式会话中将值读取为文件路径。将定义作为内联 JSON 传递,或添加 `-p` 从文件读取它们。2890* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在交互会话中将值读取为文件路径。将定义作为内联 JSON 传递,或添加 `-p` 从文件读取它们。

2888* **`Error: --agents file not found: <path>`**:该路径处不存在文件。不以 `{` 开头且不是有效 JSON 的值被读取为路径,因此您的 shell 损坏的内联 JSON 也可能以这种方式失败。检查路径或引用,然后再次运行命令。2891* **`Error: --agents file not found: <path>`**:该路径不存在任何文件。不以 `{` 开头且不是有效 JSON 的值被读取为路径,所以您的 shell 损坏的内联 JSON 也可能以这种方式失败。检查路径或引号,然后再次运行命令。

2889 2892 

2890**要做什么:**2893**应该做什么:**

2891 2894 

2892* 修复消息列出的每个问题,然后再次运行命令。请参阅 [CLI 定义的子代理采用的字段](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。2895* 修复消息列出的每个问题,然后再次运行命令。请参阅 [CLI 定义的子代理采用的字段](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。

2893 2896 

2894<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2897<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2895 无法从 --restricted 会话创建云会话2898 无法从 `--restricted` 会话创建云会话

2896</h3>2899</h3>

2897 2900 

2898当您使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动会话时,Claude Code 拒绝从它创建[云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),因为新会话将在受限进程之外运行,不会强制执行受限模式。Claude Code 在客户端拒绝,在联系服务器之前,因此不会创建云会话:2901当您使用 [`--restricted`](/docs/zh-CN/cli-reference#cli-flags) 启动会话时,Claude Code 拒绝从中创建[云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud),因为新会话将在受限进程之外运行,不会强制执行受限模式。Claude Code 在客户端拒绝,在联系服务器之前,所以不会创建云会话:

2899 2902 

2900```text theme={null}2903```text theme={null}

2901Cloud sessions cannot be created from a --restricted session: they would not enforce it.2904Cloud sessions cannot be created from a --restricted session: they would not enforce it.

2902```2905```

2903 2906 

2904**要做什么:**2907**应该做什么:**

2905 2908 

2906* 在受限会话中本地运行任务2909* 在受限会话中本地运行任务

2907* 如果您控制会话的启动方式,请启动一个没有 `--restricted` 的新 `claude` 会话,并从那里创建云会话2910* 如果您控制会话的启动方式,请启动一个没有 `--restricted` 的新 `claude` 会话,并从那里创建云会话


2909在 v2.1.248 之前,Claude Code 没有 `--restricted` 标志;较早的版本会以未知选项错误拒绝该标志本身。2912在 v2.1.248 之前,Claude Code 没有 `--restricted` 标志;较早的版本会以未知选项错误拒绝该标志本身。

2910 2913 

2911<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2914<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2912 云会话被您的组织的策略禁用2915 您的组织的策略禁用了云会话

2913</h3>2916</h3>

2914 2917 

2915您的组织的 `allow_remote_sessions` 策略已关闭,因此[云会话](/docs/zh-CN/claude-code-on-the-web)和使用它们的命令不可用:2918您的组织的 `allow_remote_sessions` 策略已关闭,所以[云会话](/docs/zh-CN/claude-code-on-the-web)和使用它们的命令不可用:

2916 2919 

2917```text theme={null}2920```text theme={null}

2918Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2921Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2919```2922```

2920 2923 

2921当您[从终端创建云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud)时,消息会出现,当您提交需要云会话的命令时,例如 `/teleport`、`/remote-env` 或 `/web-setup`。在 v2.1.268 之前,提交其中一个命令会返回 [`Unknown command`](#unknown-command)。2924当您[从终端创建云会话](/docs/zh-CN/claude-code-on-the-web#from-terminal-to-cloud)时,消息会出现,当您提交需要云会话的命令时,例如 `/teleport`、`/remote-env` 或 `/web-setup`。在 v2.1.268 之前,提交其中一个命令会返回[`Unknown command`](#unknown-command)。

2922 2925 

2923这是一个服务器端组织策略,因此无法从本地设置、环境变量或 CLI 标志覆盖。2926这是一个服务器端组织策略,所以它不能从本地设置、环境变量或 CLI 标志中被覆盖。

2924 2927 

2925如果 Claude Code 尚未加载您的组织的策略或无法获取它,这些命令会回答 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。2928如果 Claude Code 还没有加载您的组织策略或无法获取它,这些命令会回答 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。

2926 2929 

2927**要做什么:**2930**应该做什么:**

2928 2931 

2929* 要求您的组织中的[所有者](/docs/zh-CN/server-managed-settings#access-control)在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理员设置中启用云会话2932* 请您的组织中的[所有者](/docs/zh-CN/server-managed-settings#access-control)在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理员设置中启用云会话

2930* 如果消息说它无法验证策略,请检查您的网络连接,然后重新启动 Claude Code 并重试2933* 如果消息说它无法验证策略,请检查您的网络连接,然后重新启动 Claude Code 并重试

2931 2934 

2932<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2935<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2933 \--json-schema 值不是有效的 JSON Schema2936 `--json-schema` 值不是有效的 JSON Schema

2934</h3>2937</h3>

2935 2938 

2936您传递给 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 的架构在[非交互模式](/docs/zh-CN/headless#get-structured-output)中未能通过 JSON Schema 编译,因此 `claude` 以代码 1 退出,而不是运行提示。在 v2.1.205 之前,无效的架构会产生无结构的输出,没有错误,任何使用 `format` 关键字的架构都被视为无效。2939您传递给 [`--json-schema`](/docs/zh-CN/cli-reference#cli-flags) 的架构在[非交互模式](/docs/zh-CN/headless#get-structured-output)中失败了 JSON Schema 编译,所以 `claude` 以代码 1 退出,而不是运行提示。在 v2.1.205 之前,无效的架构会产生无结构的输出,没有错误,任何使用 `format` 关键字的架构都被视为无效。

2937 2940 

2938```text theme={null}2941```text theme={null}

2939Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2942Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values


2941 2944 

2942第二个冒号后的文本是验证器的诊断,并命名失败的关键字或位置。使用 `format` 关键字的架构,例如 `"format": "email"`,是有效的:Claude Code 接受 `format` 作为注释,不强制执行它。2945第二个冒号后的文本是验证器的诊断,并命名失败的关键字或位置。使用 `format` 关键字的架构,例如 `"format": "email"`,是有效的:Claude Code 接受 `format` 作为注释,不强制执行它。

2943 2946 

2944Claude Code 在架构编译之前运行两个检查:它拒绝不可解析的 JSON 值,错误为 `Error: --json-schema is not valid JSON`,以及有效的 JSON 但不是对象的值,错误为 `Error: --json-schema must be a JSON object`。2947Claude Code 在架构编译之前运行两个检查:它拒绝不可解析的 JSON 值,显示 `Error: --json-schema is not valid JSON`,以及不是对象的有效 JSON,显示 `Error: --json-schema must be a JSON object`。

2945 2948 

2946**要做什么:**2949**应该做什么:**

2947 2950 

2948* 修复诊断命名的架构部分,然后重新运行命令2951* 修复诊断命名的架构部分,然后重新运行命令

2949* 请参阅[获取结构化输出](/docs/zh-CN/headless#get-structured-output)以获取工作架构和命令2952* 请参阅[获取结构化输出](/docs/zh-CN/headless#get-structured-output)以获取工作架构和命令


2952 设置文件超过 2MiB 限制2955 设置文件超过 2MiB 限制

2953</h3>2956</h3>

2954 2957 

2955您传递给 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 的文件大于 2 MiB,因此 `claude` 在启动时以代码 1 退出,而不是加载它。在 v2.1.214 之前,Claude Code 读取文件时没有大小检查,多 GB 的文件或诸如 `/dev/zero` 之类的设备文件会无限增长内存。2958您传递给 [`--settings`](/docs/zh-CN/cli-reference#cli-flags) 的文件大于 2 MiB,所以 `claude` 在启动时以代码 1 退出,而不是加载它。在 v2.1.214 之前,Claude Code 读取文件时没有大小检查,多 GB 文件或诸如 `/dev/zero` 之类的设备文件会无限增长内存。

2956 2959 

2957```text theme={null}2960```text theme={null}

2958Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2961Error: Settings file exceeds the 2MiB limit: /path/to/settings.json


2960 2963 

2961Claude Code 以相同的方式拒绝不是常规文件的 `--settings` 路径:设备、FIFO 或套接字报告 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,后跟路径,目录报告 `EISDIR` 原因。2964Claude Code 以相同的方式拒绝不是常规文件的 `--settings` 路径:设备、FIFO 或套接字报告 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,后跟路径,目录报告 `EISDIR` 原因。

2962 2965 

2963**要做什么:**2966**应该做什么:**

2964 2967 

2965* 将 `--settings` 指向 2 MiB 以下的常规 JSON 设置文件。请参阅[设置](/docs/zh-CN/settings)以了解格式。2968* 将 `--settings` 指向 2 MiB 以下的常规 JSON 设置文件。请参阅[设置](/docs/zh-CN/settings)了解格式。

2966 2969 

2967<h3 id="the-current-directory-no-longer-exists">2970<h3 id="the-current-directory-no-longer-exists">

2968 当前目录不再存在2971 当前目录不再存在

2969</h3>2972</h3>

2970 2973 

2971您从一个在您的 shell 进入后被删除或移动的目录启动了 `claude`,例如 worktree 或另一个 shell 删除的临时目录。Claude Code 无法读取其工作目录,因此它在启动会话之前以代码 1 退出,在交互和[非交互](/docs/zh-CN/headless)模式中都是如此。在 v2.1.239 之前,Claude Code 会因缩小的捆绑源和原始 `ENOENT ... uv_cwd` 堆栈在 stderr 上崩溃,而不是显示此消息。2974您从一个在您的 shell 进入后被删除或移动的目录启动了 `claude`,例如另一个 shell 删除的 worktree 或临时目录。Claude Code 无法读取其工作目录,所以它在启动会话之前以代码 1 退出,在交互和[非交互](/docs/zh-CN/headless)模式中都是如此。在 v2.1.239 之前,Claude Code 会因缩小的捆绑源和原始 `ENOENT ... uv_cwd` 堆栈在 stderr 上崩溃,而不是显示此消息。

2972 2975 

2973```text theme={null}2976```text theme={null}

2974The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.2977The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2975error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.2978error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2976```2979```

2977 2980 

2978原因和修复对两种形式都是相同的。2981两种形式的原因和修复是相同的。

2979 2982 

2980当 Claude Code 因其他原因(例如权限更改)无法读取工作目录时,消息会命名错误代码:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`2983当 Claude Code 因其他原因(例如权限更改)无法读取工作目录时,消息会命名错误代码:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2981 2984 

2982在 macOS 上,`~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中目录的 `EPERM` 通常意味着 macOS 阻止您的终端应用访问该文件夹。读取该文件夹的其他命令也会以相同的方式失败:即使使用 `sudo`,`ls` 也会报告 `Operation not permitted`。2985在 macOS 上,`~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中目录的 `EPERM` 通常意味着 macOS 阻止您的终端应用访问该文件夹。读取该文件夹的其他命令也会以相同的方式失败:即使使用 `sudo`,`ls` 也会报告 `Operation not permitted`。

2983 2986 

2984**要做什么:**2987**应该做什么:**

2985 2988 

2986* 更改为存在的目录,例如您的主目录或项目目录,然后再次运行 `claude`2989* 更改为存在的目录,例如您的主目录或项目目录,然后再次运行 `claude`

2987* 如果目录在同一路径处被重新创建,您的 shell 仍然持有已删除的目录。运行 `cd "$PWD"` 或离开并重新进入目录,然后再次运行 `claude`2990* 如果目录在同一路径被重新创建,您的 shell 仍然持有已删除的目录。运行 `cd "$PWD"` 或离开并重新进入目录,然后再次运行 `claude`

2988* 对于 macOS 上的 `EPERM`,使用 Cmd+Q 退出您的终端应用,重新打开它,返回该文件夹,然后运行 `claude`。如果该文件夹中的 `ls` 仍然失败,请打开**系统设置 > 隐私和安全 > 文件和文件夹**,为您的终端应用打开该文件夹,然后重新打开终端2991* 对于 macOS 上的 `EPERM`,使用 Cmd+Q 退出您的终端应用,重新打开它,返回该文件夹,然后运行 `claude`。如果该文件夹中的 `ls` 仍然失败,请打开**系统设置 > 隐私和安全 > 文件和文件夹**,为您的终端应用打开该文件夹,然后重新打开终端

2989 2992 

2990<h3 id="temp-directory-refused-or-cannot-be-created">2993<h3 id="temp-directory-refused-or-cannot-be-created">

2991 临时目录被拒绝或无法创建2994 临时目录被拒绝或无法创建

2992</h3>2995</h3>

2993 2996 

2994在 macOS 和 Linux 上,Claude Code 在启动时创建一个私有临时目录 `claude-<uid>`,位于系统临时目录或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 覆盖下。当无法创建目录或该路径处的现有条目未通过安全检查时,Claude Code 将失败打印到 stderr 并以代码 1 退出,而不是启动会话:2997在 macOS 和 Linux 上,Claude Code 在启动时创建一个私有临时目录 `claude-<uid>`,位于系统临时目录或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 覆盖下。当目录无法创建,或该路径处的现有条目未通过安全检查时,Claude Code 将失败打印到 stderr 并以代码 1 退出,而不是启动会话:

2995 2998 

2996```text wrap theme={null}2999```text wrap theme={null}

2997ENOSPC: no space left on device, mkdir '/tmp/claude-501'3000ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3003Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.3006Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

3004```3007```

3005 3008 

3006**要做什么:**3009**应该做什么:**

3007 3010 

3008* 对于 `ENOSPC`,释放保存临时目录的卷上的磁盘空间3011* 对于 `ENOSPC`,释放保存临时目录的卷上的磁盘空间

3009* 对于 `Refusing to use it` 形式,删除命名的条目本身,而不是链接指向的内容,然后再次启动 Claude Code;对于 `owned by uid` 形式,只有管理员或该用户可以删除它3012* 对于 `Refusing to use it` 形式,删除命名的条目本身,而不是链接指向的内容,然后再次启动 Claude Code;对于 `owned by uid` 形式,只有管理员或该用户可以删除它

3010* 对于 `is not readable`,在命名目录上运行 `chmod 0700`,或删除它并重新启动3013* 对于 `is not readable`,在命名目录上运行 `chmod 0700`,或删除它并重新启动

3011* 在任何这些情况下,将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为您控制的目录并启动 Claude Code,保持拒绝的路径不变3014* 在任何这些情况下,将 [`CLAUDE_CODE_TMPDIR`](/docs/zh-CN/env-vars) 设置为您控制的目录并启动 Claude Code,保留被拒绝的路径不变

3012 3015 

3013<h3 id="directory-couldnt-be-resolved-to-a-real-location">3016<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3014 目录无法解析为真实位置3017 目录无法解析为真实位置


3016 3019 

3017您为工作目录的子目录运行了 `/add-dir`,Claude Code 无法将目录解析为其真实位置。3020您为工作目录的子目录运行了 `/add-dir`,Claude Code 无法将目录解析为其真实位置。

3018 3021 

3019您已经有对工作目录的子目录的文件访问权限,因此 `/add-dir` 仅加载其 skills、命令和代理。在加载它们之前,Claude Code 检查目录的真实位置(解析任何符号链接)是否在工作目录内。当 Claude Code 无法解析该位置时,它不加载任何内容并显示此消息:3022您已经可以访问工作目录的子目录,所以 `/add-dir` 只加载其 skills、命令和代理。在加载它们之前,Claude Code 检查目录的真实位置(解析任何符号链接)是否在工作目录内。当 Claude Code 无法解析该位置时,它不加载任何内容并显示此消息:

3020 3023 

3021```text theme={null}3024```text theme={null}

3022packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3025packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

3023```3026```

3024 3027 

3025**要做什么:**3028**应该做什么:**

3026 3029 

3027* 检查路径是否命名工作目录内的真实目录,然后再次运行 `/add-dir`3030* 检查路径是否命名工作目录内的真实目录,然后再次运行 `/add-dir`

3028* 消息不会改变您的文件访问;它仅报告目录的 `.claude/` 内容未被加载3031* 消息不会改变您的文件访问权限;它只报告目录的 `.claude/` 内容未被加载

3029 3032 

3030在 v2.1.261 之前,当工作目录在 `/net/<host>` 自动挂载上时,此消息也会为每个 `/add-dir <subdirectory>` 出现,Claude Code 根据设计拒绝解析路径;目录很好,重试无法帮助。3033在 v2.1.261 之前,当工作目录在 `/net/<host>` 自动挂载上时,此消息也会为每个 `/add-dir <subdirectory>` 出现,Claude Code 按设计拒绝解析路径;目录很好,重试无法帮助。

3031 3034 

3032<h3 id="workspace-not-trusted-when-starting-remote-control">3035<h3 id="workspace-not-trusted-when-starting-remote-control">

3033 启动远程控制时工作区不受信任3036 启动远程控制时工作区不受信任

3034</h3>3037</h3>

3035 3038 

3036您在未信任的目录中使用 `claude remote-control` 或其 `claude rc` 别名启动了[远程控制](/docs/zh-CN/remote-control)服务器模式,命令无法询问您是否信任它。当命令的标准输入或标准输出不是终端时,此消息会出现,例如因为其中之一被重定向或管道化。命令以代码 1 退出:3039您在未信任的目录中使用 `claude remote-control` 或其 `claude rc` 别名启动了[远程控制](/docs/zh-CN/remote-control)服务器模式,命令无法询问您是否信任它。例如,命令的标准输入或标准输出不是终端,因为其中一个被重定向或管道化。命令以代码 1 退出:

3037 3040 

3038```text theme={null}3041```text theme={null}

3039Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3042Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3040```3043```

3041 3044 

3042两个也以 `Error: Workspace not trusted.` 开头的变体也出现在足够小的终端中,无法显示信任目录打开的内容,或一个没有报告其大小的终端。扩大窗口或切换到正常终端窗口,然后再次运行 `claude rc`。3045两个也以 `Error: Workspace not trusted.` 开头的变体也出现在足够小的终端中,无法显示信任目录会打开什么,或一个没有报告其大小的终端。放大窗口或切换到正常终端窗口,然后再次运行 `claude rc`。

3043 3046 

3044在您的主目录中,消息是不同的,因为工作区信任对话框永远不会保存主目录的信任,因此在那里接受它无法满足此检查。在 v2.1.214 之前,主目录显示上述消息,其建议无法在那里成功。3047在您的主目录中,消息是不同的,因为工作区信任对话永远不会为主目录保存信任,所以在那里接受它无法满足此检查。在 v2.1.214 之前,主目录显示上面的消息,其建议在那里无法成功。

3045 3048 

3046```text theme={null}3049```text theme={null}

3047Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3050Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).


3049 3052 

3050如果您在 [`Trust <directory>?` 问题](/docs/zh-CN/remote-control#requirements)处回答 `n` 或按 Enter,命令会打印一条 `Remote Control did not start` 消息,命名目录并以代码 1 退出。再次运行 `claude rc` 以回答 `y`。3053如果您在 [`Trust <directory>?` 问题](/docs/zh-CN/remote-control#requirements)处回答 `n` 或按 Enter,命令会打印一条 `Remote Control did not start` 消息,命名目录并以代码 1 退出。再次运行 `claude rc` 以回答 `y`。

3051 3054 

3052**要做什么:**3055**应该做什么:**

3053 3056 

3054* 首先从终端信任目录:在那里运行 `claude rc` 并回答 `y`,或运行 `claude` 并接受[工作区信任对话框](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust),然后再次运行您的原始命令3057* 首先从终端信任目录:在那里运行 `claude rc` 并回答 `y`,或运行 `claude` 并接受[工作区信任对话](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust),然后再次运行您的原始命令

3055* 在您的主目录中,更改为项目目录并在那里启动远程控制3058* 在您的主目录中,更改为项目目录并在那里启动远程控制

3056 3059 

3057在 v2.1.284 之前,命令从不询问,即使在终端中。3060在 v2.1.284 之前,命令从不询问,即使在终端中也是如此。

3058 3061 

3059<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3062<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3060 未被远程控制启动的会话继承3063 未被远程控制启动的会话继承

3061</h3>3064</h3>

3062 3065 

3063您使用全局 `claude` 标志在 `remote-control` 动词之前启动了[远程控制](/docs/zh-CN/remote-control),该标志会限制或配置远程控制启动的会话,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在动词之前的标志永远不会到达这些会话。Claude Code 拒绝启动,而是命名标志:3066您使用全局 `claude` 标志在 `remote-control` 动词之前启动了[远程控制](/docs/zh-CN/remote-control),该标志会限制或配置远程控制启动的会话,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在动词之前的标志永远不会到达这些会话。Claude Code 拒绝启动,命名标志:

3064 3067 

3065```text theme={null}3068```text theme={null}

3066Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3069Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).


3068 3071 

3069Claude Code 不拒绝无害的全局标志,例如 `--verbose`、`--model` 或包装器注入的 `--session-id` 或 `--plugin-dir`:它忽略它们,远程控制启动。3072Claude Code 不拒绝无害的全局标志,例如 `--verbose`、`--model` 或包装器注入的 `--session-id` 或 `--plugin-dir`:它忽略它们,远程控制启动。

3070 3073 

3071Claude Code 也拒绝启动一个它尚未识别为无害的全局标志,因此在较新版本中添加的标志可能会出现在此消息中,直到稍后的版本将其标记为无害。3074Claude Code 也拒绝启动一个它还不认识为无害的全局标志,所以较新版本中添加的标志可能会出现在此消息中,直到稍后的版本将其标记为无害。

3072 3075 

3073**要做什么:**3076**应该做什么:**

3074 3077 

3075* 从动词之前删除标志,并在其后传递[远程控制自己的选项](/docs/zh-CN/remote-control#start-a-remote-control-session);`claude remote-control --help` 列出它们3078* 从动词之前删除标志,并在其后传递[远程控制自己的选项](/docs/zh-CN/remote-control#start-a-remote-control-session);`claude remote-control --help` 列出它们

3076* 当拒绝的标志是 `--permission-mode` 时,运行 `claude remote-control --permission-mode <mode>` 为远程控制启动的会话设置权限模式3079* 当被拒绝的标志是 `--permission-mode` 时,运行 `claude remote-control --permission-mode <mode>` 为远程控制启动的会话设置权限模式

3077 3080 

3078在 v2.1.248 之前,当全局标志首先出现时,`claude remote-control` 不接受自己的标志,命令失败并出现 `unknown option` 错误。3081在 v2.1.248 之前,当全局标志首先出现时,`claude remote-control` 不接受其自己的标志,命令失败并显示未知选项错误。

3079 3082 

3080<h3 id="claude-import-is-not-yet-available-in-this-build">3083<h3 id="claude-import-is-not-yet-available-in-this-build">

3081 claude import 在此构建中尚不可用3084 claude import 在此构建中尚不可用

3082</h3>3085</h3>

3083 3086 

3084您运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),Claude Code 发现导入流已关闭,因此命令以代码 1 退出,而不是启动导入。在 v2.1.222 之前,导入流关闭的构建将 `import` 视为提示并启动交互会话,而不是打印此消息。3087您运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),Claude Code 发现导入流已关闭,所以命令以代码 1 退出,而不是启动导入。在 v2.1.222 之前,关闭导入流的构建将 `import` 视为提示并启动交互会话,而不是打印此消息。

3085 3088 

3086```text theme={null}3089```text theme={null}

3087`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3090`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3088```3091```

3089 3092 

3090Claude Code 通过从 Anthropic 获取的功能标志打开 `claude import`,并在磁盘上缓存。此消息意味着缓存的值已关闭。原因通常是以下之一:3093Claude Code 通过从 Anthropic 获取并在磁盘上缓存的功能标志打开 `claude import`。此消息意味着缓存的值已关闭。原因通常是以下之一:

3091 3094 

3092* 您自安装以来尚未启动会话,因此 Claude Code 尚未获取标志。第一个 `claude import` 即使在功能对您可用时也可能打印此消息。3095* 您自安装以来还没有启动会话,所以 Claude Code 还没有获取标志。第一个 `claude import` 即使功能对您可用,也可能打印此消息。

3093* 您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform,或通过[Claude 应用网关](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)使用 Claude Code。Claude Code 在这些会话中不获取功能标志,因此 `claude import` 保持不可用。3096* 您通过 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform,或通过[Claude 应用网关](/docs/zh-CN/claude-apps-gateway#availability-and-limitations)使用 Claude Code。Claude Code 在这些会话中不获取功能标志,所以 `claude import` 保持不可用。

3094* 您设置了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars),这会关闭功能标志获取,因此 `claude import` 保持不可用。3097* 您设置了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars),它们关闭功能标志获取,所以 `claude import` 保持不可用。

3095 3098 

3096**要做什么:**3099**应该做什么:**

3097 3100 

3098* 在全新安装上,启动 `claude`,等待会话加载,退出,然后再次运行 `claude import`3101* 在新安装上,启动 `claude`,等待会话加载,退出,然后再次运行 `claude import`

3099* 在功能标志获取保持关闭的地方,自己设置配置:使用 [`claude mcp add`](/docs/zh-CN/mcp#installing-mcp-servers) 添加 MCP 服务器,并创建您想要继承的 [`CLAUDE.md` 文件](/docs/zh-CN/memory#how-claude-md-files-load)、[skills 和命令](/docs/zh-CN/skills#where-skills-live)以及[子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。消息也命名 `~/.claude/settings.json`。在 `claude import` 继承的配置中,该文件仅保存[权限模式](/docs/zh-CN/settings-reference#permission-settings);Claude Code 不从它读取 MCP 服务器。3102* 在功能标志获取保持关闭的地方,自己设置配置:使用 [`claude mcp add`](/docs/zh-CN/mcp#installing-mcp-servers) 添加 MCP 服务器,并创建您想要继承的 [`CLAUDE.md` 文件](/docs/zh-CN/memory#how-claude-md-files-load)、[skills 和命令](/docs/zh-CN/skills#where-skills-live)以及[子代理](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。消息也命名 `~/.claude/settings.json`。在 `claude import` 继承的配置中,该文件仅保存[权限模式](/docs/zh-CN/settings-reference#permission-settings);Claude Code 不从中读取 MCP 服务器。

3100 3103 

3101<h3 id="could-not-read-claude-code-config">3104<h3 id="could-not-read-claude-code-config">

3102 无法读取 Claude Code 配置3105 无法读取 Claude Code 配置

3103</h3>3106</h3>

3104 3107 

3105您运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),而 Claude Code 无法解析 `~/.claude.json`,这是它存储您的登录和每个项目状态的文件。子命令读取该文件以检查可用性,但不显示交互会话显示的恢复对话框,因此它以代码 1 退出。在 v2.1.222 之前,带有不可读配置文件的 `claude import` 启动了交互会话,其恢复对话框处理了该文件。3108您在 Claude Code 无法解析 `~/.claude.json` 时运行了 [`claude import`](/docs/zh-CN/cli-reference#cli-commands),这是它存储您的登录和每个项目状态的文件。子命令读取该文件以检查可用性,但不显示交互会话显示的恢复对话,所以它以代码 1 退出。在 v2.1.222 之前,`claude import` 使用不可读的配置文件启动交互会话,其恢复对话处理该文件。

3106 3109 

3107```text theme={null}3110```text theme={null}

3108Could not read Claude Code config — run `claude` with no arguments to recover it.3111Could not read Claude Code config — run `claude` with no arguments to recover it.

3109```3112```

3110 3113 

3111**要做什么:**3114**应该做什么:**

3112 3115 

3113* 运行 `claude` 不带参数。Claude Code 检测无效文件并提供重置它。然后再次运行 `claude import`。3116* 运行不带参数的 `claude`。Claude Code 检测无效文件并提供重置它。然后再次运行 `claude import`。

3114* 要保留您所做的手动编辑,请在编辑器中修复 `~/.claude.json` 中的 JSON 语法,然后重新运行 `claude import`3117* 要保留您所做的手动编辑,请在编辑器中修复 `~/.claude.json` 中的 JSON 语法,然后重新运行 `claude import`

3115 3118 

3116<h3 id="could-not-import-a-server-from-claude-desktop">3119<h3 id="could-not-import-a-server-from-claude-desktop">

3117 无法从 Claude Desktop 导入服务器3120 无法从 Claude Desktop 导入服务器

3118</h3>3121</h3>

3119 3122 

3120Claude Code 无法添加您在 `claude mcp add-from-claude-desktop` 中选择的其中一个服务器。该命令仍然导入其他选定的服务器,并为每个无法添加的服务器打印一行。在 v2.1.205 之前,第一个失败的服务器会停止导入。3123Claude Code 无法添加您在 `claude mcp add-from-claude-desktop` 中选择的其中一个服务器。命令仍然导入其他选定的服务器,并为每个无法添加的服务器打印一行。在 v2.1.205 之前,第一个失败的服务器停止了导入。

3121 3124 

3122```text theme={null}3125```text theme={null}

3123Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3126Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3124```3127```

3125 3128 

3126服务器名称后的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中的字符,例如空格和句号,而 `claude mcp` 限制为字母、数字、连字符和下划线。其他原因包括未通过验证的服务器配置和被您的组织的 [MCP 策略](/docs/zh-CN/managed-mcp)阻止的服务器。3129服务器名称后的文本是原因。最常见的是名称检查:Claude Desktop 允许服务器名称中的字符,例如空格和句号,而 `claude mcp` 限制为字母、数字、连字符和下划线。其他原因包括失败验证的服务器配置和被您的组织的 [MCP 策略](/docs/zh-CN/managed-mcp)阻止的服务器。

3127 3130 

3128**要做什么:**3131**应该做什么:**

3129 3132 

3130* 在 `claude_desktop_config.json` 中重命名服务器以仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`3133* 在 `claude_desktop_config.json` 中重命名服务器以仅使用字母、数字、连字符和下划线,然后再次运行 `claude mcp add-from-claude-desktop`

3131* 使用有效名称直接使用 `claude mcp add` 或 `claude mcp add-json` 添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。3134* 使用 `claude mcp add` 或 `claude mcp add-json` 在有效名称下直接添加该服务器。请参阅[从 Claude Desktop 导入 MCP 服务器](/docs/zh-CN/mcp#import-mcp-servers-from-claude-desktop)。

3132 3135 

3133<h3 id="cannot-add-mcp-server-to-the-managed-scope">3136<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3134 无法将 MCP 服务器添加到托管范围3137 无法将 MCP 服务器添加到托管范围

3135</h3>3138</h3>

3136 3139 

3137您使用 `--scope managed` 运行了 `claude mcp add` 或 `claude mcp add-json`。该范围保存您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 托管设置提供的服务器。Claude Code 仅从托管设置读取它们,因此命令无法向该范围写入服务器。3140您使用 `--scope managed` 运行了 `claude mcp add` 或 `claude mcp add-json`。该范围保存您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 托管设置提供的服务器。Claude Code 仅从托管设置读取它们,所以命令无法向该范围写入服务器。

3138 3141 

3139```text theme={null}3142```text theme={null}

3140Cannot add MCP server to scope: managed3143Cannot add MCP server to scope: managed

3141```3144```

3142 3145 

3143**要做什么:**3146**应该做什么:**

3144 3147 

3145* 将服务器添加到您可以写入的范围:`local`、`user` 或 `project`。不带 `--scope`,命令使用 `local`。请参阅 [MCP 安装范围](/docs/zh-CN/mcp#mcp-installation-scopes)3148* 将服务器添加到您可以写入的范围:`local`、`user` 或 `project`。不带 `--scope` 时,命令使用 `local`。请参阅 [MCP 安装范围](/docs/zh-CN/mcp#mcp-installation-scopes)

3146* 要为您的组织中的每个用户提供服务器,请将其添加到您部署的托管设置中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers)3149* 要为您的组织中的每个用户提供服务器,请将其添加到您部署的托管设置中的 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers)

3147 3150 

3148<h3 id="cant-read-mcp-json">3151<h3 id="cant-read-mcp-json">

3149 无法读取 .mcp.json3152 无法读取 .mcp.json

3150</h3>3153</h3>

3151 3154 

3152读取项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 的命令,例如 `claude mcp add` 或 `claude mcp add-json` 带 `--scope project`,或 `claude mcp remove`,发现您当前目录中的文件不是常规文件或大于 2 MiB,因此它以此错误退出,而不是读取文件。3155读取项目的 [`.mcp.json`](/docs/zh-CN/mcp#project-scope) 的命令,例如 `claude mcp add` 或 `claude mcp add-json` 使用 `--scope project`,或 `claude mcp remove`,发现您当前目录中的文件不是常规文件或大于 2 MiB,所以它以此错误退出,而不是读取文件。

3153 3156 

3154```text theme={null}3157```text theme={null}

3155Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3158Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3156```3159```

3157 3160 

3158在 v2.1.257 之前,`.mcp.json` 处的 FIFO 会使命令无限期等待,没有输出,到设备文件(如 `/dev/zero`)的符号链接会增长内存,直到进程被杀死。3161在 v2.1.257 之前,`.mcp.json` 处的 FIFO 使命令永远等待,没有输出,指向诸如 `/dev/zero` 之类的设备文件的符号链接会增长内存,直到进程被杀死。

3159 3162 

3160**要做什么:**3163**应该做什么:**

3161 3164 

3162* 检查您当前目录中 `.mcp.json` 处的内容。将其替换为[项目范围格式](/docs/zh-CN/mcp#project-scope)中的普通 JSON 文件,或删除它,然后再次运行命令。3165* 检查您当前目录中 `.mcp.json` 处的内容。将其替换为 [project-scope 格式](/docs/zh-CN/mcp#project-scope)中的普通 JSON 文件,或删除它,然后再次运行命令。

3163 3166 

3164<h3 id="mcp-server-was-not-saved-or-removed">3167<h3 id="mcp-server-was-not-saved-or-removed">

3165 MCP 服务器未被保存或删除3168 MCP 服务器未被保存或删除

3166</h3>3169</h3>

3167 3170 

3168您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。两个范围都存储在 `~/.claude.json` 中,当 Claude Code 在写入后读回该文件时,更改不在该文件中。命令以此错误退出,而不是其成功行。3171您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。两个范围都存储在 `~/.claude.json` 中,当 Claude Code 在写入后读取该文件时,更改不在该文件中。命令以此错误退出,而不是其成功行。

3169 3172 

3170```text theme={null}3173```text theme={null}

3171MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3174MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3172```3175```

3173 3176 

3174删除后,消息读取 `was not removed from` 并以 `then remove the server again` 结尾。对于 `local` 范围的服务器,路径后跟项目目录,该条目属于该目录,如 `(local scope for /path/to/project)`。3177删除后,消息读取 `was not removed from` 并以 `then remove the server again` 结尾。对于 `local` 范围服务器,路径后跟项目目录条目所属的,如 `(local scope for /path/to/project)`。

3175 3178 

3176在 v2.1.283 之前,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 即使更改未到达文件也报告成功。3179在 v2.1.283 之前,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 即使更改没有到达文件也报告成功。

3177 3180 

3178**要做什么:**3181**应该做什么:**

3179 3182 

3180* 使消息命名的文件可写,或在沙箱外运行命令,然后再次运行相同的添加或删除命令。3183* 使消息命名的文件可写,或在沙箱外运行命令,然后再次运行相同的添加或删除命令。

3181 3184 


3183 MCP 服务器可能未被保存或删除3186 MCP 服务器可能未被保存或删除

3184</h3>3187</h3>

3185 3188 

3186您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,Claude Code 无法读回 `~/.claude.json` 以确认更改。更改可能在磁盘上,也可能不在。括号中的文本是该读取的错误。3189您为 `user` 或 `local` [范围](/docs/zh-CN/mcp#mcp-installation-scopes)中的服务器运行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,Claude Code 无法读取 `~/.claude.json` 回来确认更改。更改可能在磁盘上,也可能不在。括号中的文本是该读取的错误。

3187 3190 

3188```text theme={null}3191```text theme={null}

3189MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3192MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.


3191 3194 

3192删除后,消息读取 `may not have been removed` 并以 `then remove the server again if it is still listed` 结尾。3195删除后,消息读取 `may not have been removed` 并以 `then remove the server again if it is still listed` 结尾。

3193 3196 

3194在 v2.1.283 之前,命令即使无法确认更改也报告成功。3197在 v2.1.283 之前,命令即使更改无法确认也报告成功。

3195 3198 

3196**要做什么:**3199**应该做什么:**

3197 3200 

3198* 运行 `claude mcp get <name>` 检查更改是否在磁盘上。对于 `local` 范围的服务器,从服务器所属的项目目录运行它,因为本地范围是每个项目的。3201* 运行 `claude mcp get <name>` 检查更改是否在磁盘上。对于 `local` 范围服务器,从服务器所属的项目目录运行它,因为本地范围是每个项目的。

3199* 如果服务器在添加后缺失,或在删除后仍然列出,请再次运行相同的添加或删除命令。3202* 如果服务器在添加后丢失,或在删除后仍然列出,请再次运行相同的添加或删除命令。

3200 3203 

3201<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3204<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3202 服务器是 Anthropic 托管的,不支持本地 OAuth3205 服务器是 Anthropic 托管的,不支持本地 OAuth

3203</h3>3206</h3>

3204 3207 

3205您为 URL 指向通过第三方身份提供商进行身份验证的 Anthropic 托管连接器主机的 MCP 服务器启动了登录。这些主机包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 和 `gcal.mcp.claude.com`。Claude Code 拒绝从 `/mcp` 面板和 `claude mcp login` 为这些主机启动其本地 OAuth 流,因为[它们的登录仅通过 claude.ai 工作](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。3208您为 MCP 服务器启动了登录,其 URL 指向通过第三方身份提供商进行身份验证的 Anthropic 托管连接器主机。这些主机包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 和 `gcal.mcp.claude.com`。Claude Code 拒绝为这些主机从 `/mcp` 面板和 `claude mcp login` 启动其本地 OAuth 流,因为[它们的登录仅通过 claude.ai 工作](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)。

3206 3209 

3207```text theme={null}3210```text theme={null}

3208"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3211"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

3209```3212```

3210 3213 

3211Claude Code 按 URL 匹配这些主机,因此当您使用 `claude mcp add` 或在 `.mcp.json` 中添加的服务器指向其中之一时,消息会出现。3214**应该做什么:**

3212 

3213**要做什么:**

3214 3215 

3215* 使用 `claude mcp remove <name>` 删除您的条目,以便它无法隐藏同一 URL 处的 claude.ai 连接器3216* 使用 `claude mcp remove <name>` 删除您的条目,以便它不能隐藏同一 URL 处的 claude.ai 连接器

3216* 删除后,在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 连接服务,同时登录到您在 Claude Code 中使用的帐户。连接后,如果您的活跃身份验证方法是 claude.ai 订阅登录,[连接器会自动出现在 Claude Code 中](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)3217* 删除后,在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 连接服务,同时登录到您在 Claude Code 中使用的帐户。连接后,如果您的活跃身份验证方法是 claude.ai 订阅登录,[连接器会自动出现在 Claude Code 中](/docs/zh-CN/mcp#use-mcp-servers-from-claude-ai)

3217 3218 

3218<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3219<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3219 服务器拒绝了由配置的 headersHelper 生成的 Authorization 标头3220 服务器拒绝了由配置的 headersHelper 生成的 Authorization 标头

3220</h3>3221</h3>

3221 3222 

3222其 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 标头的 MCP 服务器以 HTTP 401 或 403 回答连接,因此 Claude Code 将连接报告为失败。因为助手提供 `Authorization` 标头,Claude Code [不会回退到 OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 对于服务器:3223其 [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 标头的 MCP 服务器以 HTTP 401 或 403 回答连接,所以 Claude Code 将连接报告为失败。因为助手提供 `Authorization` 标头,Claude Code [不会回退到 OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 对于服务器:

3223 3224 

3224```text theme={null}3225```text theme={null}

3225Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3226Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3226```3227```

3227 3228 

3228Claude Code 在每次连接尝试时重新运行助手,因此在暂时拒绝后重试(例如令牌轮换竞争)可以使用新凭证成功。3229Claude Code 在每次连接尝试时重新运行助手,所以在短暂拒绝后重试,例如令牌轮换竞争,可以使用新凭证成功。

3229 3230 

3230**要做什么:**3231**应该做什么:**

3231 3232 

3232* 按照 Claude Code 运行它的方式自己运行 `headersHelper` 命令:从 [Claude Code 运行它的目录](/docs/zh-CN/mcp#where-the-helper-runs),使用 [Claude Code 为其设置的环境变量](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication),以及不使用 [Claude Code 为来自项目 `.mcp.json`、插件或项目代理文件的服务器删除的凭证变量](/docs/zh-CN/mcp#which-variables-a-helper-can-read)。检查它打印的 `Authorization` 值是否被服务器的端点接受3233* 按照 Claude Code 运行它的方式自己运行 `headersHelper` 命令:从 [Claude Code 运行它的目录](/docs/zh-CN/mcp#where-the-helper-runs),使用 [Claude Code 为其设置的环境变量](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication),以及不使用 [Claude Code 为来自项目 `.mcp.json`、插件或项目代理文件的服务器删除的凭证变量](/docs/zh-CN/mcp#which-variables-a-helper-can-read)。检查它是否打印服务器端点接受的 `Authorization` 值

3233* 修复助手或其凭证源后,在 `/mcp` 中选择服务器并选择**重新连接**3234* 修复助手或其凭证源后,在 `/mcp` 中选择服务器并选择**重新连接**

3234 3235 

3235在 v2.1.248 之前,Claude Code 为其助手提供 `Authorization` 标头的服务器运行 OAuth 发现。该发现可能失败,错误为 `Incompatible auth server: does not support dynamic client registration`,而不是报告被拒绝的凭证。3236在 v2.1.248 之前,Claude Code 为其助手提供 `Authorization` 标头的服务器运行 OAuth 发现。该发现可能失败,显示 `Incompatible auth server: does not support dynamic client registration` 而不是报告被拒绝的凭证。

3236 3237 

3237<h3 id="mcp-permission-prompt-tool-not-found">3238<h3 id="mcp-permission-prompt-tool-not-found">

3238 找不到 MCP 权限提示工具3239 未找到 MCP 权限提示工具

3239</h3>3240</h3>

3240 3241 

3241您传递给 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的工具在运行首次需要权限决定时不在连接的 MCP 工具中,要么因为其服务器从未连接,要么因为没有连接的服务器公开该名称的工具。Claude Code 仍然发送您的提示:[非交互](/docs/zh-CN/headless)运行在第一个需要批准的工具调用时以此错误和代码 1 退出,因此即使请求已发出,它也不会产生答案。在第一个提示之前,Claude Code 等待最多由 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 设置的每个服务器连接超时 30 秒,以便该服务器连接。在 v2.1.206 之前,启动不等待服务器完成连接,因此启动缓慢但健康的服务器也会产生此错误。3242您传递给 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的工具在运行首次需要权限决定时不在连接的 MCP 工具中,要么因为其服务器从未连接,要么因为没有连接的服务器公开该名称的工具。Claude Code 仍然发送您的提示:[非交互](/docs/zh-CN/headless)运行在第一个工具调用时以此错误和退出代码 1 退出,所以即使请求已发出,它也不会产生答案。在第一个提示之前,Claude Code 等待最多由 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 设置的每个服务器连接超时 30 秒,以便该服务器连接。在 v2.1.206 之前,启动不等待服务器完成连接,所以启动缓慢但健康的服务器也会产生此错误。

3242 3243 

3243```text theme={null}3244```text theme={null}

3244Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3245Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3245```3246```

3246 3247 

3247等待结束时连接的 MCP 工具之后的列表命名了 MCP 工具。3248`Available MCP tools:` 后的列表命名已连接的 MCP 工具。

3248 3249 

3249**要做什么:**3250**应该做什么:**

3250 3251 

3251* 检查服务器启动并保持连接:在同一目录中运行 `claude mcp list` 并确认服务器列为已连接3252* 检查服务器启动并保持连接:在同一目录中运行 `claude mcp list` 并确认服务器列为已连接

3252* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称匹配3253* 确认工具名称与服务器公开的 `mcp__<server>__<tool>` 名称匹配


3256 OAuth 回调端口已在使用中3257 OAuth 回调端口已在使用中

3257</h3>3258</h3>

3258 3259 

3259当您使用 OAuth 登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。如果该侦听器需要的端口被另一个进程持有,登录会失败并显示此消息。这主要发生在通过 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-CN/env-vars) 变量或 `--callback-port` 设置的[固定回调端口](/docs/zh-CN/mcp#use-a-fixed-oauth-callback-port)上,因为没有一个 Claude Code 会选择可用端口。3260当您使用 OAuth 登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。如果该侦听器需要的端口被另一个进程持有,登录失败,显示此消息。这主要发生在[固定回调端口](/docs/zh-CN/mcp#use-a-fixed-oauth-callback-port)通过 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-CN/env-vars) 变量或 `--callback-port` 设置时,因为没有一个 Claude Code 会选择可用端口。

3260 3261 

3261```text theme={null}3262```text theme={null}

3262OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3263OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.


3264 3265 

3265在 Windows 上,建议的命令是 `netstat -ano | findstr :<port>`。3266在 Windows 上,建议的命令是 `netstat -ano | findstr :<port>`。

3266 3267 

3267**要做什么:**3268**应该做什么:**

3268 3269 

3269* 运行消息中的命令以找到持有端口的进程,并停止它或等待它完成3270* 运行消息中的命令以找到持有端口的进程,并停止它或等待它完成

3270* 如果另一个程序永久需要该端口,请向服务器注册不同的重定向 URI,并使用 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port` 设置其端口,以及您使用的任何一个3271* 如果另一个程序永久需要该端口,请向服务器注册不同的重定向 URI,并使用 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port` 设置其端口,以及您使用的任何一个

3271* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器3272* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器

3272 3273 

3273<h3 id="no-available-ports-for-oauth-redirect">3274<h3 id="no-available-ports-for-oauth-redirect">

3274 没有可用的 OAuth 重定向端口3275 OAuth 重定向没有可用的端口

3275</h3>3276</h3>

3276 3277 

3277当您使用[OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers) 登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。当 Claude Code 无法为其绑定本地端口时,登录会失败并显示此消息。机器上的某些内容阻止它在 `127.0.0.1` 上侦听,例如安全软件或拒绝本地侦听器的沙箱策略。3278当您使用[OAuth](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)登录远程 MCP 服务器时,Claude Code 启动本地侦听器以接收登录回调。当 Claude Code 无法为其绑定本地端口时,登录失败,显示此消息。机器上的某些内容阻止它在 `127.0.0.1` 上侦听,例如安全软件或拒绝本地侦听器的沙箱策略。

3278 3279 

3279```text theme={null}3280```text theme={null}

3280No available ports for OAuth redirect3281No available ports for OAuth redirect

3281```3282```

3282 3283 

3283在 v2.1.268 之前,Claude Code 没有回退到操作系统分配的端口,因此消息也出现在只有其自选端口无法绑定时。这可能发生在 Hyper-V 保留覆盖 Claude Code 选择的端口的端口范围的 Windows 主机上。3284在 v2.1.268 之前,Claude Code 不会回退到操作系统分配的端口,所以消息也会在仅其自选端口无法绑定时出现。这可能发生在 Hyper-V 保留覆盖 Claude Code 选择的端口的端口范围的 Windows 主机上。

3284 3285 

3285**要做什么:**3286**应该做什么:**

3286 3287 

3287* 检查安全软件或沙箱策略是否阻止进程在 `127.0.0.1` 上侦听,并允许 Claude Code 绑定本地端口3288* 检查安全软件或沙箱策略是否阻止进程在 `127.0.0.1` 上侦听,并允许 Claude Code 绑定本地端口

3288* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器3289* 然后再次启动登录,例如通过在 `/mcp` 中选择服务器

3289 3290 

3290<h3 id="security-review-fails-without-origin-head">3291<h3 id="security-review-fails-without-origin-head">

3291 /security-review 在没有 origin/HEAD 的情况下失败3292 /security-review 在没有 origin/HEAD 时失败

3292</h3>3293</h3>

3293 3294 

3294[`/security-review`](/docs/zh-CN/commands#all-commands) 通过将您的分支与 `origin/HEAD` 进行比较来构建其审查上下文,这是记录您的 `origin` 远程上哪个分支是默认分支的本地 ref。当该 ref 不存在时,收集差异的 git 命令会失败,审查在启动前停止。3295[`/security-review`](/docs/zh-CN/commands#all-commands) 通过将您的分支与 `origin/HEAD` 进行比较来构建其审查上下文,这是记录您的 `origin` 远程上哪个分支是默认分支的本地 ref。当该 ref 不存在时,收集差异的 git 命令失败,审查在启动前停止。

3295 3296 

3296```text theme={null}3297```text theme={null}

3297Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3298Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3300'git <command> [<revision>...] -- [<file>...]'3301'git <command> [<revision>...] -- [<file>...]'

3301```3302```

3302 3303 

3303消息可能引用 `git log` 或不同的 `git diff`。Git 仅在远程通告默认分支且您的获取 refspec 覆盖它时创建 `origin/HEAD`,这是完整 `git clone` 的远程提交所做的。该 ref 在这些设置中缺失:3304消息可能引用 `git log` 或不同的 `git diff`。Git 仅在远程通告默认分支且您的获取 refspec 覆盖它时创建 `origin/HEAD`,完整的远程克隆带有提交时会这样做。在这些设置中 ref 丢失:

3304 3305 

3305* 单分支或 CI 检出,它获取太窄的 refspec3306* 单分支或 CI 检出,它获取太窄的 refspec

3306* 远程的服务器端 HEAD 指向没有人推送的分支3307* 远程服务器端 HEAD 指向没有人推送的分支

3307* 没有 `origin` 远程的存储库,或您从未获取的存储库3308* 没有 `origin` 远程的存储库,或您从未获取的存储库

3308 3309 

3309Claude Code 为任何[注入动态上下文](/docs/zh-CN/skills#when-an-injected-command-fails)的 skill 显示相同的错误,失败的注入命令会中止该 skill 的调用。两个同级字符串在命令运行之前就会触发:3310Claude Code 为任何 [injects dynamic context](/docs/zh-CN/skills#when-an-injected-command-fails) 的 skill 显示相同的错误,失败的注入命令会中止该 skill 的调用。两个兄弟字符串在命令运行之前就会触发:

3310 3311 

3311* `Shell command permission check failed for pattern "..."`:命令的权限检查不允许它。[注入命令的权限检查](/docs/zh-CN/skills#permission-checks-on-injected-commands)涵盖在每个权限模式中哪些结果中止以及如何使用 `allowed-tools` 预批准命令3312* `Shell command permission check failed for pattern "..."`:命令的权限检查不允许它。[Permission checks on injected commands](/docs/zh-CN/skills#permission-checks-on-injected-commands) 涵盖在每个权限模式中哪些结果会中止,以及如何使用 `allowed-tools` 预先批准命令

3312* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:skill 的 frontmatter 在没有它的机器上要求 bash。安装 Git for Windows 或将 frontmatter 更改为 `shell: powershell`。请参阅[注入命令如何运行](/docs/zh-CN/skills#how-injected-commands-run)3313* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:skill 的 frontmatter 在没有它的机器上要求 bash。安装 Git for Windows 或将 frontmatter 更改为 `shell: powershell`。请参阅[注入命令如何运行](/docs/zh-CN/skills#how-injected-commands-run)

3313 3314 

3314**要做什么:**3315**应该做什么:**

3315 3316 

3316* 通过命名您的远程的默认分支创建 ref:`git remote set-head origin <default-branch>`。只要本地跟踪 ref `origin/<default-branch>` 存在,这就有效。如果不存在,如在单分支克隆中,首先获取分支:运行 `git remote set-branches --add origin <branch>`,然后 `git fetch origin`,然后重新运行 set-head 命令。重新运行 `/security-review`。3317* 通过命名您的远程默认分支创建 ref:`git remote set-head origin <default-branch>`。只要本地跟踪 ref `origin/<default-branch>` 存在,这就有效。如果它不存在,如在单分支克隆中,首先获取分支:运行 `git remote set-branches --add origin <branch>`,然后 `git fetch origin`,然后重新运行 set-head 命令。重新运行 `/security-review`。

3317* 如果您不想命名分支,运行 `git fetch origin` 然后 `git remote set-head origin --auto`,它询问远程哪个分支是其默认分支。当远程不通告默认分支时它失败,错误为 `error: Cannot determine remote HEAD`,因为它是空的或其 HEAD 指向没有人推送的分支;改为显式命名分支。当您的克隆不获取该分支时它失败,错误为 `error: Not a valid ref`;首先按上述方式扩大 refspec。3318* 如果您不想命名分支,运行 `git fetch origin` 然后 `git remote set-head origin --auto`,它询问远程其默认分支是什么。当远程不通告默认分支时它失败,显示 `error: Cannot determine remote HEAD`,因为它是空的或其 HEAD 指向没有人推送的分支;改为显式命名分支。当您的克隆不获取该分支时它失败,显示 `error: Not a valid ref`;首先按上面的方式扩大 refspec。

3318* 如果存储库没有远程,使用 `git remote add origin <url>` 添加一个并在创建 ref 之前获取。如果远程是空的,首先使用 `git push -u origin HEAD` 推送您的分支,并在 set-head 命令中命名该分支;`origin/HEAD` 然后指向您刚推送的分支,因此 `/security-review` 看到空差异,直到分支与它分歧。3319* 如果存储库没有远程,使用 `git remote add origin <url>` 添加一个并在创建 ref 之前获取。如果远程是空的,首先使用 `git push -u origin HEAD` 推送您的分支,并在 set-head 命令中命名该分支;`origin/HEAD` 然后指向您刚推送的分支,所以 `/security-review` 看到空差异,直到分支与其分歧。

3319 3320 

3320<h3 id="input-must-be-provided-when-using-print">3321<h3 id="input-must-be-provided-when-using-print">

3321 使用 --print 时必须提供输入3322 使用 `--print` 时必须提供输入

3322</h3>3323</h3>

3323 3324 

3324裸 `claude` 需要 stdout 是终端才能启动交互 UI。当 stdout 被重定向或控制台不是真实终端时,例如 PowerShell ISE 和某些 IDE 输出窗格,`claude` 改为以[非交互](/docs/zh-CN/headless)方式运行。这与 `claude -p` 相同,它需要提示,因此消息命名 `--print`,即使您没有传递标志。在任何地方传递 `-p`/`--print` 不带提示且 stdin 上没有任何内容会产生相同的错误。3325裸 `claude` 需要 stdout 是终端才能启动交互 UI。当 stdout 被重定向,或控制台不是真实终端时,例如 PowerShell ISE 和某些 IDE 输出窗格,`claude` 改为以[非交互](/docs/zh-CN/headless)模式运行。这与 `claude -p` 相同,它需要提示,所以消息命名 `--print`,即使您没有传递标志。在任何地方传递 `-p`/`--print` 而不带提示且 stdin 上没有任何内容会产生相同的错误。

3325 3326 

3326```text theme={null}3327```text theme={null}

3327Error: Input must be provided either through stdin or as a prompt argument when using --print3328Error: Input must be provided either through stdin or as a prompt argument when using --print

3328```3329```

3329 3330 

3330**要做什么:**3331**应该做什么:**

3331 3332 

3332* 对于交互使用,在真实终端中运行 `claude`:Windows Terminal 或 PowerShell 控制台而不是 ISE,以及您的 IDE 的集成终端而不是输出窗格3333* 对于交互使用,在真实终端中运行 `claude`:Windows Terminal 或 PowerShell 控制台而不是 ISE,以及您的 IDE 的集成终端而不是输出窗格

3333* 对于一次性使用,传递提示:`claude -p "your question"`,或使用 `echo "your question" | claude -p` 管道它3334* 对于一次性使用,传递提示:`claude -p "your question"`,或使用 `echo "your question" | claude -p` 管道它


3339在[非交互模式](/docs/zh-CN/headless)中,Claude Code 拒绝完全由空格、制表符或换行符组成的提示,而不是发送它,因为 API 拒绝没有可见文本的消息。您看到的消息取决于空白提示来自何处:3340在[非交互模式](/docs/zh-CN/headless)中,Claude Code 拒绝完全由空格、制表符或换行符组成的提示,而不是发送它,因为 API 拒绝没有可见文本的消息。您看到的消息取决于空白提示来自何处:

3340 3341 

3341* **`claude -p` 的提示参数或管道 stdin**:`claude` 以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 退出3342* **`claude -p` 的提示参数或管道 stdin**:`claude` 以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 退出

3342* **提交给运行的 `--input-format stream-json` 或[Agent SDK](/docs/zh-CN/agent-sdk/overview) 会话的消息**:Claude Code 在没有调用模型的情况下结束轮次,会话保持可用。拒绝作为信息消息和轮次的结果文本到达:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`3343* **提交给运行 `--input-format stream-json` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 会话的消息**:Claude Code 在不调用模型的情况下结束轮次,会话保持可用。拒绝作为信息消息和轮次的结果文本到达:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3343 3344 

3344在 v2.1.229 之前,Claude Code 将仅空格的消息发送到 API,API 以 400 错误拒绝请求。3345在 v2.1.229 之前,Claude Code 将仅空格消息发送到 API,API 以 400 错误拒绝请求。

3345 3346 

3346**要做什么:**3347**应该做什么:**

3347 3348 

3348* 在提示中包含可见文本。如果脚本从变量或文件构建提示,请在调用 Claude Code 之前检查源是否不为空。3349* 在提示中包含可见文本。如果脚本从变量或文件构建提示,请在调用 Claude Code 之前检查源是否不为空。

3349 3350 


3351 stream-json 输入在没有换行符的情况下超过 256M 个字符3352 stream-json 输入在没有换行符的情况下超过 256M 个字符

3352</h3>3353</h3>

3353 3354 

3354您的程序在 stdin 上发送了超过 268,435,456 个字符,没有换行符到 `claude -p --input-format stream-json` 运行,因此 Claude Code 将此错误打印到 stderr 并以代码 1 退出,而不是缓冲更多输入。消息将该预算表示为 `256M`。在 v2.1.257 之前,Claude Code 无限制地缓冲此类输入,增长内存直到进程崩溃或被杀死。3355您的程序在没有换行符的情况下在 stdin 上发送了超过 268,435,456 个字符到 `claude -p --input-format stream-json` 运行,所以 Claude Code 将此错误打印到 stderr 并以代码 1 退出,而不是缓冲更多输入。消息将该预算表示为 `256M`。在 v2.1.257 之前,Claude Code 无限制地缓冲此类输入,增长内存直到进程崩溃或被杀死。

3355 3356 

3356```text theme={null}3357```text theme={null}

3357Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3358Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3358```3359```

3359 3360 

3360这么长的输入没有换行符通常意味着生产者根本不是 stream-json 生产者,例如二进制文件或意外管道的纯日志输出。超过预算的单个消息会失败相同的检查。3361没有换行符的这么长的输入通常意味着生产者根本不是 stream-json 生产者,例如二进制文件或意外管道的纯日志输出。超过预算的单个消息失败相同的检查。

3361 3362 

3362**要做什么:**3363**应该做什么:**

3363 3364 

3364* 检查什么被管道到 stdin。使用 [`--input-format stream-json`](/docs/zh-CN/cli-reference#cli-flags),每条消息必须是一个换行符终止的 JSON 行3365* 检查什么被管道到 stdin。使用 [`--input-format stream-json`](/docs/zh-CN/cli-reference#cli-flags),每条消息必须是一个换行符终止的 JSON 行

3365* 要改为发送纯文本,请删除 `--input-format stream-json`;`claude -p` 默认从 stdin 读取纯文本提示3366* 要改为发送纯文本,请删除 `--input-format stream-json`;`claude -p` 默认从 stdin 读取纯文本提示


3368 未知命令3369 未知命令

3369</h3>3370</h3>

3370 3371 

3371在交互式终端会话中,您提交了一个 `/` 名称,它与此会话中的任何命令都不匹配,因此 Claude Code 报告该名称而不是运行任何内容:3372在交互终端会话中,您提交了一个 `/` 名称,它与此会话中的任何命令都不匹配,所以 Claude Code 报告该名称而不是运行任何内容:

3372 3373 

3373```text theme={null}3374```text theme={null}

3374Unknown command: /hepl. Did you mean /help?3375Unknown command: /hepl. Did you mean /help?


3376 3377 

3377Claude Code 建议此会话中菜单列出的最接近的命令名称或别名。当没有接近的时候,消息在名称后结束。原因通常是以下之一:3378Claude Code 建议此会话中菜单列出的最接近的命令名称或别名。当没有接近的时候,消息在名称后结束。原因通常是以下之一:

3378 3379 

3379* 打字错误,例如 `/hepl` 代替 `/help`。[命令菜单如何匹配您键入的内容](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type)涵盖在提交前选择接近匹配3380* 打字错误,例如 `/hepl` 代替 `/help`。[How the command menu matches what you type](/docs/zh-CN/commands#how-the-command-menu-matches-what-you-type) 涵盖在提交前选择接近的匹配

3380* 存在但在此会话中不可用的命令,因为不满足要求,例如您的平台、计划或身份验证方法。[`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 的故障排除条目演示了两个常见情况。某些命令在您的组织的策略禁用它们时用自己的消息回答,例如[`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3381* 存在但在此会话中不可用的命令,因为不满足要求,例如您的平台、计划或身份验证方法。[`/web-setup`](/docs/zh-CN/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-CN/routines#schedule-returns-unknown-command) 的故障排除条目演示两个常见情况。某些命令在您的组织的策略禁用它们时用自己的消息回答,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3381* 来自此会话中未安装或未连接的[插件](/docs/zh-CN/plugins/overview)或 [MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令3382* 来自[插件](/docs/zh-CN/plugins/overview)或[MCP 服务器](/docs/zh-CN/mcp#use-mcp-prompts-as-commands)的命令,在此会话中未安装或连接

3382 3383 

3383Claude Code 仅在交互式终端会话中以这种方式回答不匹配的 `/` 名称。在所有其他会话中,它将提示作为普通消息发送给 Claude,并注意命令未运行以及 Claude 可以在会话中运行的命令列表。这些会话包括:3384Claude Code 仅在交互终端会话中以这种方式回答不匹配的 `/` 名称。在所有其他会话中,它将提示作为正常消息发送给 Claude,并注意命令未运行以及 Claude 可以在会话中运行的命令列表。这些会话包括:

3384 3385 

3385* `-p` 运行3386* `-p` 运行

3386* [Agent SDK](/docs/zh-CN/agent-sdk/overview) 应用程序3387* [Agent SDK](/docs/zh-CN/agent-sdk/overview) 应用程序


3388* [VS Code 扩展](/docs/zh-CN/vs-code)的聊天面板3389* [VS Code 扩展](/docs/zh-CN/vs-code)的聊天面板

3389* [云会话](/docs/zh-CN/claude-code-on-the-web)和[例程](/docs/zh-CN/routines)3390* [云会话](/docs/zh-CN/claude-code-on-the-web)和[例程](/docs/zh-CN/routines)

3390 3391 

3391对于无法在这些会话之一中运行的内置命令,Claude Code 仍然回答该命令不可用,而不是将其发送给 Claude。在 v2.1.274 之前,只有云会话和例程将不匹配的名称发送给 Claude。在 v2.1.273 之前,他们也回答 `Unknown command`。3392对于无法在这些会话之一中运行的内置命令,Claude Code 仍然回答命令不可用,而不是将其发送给 Claude。在 v2.1.274 之前,仅云会话和例程将不匹配的名称发送给 Claude。在 v2.1.273 之前,它们也回答 `Unknown command`。

3392 3393 

3393Claude Code 不将每个以 `/` 开头的提示视为命令。当 `/` 后的第一个单词以标点符号开头时,它将提示作为普通消息发送给 Claude,例如打开 Lean 文档注释的 `/--`,或是路径,例如 `/var/log/syslog`。3394Claude Code 不将每个以 `/` 开头的提示视为命令。当 `/` 后的第一个单词以标点符号开头时,它将提示作为正常消息发送给 Claude,例如打开 Lean doc 注释的 `/--`,或是路径,例如 `/var/log/syslog`。

3394 3395 

3395在 v2.1.236 之前,如果您在命令菜单列出您键入的名称的接近匹配时按 `Enter`,Claude Code 会运行该匹配,因此 `/hepl` 之类的打字错误会运行 `/help` 而不是产生此消息。3396在 v2.1.236 之前,如果您在命令菜单列出您键入的名称的接近匹配时按 `Enter`,Claude Code 会运行该匹配,所以 `/hepl` 之类的打字错误会运行 `/help` 而不是产生此消息。

3396 3397 

3397**要做什么:**3398**应该做什么:**

3398 3399 

3399* 运行建议的名称,或键入 `/` 后跟名称的一部分以查看此会话中可用的内容3400* 运行建议的名称,或键入 `/` 后跟名称的一部分以查看此会话中可用的内容

3400* 如果 Claude Code 将记录的命令报告为未知,请检查[命令参考](/docs/zh-CN/commands)中其行以了解它命名的要求3401* 如果 Claude Code 将记录的命令报告为未知,请检查[命令参考](/docs/zh-CN/commands)中的其行以了解它命名的要求

3401 3402 

3402<h3 id="diff-is-too-large-for-ultrareview">3403<h3 id="diff-is-too-large-for-ultrareview">

3403 Diff 对于 ultrareview 来说太大3404 Diff 对于 ultrareview 来说太大了

3404</h3>3405</h3>

3405 3406 

3406您的分支与基础分支之间的差异,包括未提交和暂存的更改,超过了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,因此 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。被拒绝的审查不使用免费运行,也不计费使用信用。消息命名生效的限制、您的差异大小以及贡献最多更改行的文件。在 v2.1.216 之前,消息仅显示原始差异统计。3407您的分支和基础分支之间的差异,包括未提交和暂存的更改,超过了 [ultrareview](/docs/zh-CN/ultrareview) 的大小限制,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。被拒绝的审查不使用免费运行,也不计费使用信用。消息命名有效的限制、您的差异大小以及贡献最多更改行的文件。在 v2.1.216 之前,消息仅显示原始差异统计。

3407 3408 

3408```text theme={null}3409```text theme={null}

3409Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3410Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.


3411 3412 

3412审查拉取请求应用相同的限制;该形式的消息以 `PR #<N> is too large for ultrareview` 开头,并命名 PR 的文件和行数。3413审查拉取请求应用相同的限制;该形式的消息以 `PR #<N> is too large for ultrareview` 开头,并命名 PR 的文件和行数。

3413 3414 

3414**要做什么:**3415**应该做什么:**

3415 3416 

3416* 传递更接近您的工作的基础分支,例如 `/code-review ultra develop`,以便审查仅涵盖与该分支的差异3417* 传递更接近您的工作的基础分支,例如 `/code-review ultra develop`,以便审查仅涵盖与该分支的差异

3417* 将更改分成较小的分支并审查每一个。消息命名的文件贡献最多更改行,因此首先将这些移到它们自己的分支。3418* 将更改分成较小的分支并审查每一个。消息命名的文件贡献最多更改行,所以首先将这些移到它们自己的分支。

3418 3419 

3419<h3 id="could-not-find-merge-base-with-the-base-branch">3420<h3 id="could-not-find-merge-base-with-the-base-branch">

3420 无法找到与基础分支的合并基础3421 无法找到与基础分支的合并基础

3421</h3>3422</h3>

3422 3423 

3423`/code-review ultra` 和 `claude ultrareview` 子命令审查您的分支与基础分支之间的差异,这需要两者共享的提交。当 `git merge-base` 找不到时,Claude Code 在云会话启动前拒绝审查。在 Claude Code 可以验证完整的克隆上,至少有一个分支,它改为回退到[审查每个跟踪文件](/docs/zh-CN/ultrareview#diff-limits-and-fallbacks)而不是拒绝。您在基础分支根本找不到、Claude Code 无法验证您的克隆完整或在罕见的存储库中看到此拒绝,其中整个树差异不可能,例如 SHA-256 对象格式。3424`/code-review ultra` 和 `claude ultrareview` 子命令审查您的分支和基础分支之间的差异,这需要两者共享的提交。当 `git merge-base` 找不到时,Claude Code 在云会话启动前拒绝审查。在 Claude Code 可以验证完整的克隆上,至少有一个分支,它改为回退到[审查每个跟踪文件](/docs/zh-CN/ultrareview#diff-limits-and-fallbacks)而不是拒绝。您在基础分支根本找不到时、Claude Code 无法验证您的克隆完整时,或在罕见的存储库中看到此拒绝,其中整个树差异不可能,例如 SHA-256 对象格式。

3424 3425 

3425```text theme={null}3426```text theme={null}

3426Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3427Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.


3428 3429 

3429第一句后的提示取决于 Claude Code 观察到的内容:3430第一句后的提示取决于 Claude Code 观察到的内容:

3430 3431 

3431* **您没有传递基础分支**:Claude Code 与存储库的默认分支进行了比较,并建议显式传递您的基础,如上例所示3432* **您没有传递基础分支**:Claude Code 与存储库的默认分支进行了比较,并建议显式传递您的基础,如上面的示例

3432* **您传递了已在克隆中的基础分支**:提示读取 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3433* **您传递的基础分支已在您的克隆中**:提示读取 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3433* **您传递了不在克隆中的基础分支**:Claude Code 在比较前从 origin 获取了它。提示读取 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否浅时,它改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,提示为每个获取的基础分支建议 `git fetch --unshallow origin`,在完整克隆上该命令失败,错误为 `fatal: --unshallow on a complete repository does not make sense`。3434* **您传递的基础分支不在您的克隆中**:Claude Code 在比较前从 origin 获取了它。提示读取 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;当 Claude Code 无法判断您的克隆是否浅时,它改为建议 `git fetch --unshallow origin`。在 v2.1.221 之前,提示为每个获取的基础分支建议 `git fetch --unshallow origin`,在完整克隆上该命令失败,显示 `fatal: --unshallow on a complete repository does not make sense`。

3434 3435 

3435**要做什么:**3436**应该做什么:**

3436 3437 

3437* 如果另一个分支是您的真实基础,显式传递它:`/code-review ultra <branch>`3438* 如果另一个分支是您的真实基础,显式传递它:`/code-review ultra <branch>`

3438* 如果您的克隆可能没有完整历史,运行 `git fetch --unshallow origin` 并重新运行审查3439* 如果您的克隆可能没有完整历史,运行 `git fetch --unshallow origin` 并重新运行审查


3441 您的检出没有分支3442 您的检出没有分支

3442</h3>3443</h3>

3443 3444 

3444检出可以有提交但没有分支:如果您运行 `git init` 后跟 `git fetch <url>` 和 `git checkout FETCH_HEAD`,您会得到一个分离的 HEAD,没有 refs。Claude Code 将您的存储库打包为 git 包以上传以进行 [ultrareview](/docs/zh-CN/ultrareview),它无法打包没有分支或其他 refs 的存储库,因此 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。3445检出可以有提交但没有分支:如果您运行 `git init` 后跟 `git fetch <url>` 和 `git checkout FETCH_HEAD`,您会得到一个分离的 HEAD,没有 refs。Claude Code 将您的存储库打包为 git 包以上传它进行 [ultrareview](/docs/zh-CN/ultrareview),它无法打包没有分支或其他 refs 的存储库,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在云会话启动前拒绝审查。

3445 3446 

3446```text theme={null}3447```text theme={null}

3447Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3448Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.


3449 3450 

3450在 v2.1.221 之前,Claude Code 尝试审查此检出中的每个跟踪文件,上传失败。3451在 v2.1.221 之前,Claude Code 尝试审查此检出中的每个跟踪文件,上传失败。

3451 3452 

3452**要做什么:**3453**应该做什么:**

3453 3454 

3454* 使用 `git checkout -b <name>` 在您当前的提交处创建分支,然后重新运行审查3455* 使用 `git checkout -b <name>` 在您当前的提交处创建分支,然后重新运行审查

3455 3456 


3457 没有 GitHub 帐户连接到您的 Claude 帐户3458 没有 GitHub 帐户连接到您的 Claude 帐户

3458</h3>3459</h3>

3459 3460 

3460您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,在创建云会话之前,Claude Code 询问服务器[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)是否可以到达 PR 的存储库。没有帐户连接,或连接已过期,因此云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。3461您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,在创建云会话前 Claude Code 询问服务器[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)是否可以到达 PR 的存储库。没有帐户连接,或连接已过期,所以云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。

3461 3462 

3462```text theme={null}3463```text theme={null}

3463Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3464Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).


3465 3466 

3466当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名 claude.ai 链接。3467当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名 claude.ai 链接。

3467 3468 

3468**要做什么:**3469**应该做什么:**

3469 3470 

3470* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户3471* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户

3471* 连接后一分钟重新运行审查3472* 连接后一分钟重新运行审查


3476 您连接的 GitHub 帐户看不到存储库3477 您连接的 GitHub 帐户看不到存储库

3477</h3>3478</h3>

3478 3479 

3479您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)无法读取 PR 的存储库,因此云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。3480您运行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,[连接到您的 Claude 帐户的 GitHub 帐户](/docs/zh-CN/ultrareview#review-a-pull-request)无法读取 PR 的存储库,所以云克隆会失败,Claude Code 拒绝启动。Claude Code 不为被拒绝的启动花费免费运行或计费使用信用。

3480 3481 

3481```text theme={null}3482```text theme={null}

3482Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3483Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.


3484 3485 

3485当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名应用安装。3486当 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 在您的会话中不可用时,消息仅命名应用安装。

3486 3487 

3487**要做什么:**3488**应该做什么:**

3488 3489 

3489* 如果您的本地 `gh` CLI 可以读取存储库,运行 `/web-setup` 将该登录连接到您的 Claude 帐户3490* 如果您的本地 `gh` CLI 可以读取存储库,运行 `/web-setup` 将该登录连接到您的 Claude 帐户

3490* 更改后重新运行审查3491* 更改后重新运行审查


3492在 v2.1.248 之前,Claude Code 在启动前不检查这个。3493在 v2.1.248 之前,Claude Code 在启动前不检查这个。

3493 3494 

3494<h3 id="the-github-app-preflight-failed-transiently">3495<h3 id="the-github-app-preflight-failed-transiently">

3495 GitHub 应用预检失败暂时3496 GitHub App 预检暂时失败

3496</h3>3497</h3>

3497 3498 

3498您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),两个步骤一起失败。Claude Code 无法构建或上传您的存储库包。在上传之前,它检查了云服务是否可以从 GitHub 克隆存储库,而不是明确的答案,该检查以重试可能清除的错误结束,例如网络错误、超时或临时服务器错误。完整消息以停止包的内容开头,例如 `Could not upload repo bundle (<error>)`,并以预检句子结尾:3499您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),两个步骤一起失败了。Claude Code 无法构建或上传您的存储库包。在上传之前,它检查了云服务是否可以从 GitHub 克隆存储库,而不是明确的答案,该检查以重试可能清除的错误结束,例如网络错误、超时或临时服务器错误。完整消息以停止包的内容开头,例如 `Could not upload repo bundle (<error>)`,并以预检句子结尾:

3499 3500 

3500```text theme={null}3501```text theme={null}

3501Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3502Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead

3502```3503```

3503 3504 

3504**要做什么:**3505**应该做什么:**

3505 3506 

3506* 片刻后重新运行命令。当 GitHub 检查通过时,Claude Code 可以从 GitHub 克隆启动会话,因此失败的上传不再阻止启动3507* 片刻后重新运行命令。当 GitHub 检查通过时,Claude Code 可以从 GitHub 克隆启动会话,所以失败的上传不再阻止启动

3507* 如果重试继续失败,消息的开头命名了停止上传的内容。当该原因是您可以修复的内容时,修复它以便会话可以从您的本地存储库启动。3508* 如果重试继续失败,消息的开头命名停止上传的内容。当该原因是您可以修复的内容时,修复它以便会话可以从您的本地存储库启动

3508 3509 

3509在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 结束消息,即使 GitHub 检查仅暂时失败,设置建议也无法清除暂时失败。3510在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 结束消息,即使 GitHub 检查仅暂时失败,设置建议无法清除暂时失败。

3510 3511 

3511<h3 id="the-repository-upload-cant-follow-a-git-setting">3512<h3 id="the-repository-upload-cant-follow-a-git-setting">

3512 存储库上传无法遵循 git 设置3513 存储库上传无法遵循 git 设置

3513</h3>3514</h3>

3514 3515 

3515您启动了[上传您的本地存储库的云会话](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github)或[分支的 ultrareview](/docs/zh-CN/ultrareview),上传无法遵循决定哪些属性规则适用于您的文件的 git 设置之一。如果上传继续并错过了规则,git 在存储它之前转换的文件(例如清理过滤器加密的文件)可能会到达云端,就像它在磁盘上一样。Claude Code 拒绝上传,什么都不上传:3516您启动了[上传您的本地存储库的云会话](/docs/zh-CN/claude-code-on-the-web#send-local-repositories-without-github),或分支的 [ultrareview](/docs/zh-CN/ultrareview),上传无法遵循决定哪个属性规则适用于您的文件的 git 设置之一。如果上传继续并错过了规则,git 在存储它之前转换的文件,例如清理过滤器加密的文件,可能会到达云端,因为它在磁盘上。Claude Code 拒绝上传,什么都不上传:

3516 3517 

3517```text theme={null}3518```text theme={null}

3518Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3519Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.

3519```3520```

3520 3521 

3521消息命名设置和它的设置位置,并以该情况的修复结尾。相同的拒绝出现在 `core.attributesFile` 和 `attr.tree` 中,每个都有自己的修复。3522消息命名设置和它的设置位置,并以该情况的修复结尾。相同的拒绝出现在 `core.attributesFile` 和 `attr.tree`,每个都有自己的修复。

3522 3523 

3523消息可以命名您的 git 配置通过 `include` 或 `includeIf` 指令拉入的配置文件,即使该指令的条件不适用于此存储库。3524消息可以命名您的 git 配置通过 `include` 或 `includeIf` 指令拉入的配置文件,即使该指令的条件不适用于此存储库。

3524 3525 

3525**要做什么:**3526**应该做什么:**

3526 3527 

3527* 应用消息最后一句中的修复3528* 应用消息最后一句中的修复

3528 3529 


3530 GitHub 未连接到您的 Claude 帐户3531 GitHub 未连接到您的 Claude 帐户

3531</h3>3532</h3>

3532 3533 

3533您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),例如使用 `/autofix-pr`。没有 GitHub 帐户连接到您的 Claude 帐户,或连接已过期,因此 Claude Code 拒绝启动:3534您从本地存储库启动了[云会话](/docs/zh-CN/claude-code-on-the-web),例如使用 `/autofix-pr`。没有 GitHub 帐户连接到您的 Claude 帐户,或连接已过期,所以 Claude Code 拒绝启动:

3534 3535 

3535```text theme={null}3536```text theme={null}

3536GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3537GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github


3538 3539 

3539当您使用 [`/schedule`](/docs/zh-CN/routines) 创建例程时,相同的消息作为命名存储库的设置注释出现;注释不会阻止创建例程。3540当您使用 [`/schedule`](/docs/zh-CN/routines) 创建例程时,相同的消息作为命名存储库的设置注释出现;注释不会阻止创建例程。

3540 3541 

3541**要做什么:**3542**应该做什么:**

3542 3543 

3543* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户。请参阅 [GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)以了解两者的区别。3544* 运行 `/web-setup` 将您的 GitHub CLI 登录连接到您的 Claude 帐户,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 连接帐户。请参阅[GitHub 身份验证选项](/docs/zh-CN/claude-code-on-the-web#github-authentication-options)了解两者的区别。

3544* 连接后一分钟重新运行命令3545* 连接后一分钟重新运行命令

3545 3546 

3546在 v2.1.268 之前,Claude Code 将此报告为 Claude GitHub 应用检查的临时失败,并建议重试或安装应用;两者都不连接 GitHub 帐户。3547在 v2.1.268 之前,Claude Code 将此报告为 Claude GitHub App 检查的临时失败,并建议重试或安装应用;两者都不连接 GitHub 帐户。

3547 3548 

3548<h3 id="single-sign-on-authorization-needed">3549<h3 id="single-sign-on-authorization-needed">

3549 需要单点登录授权3550 需要单点登录授权

3550</h3>3551</h3>

3551 3552 

3552您运行了 [`/install-github-app`](/docs/zh-CN/github-actions#quick-setup) 并选择了其组织强制执行 SAML 单点登录的存储库。在设置之前,Claude Code 使用 GitHub CLI 检查您对存储库的访问权限,GitHub 拒绝了该检查,因为您的 `gh` 令牌尚未为组织授权。向导显示警告和授权步骤:3553您运行了 [`/install-github-app`](/docs/zh-CN/github-actions#quick-setup),并选择了其组织强制执行 SAML 单点登录的存储库。在设置之前,Claude Code 使用 GitHub CLI 检查您对存储库的访问权限,GitHub 拒绝了该检查,因为您的 `gh` 令牌还没有为组织授权。向导显示警告和授权步骤:

3553 3554 

3554```text theme={null}3555```text theme={null}

3555Single sign-on authorization needed3556Single sign-on authorization needed

3556<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.3557<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

3557```3558```

3558 3559 

3559**要做什么:**3560**应该做什么:**

3560 3561 

3561* 通过运行 `gh auth refresh -h github.com -s repo,workflow` 使用 `repo` 和 `workflow` 范围重新授权您的 GitHub CLI 登录,并在 GitHub 提示单点登录时授权组织3562* 通过运行 `gh auth refresh -h github.com -s repo,workflow` 使用 `repo` 和 `workflow` 范围重新授权您的 GitHub CLI 登录,并在 GitHub 提示单点登录时授权组织

3562* 如果您在 `GH_TOKEN` 中使用个人访问令牌进行身份验证,请打开 [github.com/settings/tokens](https://github.com/settings/tokens),在令牌上选择**配置 SSO**,并授权组织3563* 如果您使用 `GH_TOKEN` 中的个人访问令牌进行身份验证,请打开 [github.com/settings/tokens](https://github.com/settings/tokens),在令牌上选择**配置 SSO**,并授权组织

3563* 再次运行 `/install-github-app`3564* 再次运行 `/install-github-app`

3564 3565 

3565在 v2.1.273 之前,Claude Code 为此条件显示 `Admin permissions required` 警告。3566在 v2.1.273 之前,Claude Code 为此条件显示 `Admin permissions required` 警告。


3568 无法恢复对话3569 无法恢复对话

3569</h3>3570</h3>

3570 3571 

3571Claude Code 无法读取或处理您从 [`claude --resume` 选择器](/docs/zh-CN/sessions#use-the-session-picker)选择的会话的保存成绩单,因此它结束进程而不是在部分加载状态下继续。消息包括重试的命令:3572Claude Code 无法读取或处理您从 [`claude --resume` 选择器](/docs/zh-CN/sessions#use-the-session-picker)选择的会话的保存成绩单,所以它结束进程而不是在部分加载状态下继续。消息包括重试的命令:

3572 3573 

3573```text theme={null}3574```text theme={null}

3574Failed to resume the conversation.3575Failed to resume the conversation.

3575Run claude --resume <session-id> to retry, or claude to start a new session.3576Run claude --resume <session-id> to retry, or claude to start a new session.

3576```3577```

3577 3578 

3578Claude Code 在显示消息后以代码 1 退出。运行会话内的 `/resume` 选择器报告对话中的 `Failed to resume conversation`,您当前的会话保持运行。在 v2.1.216 之前,来自 `claude --resume` 选择器的失败恢复在 `Resuming conversation…` 微调器上无限期停留,而不是显示此消息。3579Claude Code 显示消息后以代码 1 退出。运行会话内的 `/resume` 选择器报告对话中的 `Failed to resume conversation`,您当前的会话保持运行。在 v2.1.216 之前,来自 `claude --resume` 选择器的失败恢复在 `Resuming conversation…` 微调器上无限期停留,而不是显示此消息。

3579 3580 

3580**要做什么:**3581**应该做什么:**

3581 3582 

3582* 运行 `claude --resume <session-id>`,其中 session-id 来自消息以重试3583* 使用消息中的会话 ID 运行 `claude --resume <session-id>` 重试

3583* 如果每次重试都以相同的方式失败,运行 `claude update` 并再次恢复。v2.1.275 之前的版本在保存的成绩单包含它们无法读取的条目时恢复失败。3584* 如果每次重试都以相同的方式失败,运行 `claude update` 并再次恢复。v2.1.275 之前的版本在保存的成绩单包含它们无法读取的条目时恢复失败。

3584* 如果重试再次失败,运行 `claude` 启动新会话3585* 如果重试再次失败,运行 `claude` 启动新会话

3585 3586 

3586<h3 id="no-conversation-found-with-the-session-id">3587<h3 id="no-conversation-found-with-the-session-id">

3587 找不到具有会话 ID 的对话3588 未找到具有会话 ID 的对话

3588</h3>3589</h3>

3589 3590 

3590您将会话 ID 传递给 `claude --resume <session-id>`,没有保存的成绩单与之匹配:3591您将会话 ID 传递给 `claude --resume <session-id>`,没有保存的成绩单与其匹配:

3591 3592 

3592```text theme={null}3593```text theme={null}

3593No conversation found with session ID: <session-id>3594No conversation found with session ID: <session-id>

3594```3595```

3595 3596 

3596Claude Code 在显示消息后以代码 1 退出。Claude Code [首先搜索当前项目,然后搜索此机器上的所有其他项目](/docs/zh-CN/sessions#resume-a-session)以查找 ID。在 v2.1.223 之前,查找在当前项目目录及其 git worktrees 处停止,因此从会话最后工作的目录恢复。3597Claude Code 显示消息后以代码 1 退出。Claude Code [首先搜索当前项目,然后搜索此机器上的所有其他项目](/docs/zh-CN/sessions#resume-a-session)以查找 ID。在 v2.1.223 之前,查找停止在当前项目目录及其 git worktrees,所以从会话最后工作的目录恢复。

3597 3598 

3598常见原因:3599常见原因:

3599 3600 

3600* **打字错误的 ID**:对于非交互式运行,ID 是 [`--output-format json` 输出](/docs/zh-CN/headless#get-structured-output)的 `session_id` 字段3601* **打字错误的 ID**:对于非交互运行,ID 是 [`--output-format json` 输出](/docs/zh-CN/headless#get-structured-output)的 `session_id` 字段

3601* **删除的成绩单**:Claude Code 在[保留期](/docs/zh-CN/sessions#where-transcripts-are-stored)后删除成绩单,默认 30 天,遵循[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)3602* **删除的成绩单**:Claude Code 在[保留期](/docs/zh-CN/sessions#where-transcripts-are-stored)后删除成绩单,默认 30 天,遵循[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically)

3602* **不同的机器**:Claude Code 在本地存储成绩单,因此在运行会话的机器上恢复会话3603* **不同的机器**:Claude Code 在本地存储成绩单,所以在运行它的机器上恢复会话

3603* **重复副本**:如果您在 `~/.claude/projects` 下复制了项目目录,以便两个成绩单携带相同的 ID,Claude Code 报告此消息而不是任意恢复一个副本3604* **重复副本**:如果您在 `~/.claude/projects` 下复制了项目目录,所以两个成绩单携带相同的 ID,Claude Code 报告此消息而不是任意恢复一个副本

3604 3605 

3605**要做什么:**3606**应该做什么:**

3606 3607 

3607* 对于交互式会话,使用 `claude --resume` 打开[会话选择器](/docs/zh-CN/sessions#use-the-session-picker),按 `Ctrl+A` 将其扩展到此机器上的每个项目,然后选择会话3608* 对于交互会话,使用 `claude --resume` 打开[会话选择器](/docs/zh-CN/sessions#use-the-session-picker),按 `Ctrl+A` 将其扩展到此机器上的每个项目,然后选择会话

3608* 使用 `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 创建的会话不会出现在选择器中,因此重新检查 ID 与您的原始运行打印的 `session_id`3609* 使用 `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/overview) 创建的会话不会出现在选择器中,所以重新检查 ID 与您的原始运行打印的 `session_id`

3609 3610 

3610<h3 id="windows-reported-an-error-ebadf">3611<h3 id="windows-reported-an-error-ebadf">

3611 Windows 报告了读取此会话的成绩单文件时的错误 (EBADF)3612 Windows 在 Claude Code 读取此会话的成绩单文件时报告了错误 (EBADF)

3612</h3>3613</h3>

3613 3614 

3614您在 Windows 上恢复了一个会话,其保存的[成绩单文件](/docs/zh-CN/sessions#where-transcripts-are-stored)正常打开,读取它然后失败,错误为 EBADF。系统错误没有说为什么读取失败,因此消息建议可能的原因和要尝试的内容:3615您在 Windows 上恢复了会话,其保存的[成绩单文件](/docs/zh-CN/sessions#where-transcripts-are-stored)正常打开,读取它然后失败,显示系统错误 EBADF。系统错误没有说读取失败的原因,所以消息建议可能的原因和要尝试的内容:

3615 3616 

3616```text theme={null}3617```text theme={null}

3617Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3618Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3618```3619```

3619 3620 

3620消息遵循命令自己的失败行,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-CN/headless) 命令在显示它后以代码 1 退出。在会话内的 `/resume` 后,您当前的会话保持运行。3621消息遵循命令自己的失败行,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-CN/headless) 命令显示它后以代码 1 退出。在会话内的 `/resume` 后,您当前的会话保持运行。

3621 3622 

3622**要做什么:**3623**应该做什么:**

3623 3624 

3624* 从扫描或拦截文件读取的软件(如安全、加密或端点管理工具)中排除保存会话成绩单的文件夹。成绩单默认位于 `%USERPROFILE%\.claude\projects` 下,或位于 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 命名的目录下3625* 从扫描或拦截文件读取的软件(例如安全、加密或端点管理工具)中排除保存会话成绩单的文件夹。成绩单默认位于 `%USERPROFILE%\.claude\projects` 下,或位于 [`CLAUDE_CONFIG_DIR`](/docs/zh-CN/env-vars) 命名的目录下

3625* 如果您无法添加排除项,改为将 Claude Code 添加到该软件的允许应用程序中3626* 如果您无法添加排除,请改为将 Claude Code 添加到该软件的允许应用程序

3626* 再次恢复会话3627* 再次恢复会话

3627 3628 

3628在 v2.1.282 之前,失败没有解释:`claude --resume <session-id>` 在 `Failed to resume session <session-id>` 处结束,`-p` 运行仅打印系统错误文本,例如 `Failed to resume session: EBADF: bad file descriptor, read`。3629在 v2.1.282 之前,失败没有解释:`claude --resume <session-id>` 在 `Failed to resume session <session-id>` 处结束,`-p` 运行仅打印系统错误文本,例如 `Failed to resume session: EBADF: bad file descriptor, read`。


3631 无法在此会话中切换渲染器3632 无法在此会话中切换渲染器

3632</h3>3633</h3>

3633 3634 

3634当您切换渲染器时,Claude Code 重新启动其进程。您在 Claude Code 拒绝重新启动的会话中运行了 [`/tui`](/docs/zh-CN/fullscreen#enable-fullscreen-rendering),因此它不切换并保存任何内容。您看到的消息告诉您原因:3635当您切换渲染器时,Claude Code 重新启动其进程。您在 Claude Code 拒绝重新启动的会话中运行了 [`/tui`](/docs/zh-CN/fullscreen#enable-fullscreen-rendering),所以它不切换并保存任何内容。您看到的消息告诉您原因:

3635 3636 

3636* `Cannot switch renderers while work is running in the background`:您有在后台运行的工作,重新启动会放弃,例如后台 shell 或子代理。等待工作完成或使用 [`/tasks`](/docs/zh-CN/commands) 停止它,然后再次运行 `/tui fullscreen` 或 `/tui default`3637* `Cannot switch renderers while work is running in the background`:您有在后台运行的工作,重新启动会放弃,例如后台 shell 或子代理。等待工作完成或使用 [`/tasks`](/docs/zh-CN/commands) 停止它,然后再次运行 `/tui fullscreen` 或 `/tui default`

3637* `Cannot switch renderers in this session`:会话有 Claude Code 无法传递给重新启动的进程的限制。在 v2.1.234 之前,Claude Code 无论如何都会重新启动,重新启动的会话运行时没有它们3638* `Cannot switch renderers in this session`:会话有 Claude Code 无法传递给重新启动的进程的限制。在 v2.1.234 之前,Claude Code 无论如何都会重新启动,重新启动的会话运行时没有它们


3647* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您使用 Claude Code 不传递回重新启动的进程的标志启动了会话。这些标志包括 [`--system-prompt`](/docs/zh-CN/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-CN/cli-reference#cli-flags) 允许列表、[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 和 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags)3648* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您使用 Claude Code 不传递回重新启动的进程的标志启动了会话。这些标志包括 [`--system-prompt`](/docs/zh-CN/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-CN/cli-reference#cli-flags) 允许列表、[`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 和 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags)

3648* `permission rules set for this session only`:来自钩子或 SDK 调用者的[权限更新](/docs/zh-CN/hooks#permission-update-entries)添加了带有 `session` 目标的拒绝或询问规则。会话范围的允许规则不会触发拒绝。重新启动会删除它们,Claude Code 改为再次提示3649* `permission rules set for this session only`:来自钩子或 SDK 调用者的[权限更新](/docs/zh-CN/hooks#permission-update-entries)添加了带有 `session` 目标的拒绝或询问规则。会话范围的允许规则不会触发拒绝。重新启动会删除它们,Claude Code 改为再次提示

3649* `ask-before-running rules with no command-line form`:来自钩子或 SDK 调用者的权限更新添加了询问规则以及 Claude Code 作为 `--allowed-tools` 和 `--disallowed-tools` 传递回的规则。不存在询问规则的标志3650* `ask-before-running rules with no command-line form`:来自钩子或 SDK 调用者的权限更新添加了询问规则以及 Claude Code 作为 `--allowed-tools` 和 `--disallowed-tools` 传递回的规则。不存在询问规则的标志

3650* `permission rules a command line cannot carry intact` 和 `added directories a command line cannot carry intact`:权限更新在会话中期添加了规则或目录路径。重新启动的进程的命令行无法将其文本作为相同值继承3651* `permission rules a command line cannot carry intact` 和 `added directories a command line cannot carry intact`:权限更新在会话中期添加了规则或目录路径。重新启动的进程的命令行无法将其文本作为相同的值继承

3651 3652 

3652**要做什么:**3653**应该做什么:**

3653 3654 

3654* 在没有这些限制的会话中,运行 `/tui fullscreen` 或 `/tui default` 切换回。Claude Code 在那里保存 [`tui` 设置](/docs/zh-CN/settings-reference#tui)3655* 在没有这些限制的会话中,运行 `/tui fullscreen`,或 `/tui default` 切换回。Claude Code 在那里保存 [`tui` 设置](/docs/zh-CN/settings-reference#tui)

3655 3656 

3656<h3 id="couldnt-open-claude-desktop">3657<h3 id="couldnt-open-claude-desktop">

3657 无法打开 Claude Desktop3658 无法打开 Claude Desktop

3658</h3>3659</h3>

3659 3660 

3660您运行了 [`/desktop`](/docs/zh-CN/desktop#coming-from-the-cli) 或其别名 `/app`,Claude Code 用来打开 Claude Desktop 的系统命令失败。会话保持在终端中。3661您在会话中运行了 [`/desktop`](/docs/zh-CN/desktop#coming-from-the-cli) 或其别名 `/app`,或在您的 shell 中运行了 [`claude --desktop`](/docs/zh-CN/cli-reference#cli-flags),Claude Code 用来打开 Claude Desktop 的系统命令失败了。在 `/desktop` 后,会话保持在终端中;`claude --desktop` 打印消息而不带 `Error:` 前缀,并以状态 1 退出。

3662 

3663括号中的文本命名失败的命令,带有其退出状态和其错误输出的第一行(如果它产生了)。在 macOS 上该命令是 `open`,如本例所示;在 Windows 上它是 `rundll32`:

3661 3664 

3662```text theme={null}3665```text theme={null}

3663Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.3666Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

3664```3667```

3665 3668 

3666**要做什么:**3669**应该做什么:**

3667 3670 

3668* 自己打开 Claude Desktop,然后再次运行 `/desktop`3671* 自己打开 Claude Desktop,然后再次运行 `/desktop` 或 `claude --desktop`

3669* 要读取该命令的完整错误输出,使用 `/debug` 打开调试日志,再次运行 `/desktop`,并检查调试日志3672* 要读取失败命令的完整错误输出,使用 `/debug` 打开调试日志并再次运行 `/desktop`,或运行 `claude --desktop --debug-file <path>`,然后检查调试日志

3670 3673 

3671在 v2.1.275 之前,消息是 `Failed to open Claude Desktop. Please try opening it manually.`,没有说什么失败。3674在 v2.1.285 之前,消息以 `Open Claude Desktop and run /desktop again.` 结尾。在 v2.1.275 之前,它是 `Failed to open Claude Desktop. Please try opening it manually.`,没有说什么失败了。

3672 3675 

3673<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3676<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3674 /terminal-setup 保持您的 Zed 快捷键不变3677 /terminal-setup 保持您的 Zed 快捷键不变

3675</h3>3678</h3>

3676 3679 

3677您在 Zed 中运行了 [`/terminal-setup`](/docs/zh-CN/terminal-config#enter-multiline-prompts),Claude Code 无法完成对您的 Zed `keymap.json` 的更新,因此它保持文件不变。3680您在 Zed 中运行了 [`/terminal-setup`](/docs/zh-CN/terminal-config#enter-multiline-prompts),Claude Code 无法完成对您的 Zed `keymap.json` 的更新,所以它保持文件不变。

3678 3681 

3679每条消息命名您的快捷键的路径,并以您自己添加的快捷键块结尾:3682每条消息命名您的快捷键的路径,并以您自己添加的快捷键块结尾:

3680 3683 


3687消息的第一行命名原因:3690消息的第一行命名原因:

3688 3691 

3689* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 无法读取文件,例如由于文件权限3692* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 无法读取文件,例如由于文件权限

3690* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:文件读取良好,但不解析为快捷键块数组,即使允许 `//` 注释和尾随逗号3693* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:文件读取正常但不解析为快捷键块数组,即使允许 `//` 注释和尾随逗号

3691* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 无法将文件复制到其旁边的 `.bak` 备份,因此它没有更改任何内容3694* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 无法将文件复制到其旁边的 `.bak` 备份,所以它没有更改任何内容

3692* `Couldn't update your Zed keymap, so it was left unchanged.`:合并的结果未验证为有效的快捷键,携带绑定,因此 Claude Code 丢弃它而不是写入。具有重复键的快捷键块可能导致这种情况3695* `Couldn't update your Zed keymap, so it was left unchanged.`:合并的结果没有验证为携带绑定的有效快捷键,所以 Claude Code 丢弃它而不是写入。具有重复键的快捷键块可能导致这种情况

3693 3696 

3694**要做什么:**3697**应该做什么:**

3695 3698 

3696* 将消息中的块复制到您的 `keymap.json` 中消息命名的路径处的顶级数组中3699* 将消息中的块复制到消息命名的路径处 `keymap.json` 中的顶级数组

3697* 对于 `isn't a readable list of keybindings`,修复语法错误,或使文件的顶级值成为数组,然后再次运行 `/terminal-setup`3700* 对于 `isn't a readable list of keybindings`,修复语法错误,或使文件的顶级值成为数组,然后再次运行 `/terminal-setup`

3698 3701 

3699在 v2.1.247 之前,`/terminal-setup` 无法解析使用 `//` 注释或尾随逗号的 Zed 快捷键,它用仅自己的绑定替换整个文件,同时报告绑定已安装。要恢复较早版本替换的快捷键,请使用[输入多行提示](/docs/zh-CN/terminal-config#enter-multiline-prompts)下描述的 `.bak` 备份文件。3702在 v2.1.247 之前,`/terminal-setup` 无法解析使用 `//` 注释或尾随逗号的 Zed 快捷键,它用仅其自己的绑定替换整个文件,同时报告绑定已安装。要恢复较早版本替换的快捷键,请使用[输入多行提示](/docs/zh-CN/terminal-config#enter-multiline-prompts)下描述的 `.bak` 备份文件。

3700 3703 

3701<h3 id="skill-usage-reports-are-not-available-on-this-connection">3704<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3702 此连接上不提供 Skill 使用报告3705 Skill 使用报告在此连接上不可用

3703</h3>3706</h3>

3704 3707 

3705您在[远程控制](/docs/zh-CN/remote-control)上运行了 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills),从您的手机或浏览器。Claude Code 不通过远程控制发送 skill 使用报告,而是用此消息回复:3708您在[远程控制](/docs/zh-CN/remote-control)上、从您的手机或浏览器运行了 [`/skill-doctor`](/docs/zh-CN/skills#find-unused-skills)。Claude Code 不通过远程控制发送 skill 使用报告,改为用此消息回复:

3706 3709 

3707```text theme={null}3710```text theme={null}

3708Skill usage reports are not available on this connection.3711Skill usage reports are not available on this connection.

3709```3712```

3710 3713 

3711**要做什么:**3714**应该做什么:**

3712 3715 

3713* 在会话运行的机器上的终端中运行 `/skill-doctor`,或在那里运行 `claude -p "/skill-doctor"`3716* 在会话运行的机器上的终端中运行 `/skill-doctor`,或在那里运行 `claude -p "/skill-doctor"`

3714 3717 


3716 无法通过远程控制选择自定义输出样式3719 无法通过远程控制选择自定义输出样式

3717</h3>3720</h3>

3718 3721 

3719您从移动应用或网络通过[远程控制](/docs/zh-CN/remote-control)运行了 [`/output-style`](/docs/zh-CN/output-styles#change-your-output-style),或命令在中继到会话的消息中到达。因为这样的轮次可能不来自帐户所有者,Claude Code 仅在其上列出和选择[内置样式](/docs/zh-CN/output-styles#built-in-output-styles),并在命令列出样式或不识别您给出的名称时添加此通知。[自定义样式](/docs/zh-CN/output-styles#create-a-custom-output-style)名称获得与不存在的名称相同的回复:3722您从移动应用或网络通过[远程控制](/docs/zh-CN/remote-control)运行了 [`/output-style`](/docs/zh-CN/output-styles#change-your-output-style),或命令在中继到会话的消息中到达。因为此类轮次可能不来自帐户所有者,Claude Code 仅在其上列出并选择[内置样式](/docs/zh-CN/output-styles#built-in-output-styles),并在命令列出样式或不识别您给出的名称时添加此通知。[自定义样式](/docs/zh-CN/output-styles#create-a-custom-output-style)名称获得与不存在的名称相同的回复:

3720 3723 

3721```text theme={null}3724```text theme={null}

3722Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3725Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.

3723```3726```

3724 3727 

3725**要做什么:**3728**应该做什么:**

3726 3729 

3727* 选择内置样式,例如 `/output-style concise`3730* 选择内置样式,例如 `/output-style concise`

3728* 要使用自定义样式,在项目的 `.claude/settings.local.json` 中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle),或在会话自己的终端中运行 `/output-style <style>`(如果它有的话)3731* 要使用自定义样式,在项目的 `.claude/settings.local.json` 中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle),或在会话自己的终端中运行 `/output-style <style>`(如果它有的话)


3731 输出样式保存到此会话不加载的本地设置3734 输出样式保存到此会话不加载的本地设置

3732</h3>3735</h3>

3733 3736 

3734您尝试在设置源排除 `local` 的会话中使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切换[输出样式](/docs/zh-CN/output-styles)。示例是 [`settingSources`](/docs/zh-CN/agent-sdk/typescript#options) 遗漏 `"local"` 的 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) 会话和使用遗漏 `local` 的 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 值启动的 CLI 会话。两个命令都将样式保存到 `.claude/settings.local.json`,这样的会话永远不会读回,因此 Claude Code 拒绝而不是写入没有效果的设置:3737您尝试在其设置源排除 `local` 的会话中使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切换[输出样式](/docs/zh-CN/output-styles)。示例是 [`settingSources`](/docs/zh-CN/agent-sdk/typescript#options) 留出 `"local"` 的 [Agent SDK](/docs/zh-CN/agent-sdk/typescript) 会话,以及使用 [`--setting-sources`](/docs/zh-CN/cli-reference#cli-flags) 值启动的 CLI 会话,该值留出 `local`。两个命令都将样式保存到 `.claude/settings.local.json`,此类会话从不读取回的文件,所以 Claude Code 拒绝而不是写入无效的设置:

3735 3738 

3736```text theme={null}3739```text theme={null}

3737Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3740Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.

3738```3741```

3739 3742 

3740**要做什么:**3743**应该做什么:**

3741 3744 

3742* 将 `local` 添加到会话的设置源并再次切换3745* 将 `local` 添加到会话的设置源并再次切换

3743* 在会话确实加载的设置文件中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle) 键,例如项目中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,改为在内联 `settings` 对象内设置 `outputStyle`;请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style)3746* 在会话确实加载的设置文件中设置 [`outputStyle`](/docs/zh-CN/settings-reference#outputstyle) 键,例如项目中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,改为在内联 `settings` 对象内设置 `outputStyle`;请参阅[激活输出样式](/docs/zh-CN/agent-sdk/modifying-system-prompts#activate-an-output-style)

3744 3747 

3745<h2 id="plugin-errors">3748<h2 id="plugin-errors">

3746 Plugin 错误3749 插件错误

3747</h2>3750</h2>

3748 3751 

3749这些错误来自 [plugin](/docs/zh-CN/plugins/overview) 和 [marketplace](/docs/zh-CN/plugins/overview) 配置。对于不产生此页面上任何消息的 plugin 问题,例如无法加载的 marketplace URL 或已安装但不显示的 plugin,请参阅 [Plugin 故障排除](/docs/zh-CN/plugins/troubleshooting)。3752这些错误来自[插件](/docs/zh-CN/plugins/overview)和[marketplace](/docs/zh-CN/plugins/overview)配置。对于不会产生此页面上的消息之一的插件问题,例如无法加载的 marketplace URL 或已安装但未显示的插件,请参阅[插件故障排除](/docs/zh-CN/plugins/troubleshooting)。

3750 3753 

3751<h3 id="plugin-eval-is-currently-in-early-access">3754<h3 id="plugin-eval-is-currently-in-early-access">

3752 plugin eval 目前处于早期访问阶段3755 plugin eval 目前处于早期访问阶段

3753</h3>3756</h3>

3754 3757 

3755您运行了 [`claude plugin eval`](/docs/zh-CN/plugin-evals) 或 `claude plugin eval init`,它在执行任何操作之前以退出代码 1 和以下消息之一退出:3758您运行了[`claude plugin eval`](/docs/zh-CN/plugin-evals)或`claude plugin eval init`,它在执行任何操作之前以退出代码 1 和以下消息之一退出:

3756 3759 

3757```text theme={null}3760```text theme={null}

3758`plugin eval` is currently in early access3761`plugin eval` is currently in early access


3762`plugin eval` is currently unavailable3765`plugin eval` is currently unavailable

3763```3766```

3764 3767 

3765第一条消息表示您的构建版本早于 v2.1.269,这是该命令正式发布的第一个版本。第二条消息表示 Anthropic 已在服务器端关闭该命令;您的机器上没有任何东西可以将其重新打开。3768第一条消息表示您的构建版本早于 v2.1.269,这是该命令正式发布的第一个版本。第二条消息表示 Anthropic 已在服务器端关闭了该命令;您的机器上没有任何东西可以将其重新打开。

3766 3769 

3767**要做什么:**3770**要做什么:**

3768 3771 

3769* 运行 `claude --version`,然后运行 `claude update`,并在新会话中再次运行该命令。请参阅 [plugin evals 的要求](/docs/zh-CN/plugin-evals#requirements)3772* 运行`claude --version`,然后运行`claude update`,并在新会话中再次运行该命令。请参阅[插件 evals 的要求](/docs/zh-CN/plugin-evals#requirements)

3770* 如果您在当前构建上看到第二条消息,请在另一次 `claude update` 后稍后重试3773* 如果您在当前构建上看到第二条消息,请在另一次`claude update`后稍后重试

3771 3774 

3772<h3 id="marketplace-is-registered-from-an-untrusted-source">3775<h3 id="marketplace-is-registered-from-an-untrusted-source">

3773 Marketplace 从不受信任的源注册3776 Marketplace 从不受信任的来源注册

3774</h3>3777</h3>

3775 3778 

3776marketplace 注册的名称是 [为官方 Anthropic marketplaces 保留的](/docs/zh-CN/plugins/marketplace-reference#marketplace-file),但其注册源不是 `anthropics` GitHub 存储库。Claude Code 每次加载或刷新 marketplace 时都会重新检查保留的名称,因此 marketplace 和从中安装的 plugin 停止加载。在 v2.1.205 之前,仅在添加 marketplace 时检查名称,因此在其名称被保留之前注册的条目继续加载。3779marketplace 注册在一个名称下,该名称是[为官方 Anthropic marketplaces 保留的](/docs/zh-CN/plugins/marketplace-reference#marketplace-file),但其注册来源不是`anthropics` GitHub 存储库。Claude Code 每次加载或刷新 marketplace 时都会重新检查保留的名称,因此 marketplace 及从中安装的插件停止加载。在 v2.1.205 之前,在其名称被保留之前注册的条目继续加载。

3777 3780 

3778```text theme={null}3781```text theme={null}

3779Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3782Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

3780```3783```

3781 3784 

3782对于源不是 GitHub 存储库或 Git URL(例如本地目录)的 marketplace,中间句子改为 `can only be used with GitHub sources from the 'anthropics' organization`。`claude plugin marketplace add` 运行相同的检查,并以 `Failed to add marketplace:` 后跟相同的保留名称句子拒绝保留的名称。3785对于来源不是 GitHub 存储库或 Git URL 的 marketplace,例如本地目录,中间句子改为`can only be used with GitHub sources from the 'anthropics' organization`。`claude plugin marketplace add`运行相同的检查,并拒绝保留的名称,返回`Failed to add marketplace:`后跟相同的保留名称句子。

3783 3786 

3784**要做什么:**3787**要做什么:**

3785 3788 

3786* 如果 marketplace 已注册,运行 `claude plugin marketplace remove <name>`,然后从官方 `github.com/anthropics` 存储库重新添加它3789* 如果 marketplace 已注册,运行`claude plugin marketplace remove <name>`,然后从官方`github.com/anthropics`存储库重新添加它

3787* 如果您发布了在名称被保留之前使用该名称的第三方 marketplace,请重命名它并要求用户从您的源重新添加它3790* 如果您发布了在名称被保留之前使用该名称的第三方 marketplace,请重命名它并要求用户从您的来源重新添加它

3788* 请参阅 [Marketplace schema](/docs/zh-CN/plugins/marketplace-reference#marketplace-file) 下的保留名称列表3791* 请参阅[Marketplace schema](/docs/zh-CN/plugins/marketplace-reference#marketplace-file)下的保留名称列表

3789 3792 

3790<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">3793<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">

3791 Marketplace 名称是保留名称的另一种拼写3794 Marketplace 名称是保留名称的另一种拼写

3792</h3>3795</h3>

3793 3796 

3794marketplace 的名称本身不是保留名称,但 Claude Code 将其视为另一种拼写。[保留的 marketplace 名称](/docs/zh-CN/plugins/marketplace-reference#reserved-name-spellings) 列出了哪些拼写算作保留名称。Claude Code 在您添加 marketplace 时拒绝这样的名称:3797marketplace 的名称本身不是保留名称,但 Claude Code 将其视为保留名称的另一种拼写。[保留名称](/docs/zh-CN/plugins/marketplace-reference#reserved-name-spellings)列出了哪些拼写算作保留名称。当您添加 marketplace 时,Claude Code 拒绝这样的名称:

3795 3798 

3796```text theme={null}3799```text theme={null}

3797Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.3800Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3798```3801```

3799 3802 

3800当 marketplace 已在这样的名称下注册时,其条目停止加载,`/plugin`、`claude plugin install` 和 `claude plugin update` 警告:3803当 marketplace 已在这样的名称下注册时,其条目停止加载,`/plugin`、`claude plugin install`和`claude plugin update`警告:

3801 3804 

3802```text wrap theme={null}3805```text wrap theme={null}

3803known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins3806known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3804```3807```

3805 3808 

3806当名称需要 shell 引用时,添加时的拒绝读作 `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`3809当名称需要 shell 引用时,添加时的拒绝读作`This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`

3807 3810 

3808**要做什么:**3811**要做什么:**

3809 3812 

3810* 将 marketplace 重命名为不拼写保留名称的名称并重新添加它3813* 将 marketplace 重命名为不拼写保留名称的名称,然后重新添加它

3811* 对于被忽略的条目警告,运行它给出的 `claude plugin marketplace remove` 命令,或从 `~/.claude/plugins/known_marketplaces.json` 中删除该条目3814* 对于忽略的条目警告,运行它给出的`claude plugin marketplace remove`命令,或从`~/.claude/plugins/known_marketplaces.json`中删除该条目

3812 3815 

3813<h3 id="claude-code-refuses-the-marketplace-name">3816<h3 id="claude-code-refuses-the-marketplace-name">

3814 Claude Code 拒绝 marketplace 名称3817 Claude Code 拒绝 marketplace 名称

3815</h3>3818</h3>

3816 3819 

3817已注册的 marketplace 的名称 [冒充官方 Anthropic marketplace](/docs/zh-CN/plugins/marketplace-reference#reserved-names),根据该部分列出的规则。3820已注册的 marketplace 的名称[冒充官方 Anthropic marketplace](/docs/zh-CN/plugins/marketplace-reference#reserved-names),违反了该部分列出的规则。

3818 3821 

3819如果 marketplace 在这样的名称下注册时检查阻止了它,marketplace 和从中安装的 plugin 停止加载,因为 Claude Code 每次读取 marketplace 的目录时都会检查名称。当名称模仿官方名称时,`claude plugin list` 和 `/plugin` **Errors** 选项卡报告每个受影响的 plugin,消息开头为:3822如果 marketplace 在这样的名称下注册时检查阻止了它,marketplace 及从中安装的插件停止加载,因为 Claude Code 每次读取 marketplace 的目录时都会检查名称。当名称模仿官方名称时,`claude plugin list`和`/plugin`**Errors**选项卡报告每个受影响的插件,消息开头为:

3820 3823 

3821```text theme={null}3824```text theme={null}

3822Claude Code refuses the marketplace name "anthropic-plugins-v2"3825Claude Code refuses the marketplace name "anthropic-plugins-v2"

3823```3826```

3824 3827 

3825对于模仿名称,marketplace 自己的错误读作 `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`。`claude plugin marketplace add` 拒绝任何冒充名称,消息为 `Marketplace name impersonates an official Anthropic/Claude marketplace`。3828对于模仿名称,marketplace 自己的错误读作`Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`。`claude plugin marketplace add`拒绝任何冒充名称,返回`Marketplace name impersonates an official Anthropic/Claude marketplace`。

3826 3829 

3827在 v2.1.282 之前,`claude plugin list` 和 `/plugin` 报告模仿名称的 plugin 也加载失败,没有将 marketplace 的名称命名为原因。3830在 v2.1.282 之前,`claude plugin list`和`/plugin`报告模仿名称的插件加载失败,但没有将 marketplace 的名称命名为原因。

3828 3831 

3829**要做什么:**3832**要做什么:**

3830 3833 

3831* 运行 `claude plugin marketplace remove <name>`。这也会卸载从 marketplace 安装的 plugin 并删除其保存的数据3834* 运行`claude plugin marketplace remove <name>`。这也会卸载从 marketplace 安装的插件并删除其保存的数据

3832* 要保留 marketplace,请等待其维护者重命名它,然后运行 `claude plugin marketplace update <name>`3835* 要保留 marketplace,请等待其维护者重命名它,然后运行`claude plugin marketplace update <name>`

3833* 如果您发布 marketplace,在您的 `marketplace.json` 中重命名它;用户随后更新 marketplace 而不是删除它3836* 如果您发布 marketplace,在您的`marketplace.json`中重命名它;用户随后更新 marketplace 而不是删除它

3834 3837 

3835<h3 id="marketplace-is-already-added-from-a-different-source">3838<h3 id="marketplace-is-already-added-from-a-different-source">

3836 Marketplace 已从不同的源添加3839 Marketplace 已从不同的来源添加

3837</h3>3840</h3>

3838 3841 

3839您通过 [`/plugin install <plugin> --marketplace <source>`](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command) 确认添加了 marketplace,而 Claude Code 从该源获取的目录将自身命名为与您已从不同源添加的 marketplace 相同的名称。Claude Code 保留现有的 marketplace 而不是替换它,plugin 未被安装。3842您通过[`/plugin install <plugin> --marketplace <source>`](/docs/zh-CN/plugins/install#add-a-marketplace-and-install-in-one-command)确认添加了 marketplace,Claude Code 从该来源获取的目录将自己命名为与您已从不同来源添加的 marketplace 相同。Claude Code 保留现有的 marketplace 而不是替换它,插件未安装。

3840 3843 

3841```text theme={null}3844```text theme={null}

3842Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.3845Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


3844 3847 

3845**要做什么:**3848**要做什么:**

3846 3849 

3847* 如果您已添加的 marketplace 是您想要的,请按名称从中安装:`/plugin install <plugin>@<name>`3850* 如果您已添加的 marketplace 是您想要的,按名称从中安装:`/plugin install <plugin>@<name>`

3848* 要切换到新源,运行 `/plugin marketplace remove <name>`,然后重试安装3851* 要切换到新来源,运行`/plugin marketplace remove <name>`,然后重试安装

3849 3852 

3850<h3 id="plugin-command-references-user-config">3853<h3 id="plugin-command-references-user-config">

3851 Plugin 命令在 shell 命令中引用 user\_config3854 插件命令在 shell 命令中引用 user\_config

3852</h3>3855</h3>

3853 3856 

3854一个 plugin hook、[monitor](/docs/zh-CN/plugins/components#monitors) 或 MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication) 命令引用了 `${user_config.KEY}` [plugin 选项](/docs/zh-CN/plugins/manifest-reference#user-configuration),而替换后的字符串将被传递到 shell。配置的值包含 `$(...)` 、反引号或 `;` 会在那里作为代码运行,因此 Claude Code 拒绝启动该组件而不是替换该值。检查在命令模板上运行,因此即使尚未配置任何值,错误也会出现。在 v2.1.207 之前,该值被替换到 shell 命令中。3857插件 hook、[monitor](/docs/zh-CN/plugins/components#monitors)或 MCP [`headersHelper`](/docs/zh-CN/mcp#use-dynamic-headers-for-custom-authentication)命令引用`${user_config.KEY}` [插件选项](/docs/zh-CN/plugins/manifest-reference#user-configuration),替换后的字符串将被传递到 shell。配置的值包含`$(...)` 、反引号或`;`会在那里作为代码运行,因此 Claude Code 拒绝启动该组件而不是替换该值。检查在命令模板上运行,因此即使尚未配置任何值,错误也会出现。在 v2.1.207 之前,该值被替换到 shell 命令中。

3855 3858 

3856措辞取决于哪个表面引用了该选项。shell 形式的 hook 报告:3859措辞取决于哪个界面引用了该选项。shell 形式的 hook 报告:

3857 3860 

3858```text theme={null}3861```text theme={null}

3859Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}3862Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}


3865Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.3868Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.

3866```3869```

3867 3870 

3868MCP `headersHelper` 报告:3871MCP `headersHelper`报告:

3869 3872 

3870```text theme={null}3873```text theme={null}

3871headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).3874headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).


3873 3876 

3874**要做什么:**3877**要做什么:**

3875 3878 

3876* 对于 hook,添加 `args` 数组以便它在 [exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form) 中运行,其中每个 `${user_config.KEY}` 成为一个参数,中间没有 shell。或删除引用并读取脚本内的 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量3879* 对于 hook,添加`args`数组使其以[exec 形式](/docs/zh-CN/hooks#exec-form-and-shell-form)运行,其中每个`${user_config.KEY}`成为一个参数,中间没有 shell。或删除引用并读取脚本内的`$CLAUDE_PLUGIN_OPTION_<KEY>`环境变量

3877* 对于 monitor,删除引用并让 monitor 脚本从配置文件读取该值3880* 对于 monitor,删除引用并让 monitor 脚本从配置文件读取该值

3878* 对于 `headersHelper`,将 `${user_config.KEY}` 移到服务器的 `headers` 字段中,该字段不会被 shell 解析,或在 helper 脚本内读取该值3881* 对于`headersHelper`,将`${user_config.KEY}`移到服务器的`headers`字段中,该字段不被 shell 解析,或在 helper 脚本内读取该值

3879 3882 

3880<h3 id="plugin-archive-integrity-check-failed">3883<h3 id="plugin-archive-integrity-check-failed">

3881 Plugin 存档完整性检查失败3884 插件存档完整性检查失败

3882</h3>3885</h3>

3883 3886 

3884plugin 的 marketplace 条目使用带有 `sha256` pin 的 [`archive` 源](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source),而下载文件的摘要与 pin 不匹配。Claude Code 拒绝安装,因此 plugin 缓存中没有任何更改。不匹配有三个可能的原因:3887插件的 marketplace 条目使用带有`sha256`引脚的[`archive`源](/docs/zh-CN/plugins/marketplace-reference#archive-plugin-source),下载文件的摘要与引脚不匹配。Claude Code 拒绝安装,因此插件缓存中没有任何更改。不匹配有三个可能的原因:

3885 3888 

3886* 作者计算 pin 后,URL 处的文件已更改3889* 作者计算引脚后 URL 处的文件已更改

3887* 作者在 marketplace 条目中输入了错误的摘要3890* 作者在 marketplace 条目中输入了错误的摘要

3888* URL 提供的文件与作者 pin 的文件不同3891* URL 提供的文件与作者引脚的文件不同

3889 3892 

3890```text theme={null}3893```text theme={null}

3891Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.3894Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.


3893 3896 

3894**要做什么:**3897**要做什么:**

3895 3898 

3896* 如果您发布 plugin,使用 `shasum -a 256 my-plugin.zip` 或 PowerShell 中的 `Get-FileHash -Algorithm SHA256 my-plugin.zip` 重新计算 URL 提供的确切文件的摘要,并更新 marketplace 条目中的 `sha256`3899* 如果您发布插件,重新计算 URL 提供的确切文件的摘要,例如使用`shasum -a 256 my-plugin.zip`或在 PowerShell 中使用`Get-FileHash -Algorithm SHA256 my-plugin.zip`,并更新 marketplace 条目中的`sha256`

3897* 如果您安装 plugin,运行 `/plugin marketplace update <name>` 以刷新目录以防条目已更正,然后重试安装3900* 如果您安装插件,运行`/plugin marketplace update <name>`以刷新目录以防条目已更正,然后重试安装

3898* 如果刷新后摘要仍然不一致,请在安装前询问 marketplace 所有者他们 pin 了哪个文件3901* 如果刷新后摘要仍然不一致,请在安装前询问 marketplace 所有者他们引脚的是哪个文件

3899 3902 

3900<h3 id="path-escapes-plugin-directory">3903<h3 id="path-escapes-plugin-directory">

3901 路径逃逸 plugin 目录3904 路径逃逸插件目录

3902</h3>3905</h3>

3903 3906 

3904plugin 组件路径在 plugin 的 `plugin.json` 或其 [marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries) 中声明,解析到 plugin 自己的目录之外。Claude Code 删除该路径并加载 plugin 的其余部分。消息中的组件名称(例如 `commands` 或 `hooks`)命名声明路径的字段。3907插件组件路径在插件的`plugin.json`或其[marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)中声明,解析到插件自己目录之外。Claude Code 删除该路径并加载插件的其余部分。消息中的组件名称(例如`commands`或`hooks`)命名声明路径的字段。

3905 3908 

3906```text theme={null}3909```text theme={null}

3907commands path escapes plugin directory: ./../shared.md3910commands path escapes plugin directory: ./../shared.md

3908```3911```

3909 3912 

3910在 `claude plugin` 命令输出中,相同的错误读作 `Path escapes plugin directory: ./../shared.md (commands)`。3913在`claude plugin`命令输出中,相同的错误读作`Path escapes plugin directory: ./../shared.md (commands)`。

3911 3914 

3912Claude Code 拒绝指向 plugin 外部的路径(如 `../shared-utils`)和导致 plugin 外部的符号链接,以及 [marketplace 符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks) 不允许的符号链接。对于符号链接,消息还说明路径解析的位置:3915Claude Code 拒绝指向插件外部的路径(如`../shared-utils`)和导致插件外部的符号链接,[marketplace 符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)不允许的符号链接。对于符号链接,消息还说明路径解析的位置:

3913 3916 

3914```text theme={null}3917```text theme={null}

3915commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory3918commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

3916```3919```

3917 3920 

3918在 macOS 和 Linux 上,Claude Code 还拒绝包含反斜杠的组件路径,即使路径保留在 plugin 内。其组件路径使用 Windows 风格分隔符的 plugin 在 Windows 上加载,并在其他平台上触发此拒绝:3921在 macOS 和 Linux 上,Claude Code 也拒绝包含反斜杠的组件路径,即使路径保留在插件内。使用 Windows 风格分隔符的组件路径的插件在 Windows 上加载并在其他平台上触发此拒绝:

3919 3922 

3920```text theme={null}3923```text theme={null}

3921commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform3924commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

3922```3925```

3923 3926 

3924在 v2.1.251 之前,Claude Code 加载在 marketplace 条目中声明的 `commands` 路径,即使它指向 plugin 目录之外。Claude Code 已经拒绝在 `plugin.json` 中声明的路径和 marketplace 条目中的其他组件路径。3927在 v2.1.251 之前,Claude Code 加载在 marketplace 条目中声明的`commands`路径,即使它指向插件目录之外。

3925 3928 

3926在 v2.1.257 之前,检查仅查看路径的拼写,而不是符号链接导向的位置。3929在 v2.1.257 之前,检查仅查看路径的拼写,而不是符号链接导向的位置。

3927 3930 

3928**要做什么:**3931**要做什么:**

3929 3932 

3930* 将引用的文件移到 plugin 目录内,并使用 `./` 相对路径指向它3933* 将引用的文件移到插件目录内,并使用`./`相对路径指向它

3931* 如果路径是指向 plugin 外部文件的符号链接,请用文件副本替换符号链接3934* 如果路径是指向插件外部文件的符号链接,用文件副本替换符号链接

3932* 如果消息说路径包含反斜杠,请使用正斜杠写入路径,例如 `./commands/deploy.md`3935* 如果消息说路径包含反斜杠,用正斜杠写路径,例如`./commands/deploy.md`

3933* 要与同一 marketplace 中的其他 plugin 共享文件,请使用 plugin 目录内的符号链接链接它们,遵循 [符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)3936* 要与同一 marketplace 中的其他插件共享文件,使用插件目录内的符号链接链接它们,遵循[符号链接规则](/docs/zh-CN/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

3934 3937 

3935<h3 id="path-could-not-be-checked">3938<h3 id="path-could-not-be-checked">

3936 路径无法检查3939 路径无法检查

3937</h3>3940</h3>

3938 3941 

3939Claude Code 询问操作系统 plugin 路径是否存在,并收到除"未找到"之外的错误,因此它不加载路径命名的内容。plugin 的加载量取决于哪个路径失败:3942Claude Code 询问操作系统插件路径是否存在,并收到"未找到"以外的错误,因此它不加载路径命名的内容。插件加载多少取决于哪个路径失败:

3940 3943 

3941* plugin 的 [默认组件位置](/docs/zh-CN/plugins/manifest-reference#standard-layout) 之一,例如 `skills/` 文件夹、`monitors/monitors.json` 文件或 [plugin 根目录的 `SKILL.md`](/docs/zh-CN/plugins/components#skills):plugin 的其他组件仍然加载3944* 插件的[默认组件位置](/docs/zh-CN/plugins/manifest-reference#standard-layout)之一,例如`skills/`文件夹、`monitors/monitors.json`文件或[插件根目录的`SKILL.md`](/docs/zh-CN/plugins/components#skills):插件的其他组件仍然加载

3942* plugin 自己的目录:该 plugin 中没有任何内容加载3945* 插件自己的目录:该插件中没有任何内容加载

3943 3946 

3944对于根本不存在的路径,您看不到此错误。在 `/plugin` 中,错误出现在 plugin 下方,并命名路径和操作系统返回的代码:3947对于根本不存在的路径,您看不到此错误。在`/plugin`中,错误出现在插件下方,并命名路径和操作系统返回的代码:

3945 3948 

3946```text theme={null}3949```text theme={null}

3947skills path could not be checked: /home/user/my-plugin/skills (ELOOP)3950skills path could not be checked: /home/user/my-plugin/skills (ELOOP)

3948```3951```

3949 3952 

3950在 `claude plugin list` 中,相同的错误读作 `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`。3953在`claude plugin list`中,相同的错误读作`Path not found: /home/user/my-plugin/skills (skills, ELOOP)`。

3951 3954 

3952产生此错误的原因包括:3955产生此错误的原因包括:

3953 3956 

3954* `ELOOP`:路径中的符号链接指向自身或形成循环3957* `ELOOP`:路径中的符号链接指向自己或形成循环

3955* `EIO` 或 `ESTALE`:路径在损坏或陈旧的网络挂载上3958* `EIO`或`ESTALE`:路径在损坏或陈旧的网络挂载上

3956* `EACCES`:路径上方的目录之一拒绝您遍历它的权限3959* `EACCES`:路径上方的目录之一拒绝您遍历它的权限

3957 3960 

3958**要做什么:**3961**要做什么:**

3959 3962 

3960* 用真实文件夹替换指向自身的符号链接,或删除它3963* 用真实文件夹替换指向自己的符号链接,或删除它

3961* 如果路径在网络挂载上,重新挂载共享3964* 如果路径在网络挂载上,重新挂载共享

3962* 如果代码是 `EACCES`,恢复您对路径上方目录的执行权限3965* 如果代码是`EACCES`,恢复您对路径上方目录的执行权限

3963* 修复路径后运行 `/reload-plugins`,或重启 Claude Code,以加载 plugin 或组件3966* 修复路径后运行`/reload-plugins`,或重启 Claude Code,以加载插件或组件

3964 3967 

3965在 v2.1.265 之前,Claude Code 将无法检查的默认组件文件夹视为不存在,并加载 plugin 而不使用该组件,没有错误。3968在 v2.1.265 之前,Claude Code 将无法检查的默认组件文件夹视为不存在,并加载没有该组件的插件,没有错误。

3966 3969 

3967<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">3970<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">

3968 Marketplace 条目路径不保留在 marketplace 目录内3971 Marketplace 条目路径不保留在 marketplace 目录内

3969</h3>3972</h3>

3970 3973 

3971plugin 的 [marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries) 声明了一个源路径,Claude Code 无法将其解析到 marketplace 自己的目录内的位置,因此 plugin 不会安装或加载。拒绝涵盖:3974插件的[marketplace 条目](/docs/zh-CN/plugins/marketplace-reference#plugin-entries)声明了一个源路径,Claude Code 无法将其解析到 marketplace 自己目录内的位置,因此插件不安装或加载。拒绝涵盖:

3972 3975 

3973* 绝对的条目路径、使用 `..` 爬出 marketplace 的路径或拼写为网络路径的路径3976* 绝对的条目路径、使用`..`爬出 marketplace 的路径或拼写为网络路径的路径

3974* 在 macOS 和 Linux 上,在前导 `./` 之后的任何地方包含反斜杠的条目路径3977* 在 macOS 和 Linux 上,在前导`./`之后任何地方包含反斜杠的条目路径

3975* 从远程源(例如 git 或 URL)获取的 marketplace 中的条目,通过解析到 marketplace 目录外的符号链接到达其目标3978* 从远程来源(例如 git 或 URL)获取的 marketplace 中的条目,通过解析到 marketplace 目录外的符号链接到达其目标

3976* 从直接 URL 添加到其 `marketplace.json` 的 marketplace 中的相对条目:Claude Code 仅下载该文件,因此不存在本地 plugin 文件供路径命名。请参阅 [相对路径的 Plugins 在基于 URL 的 marketplaces 中失败](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)3979* 从直接 URL 添加到其`marketplace.json`的 marketplace 中的相对条目:Claude Code 仅下载该文件,因此不存在本地插件文件供路径命名。请参阅[相对路径的插件在基于 URL 的 marketplace 中失败](/docs/zh-CN/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3977 3980 

3978`claude plugin install` 报告拒绝如下:3981`claude plugin install`报告拒绝如下:

3979 3982 

3980```text theme={null}3983```text theme={null}

3981Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)3984Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)

3982```3985```

3983 3986 

3984当已安装的 plugin 的条目失败相同的检查时,`claude plugin list` 显示 plugin 为 `failed to load`,带有:3987当已安装的插件的条目失败相同的检查时,`claude plugin list`显示插件为`failed to load`,带有:

3985 3988 

3986```text theme={null}3989```text theme={null}

3987Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.3990Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.


3989 3992 

3990**要做什么:**3993**要做什么:**

3991 3994 

3992* 如果您维护 marketplace,将条目的 `source` 写为带有正斜杠的纯相对路径,例如 `./plugins/my-plugin`,并保持它穿过的任何符号链接指向 marketplace 目录内3995* 如果您维护 marketplace,将条目的`source`写为带正斜杠的纯相对路径,例如`./plugins/my-plugin`,并保持它跨越的任何符号链接指向 marketplace 目录内

3993* 如果您从直接 URL 添加了 marketplace,相对条目无法解析。要求 marketplace 作者使用 [另一个 plugin 源](/docs/zh-CN/plugins/marketplace-reference#plugin-sources),或改为从其 git 存储库添加 marketplace3996* 如果您从直接 URL 添加了 marketplace,相对条目无法解析。要求 marketplace 作者使用[另一个插件源](/docs/zh-CN/plugins/marketplace-reference#plugin-sources),或从其 git 存储库添加 marketplace

3994 3997 

3995<h3 id="failed-to-load-marketplace-configuration">3998<h3 id="failed-to-load-marketplace-configuration">

3996 无法加载 marketplace 配置3999 无法加载 marketplace 配置

3997</h3>4000</h3>

3998 4001 

3999Claude Code 将您添加的 plugin marketplaces 保存在 `~/.claude/plugins/known_marketplaces.json` 的注册表文件中。当 Claude Code 无法使用该文件时,需要注册表的 plugin 命令(例如 `claude plugin install`)会失败,并显示以下两条消息之一:4002Claude Code 将您添加的插件 marketplace 保存在`~/.claude/plugins/known_marketplaces.json`的注册表文件中。当 Claude Code 无法使用该文件时,需要注册表的插件命令(例如`claude plugin install`)失败,返回两条消息之一:

4000 4003 

4001* `Failed to load marketplace configuration`:文件不是有效的 JSON,或无法读取。空文件也会以这种方式失败。4004* `Failed to load marketplace configuration`:文件存在但不是有效的 JSON 或无法读取。空文件也会以这种方式失败。

4002* `Marketplace configuration file is corrupted`:文件是有效的 JSON,但其内容与注册表架构不匹配。4005* `Marketplace configuration file is corrupted`:文件是有效的 JSON,但其内容与注册表架构不匹配。

4003 4006 

4004缺少的文件不是失败:Claude Code 将其视为没有 marketplaces 的注册表。4007对于空文件,`claude plugin install`报告:

4005 

4006对于空文件,`claude plugin install` 报告:

4007 4008 

4008```text theme={null}4009```text theme={null}

4009✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF4010✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF

4010```4011```

4011 4012 

4012在 v2.1.246 之前,`claude plugin install` 没有报告此失败。4013在 v2.1.246 之前,`claude plugin install`没有报告此失败。

4013 4014 

4014**要做什么:**4015**要做什么:**

4015 4016 

4016* 打开 `~/.claude/plugins/known_marketplaces.json` 并修复 JSON,或修复消息命名为与注册表架构不匹配的条目4017* 打开`~/.claude/plugins/known_marketplaces.json`并修复 JSON,或修复消息命名为与注册表架构不匹配的条目

4017* 如果您无法修复它,删除文件或用 `{}` 替换其内容,然后使用 `claude plugin marketplace add <source>` 重新添加每个 marketplace。Claude Code 在您下次在您信任的文件夹中启动它时重新注册您的用户或托管设置在 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 中声明的 marketplaces。4018* 如果您无法修复它,删除文件或用`{}`替换其内容,然后使用`claude plugin marketplace add <source>`重新添加每个 marketplace。Claude Code 在您下次在您信任的文件夹中启动它时重新注册您的用户或托管设置在[`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces)中声明的 marketplace。

4018 4019 

4019<h3 id="plugin-is-required-by-your-organization">4020<h3 id="plugin-is-required-by-your-organization">

4020 Plugin 由您的组织要求4021 插件由您的组织要求

4021</h3>4022</h3>

4022 4023 

4023您运行了 `claude plugin disable`,或使用 `/plugin` **Installed** 选项卡关闭了从 claude.ai 同步的 [plugin](/docs/zh-CN/plugins/loading#synced-plugins),您的组织将其标记为必需:4024您运行了`claude plugin disable`,或使用`/plugin`**Installed**选项卡关闭了从 claude.ai 同步的[插件](/docs/zh-CN/plugins/loading#synced-plugins),您的组织将其标记为必需:

4024 4025 

4025```text theme={null}4026```text theme={null}

4026Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.4027Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

4027```4028```

4028 4029 

4029Claude Code 不保存任何内容,plugin 保持启用。4030Claude Code 不保存任何内容,插件保持启用。

4030 4031 

4031当您尝试禁用必需 plugin 依赖的 plugin 时,Claude Code 以相同的方式拒绝,消息命名需要它的必需 plugin。4032当您尝试禁用必需插件依赖的插件时,Claude Code 以相同的方式拒绝,消息命名需要它的必需插件。

4032 4033 

4033**要做什么:**4034**要做什么:**

4034 4035 

4035* 要求您的 claude.ai 组织的管理员在 claude.ai 上更改 plugin 的必需状态4036* 要求您的 claude.ai 组织的管理员在 claude.ai 上更改插件的必需状态

4036 4037 

4037<h3 id="plugin-was-not-uninstalled">4038<h3 id="plugin-was-not-uninstalled">

4038 Plugin 未被卸载4039 插件未卸载

4039</h3>4040</h3>

4040 4041 

4041您运行了 [`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在 `/plugin` **Installed** 选项卡中选择了 **Uninstall**,卸载停止,消息开头为 `"<plugin>" was not uninstalled:`。如果冒号后的文本以 `installed_plugins.json` 开头而不是命名设置文件,原因是 `installed_plugins.json` 中的内容此版本的 Claude Code 无法读取。对于该形式,请参阅 [`installed_plugins.json` 保存此版本无法读取的记录](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)。4042您运行了[`claude plugin uninstall`](/docs/zh-CN/plugins/cli-reference#plugin-uninstall),或在`/plugin`**Installed**选项卡中选择了**Uninstall**,卸载停止,消息开头为`"<plugin>" was not uninstalled:`。如果该冒号后的文本以`installed_plugins.json`开头而不是命名设置文件,原因是`installed_plugins.json`中的内容,此版本的 Claude Code 无法读取。对于该形式,请参阅[`installed_plugins.json`保存此版本无法读取的记录](/docs/zh-CN/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)。

4042 4043 

4043当 Claude Code 从 `enabledPlugins` 中删除 plugin 的条目并读回该范围的设置文件时,要么 plugin 仍在那里被打开,要么可以打开它的文件无法读取或检查。在设置条目可以将其重新打开时删除 plugin 的保存选项、机密和数据会丢失它们,因此卸载停止:plugin 保持安装,它保存的任何内容都不会被删除。4044当 Claude Code 从`enabledPlugins`中删除插件的条目并读回该范围的设置文件时,要么插件仍在那里打开,要么可以打开它的文件无法读取或检查。删除插件保存的选项、机密和数据,同时设置条目可以将其打开,会丢失它们,因此卸载停止:插件保持安装,它保存的任何内容都不会被删除。

4044 4045 

4045```text theme={null}4046```text theme={null}

4046✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.4047✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.


4048 4049 

4049消息的中间部分命名文件和原因:4050消息的中间部分命名文件和原因:

4050 4051 

4051* `it is still switched on in <file>, although the settings change reported no error`:设置写入报告成功但条目在读回文件时仍然存在4052* `it is still switched on in <file>, although the settings change reported no error`:设置写报告成功,但读回文件时条目仍在那里

4052* `it is still switched on in <file>, and the settings change failed (<error>)`:文件无法保存,原因在括号中4053* `it is still switched on in <file>, and the settings change failed (<error>)`:文件无法保存,原因在括号中

4053* `<file> is there and could not be read`:文件存在但无法作为设置读取,例如因为它不是有效的 JSON,所以它可能仍然启用 plugin4054* `<file> is there and could not be read`:文件存在但无法作为设置读取,例如因为它不是有效的 JSON,所以它可能仍然启用插件

4054* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code 没有读取项目或本地设置文件,因为文件或保存它的 `.claude` 文件夹是指向网络位置的链接,或因为它无法检查该路径4055* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code 没有读取项目或本地设置文件,因为文件或保存它的`.claude`文件夹是指向网络位置的链接,或因为它无法检查该路径

4055 4056 

4056`claude plugin uninstall` 退出 1,使用 `--json` 时结果包含 `failureCode: "settings_still_on"`。`/plugin` 显示相同的消息。4057`claude plugin uninstall`退出 1,使用`--json`时结果带有`failureCode: "settings_still_on"`。`/plugin`显示相同的消息。

4057 4058 

4058**要做什么:**4059**要做什么:**

4059 4060 

4060* 遵循消息的最后一句:修复或替换它命名的设置文件,或自己从该文件中的 `enabledPlugins` 中删除 plugin 的条目,然后再次运行卸载4061* 遵循消息的最后一句:修复或替换它命名的设置文件,或自己从该文件中的`enabledPlugins`中删除插件的条目,然后再次运行卸载

4061 4062 

4062<h2 id="tool-errors">4063<h2 id="tool-errors">

4063 工具错误4064 工具错误


4626terminal host process died — press Enter to restart4627terminal host process died — press Enter to restart

4627```4628```

4628 4629 

4629如果您在检查运行之前打开该行,页脚显示 `This session's terminal host process died (the conversation is saved) — press Enter to restart it`,该行变为失败。

4630 

4631从 shell,`claude attach <id>` 重启已标记为死主机失败的会话,否则打印原因并退出:4630从 shell,`claude attach <id>` 重启已标记为死主机失败的会话,否则打印原因并退出:

4632 4631 

4633```text theme={null}4632```text theme={null}


5029 5028 

5030Claude Code 将大多数这些消息写入 stderr,而不是写入对话中,并在启动时写入大多数消息。当消息出现在其他地方(例如在调试日志中或作为对话视图中的启动通知)或在其他时间(例如[请求时的无法识别的模型诊断行](#unrecognized-model-id-on-a-request))时,条目会说明这一点。5029Claude Code 将大多数这些消息写入 stderr,而不是写入对话中,并在启动时写入大多数消息。当消息出现在其他地方(例如在调试日志中或作为对话视图中的启动通知)或在其他时间(例如[请求时的无法识别的模型诊断行](#unrecognized-model-id-on-a-request))时,条目会说明这一点。

5031 5030 

5032<h3 id="fullscreen-failed-start-notice">

5033 全屏渲染器未能完成启动

5034</h3>

5035 

5036此计算机上的上一个[全屏](/docs/zh-CN/fullscreen)会话在完成启动前退出,因此 Claude Code 在经典渲染器上启动此会话并打印以下通知之一:

5037 

5038```text theme={null}

5039Claude Code's fullscreen renderer didn't finish starting last time on this machine, so this launch is using the classic renderer. It will try fullscreen again next launch; /tui default keeps the classic renderer.

5040 

5041Claude Code's fullscreen renderer has repeatedly failed to start on this machine, so it has been turned off here. Run /tui fullscreen to try it again (this also resets after an update).

5042```

5043 

5044**要做什么:**

5045 

5046* 按照[全屏渲染](/docs/zh-CN/fullscreen#fullscreen-renderer-didnt-finish-starting)进行操作。它说明您获得哪个通知、Claude Code 在后续会话中的操作,以及如何再次尝试全屏或保持经典渲染器。

5047* 如果已死亡的会话打印了退出消息,请参阅[Claude Code 因无法恢复的界面错误而退出](#exited-after-an-unrecoverable-interface-error)了解其名称。

5048 

5049在 v2.1.236 之前,Claude Code 未打印通知,并在失败启动后继续在全屏渲染中启动会话。

5050 

5051<h3 id="exited-after-an-unrecoverable-interface-error">5031<h3 id="exited-after-an-unrecoverable-interface-error">

5052 Claude Code 因无法恢复的界面错误而退出5032 Claude Code 因无法恢复的界面错误而退出

5053</h3>5033</h3>


5199* 如果您管理设置,请将您的用户可以运行的模型添加到 `availableModels`,或缩小阻止每个回退的 `deniedModels` 条目。[阻止特定模型或版本](/docs/zh-CN/model-config#block-specific-models-or-versions)描述默认选项如何降级5179* 如果您管理设置,请将您的用户可以运行的模型添加到 `availableModels`,或缩小阻止每个回退的 `deniedModels` 条目。[阻止特定模型或版本](/docs/zh-CN/model-config#block-specific-models-or-versions)描述默认选项如何降级

5200* 如果您不管理它们,请将消息发送给您的管理员。您自己的设置文件无法扩大托管的 `availableModels` 或 `deniedModels` 列表5180* 如果您不管理它们,请将消息发送给您的管理员。您自己的设置文件无法扩大托管的 `availableModels` 或 `deniedModels` 列表

5201 5181 

5182<h3 id="managed-settings-dont-allow-this-api-provider">

5183 托管设置不允许此 API 提供商

5184</h3>

5185 

5186您的组织的[托管设置](/docs/zh-CN/managed-settings)设置了 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 列表,会话的 API 提供商不在其上,或会话使用的端点不是按该条目要求的方式固定的。Claude Code 在启动前、登录前或会话下次联系 API 时拒绝。消息以允许的提供商开头:

5187 

5188```text theme={null}

5189Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.

5190```

5191 

5192当列表为空时,消息改为读取:

5193 

5194```text theme={null}

5195Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.

5196```

5197 

5198当每个条目都无法识别时,括号读取 `(allowedProviders lists only unrecognized entries)` 代替。

5199 

5200**要做什么:**

5201 

5202* 按照消息的 `To continue:` 步骤进行

5203* 如果您管理设置,消息的以 `Admins:` 开头的行命名要添加的条目或要固定的值,[`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 条目说明哪个源的 `env` 块可以固定它

5204 

5202<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5205<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

5203 MCP 服务器被企业托管策略阻止5206 MCP 服务器被企业托管策略阻止

5204</h3>5207</h3>


5252* 如果您管理计算机,修复命名的文档使其解析为 JSON 对象,或删除文件、配置文件或注册表值。空的 `managed-settings.json` 计为 `{}` 并不阻止启动。5255* 如果您管理计算机,修复命名的文档使其解析为 JSON 对象,或删除文件、配置文件或注册表值。空的 `managed-settings.json` 计为 `{}` 并不阻止启动。

5253* 如果您不管理,请要求您的管理员修复部署的文档。您自己的设置文件中的任何内容都不会导致或清除此错误。5256* 如果您不管理,请要求您的管理员修复部署的文档。您自己的设置文件中的任何内容都不会导致或清除此错误。

5254 5257 

5258<h3 id="unable-to-read-managed-policy-settings">

5259 无法读取托管策略设置

5260</h3>

5261 

5262您的组织部署[托管设置](/docs/zh-CN/managed-settings),其中一个部署的源存在但无法读取,原因例如 I/O 错误而不是操作系统拒绝读取。没有其他管理员源提供策略,Claude Code 在启动时退出,而不是在没有源可能携带的策略的情况下运行:

5263 

5264```text theme={null}

5265Unable to read managed policy settings.

5266This machine may require organization login enforcement, but the policy file failed to load.

5267Contact your administrator.

5268 

5269Detail: <source>: <reason>

5270```

5271 

5272在相同的状态下,登录流、来自已运行的会话的 API 请求和 [`claude gateway`](/docs/zh-CN/claude-apps-gateway) 服务器被拒绝,其中第一行的变体命名 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders)。

5273 

5274操作系统拒绝的读取,例如在仅限 root 的文件上,不会产生此退出:[会话启动时不使用该源的策略](/docs/zh-CN/managed-settings#find-entries-claude-code-dropped)。对于无法解析的源,Claude Code 以[不同的消息命名源](#managed-settings-document-could-not-be-parsed)退出。

5275 

5276**要做什么:**

5277 

5278* 如果您管理计算机,修复 `Detail:` 行命名的问题,以便部署的源可以被读取,或删除源

5279* 如果您不管理,请将消息发送给您的管理员。您自己的设置文件中的任何内容都不会导致或清除此错误

5280 

5281在 v2.1.285 之前,仅使用 claude.ai 或 Claude Console 凭据登录的会话以此消息退出,操作系统拒绝的读取也产生了它。

5282 

5255<h3 id="otelheadershelper-failed">5283<h3 id="otelheadershelper-failed">

5256 otelHeadersHelper 失败5284 otelHeadersHelper 失败

5257</h3>5285</h3>


5464 回复质量似乎低于预期5492 回复质量似乎低于预期

5465</h2>5493</h2>

5466 5494 

5467如果 Claude 的回答似乎不如你预期的那样有能力,但没有显示错误,原因通常是对话状态而不是模型本身。Claude Code 不会无声地更改模型版本。它只能在三种特定情况下切换到备用模型:5495如果 Claude 的回答似乎不如你预期的那样有能力,但没有显示错误,原因通常是对话状态而不是模型本身。Claude Code 不会无声地更改模型版本。它只能在这些情况下切换到备用模型:

5468 5496 

5469* 配置的 [`--fallback-model`](/docs/zh-CN/cli-reference#cli-flags) 在可用性错误后接管该轮,并在记录中显示通知5497* 配置的 [`--fallback-model`](/docs/zh-CN/cli-reference#cli-flags) 在可用性错误后接管该轮,并在记录中显示通知

5470* Amazon Bedrock 或 Google Cloud 的 Agent Platform 启动检查发现你的默认模型不可用5498* Amazon Bedrock 或 Google Cloud 的 Agent Platform 启动检查发现你的默认模型不可用,或你的账户[在会话中途失去对它的访问权限](/docs/zh-CN/amazon-bedrock#when-a-model-is-disabled-mid-session)

5471* [自动模型备用](/docs/zh-CN/model-config#automatic-model-fallback) 在 Fable 5.1、Fable 5、Opus 5.5、Sonnet 5.5 和 Opus 5 上,当该类别有备用模型时,将会话移动到标记类别的备用模型,并在记录中显示通知5499* [自动模型备用](/docs/zh-CN/model-config#automatic-model-fallback) 在 Fable 5.1、Fable 5、Opus 5.5、Sonnet 5.5 和 Opus 5 上,当该类别有备用模型时,将会话移动到标记类别的备用模型,并在记录中显示通知

5472 5500 

5473下面的模型选择检查捕获第二和第三种情况;第一种情况显示为记录通知而不是 `/model` 更改。[模型配置](/docs/zh-CN/model-config) 解释了每个备用何时适用。5501下面的模型选择检查捕获第二和第三种情况;第一种情况显示为记录通知而不是 `/model` 更改。[模型配置](/docs/zh-CN/model-config) 解释了每个备用何时适用。

Details

293 293 

294模型别名(如 `opus`)不充当固定值,Claude Code 不识别的模型 ID 也不充当固定值。294模型别名(如 `opus`)不充当固定值,Claude Code 不识别的模型 ID 也不充当固定值。

295 295 

296当这些检查发现您的项目无法调用的模型时,Claude Code 会在这台机器上记住该拒绝长达一天,并在此期间启动时跳过记住的模型,而不再询问 Agent Platform。Claude Code 会在距离上次检查已过十分钟后,再次检查当前默认模型的记住拒绝,因此管理员重新启用的默认值会恢复。要关闭此内存,请设置 [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/zh-CN/env-vars)。

297 

298<h3 id="when-a-model-is-disabled-mid-session">

299 当模型在会话中途被禁用时

300</h3>

301 

302如果您的项目失去对会话正在运行的模型的访问权限,例如因为管理员在 [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) 中禁用了它,Claude Code 会将会话切换到另一个模型,而不是让每个请求都失败,并显示 `Switched to <fallback> because <model> is not available`。它尝试与启动回退相同的模型:首先尝试同一层级的早期版本,对于没有可用 Opus 版本的 Opus 会话,则使用默认 Sonnet 模型。

303 

304切换仅适用于您未固定的层级,这与启动回退的条件相同。在您选择的特定版本上的会话保持其模型,没有回退模型链,请求会失败。在 [auto mode](/docs/zh-CN/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) 中,Claude Code 仅切换到 auto mode 在 Agent Platform 上支持的模型。如果这些模型都不可用,请求会失败。

305 

306您配置的[回退模型链](/docs/zh-CN/model-config#fallback-model-chains)会替换层级切换:在这些拒绝上,Claude Code 会切换到您配置的回退。要使被拒绝的请求失败而不是切换,请设置 [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/zh-CN/env-vars)。您配置的回退链仍会在这些拒绝上切换;如果您希望每个被拒绝的请求都失败,也要移除该链。

307 

296<h2 id="iam-configuration">308<h2 id="iam-configuration">

297 IAM 配置309 IAM 配置

298</h2>310</h2>

headless.md +2 −2

Details

296 自动批准工具296 自动批准工具

297</h3>297</h3>

298 298 

299使用 `--allowedTools` 让 Claude 使用某些工具而无需提示。此示例运行测试套件并修复失败,允许 Claude 执行 Bash 命令和读取/编辑文件而无需请求权限:299使用 `--allowedTools` 让 Claude 使用某些工具而无需提示。列出 `Read` 和 `Edit` 让 Claude 读取和编辑文件而无需请求权限。列出 `Bash` 对 shell 命令执行相同操作,除了在 [auto 模式](/docs/zh-CN/permission-modes#how-auto-mode-evaluates-actions) 中启动的运行,其中 Claude Code 删除裸 `Bash` 条目作为广泛允许规则,auto 模式改为评估每个命令。此示例运行测试套件并修复失败,允许这三个工具:

300 300 

301```bash theme={null}301```bash theme={null}

302claude -p "Run the test suite and fix any failures" \302claude -p "Run the test suite and fix any failures" \

303 --allowedTools "Bash,Read,Edit"303 --allowedTools "Bash,Read,Edit"

304```304```

305 305 

306要为整个会话设置基线而不是列出单个工具,请传递 [权限模式](/docs/zh-CN/permission-modes)。对于 `-p`,[内置启动权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in) 在每个计划上都是 Manual,因此传递您想要的权限模式:306要为整个会话设置基线而不是列出单个工具,请传递 [权限模式](/docs/zh-CN/permission-modes)。对于不设置权限模式的运行,采用 [内置启动权限模式](/docs/zh-CN/permission-modes#which-mode-a-session-starts-in),可能是 `auto`,因此传递您想要的权限模式:

307 307 

308* **`auto`**:传递 `--permission-mode auto` 以让分类器审查大多数操作而不是您308* **`auto`**:传递 `--permission-mode auto` 以让分类器审查大多数操作而不是您

309* **`dontAsk`**:Claude Code 拒绝每个原本会提示的调用,这对于锁定的 CI 运行很有用。在 Manual 模式下无需批准的操作仍会运行,例如工作目录中的文件读取和 [只读命令集](/docs/zh-CN/permissions#read-only-commands),您的 `--allowedTools` 条目或 `permissions.allow` 规则涵盖的操作也是如此。`AskUserQuestion`、连接器工具 [您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使当允许规则匹配时也被拒绝309* **`dontAsk`**:Claude Code 拒绝每个原本会提示的调用,这对于锁定的 CI 运行很有用。在 Manual 模式下无需批准的操作仍会运行,例如工作目录中的文件读取和 [只读命令集](/docs/zh-CN/permissions#read-only-commands),您的 `--allowedTools` 条目或 `permissions.allow` 规则涵盖的操作也是如此。`AskUserQuestion`、连接器工具 [您的组织设置为 `ask`](/docs/zh-CN/mcp#organization-controls-on-connector-tools) 和标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使当允许规则匹配时也被拒绝

hooks.md +66 −68

Details

265| `.claude/settings.local.json` | 单个项目 | 否,当 Claude Code 保存设置时被 gitignored |265| `.claude/settings.local.json` | 单个项目 | 否,当 Claude Code 保存设置时被 gitignored |

266| 托管策略设置 | 组织范围 | 是,由管理员控制 |266| 托管策略设置 | 组织范围 | 是,由管理员控制 |

267| [Plugin](/docs/zh-CN/plugins/overview) `hooks/hooks.json` | 启用插件时 | 是,与插件捆绑 |267| [Plugin](/docs/zh-CN/plugins/overview) `hooks/hooks.json` | 启用插件时 | 是,与插件捆绑 |

268| [Skill](/docs/zh-CN/skills) frontmatter | 调用技能后的会话其余部分。请参阅 [Hooks in skills and agents](#hooks-in-skills-and-agents) | 是,在技能文件中定义 |268| [Skill](/docs/zh-CN/skills) frontmatter | 调用技能后的会话其余部分。请参阅 [Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在技能文件中定义 |

269| [Subagent](/docs/zh-CN/sub-agents) frontmatter | 该子代理运行时 | 是,在子代理文件中定义 |269| [Subagent](/docs/zh-CN/sub-agents) frontmatter | 该子代理运行时 | 是,在子代理文件中定义 |

270 270 

271[云会话](/docs/zh-CN/claude-code-on-the-web) 不读取本地 `~/.claude/settings.json`。在 [自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval) 中,Claude Code 还运行操作员从运行程序主机的 `~/.claude/` 中植入的 hooks,并在该文件属于 [Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) 时运行运行程序镜像的托管设置文件中的 hooks,这默认意味着仅当服务器托管设置和 MDM 交付的 Claude Code 策略都不提供托管层时。有关哪些设置文件和插件(以及因此哪些 hooks)到达云会话的信息,请参阅 [从设置中携带的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。271[云会话](/docs/zh-CN/claude-code-on-the-web) 不读取本地 `~/.claude/settings.json`。在 [自托管环境](/docs/zh-CN/self-hosted-environments-configuration#permissions-and-tool-approval) 中,Claude Code 还运行操作员从运行程序主机的 `~/.claude/` 中植入的 hooks,并在该文件属于 [Claude Code 应用的托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources) 时运行运行程序镜像的托管设置文件中的 hooks,默认情况下仅当服务器托管设置和 MDM 交付的 Claude Code 策略都不提供托管层时才运行。有关哪些设置文件和插件(以及哪些 hooks)到达云会话,请参阅 [从设置中继承的内容](/docs/zh-CN/cloud-environments#what-carries-over-from-your-setup)。

272 272 

273有关设置文件解析的详细信息,请参阅 [settings](/docs/zh-CN/settings)。273有关设置文件解析的详细信息,请参阅 [settings](/docs/zh-CN/settings)。

274 274 

275来自设置文件、托管策略设置和插件的 Hooks 也在 [subagents](/docs/zh-CN/sub-agents) 内运行。当子代理调用工具时,工具事件(如 `PreToolUse` 和 `PostToolUse`)触发与主对话中相同的配置 hooks,输入包含标识子代理的 `agent_id` 和 `agent_type` [通用输入字段](#common-input-fields)。275来自设置文件、托管策略设置和插件的 Hooks 也在 [subagents](/docs/zh-CN/sub-agents) 内运行。当子代理调用工具时,工具事件(如 `PreToolUse` 和 `PostToolUse`)会触发与主对话中配置的相同 hooks,输入包含标识子代理的 `agent_id` 和 `agent_type` [通用输入字段](#common-input-fields)。

276 276 

277管理员可以使用 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 在 [托管设置](/docs/zh-CN/managed-settings) 中限制哪些 hooks 运行:277管理员可以在 [托管设置](/docs/zh-CN/managed-settings) 中使用 [`allowManagedHooksOnly`](/docs/zh-CN/settings-reference#allowmanagedhooksonly) 来限制哪些 hooks 运行:

278 278 

279* 用户、项目、本地和插件 hooks 被阻止。托管设置 `enabledPlugins` 中强制启用的插件中的 Hooks 除外279* 您的用户、项目、本地和插件 hooks 被阻止。在托管设置 `enabledPlugins` 中强制启用的插件中的 Hooks 除外

280* Claude Code 还将 [`statusLine`](/docs/zh-CN/statusline)、[`fileSuggestion`](/docs/zh-CN/settings-reference#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-CN/statusline#subagent-status-lines) 设置限制为托管设置280* Claude Code 还将您的 [`statusLine`](/docs/zh-CN/statusline)、[`fileSuggestion`](/docs/zh-CN/settings-reference#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-CN/statusline#subagent-status-lines) 设置缩小到托管设置

281* Claude Code 还禁用具有 [`command` 源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source) 的插件,包括托管设置 `enabledPlugins` 中强制启用的插件,除非 [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) 明确设置为 `false`。`command` 源需要 Claude Code v2.1.229 或更高版本281* Claude Code 还禁用具有 [`command` 源](/docs/zh-CN/plugins/marketplace-reference#command-plugin-source) 的插件,包括在托管设置 `enabledPlugins` 中强制启用的插件,除非 [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) 明确设置为 `false`。`command` 源需要 Claude Code v2.1.229 或更高版本

282* Claude Code 还阻止市场 [`headersHelper` 命令](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads),除非 [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) 明确设置为 `false`,托管设置本身声明的市场除外282* Claude Code 还阻止市场 [`headersHelper` 命令](/docs/zh-CN/plugins/host-marketplace#authenticate-archive-downloads),除非 [`disableCommandPluginSources`](/docs/zh-CN/settings-reference#disablecommandpluginsources) 明确设置为 `false`,但托管设置本身声明的市场除外

283 283 

284请参阅 [在 `allowManagedHooksOnly` 下运行的内容](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)。284请参阅 [在 `allowManagedHooksOnly` 下运行的内容](/docs/zh-CN/settings-reference#what-runs-under-allowmanagedhooksonly)。

285 285 

286Hook 条目在设置级别之间合并而不是相互替换:用户、项目和本地设置添加自己的 hooks 而不删除托管的 hooks,[`disableAllHooks`](#disable-or-remove-hooks) 设置无法禁用来自托管设置外部的托管 hooks。286Hook 条目在设置级别之间合并而不是相互替换:用户、项目和本地设置添加自己的 hooks 而不删除托管的 hooks,[`disableAllHooks`](#disable-or-remove-hooks) 设置无法禁用来自托管设置外部的托管 hooks。

287 287 

288[HTTP hook 允许列表](/docs/zh-CN/settings-reference#hook-and-skill-settings) 适用于来自每个源的 hooks,包括托管策略设置:288[HTTP hook 允许列表](/docs/zh-CN/settings-reference#hook-and-skill-settings) 适用于来自所有源的 hooks,包括托管策略设置:

289 289 

290* `allowedHttpHookUrls`:在任何设置级别定义时,Claude Code 仅在其 URL 与合并的允许列表匹配时运行 HTTP hook 处理程序290* `allowedHttpHookUrls`:在任何设置级别定义时,Claude Code 仅在其 URL 与合并的允许列表匹配时运行 HTTP hook 处理程序

291* `httpHookAllowedEnvVars`:定义时,Claude Code 仅将该列表上的环境变量插值到 hook 标头中291* `httpHookAllowedEnvVars`:定义时,Claude Code 仅将该列表上的环境变量插值到 hook 标头中


299| 匹配器值 | 评估为 | 示例 |299| 匹配器值 | 评估为 | 示例 |

300| :- | :- | :- |300| :- | :- | :- |

301| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |301| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出现时触发 |

302| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 仅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各匹配任一工具;`code-reviewer` 仅匹配该代理类型 |302| 仅字母、数字、`_`、`-`、空格、`,` 和 `\|` | 精确字符串或由 `\|` 或 `,` 分隔的精确字符串列表,可选周围空格 | `Bash` 仅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各自精确匹配任一工具;`code-reviewer` 仅匹配该代理类型 |

303| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |303| 包含任何其他字符 | JavaScript 正则表达式,未锚定 | `^Notebook` 匹配任何名称以 `Notebook` 开头的工具;`mcp__memory__.*` 匹配来自 `memory` 服务器的每个工具 |

304 304 

305在正则表达式路径上的匹配器使用 JavaScript 的 `RegExp.prototype.test` 进行测试,该测试在值中任何位置的匹配时成功。`Edit.*` 匹配 `Edit` 和 `NotebookEdit`;当需要整个字符串匹配时,用 `^` 和 `$` 包装模式,如 `^Edit$`。305正则表达式路径上的匹配器使用 JavaScript 的 `RegExp.prototype.test` 进行测试,该测试在值中任何位置的匹配时成功。`Edit.*` 同时匹配 `Edit` 和 `NotebookEdit`;当需要整个字符串匹配时,用 `^` 和 `$` 包装模式,如 `^Edit$`。

306 306 

307`FileChanged` 和 `StopFailure` 使用更窄的精确匹配集,仅包含字母、数字、`_` 和 `|`。这两个事件的匹配器中的连字符、空格或逗号将其保留在正则表达式路径上,仅 `|` 分隔替代项。下表中支持匹配器的其他每个事件接受 `|` 或 `,`。307`FileChanged` 和 `StopFailure` 仅使用更窄的精确匹配字母、数字、`_` 和 `|` 集合。匹配器中的连字符、空格或逗号对这两个事件保持在正则表达式路径上,仅 `|` 分隔替代项。下表中支持匹配器的其他每个事件都接受 `|` 或 `,`。

308 308 

309`FileChanged` 事件在构建其监视列表时不遵循这些规则。请参阅 [FileChanged](#filechanged)。309`FileChanged` 事件在构建其监视列表时不遵循这些规则。请参阅 [FileChanged](#filechanged)。

310 310 


315| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |315| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名称 | `Bash`、`Edit\|Write`、`mcp__.*` |

316| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |316| `SessionStart` | 会话如何启动 | `startup`、`resume`、`clear`、`compact`、`fork` |

317| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |317| `Setup` | 哪个 CLI 标志触发了设置 | `init`、`maintenance` |

318| `SessionEnd` | 会话为什么结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |318| `SessionEnd` | 会话为何结束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

319| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |319| `Notification` | 通知类型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |

320| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |320| `SubagentStart` | 代理类型 | `general-purpose`、`Explore`、`Plan`、自定义代理名称或插件范围的名称如 `^my-plugin:reviewer$` |

321| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |321| `PreCompact`、`PostCompact` | 什么触发了压缩 | `manual`、`auto` |


327| `FileChanged` | 要监视的文字文件名(请参阅 [FileChanged](#filechanged)) | `.envrc\|.env` |327| `FileChanged` | 要监视的文字文件名(请参阅 [FileChanged](#filechanged)) | `.envrc\|.env` |

328| `StopFailure` | 错误类型 | `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error`、`unknown` |328| `StopFailure` | 错误类型 | `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error`、`unknown` |

329| `InstructionsLoaded` | 加载原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |329| `InstructionsLoaded` | 加载原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

330| `UserPromptExpansion` | 命令名称 | 你的技能或命令名称 |330| `UserPromptExpansion` | 命令名称 | 您的技能或命令名称 |

331| `Elicitation` | MCP 服务器名称 | 你配置的 MCP 服务器名称 |331| `Elicitation` | MCP 服务器名称 | 您配置的 MCP 服务器名称 |

332| `ElicitationResult` | MCP 服务器名称 | 与 `Elicitation` 相同的值 |332| `ElicitationResult` | MCP 服务器名称 | 与 `Elicitation` 相同的值 |

333| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | 无匹配器支持 | 总是在每次出现时触发 |333| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | 无匹配器支持 | 总是在每次出现时触发 |

334 334 


358 358 

359如果向不支持匹配器的事件添加 `matcher` 字段,它会被静默忽略。359如果向不支持匹配器的事件添加 `matcher` 字段,它会被静默忽略。

360 360 

361对于工具事件,可以通过在单个 hook 处理程序上设置 [`if` 字段](#common-fields) 来更狭隘地过滤。`if` 使用 [权限规则语法](/docs/zh-CN/permissions) 来匹配工具名称和参数,因此 `"Bash(git *)"` 在任何 Bash 输入的子命令匹配 `git *` 时运行,`"Edit(*.ts)"` 仅对 TypeScript 文件运行。361对于工具事件,您可以通过在单个 hook 处理程序上设置 [`if` 字段](#common-fields) 来更狭隘地过滤。`if` 使用 [权限规则语法](/docs/zh-CN/permissions) 来匹配工具名称和参数,所以 `"Bash(git *)"` 在任何 Bash 输入的子命令匹配 `git *` 时运行,`"Edit(*.ts)"` 仅对 TypeScript 文件运行。

362 362 

363<h4 id="match-mcp-tools">363<h4 id="match-mcp-tools">

364 匹配 MCP 工具364 匹配 MCP 工具

365</h4>365</h4>

366 366 

367[MCP](/docs/zh-CN/mcp) 服务器工具在工具事件中显示为常规工具(`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`),因此可以像匹配任何其他工具名称一样匹配它们。367[MCP](/docs/zh-CN/mcp) 服务器工具在工具事件中显示为常规工具(`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`),因此您可以像匹配任何其他工具名称一样匹配它们。

368 368 

369MCP 工具遵循命名模式 `mcp__<server>__<tool>`,例如:369MCP 工具遵循命名模式 `mcp__<server>__<tool>`,例如:

370 370 


372* `mcp__filesystem__read_file`:Filesystem 服务器的读取文件工具372* `mcp__filesystem__read_file`:Filesystem 服务器的读取文件工具

373* `mcp__github__search_repositories`:GitHub 服务器的搜索工具373* `mcp__github__search_repositories`:GitHub 服务器的搜索工具

374 374 

375要匹配来自服务器的每个工具,请将 `.*` 附加到服务器前缀。`.*` 是必需的:像 `mcp__memory` 或 `mcp__brave-search` 这样的匹配器仅包含精确匹配字符,因此它被比较为精确字符串,不匹配任何工具。375要匹配来自服务器的每个工具,请在服务器前缀后附加 `.*`。`.*` 是必需的:像 `mcp__memory` 或 `mcp__brave-search` 这样的匹配器仅包含精确匹配字符,因此它被比较为精确字符串,不匹配任何工具。

376 376 

377* `mcp__memory__.*` 匹配来自 `memory` 服务器的所有工具377* `mcp__memory__.*` 匹配来自 `memory` 服务器的所有工具

378* `mcp__brave-search__.*` 匹配来自名称包含连字符的服务器的所有工具378* `mcp__brave-search__.*` 匹配来自名称包含连字符的服务器的所有工具

379* `mcp__.*__write.*` 匹配来自任何服务器的名称以 `write` 开头的任何工具379* `mcp__.*__write.*` 匹配来自任何服务器的名称以 `write` 开头的任何工具

380 380 

381来自 [插件捆绑的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 的工具使用包含插件名称的范围服务器段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。针对裸服务器密钥编写的匹配器永远不会对这些工具触发。对于名为 `my-plugin` 的插件,在密钥 `db` 下捆绑服务器,`query` 工具显示为 `mcp__plugin_my-plugin_db__query`,因此来自该服务器的每个工具的匹配器是 `mcp__plugin_my-plugin_db__.*`。在处理程序的 [`if` 字段](#common-fields) 中使用相同的范围工具名称。有关如何构建范围名称的信息,请参阅 [插件提供的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers)。381来自 [插件捆绑的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 的工具使用包含插件名称的范围服务器段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。针对裸服务器密钥编写的匹配器永远不会对这些工具触发。对于名为 `my-plugin` 的插件,在密钥 `db` 下捆绑服务器,`query` 工具显示为 `mcp__plugin_my-plugin_db__query`,因此来自该服务器的每个工具的匹配器是 `mcp__plugin_my-plugin_db__.*`。在处理程序的 [`if` 字段](#common-fields) 中使用相同的范围工具名称。请参阅 [插件提供的 MCP 服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers) 了解范围名称如何构建。

382 382 

383此示例记录所有内存服务器操作并验证来自任何 MCP 服务器的写入操作:383此示例记录所有内存服务器操作并验证来自任何 MCP 服务器的写入操作:

384 384 


415 415 

416内部 `hooks` 数组中的每个对象都是一个 hook 处理程序:当匹配器匹配时运行的 shell 命令、HTTP 端点、MCP 工具、LLM 提示或代理。有五种类型:416内部 `hooks` 数组中的每个对象都是一个 hook 处理程序:当匹配器匹配时运行的 shell 命令、HTTP 端点、MCP 工具、LLM 提示或代理。有五种类型:

417 417 

418* **[命令 hooks](#command-hook-fields)**(`type: "command"`):运行 shell 命令。脚本在 stdin 上接收事件的 [JSON 输入](#hook-input-and-output),并通过退出代码和 stdout 传回结果。418* **[命令 hooks](#command-hook-fields)**(`type: "command"`):运行 shell 命令。您的脚本在 stdin 上接收事件的 [JSON 输入](#hook-input-and-output),并通过退出代码和 stdout 传回结果。

419* **[HTTP hooks](#http-hook-fields)**(`type: "http"`):将事件的 JSON 输入作为 HTTP POST 请求发送到 URL。端点通过响应体使用与命令 hooks 相同的 [JSON 输出格式](#json-output) 传回结果。419* **[HTTP hooks](#http-hook-fields)**(`type: "http"`):将事件的 JSON 输入作为 HTTP POST 请求发送到 URL。端点通过响应体使用与命令 hooks 相同的 [JSON 输出格式](#json-output) 传回结果。

420* **[MCP 工具 hooks](#mcp-tool-hook-fields)**(`type: "mcp_tool"`):在已连接的 [MCP 服务器](/docs/zh-CN/mcp) 上调用工具。工具的文本输出被视为命令 hook stdout。420* **[MCP 工具 hooks](#mcp-tool-hook-fields)**(`type: "mcp_tool"`):在配置的 [MCP 服务器](/docs/zh-CN/mcp) 上调用工具。工具的文本输出被视为命令 hook stdout。

421* **[提示 hooks](#prompt-and-agent-hook-fields)**(`type: "prompt"`):向 Claude 模型发送提示以进行单轮评估。模型以 JSON 形式返回其决定。请参阅 [基于提示的 hooks](#prompt-based-hooks)。421* **[提示 hooks](#prompt-and-agent-hook-fields)**(`type: "prompt"`):向 Claude 模型发送提示以进行单轮评估。模型以 JSON 形式返回其决定。请参阅 [基于提示的 hooks](#prompt-based-hooks)。

422* **[代理 hooks](#prompt-and-agent-hook-fields)**(`type: "agent"`):生成一个子代理,可以使用 Read、Grep 和 Glob 等工具来验证条件,然后返回决定。代理 hooks 是实验性的,可能会改变。请参阅 [基于代理的 hooks](#agent-based-hooks)。422* **[代理 hooks](#prompt-and-agent-hook-fields)**(`type: "agent"`):生成一个子代理,可以使用 Read、Grep 和 Glob 等工具来验证条件,然后返回决定。代理 hooks 是实验性的,可能会改变。请参阅 [基于代理的 hooks](#agent-based-hooks)。

423 423 

424所有匹配的 hooks 并行运行。如果在多个设置文件中定义相同的处理程序,它运行一次。插件或技能的相同处理程序副本保持分离。424所有匹配的 hooks 并行运行。如果在多个设置文件中定义相同的处理程序,它运行一次。插件或技能的相同处理程序副本保持分离。

425 425 

426处理程序在当前目录中使用 Claude Code 的环境运行。如果当前目录不再存在,例如另一个 shell 在会话中途删除的 worktree 或临时目录,Claude Code 从以下第一个仍然存在的目录运行命令 hooks:会话启动的目录、项目根目录、主目录或系统临时目录。Claude Code 在 [调试日志](#debug-hooks) 中记录一条警告,命名回退目录。426处理程序在当前目录中使用 Claude Code 的环境运行。如果当前目录不再存在,例如另一个 shell 在会话中途删除的 worktree 或临时目录,Claude Code 从以下第一个仍然存在的目录运行命令 hooks:会话启动的目录、项目根目录、您的主目录或系统临时目录。Claude Code 在 [调试日志](#debug-hooks) 中记录一个警告,命名回退目录。

427 427 

428`$CLAUDE_CODE_REMOTE` 环境变量在远程 web 环境中为 `"true"`,在本地 CLI 中未设置。Claude Code v2.1.199 及更高版本在本地会话具有活跃的 Remote Control 连接时将 [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-CN/env-vars) 设置为 [Remote Control](/docs/zh-CN/remote-control) 会话 ID。428`$CLAUDE_CODE_REMOTE` 环境变量在远程 web 环境中为 `"true"`,在本地 CLI 中未设置。Claude Code v2.1.199 及更高版本在本地会话有活跃的远程控制连接时将 [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-CN/env-vars) 设置为 [远程控制](/docs/zh-CN/remote-control) 会话 ID。

429 429 

430<h4 id="common-fields">430<h4 id="common-fields">

431 通用字段431 通用字段


436| 字段 | 必需 | 描述 |436| 字段 | 必需 | 描述 |

437| :- | :- | :- |437| :- | :- | :- |

438| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |438| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |

439| `if` | 否 | 权限规则语法来过滤此 hook 何时运行,如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。hook 命令仅在工具调用与模式匹配时运行。有关 Bash 模式如何针对子命令、`$()` 和反引号评估的信息,请参阅下面的 [Bash 匹配表](#bash-if-matching)。仅在工具事件上评估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,设置了 `if` 的 hook 永远不会运行。使用与 [权限规则](/docs/zh-CN/permissions) 相同的语法 |439| `if` | 否 | 权限规则语法来过滤此 hook 何时运行,如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。hook 命令仅在工具调用匹配模式时运行。请参阅下面的 [Bash 匹配表](#bash-if-matching) 了解 Bash 模式如何针对子命令、`$()` 和反引号进行评估。仅在工具事件上评估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,设置了 `if` 的 hook 永远不会运行。使用与 [权限规则](/docs/zh-CN/permissions) 相同的语法 |

440| `timeout` | 否 | 取消前的秒数。Claude Code 不在使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 上强制执行。默认值:`command`、`http` 和 `mcp_tool` 为 600;`prompt` 为 30;`agent` 为 60。Claude Code 在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 和 [`PostModelSwitch`](#postmodelswitch) 上将 `command`、`http` 和 `mcp_tool` 默认值降低到 30,在 [`MessageDisplay`](#messagedisplay) 上降低到 10。[`SessionEnd`](#sessionend) hooks 共享 1.5 秒的预算;如果设置设置了更长的每个 hook `timeout`,Claude Code 将预算提高到匹配,最多 60 秒 |440| `timeout` | 否 | 取消前的秒数。Claude Code 不在您使用 [`async: true`](#run-hooks-in-the-background) 运行的命令 hook 上强制执行。默认值:`command`、`http` 和 `mcp_tool` 为 600;`prompt` 为 30;`agent` 为 60。Claude Code 在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 和 [`PostModelSwitch`](#postmodelswitch) 上将 `command`、`http` 和 `mcp_tool` 默认值降低到 30,在 [`MessageDisplay`](#messagedisplay) 上降低到 10。[`SessionEnd`](#sessionend) hooks 共享 1.5 秒的预算;如果您的设置设置了更长的每个 hook `timeout`,Claude Code 会提高预算以匹配,最多 60 秒 |

441| `statusMessage` | 否 | hook 运行时显示的自定义微调器消息 |441| `statusMessage` | 否 | hook 运行时显示的自定义微调消息 |

442| `once` | 否 | 如果为 `true`,Claude Code 在第一次成功运行后删除 hook。失败、以退出代码 2 阻止或超时的运行将 hook 保留在原位,因此它在下一个匹配事件上再次运行。仅对在 [技能 frontmatter](#hooks-in-skills-and-agents) 中声明的 hooks 有效;在设置文件和代理 frontmatter 中被忽略 |442| `once` | 否 | 如果为 `true`,Claude Code 在第一次成功运行后删除 hook。失败、以退出代码 2 阻止或超时的运行会将 hook 保留在原位,因此它在下一个匹配事件上再次运行。仅在 [技能 frontmatter](#hooks-in-skills-and-agents) 中声明的 hooks 上受尊重;在设置文件和代理 frontmatter 中被忽略 |

443 443 

444`if` 字段恰好包含一个权限规则。没有 `&&`、`||` 或列表语法来组合规则;要应用多个条件,为每个定义一个单独的 hook 处理程序。444`if` 字段恰好包含一个权限规则。没有 `&&`、`||` 或列表语法来组合规则;要应用多个条件,为每个定义一个单独的 hook 处理程序。

445 445 

446在文件工具的 `if` 条件中,单段目录模式如 `"Edit(src/**)"` 仅匹配工作目录中的 `src` 目录及其下的文件。要匹配工作目录下任何深度的名为 `src` 的目录,请写 `"Edit(**/src/**)"`。在 v2.1.214 之前,`"Edit(src/**)"` 匹配工作目录下任何深度的名为 `src` 的目录。446在文件工具的 `if` 条件中,单段目录模式如 `"Edit(src/**)"` 仅匹配工作目录中的 `src` 目录及其下的文件。要匹配任何深度的名为 `src` 的目录,请写 `"Edit(**/src/**)"`。在 v2.1.214 之前,`"Edit(src/**)"` 匹配工作目录下任何深度的名为 `src` 的目录。

447 447 

448<span id="bash-if-matching" />对于 Bash 模式,hook 命令是否运行取决于模式的形状和 Claude 调用的 Bash 命令。在匹配前剥离前导 `VAR=value` 赋值。448<span id="bash-if-matching" />对于 Bash 模式,您的 hook 命令是否运行取决于模式的形状和 Claude 调用的 Bash 命令。匹配前会剥离前导 `VAR=value` 赋值。

449 449 

450| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |450| `if` 模式 | Bash 命令 | Hook 运行? | 为什么 |

451| :- | :- | :- | :- |451| :- | :- | :- | :- |

452| `Bash(git *)` | `FOO=bar git push` | 是 | 前导赋值被剥离;`git push` 匹配 |452| `Bash(git *)` | `FOO=bar git push` | 是 | 前导赋值被剥离;`git push` 匹配 |

453| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令被检查;`git push` 匹配 |453| `Bash(git *)` | `npm test && git push` | 是 | 每个子命令都被检查;`git push` 匹配 |

454| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 和反引号内的命令被检查;`rm -rf /` 匹配 |454| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 和反引号内的命令被检查;`rm -rf /` 匹配 |

455| `Bash(rm *)` | `echo $(date)` | 否 | 没有子命令匹配 `rm *` |455| `Bash(rm *)` | `echo $(date)` | 否 | 没有子命令匹配 `rm *` |

456| `Bash(cat *)` | `echo before $(date) after` | 否 | 替换可以位于任何参数位置,因此检查完整命令和 `date`;都不匹配 `cat *` |

457| `Bash(git *)` | `$TOOL git push` | 是 | Claude Code 无法判断命令名称扩展到什么,因此它运行 hook |

458| `Bash(git push *)` | `echo $(date)` | 是 | 指定超过命令名称的模式在 `$()`、反引号或 `$VAR` 上无论如何都运行 hook |456| `Bash(git push *)` | `echo $(date)` | 是 | 指定超过命令名称的模式在 `$()`、反引号或 `$VAR` 上无论如何都运行 hook |

459 457 

460当 Claude Code 无法确定 Bash 输入运行哪些命令时,它无论模式如何都运行 hook。因为 `if` 过滤是尽力而为的,使用 [权限系统](/docs/zh-CN/permissions) 而不是 hook 来强制执行硬允许或拒绝。458当 Claude Code 无法确定 Bash 输入运行哪些命令时,它无论如何都会运行您的 hook,无论模式如何。因为 `if` 过滤是尽力而为的,使用 [权限系统](/docs/zh-CN/permissions) 而不是 hook 来强制执行硬允许或拒绝。

461 459 

462<h4 id="command-hook-fields">460<h4 id="command-hook-fields">

463 命令 hook 字段461 命令 hook 字段

464</h4>462</h4>

465 463 

466除了 [通用字段](#common-fields),命令 hooks 接受这些字段:464除了 [通用字段](#common-fields) 外,命令 hooks 接受这些字段:

467 465 

468| 字段 | 必需 | 描述 |466| 字段 | 必需 | 描述 |

469| :- | :- | :- |467| :- | :- | :- |


479 Exec 形式和 shell 形式477 Exec 形式和 shell 形式

480</h5>478</h5>

481 479 

482当设置 `args` 时,命令 hook 以 exec 形式运行,当省略 `args` 时以 shell 形式运行。每当 hook 引用 [路径占位符](#reference-scripts-by-path) 时设置 `args`,因为每个元素作为一个参数传递,不带引号。当需要 shell 功能如管道或 `&&` 时省略 `args`,或当两个问题都不适用时。480当设置 `args` 时,命令 hook 以 exec 形式运行,当省略 `args` 时以 shell 形式运行。每当 hook 引用 [路径占位符](#reference-scripts-by-path) 时设置 `args`,因为每个元素作为一个参数传递,不带引号。当您需要 shell 功能如管道或 `&&` 时省略 `args`,或当两个问题都不适用时。

483 481 

484**Exec 形式**在设置 `args` 时运行。Claude Code 在 `PATH` 上解析 `command` 作为可执行文件,并直接使用 `args` 作为参数向量生成它。没有 shell,因此每个 `args` 元素恰好是一个参数,完全按照编写的方式,路径占位符如 `${CLAUDE_PLUGIN_ROOT}` 被替换为 `command` 和每个 `args` 元素中的纯字符串。特殊字符如撇号、`$` 和反引号逐字传递,因为没有 shell 来解释它们。在任何平台上都不会发生 shell 标记化。482**Exec 形式**在存在 `args` 时运行。Claude Code 在 `PATH` 上解析 `command` 作为可执行文件,并直接使用 `args` 作为参数向量生成它。没有 shell,所以每个 `args` 元素恰好是一个参数,完全按照编写的方式,路径占位符如 `${CLAUDE_PLUGIN_ROOT}` 被替换为 `command` 和每个 `args` 元素作为纯字符串。特殊字符如撇号、`$` 和反引号逐字传递,因为没有 shell 来解释它们。在任何平台上都不会发生 shell 标记化。

485 483 

486**Shell 形式**在省略 `args` 时运行。`command` 字符串被传递到 shell:在 macOS 和 Linux 上为 `sh -c`,在 Windows 上为 Git Bash,或在未安装 Git Bash 时为 PowerShell。设置 `shell` 字段来明确选择。shell 标记化字符串、扩展变量并解释管道、`&&`、重定向和 globs。484**Shell 形式**在省略 `args` 时运行。`command` 字符串被传递给 shell:macOS 和 Linux 上的 `sh -c`、Windows 上的 Git Bash,或未安装 Git Bash 时的 PowerShell。设置 `shell` 字段来明确选择。shell 标记化字符串、扩展变量并解释管道、`&&`、重定向和 globs。

487 485 

488<Note>486<Note>

489 在 Windows 上,exec 形式需要 `command` 解析为真实可执行文件如 `.exe`。npm、npx、eslint 和其他工具在 `node_modules/.bin` 中安装的 `.cmd` 和 `.bat` 垫片不是可执行文件,不能在没有 shell 的情况下生成。要在 exec 形式中运行它们,直接使用 `node` 调用底层脚本,例如 `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`。`node` 加脚本路径模式在每个平台上都有效,因为 `node.exe` 是真实二进制文件。要按名称运行 `.cmd` 或 `.bat` 垫片,使用 shell 形式。487 在 Windows 上,exec 形式需要 `command` 解析为真实可执行文件如 `.exe`。npm、npx、eslint 和其他工具在 `node_modules/.bin` 中安装的 `.cmd` 和 `.bat` 垫片不是可执行文件,不能在没有 shell 的情况下生成。要在 exec 形式中运行它们,直接使用 `node` 调用底层脚本,例如 `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`。`node` 加脚本路径模式在每个平台上都有效,因为 `node.exe` 是真实二进制文件。要按名称运行 `.cmd` 或 `.bat` 垫片,使用 shell 形式。


508}506}

509```507```

510 508 

511两种形式都支持相同的 [路径占位符](#reference-scripts-by-path),并且都将它们导出为生成过程上的环境变量 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT` 和 `CLAUDE_PLUGIN_DATA`,因此脚本可以读取 `process.env.CLAUDE_PLUGIN_ROOT` 无论如何启动。509两种形式都支持相同的 [路径占位符](#reference-scripts-by-path),并且两者都将它们导出为生成的进程上的环境变量 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT` 和 `CLAUDE_PLUGIN_DATA`,所以脚本可以读取 `process.env.CLAUDE_PLUGIN_ROOT`,无论它如何启动。

512 510 

513插件 hooks 另外替换 [`${user_config.*}`](/docs/zh-CN/plugins/manifest-reference#user-configuration) 值,仅在 exec 形式中:值被替换为 `command` 和每个 `args` 元素中的纯字符串,因此没有 shell 重新解析它。511插件 hooks 另外替换 [`${user_config.*}`](/docs/zh-CN/plugins/manifest-reference#user-configuration) 值,仅在 exec 形式中:值被替换为 `command` 和每个 `args` 元素作为纯字符串,所以没有 shell 重新解析它。

514 512 

515shell 形式的插件 hook,其 `command` 引用 `${user_config.*}` 失败并出现 [错误](/docs/zh-CN/errors#plugin-command-references-user-config) 而不是运行。要从 shell 形式的 hook 使用选项值,读取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量,如 `webhook_url` 选项的 `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL`,或设置 `args` 来将 hook 切换到 exec 形式。在 v2.1.207 之前,shell 形式的插件 hook 命令也替换 `${user_config.*}`。513其 `command` 引用 `${user_config.*}` 的 shell 形式插件 hook 失败并出现 [错误](/docs/zh-CN/errors#plugin-command-references-user-config) 而不是运行。要从 shell 形式 hook 使用选项值,读取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 环境变量,如 `webhook_url` 选项的 `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL`,或设置 `args` 来将 hook 切换到 exec 形式。在 v2.1.207 之前,shell 形式插件 hook 命令也替换 `${user_config.*}`。

516 514 

517<Note>515<Note>

518 在 exec 形式中,`command` 仅是可执行文件名或路径。如果 `command` 是没有路径分隔符的裸名称,并且与 `args` 一起包含空格,Claude Code 记录一条警告,因为生成将失败:没有名为 `node script.js` 的可执行文件。将额外的标记移到 `args` 中。带空格的绝对路径,如 `C:\Program Files\nodejs\node.exe`,是单个有效的可执行文件,不会触发警告。516 在 exec 形式中,`command` 仅是可执行文件名或路径。如果 `command` 是没有路径分隔符的裸名称,并且与 `args` 一起包含空格,Claude Code 记录一个警告,因为生成将失败:没有名为 `node script.js` 的可执行文件。将额外的标记移到 `args` 中。带空格的绝对路径,如 `C:\Program Files\nodejs\node.exe`,是单个有效的可执行文件,不会触发警告。

519</Note>517</Note>

520 518 

521<h4 id="http-hook-fields">519<h4 id="http-hook-fields">

522 HTTP hook 字段520 HTTP hook 字段

523</h4>521</h4>

524 522 

525除了 [通用字段](#common-fields),HTTP hooks 接受这些字段:523除了 [通用字段](#common-fields) 外,HTTP hooks 接受这些字段:

526 524 

527| 字段 | 必需 | 描述 |525| 字段 | 必需 | 描述 |

528| :- | :- | :- |526| :- | :- | :- |


563 MCP 工具 hook 字段561 MCP 工具 hook 字段

564</h4>562</h4>

565 563 

566除了 [通用字段](#common-fields),MCP 工具 hooks 接受这些字段:564除了 [通用字段](#common-fields) 外,MCP 工具 hooks 接受这些字段:

567 565 

568| 字段 | 必需 | 描述 |566| 字段 | 必需 | 描述 |

569| :- | :- | :- |567| :- | :- | :- |

570| `server` | 是 | 配置的 MCP 服务器的名称。对于 [插件捆绑的服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers),这是范围名称 `plugin:<plugin-name>:<server-name>`,如 `plugin:my-plugin:db`,不是裸服务器密钥 |568| `server` | 是 | 配置的 MCP 服务器的名称。对于 [插件捆绑的服务器](/docs/zh-CN/mcp#plugin-provided-mcp-servers),这是范围名称 `plugin:<plugin-name>:<server-name>`,如 `plugin:my-plugin:db`,不是裸服务器密钥 |

571| `tool` | 是 | 在该服务器上调用的工具的名称 |569| `tool` | 是 | 该服务器上要调用的工具的名称 |

572| `input` | 否 | 传递给工具的参数。字符串值支持来自 hook 的 [JSON 输入](#hook-input-and-output) 的 `${path}` 替换,如 `"${tool_input.file_path}"` |570| `input` | 否 | 传递给工具的参数。字符串值支持来自 hook 的 [JSON 输入](#hook-input-and-output) 的 `${path}` 替换,如 `"${tool_input.file_path}"` |

573 571 

574此示例在每个 `Write` 或 `Edit` 后在 `my_server` MCP 服务器上调用 `security_scan` 工具,传递编辑文件的路径:572此示例在每个 `Write` 或 `Edit` 后在 `my_server` MCP 服务器上调用 `security_scan` 工具,传递编辑文件的路径:


597 工具结果如何被读取595 工具结果如何被读取

598</h5>596</h5>

599 597 

600Claude Code 读取工具的文本内容的方式与读取命令 hook stdout 相同,遵循 [退出代码 0 下的解析规则](#exit-code-0)。如果工具返回 `isError: true`,hook 产生非阻止错误,执行继续。598Claude Code 读取工具的文本内容的方式与读取命令 hook stdout 的方式相同,遵循 [退出代码 0 下的解析规则](#exit-code-0)。如果工具返回 `isError: true`,hook 产生非阻止错误,执行继续。

601 599 

602<h5 id="when-the-server-is-still-connecting">600<h5 id="when-the-server-is-still-connecting">

603 当服务器仍在连接时601 当服务器仍在连接时

604</h5>602</h5>

605 603 

606在 hook 可以阻止或改变结果的事件上,如 `PreToolUse` 或 `Stop`,Claude Code 在调用工具之前等待连接的服务器,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars) 和在 hook 自己的 [`timeout`](#common-fields) 内。在观察事件上,如 `Notification` 或 `SessionEnd`,它不等待。604在 hook 可以阻止或改变结果的事件上,如 `PreToolUse` 或 `Stop`,Claude Code 在调用工具前等待连接的服务器,最多 [`MCP_TIMEOUT`](/docs/zh-CN/env-vars),在 hook 自己的 [`timeout`](#common-fields) 内。在观察事件上,如 `Notification` 或 `SessionEnd`,它不等待。

607 605 

608显示 [`cached` 状态](/docs/zh-CN/mcp#server-status-detail) 的服务器在 hook 调用其工具时连接。如果服务器在该点未连接,hook 产生非阻止错误,执行继续。hook 永远不会启动 OAuth 流,因此 [从 `/mcp` 先验证服务器](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)。606显示 [`cached` 状态](/docs/zh-CN/mcp#server-status-detail) 的服务器在 hook 调用其工具时连接。如果服务器在该点未连接,hook 产生非阻止错误,执行继续。hook 永远不会启动 OAuth 流,所以 [从 `/mcp` 验证服务器](/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers)。

609 607 

610<h5 id="events-that-fire-before-mcp-servers-are-available">608<h5 id="events-that-fire-before-mcp-servers-are-available">

611 MCP 服务器可用之前触发的事件609 在 MCP 服务器可用之前触发的事件

612</h5>610</h5>

613 611 

614`SessionStart` 在启动时(包括使用 `--continue` 或 `--resume`)和每个 `Setup` 事件在会话的 MCP 服务器对 hooks 可用之前触发。Claude Code 跳过其 `mcp_tool` hooks 而不调用工具,[调试日志](#debug-hooks) 记录 `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`,或相同的消息命名 `Setup`。当 `SessionStart` 稍后在会话中再次触发时,在 `/clear` 或压缩后,其 `mcp_tool` hooks 运行。对于会话在启动时需要的任何东西,改用 `SessionStart` 上的 `type: "command"` hook。612启动时的 `SessionStart`,包括使用 `--continue` 或 `--resume`,以及每个 `Setup` 事件在会话的 MCP 服务器对 hooks 可用之前触发。Claude Code 跳过其 `mcp_tool` hooks 而不调用工具,[调试日志](#debug-hooks) 记录 `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`,或相同的消息命名 `Setup`。当 `SessionStart` 稍后在会话中再次触发时,在 `/clear` 或压缩后,其 `mcp_tool` hooks 运行。对于会话在启动时需要的任何内容,改为在 `SessionStart` 上使用 `type: "command"` hook。

615 613 

616<h4 id="prompt-and-agent-hook-fields">614<h4 id="prompt-and-agent-hook-fields">

617 提示和代理 hook 字段615 提示和代理 hook 字段

618</h4>616</h4>

619 617 

620除了 [通用字段](#common-fields),提示和代理 hooks 接受这些字段:618除了 [通用字段](#common-fields) 外,提示和代理 hooks 接受这些字段:

621 619 

622| 字段 | 必需 | 描述 |620| 字段 | 必需 | 描述 |

623| :- | :- | :- |621| :- | :- | :- |


628 按路径引用脚本626 按路径引用脚本

629</h3>627</h3>

630 628 

631使用这些占位符来相对于项目或插件根目录引用 hook 脚本,无论 hook 运行时的工作目录如何:629使用这些占位符来引用相对于项目或插件根目录的 hook 脚本,无论 hook 运行时的工作目录如何:

632 630 

633* `${CLAUDE_PROJECT_DIR}`:会话启动的项目根目录。Claude Code 还在 [stdio MCP 服务器](/docs/zh-CN/mcp#option-3-add-a-local-stdio-server) 和插件 LSP 服务器的环境中设置此变量。631* `${CLAUDE_PROJECT_DIR}`:会话启动的项目根目录。Claude Code 还在 [stdio MCP 服务器](/docs/zh-CN/mcp#option-3-add-a-local-stdio-server) 和插件 LSP 服务器的环境中设置此变量。

634* `${CLAUDE_PLUGIN_ROOT}`:插件的安装目录,用于与 [插件](/docs/zh-CN/plugins/overview) 捆绑的脚本。有关路径在更新中的行为方式,请参阅 [插件环境变量](/docs/zh-CN/plugins/manifest-reference#environment-variables)。632* `${CLAUDE_PLUGIN_ROOT}`:插件的安装目录,用于与 [插件](/docs/zh-CN/plugins/overview) 捆绑的脚本。请参阅 [插件环境变量](/docs/zh-CN/plugins/manifest-reference#environment-variables) 了解路径在更新中的行为。

635* `${CLAUDE_PLUGIN_DATA}`:插件的 [持久数据目录](/docs/zh-CN/plugins/components#path-variables-and-persistent-data),用于应该在插件更新中存活的依赖项和状态。633* `${CLAUDE_PLUGIN_DATA}`:插件的 [持久数据目录](/docs/zh-CN/plugins/components#path-variables-and-persistent-data),用于应该在插件更新中存活的依赖项和状态。

636 634 

637<Note>635<Note>

638 **Worktrees 是不同的。** 如果 Claude 在会话期间进入 [worktree](/docs/zh-CN/worktrees),Claude Code 将 `${CLAUDE_PROJECT_DIR}` 保持在原位,并以不同的方式将 worktree 路径传递给 hooks:636 **Worktrees 是不同的。** 如果 Claude 在会话期间进入 [worktree](/docs/zh-CN/worktrees),Claude Code 保持 `${CLAUDE_PROJECT_DIR}` 在原位,并以不同的方式将 worktree 路径传递给您的 hooks:

639 637 

640 * **`${CLAUDE_PROJECT_DIR}` 保持不变**:它仍然指向会话启动的项目根目录,因此像 `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` 这样的命令仍然在主检出中运行脚本。638 * **`${CLAUDE_PROJECT_DIR}` 保持不变**:它仍然指向会话启动的项目根目录,所以像 `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` 这样的命令仍然在主检出中运行脚本。

641 * **`cwd` 跟随 Claude**:hook 的 [输入 JSON](#common-input-fields) 中的 `cwd` 字段在 Claude 进入 worktree 后是 worktree 根目录,在 Claude 运行 `cd` 后是新目录。当 hook 需要知道 Claude 正在处理哪个目录时读取它。639 * **`cwd` 跟随 Claude**:hook 的 [输入 JSON](#common-input-fields) 中的 `cwd` 字段在 Claude 进入 worktree 后是 worktree 根目录,在 Claude 运行 `cd` 后是新目录。当 hook 需要知道 Claude 正在哪个目录中工作时读取它。

642</Note>640</Note>

643 641 

644对于任何引用路径占位符的 hook,优先使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,用双引号包装每个占位符。642对于任何引用路径占位符的 hook,优先使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,用双引号包装每个占位符。


668 </Tab>666 </Tab>

669 667 

670 <Tab title="插件脚本">668 <Tab title="插件脚本">

671 在 `hooks/hooks.json` 中定义插件 hooks,带有可选的顶级 `description` 字段。启用插件时,其 hooks 与用户和项目 hooks 合并。669 在 `hooks/hooks.json` 中定义插件 hooks,带有可选的顶级 `description` 字段。启用插件时,其 hooks 与您的用户和项目 hooks 合并。

672 670 

673 此示例运行与插件捆绑的格式化脚本:671 此示例运行与插件捆绑的格式化脚本:

674 672 


698</Tabs>696</Tabs>

699 697 

700<h3 id="hooks-in-skills-and-agents">698<h3 id="hooks-in-skills-and-agents">

701 Hooks in skills and agents699 Skills 和代理中的 Hooks

702</h3>700</h3>

703 701 

704除了设置文件和插件,hooks 可以直接在 [skills](/docs/zh-CN/skills) 和 [subagents](/docs/zh-CN/sub-agents) 中使用 frontmatter 定义,采用与基于设置的 hooks 相同的配置格式。Claude Code 保持它们注册多长时间取决于组件:702除了设置文件和插件外,hooks 可以直接在 [skills](/docs/zh-CN/skills) 和 [subagents](/docs/zh-CN/sub-agents) 中使用 frontmatter 定义,采用与基于设置的 hooks 相同的配置格式。Claude Code 保持它们注册多长时间取决于组件:

705 703 

706* **Subagent hooks**:Claude Code 仅在该子代理运行时运行它们,并在完成时删除它们。Claude Code 在此处将 `Stop` hook 转换为 `SubagentStop`,这是它在子代理完成时触发的事件。704* **Subagent hooks**:Claude Code 仅在该子代理运行时运行它们,并在其完成时删除它们。Claude Code 在此处将 `Stop` hook 转换为 `SubagentStop`,这是它在子代理完成时触发的事件。

707* **Skill hooks**:Claude Code 在调用技能时注册它们,并在会话的其余部分保持运行它们,在技能自己的轮次之后的轮次上也是如此。要让 Claude Code 在第一次成功运行后删除 hook,请在其上设置 [`once: true`](#common-fields)。705* **Skill hooks**:Claude Code 在您或 Claude 调用技能时注册它们,并为会话的其余部分保持运行它们,在技能自己的回合之后的回合上也是如此。要让 Claude Code 在第一次成功运行后删除 hook,改为在其上设置 [`once: true`](#common-fields)。

708 706 

709此技能定义了一个 `PreToolUse` hook,在每个 `Bash` 命令之前运行安全验证脚本:707此技能定义了一个 `PreToolUse` hook,在每个 `Bash` 命令前运行安全验证脚本:

710 708 

711```yaml theme={null}709```yaml theme={null}

712---710---


723 721 

724Subagents 在其 YAML frontmatter 中使用相同的格式。722Subagents 在其 YAML frontmatter 中使用相同的格式。

725 723 

726项目技能中的 Frontmatter hooks 遵循与设置文件中的 hooks 相同的 [工作区信任规则](#workspace-trust)。Claude Code 在调用技能时注册它们,包括在未信任的文件夹中的 `-p` 运行。724项目技能中的 Frontmatter hooks 遵循与设置文件中的 hooks 相同的 [工作区信任规则](#workspace-trust)。Claude Code 在您或 Claude 调用技能时注册它们,包括在您未信任的文件夹中的 `-p` 运行。

727 725 

728项目子代理中的 Frontmatter hooks 仅在接受代理文件来自的文件夹的 [工作区信任对话](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust) 后运行。`-p` 会话不计为接受它。[在信任文件夹之前运行的内容](/docs/zh-CN/permissions#what-runs-before-you-trust-a-folder) 将此与设置文件规则进行比较,subagents 页面列出 [哪些范围被豁免](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)。在 v2.1.218 之前,这些 hooks 可以从未信任的文件夹运行。726项目子代理中的 Frontmatter hooks 仅在您接受代理文件来自的文件夹的 [工作区信任对话](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust) 后运行。`-p` 会话不计为接受它。[在您信任文件夹前运行的内容](/docs/zh-CN/permissions#what-runs-before-you-trust-a-folder) 将此与设置文件规则进行比较,subagents 页面列出 [哪些范围被豁免](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)。在 v2.1.218 之前,这些 hooks 可以从您未信任的文件夹运行。

729 727 

730<h3 id="the-/hooks-menu">728<h3 id="the-/hooks-menu">

731 `/hooks` 菜单729 `/hooks` 菜单

732</h3>730</h3>

733 731 

734在 Claude Code 中键入 `/hooks` 以打开配置的 hooks 的只读浏览器。菜单显示每个 hook 事件及其配置的 hooks 计数,让你深入了解匹配器,并显示每个 hook 处理程序的完整详细信息。使用它来验证配置、检查 hook 来自哪个设置文件或检查 hook 的命令、提示或 URL。732在 Claude Code 中键入 `/hooks` 来打开已配置 hooks 的只读浏览器。菜单显示每个 hook 事件及其配置的 hooks 计数,让您深入了解匹配器,并显示每个 hook 处理程序的完整详细信息。使用它来验证配置、检查 hook 来自哪个设置文件,或检查 hook 的命令、提示或 URL。

735 733 

736菜单显示所有五种 hook 类型:`command`、`prompt`、`agent`、`http` 和 `mcp_tool`。每个 hook 都标有 `[type]` 前缀和指示其定义位置的源:734菜单显示所有五种 hook 类型:`command`、`prompt`、`agent`、`http` 和 `mcp_tool`。每个 hook 都标有 `[type]` 前缀和指示其定义位置的源:

737 735 


741* `Plugin Hooks`:来自插件的 `hooks/hooks.json`739* `Plugin Hooks`:来自插件的 `hooks/hooks.json`

742* `Session Hooks`:为当前会话在内存中注册740* `Session Hooks`:为当前会话在内存中注册

743 741 

744选择 hook 打开详细视图,显示其事件、匹配器、类型、源文件和完整命令、提示或 URL。菜单是只读的:要添加、修改或删除 hooks,直接编辑设置 JSON 或要求 Claude 进行更改。742选择 hook 打开详细视图,显示其事件、匹配器、类型、源文件以及完整的命令、提示或 URL。菜单是只读的:要添加、修改或删除 hooks,直接编辑设置 JSON 或要求 Claude 进行更改。

745 743 

746<h3 id="disable-or-remove-hooks">744<h3 id="disable-or-remove-hooks">

747 禁用或删除 hooks745 禁用或删除 hooks


749 747 

750要删除 hook,从设置 JSON 文件中删除其条目。748要删除 hook,从设置 JSON 文件中删除其条目。

751 749 

752要临时禁用所有 hooks 而不删除它们,在设置文件中设置 `"disableAllHooks": true`。Claude Code 读取 [设置优先级](/docs/zh-CN/settings#settings-precedence) 应用后留下的值,因此项目的 `.claude/settings.json` 中的 `"disableAllHooks": false` 覆盖用户设置中的 `true`。要关闭一次运行,无论项目的设置如何,传递 `--settings '{"disableAllHooks": true}'`,这优先于项目和本地设置。没有办法禁用单个 hook 同时将其保留在配置中。750要临时禁用所有 hooks 而不删除它们,在设置文件中设置 `"disableAllHooks": true`。Claude Code 读取 [设置优先级](/docs/zh-CN/settings#settings-precedence) 应用后留下的值,所以项目的 `.claude/settings.json` 中的 `"disableAllHooks": false` 覆盖用户设置中的 `true`。要无论项目的设置如何关闭一次运行的 hooks,传递 `--settings '{"disableAllHooks": true}'`,这优先于项目和本地设置。没有办法在保持 hook 在配置中的同时禁用单个 hook。

753 751 

754`disableAllHooks` 设置尊重托管设置层次结构。如果管理员通过托管策略设置配置了 hooks,在用户、项目或本地设置中设置的 `disableAllHooks` 无法禁用这些托管 hooks。仅在托管设置级别设置的 `disableAllHooks` 可以禁用托管 hooks。有关每个级别的完整范围,请参阅 [`disableAllHooks`](/docs/zh-CN/settings-reference#disableallhooks)。752`disableAllHooks` 设置尊重托管设置层次结构。如果管理员通过托管策略设置配置了 hooks,在用户、项目或本地设置中设置的 `disableAllHooks` 无法禁用这些托管 hooks。仅在托管设置级别设置的 `disableAllHooks` 可以禁用托管 hooks。对于每个级别的完整范围,请参阅 [`disableAllHooks`](/docs/zh-CN/settings-reference#disableallhooks)。

755 753 

756设置文件中对 hooks 的直接编辑通常由文件监视程序自动拾取。754对设置文件中 hooks 的直接编辑通常由文件监视程序自动拾取。

757 755 

758<h2 id="hook-input-and-output">756<h2 id="hook-input-and-output">

759 Hook 输入和输出757 Hook 输入和输出

Details

346* 提示 Claude Code 在后台运行命令346* 提示 Claude Code 在后台运行命令

347* 按 `Ctrl+B` 将常规 Bash 工具调用移到后台。Tmux 用户必须按两次 `Ctrl+B`,因为 tmux 有前缀键。347* 按 `Ctrl+B` 将常规 Bash 工具调用移到后台。Tmux 用户必须按两次 `Ctrl+B`,因为 tmux 有前缀键。

348 348 

349当命令在完成前达到超时时,Claude Code 会自动[将其移到后台](/docs/zh-CN/tools-reference#background-commands)而不是停止它,除非命令以 `sleep` 开头。要更改命令在此之前运行多长时间,请设置 [Bash 超时环境变量](/docs/zh-CN/tools-reference#timeout-and-output-limits)。349当命令在完成前达到超时时,Claude Code 会自动[将其移到后台](/docs/zh-CN/tools-reference#foreground-commands-that-move-to-the-background)而不是停止它,除非命令以 `sleep` 开头。如果你已通过 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/zh-CN/env-vars#variables) 关闭了后台任务,或通过启动[裸模式](/docs/zh-CN/headless#start-faster-with-bare-mode),命令会在超时时停止。要更改超时,请设置 [Bash 超时环境变量](/docs/zh-CN/tools-reference#timeout-and-output-limits)。

350 350 

351**主要功能:**351**主要功能:**

352 352 


358* 在 macOS 和 Linux 上,当操作系统报告严重内存压力时,Claude Code 会停止运行中的后台任务,前提是会话已空闲至少 30 分钟且没有 turn 或 subagent 运行。需要 Claude Code v2.1.193 或更高版本358* 在 macOS 和 Linux 上,当操作系统报告严重内存压力时,Claude Code 会停止运行中的后台任务,前提是会话已空闲至少 30 分钟且没有 turn 或 subagent 运行。需要 Claude Code v2.1.193 或更高版本

359 * [调试日志](/docs/zh-CN/debug-your-config)说明了为什么任务被停止,或为什么压力事件让它们继续运行359 * [调试日志](/docs/zh-CN/debug-your-config)说明了为什么任务被停止,或为什么压力事件让它们继续运行

360 * 将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-CN/env-vars) 设置为 `1` 可关闭内存压力停止360 * 将 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-CN/env-vars) 设置为 `1` 可关闭内存压力停止

361* 后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:30 分钟,或 Claude 在启动后台命令时要求的 `timeout`,最多 2 小时。在运行时移到后台的命令(例如使用 `Ctrl+B`)从移动时获得 30 分钟。当命令达到其限制时,Claude Code 会停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动它,如果工作仍然需要的话。两个环境变量提高限制(以毫秒为单位),两者都不能缩短限制:361* 后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:30 分钟,或 Claude 在启动后台命令时要求的 `timeout`,最多 2 小时。在运行时移到后台的命令(例如使用 `Ctrl+B`)从移动时获得 30 分钟。当命令达到其限制时,Claude Code 会停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动它,如果工作仍然需要的话。要延长限制,请参阅工具参考中的[提高后台命令的时间限制](/docs/zh-CN/tools-reference#raise-the-time-limit-for-background-commands)

362 * 将 [`BASH_DEFAULT_TIMEOUT_MS`](/docs/zh-CN/env-vars) 设置为 `1800000` 以上,以用该值替换 30 分钟的默认值,也适用于移动的命令362* 由前台[子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的后台命令在该子代理的运行结束时结束,无论是完成、失败还是被中断;请参阅工具参考中的[后台命令何时停止](/docs/zh-CN/tools-reference#when-a-background-command-stops)

363 * 将 [`BASH_MAX_TIMEOUT_MS`](/docs/zh-CN/env-vars) 设置为 `7200000` 以上以提高 2 小时的最大值。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为 `7200000` 以上会以相同方式提高它

364* 由前台[子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的后台命令在该子代理的运行结束时结束,无论是完成、失败还是被中断;请参阅工具参考中的[后台命令](/docs/zh-CN/tools-reference#background-commands)

365 363 

366要禁用所有后台任务功能,请将 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 环境变量设置为 `1`。有关详细信息,请参阅[环境变量](/docs/zh-CN/env-vars)。364要禁用所有后台任务功能,请将 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/zh-CN/env-vars#variables) 环境变量设置为 `1`。启动[裸模式](/docs/zh-CN/headless#start-faster-with-bare-mode)也会关闭它。

367 365 

368**常见的后台命令:**366**常见的后台命令:**

369 367 

keybindings.md +1 −3

Details

545* 在非拉丁布局(如西里尔字母)下,当终端使用 Kitty 键盘协议并报告该位置时,Claude Code 通过按键的美国布局位置来匹配 Ctrl 快捷键。在这样的终端中,使用俄语布局时,按下 Ctrl 和物理 W 键会触发 `ctrl+w`。在不报告位置的终端中,Claude Code 匹配终端为按键发送的任何内容:ASCII 控制代码触发拉丁快捷键,作为西里尔字符到达的按键不匹配任何绑定545* 在非拉丁布局(如西里尔字母)下,当终端使用 Kitty 键盘协议并报告该位置时,Claude Code 通过按键的美国布局位置来匹配 Ctrl 快捷键。在这样的终端中,使用俄语布局时,按下 Ctrl 和物理 W 键会触发 `ctrl+w`。在不报告位置的终端中,Claude Code 匹配终端为按键发送的任何内容:ASCII 控制代码触发拉丁快捷键,作为西里尔字符到达的按键不匹配任何绑定

546* 在重新排列拉丁字母的布局(如 AZERTY)下,Claude Code 匹配按键输入的字母,因此按下 Ctrl 和标记为 A 的按键会触发 `ctrl+a`546* 在重新排列拉丁字母的布局(如 AZERTY)下,Claude Code 匹配按键输入的字母,因此按下 Ctrl 和标记为 A 的按键会触发 `ctrl+a`

547 547 

548在 v2.1.247 之前,在使用 Kitty 键盘协议的终端(如 Ghostty、Kitty、WezTerm 和 iTerm2)中,在非拉丁布局下按下 Ctrl 快捷键不会触发其绑定。

549 

550<h3 id="chords">548<h3 id="chords">

551 和弦549 和弦

552</h3>550</h3>


697* 拼写错误的修饰符,例如 `ctl+k`。Claude Code 会删除它无法识别的部分,并将绑定应用于剩余的按键,在此示例中为 `k`。695* 拼写错误的修饰符,例如 `ctl+k`。Claude Code 会删除它无法识别的部分,并将绑定应用于剩余的按键,在此示例中为 `k`。

698* 无效的上下文名称696* 无效的上下文名称

699* 无效的操作值,例如不是字符串或 `null` 的操作697* 无效的操作值,例如不是字符串或 `null` 的操作

700* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。在 v2.1.246 之前,具有未知操作名称的绑定会静默禁用该键698* 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。

701* 保留快捷键冲突699* 保留快捷键冲突

702* 同一上下文中的重复绑定700* 同一上下文中的重复绑定

703 701 

llm-gateway.md +2 −0

Details

45 45 

46[为您的组织部署 LLM 网关](/docs/zh-CN/llm-gateway-rollout)逐步讲解每个步骤,并显示在每个步骤中分发的配置文件。网关是组织设置的一部分;对于策略强制执行、使用情况可见性和数据处理决策,请参阅[为您的组织设置 Claude Code](/docs/zh-CN/admin-setup)。46[为您的组织部署 LLM 网关](/docs/zh-CN/llm-gateway-rollout)逐步讲解每个步骤,并显示在每个步骤中分发的配置文件。网关是组织设置的一部分;对于策略强制执行、使用情况可见性和数据处理决策,请参阅[为您的组织设置 Claude Code](/docs/zh-CN/admin-setup)。

47 47 

48要使通过 `ANTHROPIC_BASE_URL` 访问的网关成为托管机器唯一可以使用的目标,请在同一托管设置文件中将 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 设置为 `["customEndpoint"]`,并将网关的 `ANTHROPIC_BASE_URL` 放在该文件的 `env` 块中。Claude Code 随后会拒绝指向其他任何地方的会话,包括直接指向 Anthropic 或开发人员自己的代理,并仅接受您在那里设置的值的 `ANTHROPIC_BASE_URL`。对于通过提供商特定端点变量(如 `ANTHROPIC_BEDROCK_BASE_URL`)访问的网关,`allowedProviders` 条目指定要固定的变量。需要 Claude Code v2.1.285 或更高版本。

49 

48<h2 id="subscriptions-and-gateways">50<h2 id="subscriptions-and-gateways">

49 订阅和网关51 订阅和网关

50</h2>52</h2>

Details

310 310 

311Claude Code 使用下面两个凭证请求头发送发现请求,并省略其值无法解析的请求头。发送两个请求头需要 Claude Code v2.1.248 或更高版本。早期版本在设置了 `ANTHROPIC_AUTH_TOKEN` 时仅发送 `Authorization`,否则仅发送 `x-api-key`。311Claude Code 使用下面两个凭证请求头发送发现请求,并省略其值无法解析的请求头。发送两个请求头需要 Claude Code v2.1.248 或更高版本。早期版本在设置了 `ANTHROPIC_AUTH_TOKEN` 时仅发送 `Authorization`,否则仅发送 `x-api-key`。

312 312 

313* `Authorization`:`ANTHROPIC_AUTH_TOKEN` 作为承载令牌,否则 [`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值作为承载令牌。在这种情况下,Claude Code 在发送请求前等待助手返回。313* `Authorization`:`ANTHROPIC_AUTH_TOKEN` 作为承载令牌,否则 [`apiKeyHelper`](/docs/zh-CN/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值作为承载令牌。

314* `x-api-key`:Claude Code 解析的 API 密钥,例如 `ANTHROPIC_API_KEY`。当助手值是唯一的凭证时,此请求头也会携带它,因此该值会在两个请求头中到达。314* `x-api-key`:Claude Code 解析的 API 密钥,例如 `ANTHROPIC_API_KEY`。当助手值是唯一的凭证时,此请求头也会携带它,因此该值会在两个请求头中到达。

315 315 

316Claude Code 还发送来自 `ANTHROPIC_CUSTOM_HEADERS` 的任何请求头。当自定义请求头具有非空值时,Claude Code 会发送它来代替同名的内置请求头,不区分大小写地匹配名称。316Claude Code 还发送来自 `ANTHROPIC_CUSTOM_HEADERS` 的任何请求头。当自定义请求头具有非空值时,Claude Code 会发送它来代替同名的内置请求头,不区分大小写地匹配名称。

Details

199 199 

200[网关登录键](#choose-a-delivery-mechanism) 遵循单独的规则。Claude Code 从不从服务器管理的设置读取它们,因此当服务器管理的设置是选定的源时,机器上排名最高的具有策略键的管理员源仍然提供它们。排名低于该源的管理员源中的值,或 HKCU 注册表中的值,被忽略。200[网关登录键](#choose-a-delivery-mechanism) 遵循单独的规则。Claude Code 从不从服务器管理的设置读取它们,因此当服务器管理的设置是选定的源时,机器上排名最高的具有策略键的管理员源仍然提供它们。排名低于该源的管理员源中的值,或 HKCU 注册表中的值,被忽略。

201 201 

202[`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 有自己的规则:其条目的 Scope 注释说明机器上设置的列表如何与服务器管理的列表组合。需要 Claude Code v2.1.285 或更高版本。

203 

202当管理员源设置 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且该值不是生效的值时,`/status` 和 `claude doctor` 命名该源和键。204当管理员源设置 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且该值不是生效的值时,`/status` 和 `claude doctor` 命名该源和键。

203 205 

204<h3 id="compose-every-managed-source">206<h3 id="compose-every-managed-source">


353* 空的托管设置文件计为 `{}`。355* 空的托管设置文件计为 `{}`。

354* 用户可写的 HKCU 注册表密钥中的格式错误的值永远不会阻止启动。Claude Code 在 `/status` 和 `claude doctor` 中将其报告为通知。356* 用户可写的 HKCU 注册表密钥中的格式错误的值永远不会阻止启动。Claude Code 在 `/status` 和 `claude doctor` 中将其报告为通知。

355 357 

356如果无法读取托管设置文件、drop-in 文件或 `managed-settings.d/` 目录,且没有管理员源提供策略,使用 claude.ai 或 Claude Console 凭据登录的会话将在启动时退出,并显示联系管理员的消息。358当托管设置文件、drop-in 文件、`managed-settings.d/` 目录、MDM 配置文件或 HKLM 注册表值存在但无法读取,且没有管理员源提供策略时,发生的情况取决于读取失败的原因:

359 

360* 如果操作系统拒绝了读取,例如在仅限 root 的文件上,每个会话都会在没有该源的策略的情况下启动。`/status` 和 `claude doctor` 记录失败,使用 `-p` 运行也会将其打印到 stderr。

361* 对于任何其他读取失败,例如 I/O 错误,每个会话在启动时以[联系管理员的消息](/docs/zh-CN/errors#unable-to-read-managed-policy-settings)退出。

357 362 

358要查找丢弃的条目,请查看以下三个位置之一:363要查找丢弃的条目,请查看以下三个位置之一:

359 364 


387| 字段 | 存在但无效时的行为 |392| 字段 | 存在但无效时的行为 |

388| :- | :- |393| :- | :- |

389| `allowedMcpServers` | 强制执行为空的允许列表,直到修复该值,因此用户添加的 MCP 服务器都不被允许。您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 传递的服务器仍然加载,`managed-mcp.json` 服务器根据[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)加载。单个无效条目被剥离,有效子集被强制执行。 |394| `allowedMcpServers` | 强制执行为空的允许列表,直到修复该值,因此用户添加的 MCP 服务器都不被允许。您的组织通过 [`managedMcpServers`](/docs/zh-CN/settings-reference#managedmcpservers) 传递的服务器仍然加载,`managed-mcp.json` 服务器根据[如何评估服务器](/docs/zh-CN/managed-mcp#how-a-server-is-evaluated)加载。单个无效条目被剥离,有效子集被强制执行。 |

395| [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) | 强制执行为空的允许列表,直到修复该值,因此每个 API 提供商都被拒绝,Claude Code 在机器上不启动。如果只有单个条目不是已知的提供商名称,Claude Code 会丢弃并报告该条目并强制执行其余的。 |

390| `allowedHttpHookUrls` | Claude Code 强制执行空的托管[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |396| `allowedHttpHookUrls` | Claude Code 强制执行空的托管[允许列表](/docs/zh-CN/settings-reference#allowedhttphookurls),直到您修复该值,因此 HTTP hook 仅在另一个设置文件列出其 URL 时运行。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |

391| `httpHookAllowedEnvVars` | Claude Code 强制执行空的托管[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |397| `httpHookAllowedEnvVars` | Claude Code 强制执行空的托管[允许列表](/docs/zh-CN/settings-reference#httphookallowedenvvars),直到您修复该值,因此仅当另一个设置文件命名标头变量时才会插值。如果只有单个条目无效,Claude Code 会剥离该条目并强制执行其余的。 |

392| `allowedChannelPlugins` | Claude Code 强制执行空的允许列表,直到您修复该值,因此传递给 `--channels` 的任何通道插件都不被允许。如果只有单个条目无效,它会剥离该条目并强制执行其余的。 |398| `allowedChannelPlugins` | Claude Code 强制执行空的允许列表,直到您修复该值,因此传递给 `--channels` 的任何通道插件都不被允许。如果只有单个条目无效,它会剥离该条目并强制执行其余的。 |


437 443 

438大多数是锁:锁管理的值,例如权限规则或 `sandbox.network.allowedDomains`,是任何级别都可以设置的普通密钥,锁告诉 Claude Code 仅尊重托管值。444大多数是锁:锁管理的值,例如权限规则或 `sandbox.network.allowedDomains`,是任何级别都可以设置的普通密钥,锁告诉 Claude Code 仅尊重托管值。

439 445 

440表涵盖权限、插件和交付控制。对于此处未列出的任何密钥,[设置参考](/docs/zh-CN/settings-reference#all-settings)索引的 Scope 列说明它是否仅托管;那里的剩余仅托管密钥包括网关登录 URL、版本、浏览器、移动模拟器、SSH 主机、Desktop 本地会话、沙箱二进制路径、模型定价、模型限制和 CLAUDE.md 控制。446表涵盖权限、插件和交付控制。对于此处未列出的任何密钥,[设置参考](/docs/zh-CN/settings-reference#all-settings)索引的 Scope 列说明它是否仅托管。

441 447 

442| 设置 | 描述 |448| 设置 | 描述 |

443| :- | :- |449| :- | :- |

mcp.md +3 −1

Details

321 321 

322* **隐藏的空白**:当 MCP 配置值携带隐藏的前导或尾随空白时,Claude Code 发出警告,这通常来自粘贴带有尾随换行符的令牌。Claude Code 检查 `command`、`url`、每个 `args` 条目以及 `env` 和 `headers` 下的值和密钥名称。Claude Code 在 `claude mcp list` 输出和 `/mcp` 中显示警告,命名受影响的字段而不回显其值,例如 `Leading or trailing whitespace in: headers.Authorization`。Claude Code 不修剪空白并完全按照写入的方式使用值,因此编辑配置以删除它。322* **隐藏的空白**:当 MCP 配置值携带隐藏的前导或尾随空白时,Claude Code 发出警告,这通常来自粘贴带有尾随换行符的令牌。Claude Code 检查 `command`、`url`、每个 `args` 条目以及 `env` 和 `headers` 下的值和密钥名称。Claude Code 在 `claude mcp list` 输出和 `/mcp` 中显示警告,命名受影响的字段而不回显其值,例如 `Leading or trailing whitespace in: headers.Authorization`。Claude Code 不修剪空白并完全按照写入的方式使用值,因此编辑配置以删除它。

323* **在多个范围中具有相同名称**:如果您在多个 [范围](#mcp-installation-scopes) 中定义相同的服务器名称,具有不同的端点,Claude Code 在 `claude mcp list` 输出和 `/mcp` 中警告冲突。Claude Code 按端点存储 OAuth 登录,因此当您对在一个项目中加载的定义进行身份验证时,您仍然需要在另一个项目中单独登录,其中不同的定义加载。保留您想要的端点并使用 `claude mcp remove <name> --scope <scope>` 删除其他端点。在警告中,Claude Code 引用每个范围的端点,如您的配置中所写,带有 [`${VAR}` 引用](#environment-variable-expansion-in-mcp-json) 未展开,因此它永远不会显示已解析的值,例如 API 密钥。323* **在多个范围中具有相同名称**:如果您在多个 [范围](#mcp-installation-scopes) 中定义相同的服务器名称,具有不同的端点,Claude Code 在 `claude mcp list` 输出和 `/mcp` 中警告冲突。Claude Code 按端点存储 OAuth 登录,因此当您对在一个项目中加载的定义进行身份验证时,您仍然需要在另一个项目中单独登录,其中不同的定义加载。保留您想要的端点并使用 `claude mcp remove <name> --scope <scope>` 删除其他端点。在警告中,Claude Code 引用每个范围的端点,如您的配置中所写,带有 [`${VAR}` 引用](#environment-variable-expansion-in-mcp-json) 未展开,因此它永远不会显示已解析的值,例如 API 密钥。

324* **保留名称**:Claude Code 保留其内置服务器的名称,包括 `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定义具有保留名称的服务器,Claude Code 在加载时跳过它并显示警告,要求您重命名它。`claude mcp add` 拒绝保留名称并出现错误。`Claude Preview` 和 `Claude Browser` 都命名 [Claude Code 桌面应用的预览窗格](/docs/zh-CN/desktop#preview-your-app) 使用的内置服务器。在 v2.1.205 之前,`Claude Browser` 未被保留,因此用户配置的服务器可以在该名称下注册。324* **保留名称**:Claude Code 保留其内置服务器的名称,包括 `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定义具有保留名称的服务器,Claude Code 在加载时跳过它并显示警告,要求您重命名它。`claude mcp add` 拒绝保留名称并出现错误。`Claude Preview` 和 `Claude Browser` 都命名 [Claude Code 桌面应用的预览窗格](/docs/zh-CN/desktop#preview-your-app) 使用的内置服务器。

325* **缺少环境变量**:如果服务器配置中的 [`${VAR}` 引用](#environment-variable-expansion-in-mcp-json) 命名未设置且没有 `:-default` 的变量,Claude Code 在 `claude mcp list` 输出和 `/mcp` 中警告,命名变量,并仍然使用 `${VAR}` 文本未展开加载服务器。设置变量或添加 `${VAR:-default}` 回退。在远程服务器的 `url` 和 `headers` 中,某些凭证变量 [读取为空](#credential-variables-that-read-as-empty) 而不是警告。325* **缺少环境变量**:如果服务器配置中的 [`${VAR}` 引用](#environment-variable-expansion-in-mcp-json) 命名未设置且没有 `:-default` 的变量,Claude Code 在 `claude mcp list` 输出和 `/mcp` 中警告,命名变量,并仍然使用 `${VAR}` 文本未展开加载服务器。设置变量或添加 `${VAR:-default}` 回退。在远程服务器的 `url` 和 `headers` 中,某些凭证变量 [读取为空](#credential-variables-that-read-as-empty) 而不是警告。

326 326 

327<h4 id="tool-availability">327<h4 id="tool-availability">


551 551 

552插件服务器在 `/mcp` 中出现,指示器显示它们来自插件。552插件服务器在 `/mcp` 中出现,指示器显示它们来自插件。

553 553 

554对于插件的 stdio 服务器,`claude mcp get` 打印 `Command: stdio`、一个空的 `Args:` 行和每个环境变量作为 `NAME=[REDACTED]`。值被隐藏是因为它们可能携带凭证。

555 

554**插件 MCP 工具名称**:556**插件 MCP 工具名称**:

555 557 

556来自插件捆绑的 MCP 服务器的工具在其可调用名称中包含插件名称和服务器密钥。完整形式是 `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`,其中 `A-Z`、`a-z`、`0-9`、`_` 和 `-` 之外的任何字符都被替换为 `_`。对于名为 `my-plugin` 的插件中捆绑的 `database-tools` 服务器,`query` 工具可调用为:558来自插件捆绑的 MCP 服务器的工具在其可调用名称中包含插件名称和服务器密钥。完整形式是 `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`,其中 `A-Z`、`a-z`、`0-9`、`_` 和 `-` 之外的任何字符都被替换为 `_`。对于名为 `my-plugin` 的插件中捆绑的 `database-tools` 服务器,`query` 工具可调用为:

Details

360 360 

361 接下来发生的事情告诉您问题在哪里:361 接下来发生的事情告诉您问题在哪里:

362 362 

363 * 命令启动并等待输入:服务器本身工作。运行 `claude mcp get <name>` 并确认那里显示的命令与您刚刚运行的命令匹配。如果显示的命令与您键入的不同,您可能在服务器命令之前省略了 `--` 分隔符。删除服务器并使用 `--` 重新添加它。如果您手工编写了 `.mcp.json`,请检查其语法和位置。363 * 命令启动并等待输入:服务器本身工作。

364 

365 运行 `claude mcp get <name>` 并确认那里显示的命令与您刚刚运行的命令匹配。如果显示的命令与您键入的不同,您可能在服务器命令之前省略了 `--` 分隔符。删除服务器并使用 `--` 重新添加它。如果您手工编写了 `.mcp.json`,请检查其语法和位置。在 v2.1.285 之前,`claude mcp get` 对于保存时没有 `type` 字段的 stdio 条目(例如手工编写的 `.mcp.json` 条目)不打印 `Command` 行。在这些版本上,运行 `claude mcp list` 代替,它无论如何都会打印命令行。

364 * 命令出错:消息命名缺少的内容,例如 Node.js 或浏览器。366 * 命令出错:消息命名缺少的内容,例如 Node.js 或浏览器。

365 </Accordion>367 </Accordion>

366 368 

model-config.md +10 −5

Details

39| **`sonnet`** | 为日常编码任务使用最新的 Sonnet 模型 |39| **`sonnet`** | 为日常编码任务使用最新的 Sonnet 模型 |

40| **`opus`** | 为复杂推理任务使用最新的 Opus 模型 |40| **`opus`** | 为复杂推理任务使用最新的 Opus 模型 |

41| **`haiku`** | 为简单任务使用快速高效的 Haiku 模型 |41| **`haiku`** | 为简单任务使用快速高效的 Haiku 模型 |

42| **`sonnet[1m]`** | 为长会话使用具有 [100 万令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 的 Sonnet。当 `sonnet` 已解析到具有原生 1M 窗口的 Sonnet 5.5 或 Sonnet 5 时无效;在 [LLM 网关](/docs/zh-CN/llm-gateway) 后面,为该模型选择 1M 窗口 |42| **`sonnet[1m]`** | 为长会话使用具有 [100 万令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 的 Sonnet。当 `sonnet` 已解析到具有原生 1M 窗口的 Sonnet 5.5 或 Sonnet 5 时无效 |

43| **`opus[1m]`** | 为长会话使用具有 [100 万令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 的 Opus |43| **`opus[1m]`** | 为长会话使用具有 [100 万令牌上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 的 Opus |

44| **`opusplan`** | 特殊模式,在 Plan Mode 期间使用 `opus`,然后在执行期间切换到 `sonnet` |44| **`opusplan`** | 特殊模式,在 Plan Mode 期间使用 `opus`,然后在执行期间切换到 `sonnet` |

45 45 


521 回退模型链521 回退模型链

522</h3>522</h3>

523 523 

524当主模型过载、不可用或返回另一个不可重试的服务器错误时,Claude Code 可以切换到回退模型,而不是使请求失败。身份验证、计费、速率限制、请求大小和传输错误,以及[您组织的策略检查拒绝](/docs/zh-CN/errors#automatic-retries),永远不会触发切换;这些遵循其正常的重试和错误处理。524当主模型过载、不可用或返回另一个不可重试的服务器错误时,Claude Code 可以切换到回退模型,而不是使请求失败。身份验证、计费、速率限制、请求大小和传输错误,以及[您组织的策略检查拒绝](/docs/zh-CN/errors#automatic-retries),永远不会触发切换;这些遵循其正常的重试和错误处理。当 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock#when-a-model-is-disabled-mid-session) 或 [Google Cloud's Agent Platform](/docs/zh-CN/google-vertex-ai#when-a-model-is-disabled-mid-session) 拒绝您的账户无法调用的模型时,它会切换,Claude Code 将其视为模型不可用而不是身份验证错误。

525 525 

526配置一个或多个回退模型,Claude Code 会按顺序尝试它们,在切换时显示通知。切换仅持续当前轮次,因此您的下一条消息会首先再次尝试主模型。Claude Code 在删除重复项后将链限制为三个模型,并忽略额外条目。526配置一个或多个回退模型,Claude Code 会按顺序尝试它们,在切换时显示通知。切换仅持续当前轮次,因此您的下一条消息会首先再次尝试主模型。Claude Code 在删除重复项后将链限制为三个模型,并忽略额外条目。

527 527 


775 775 

776Claude Code 仅在直接连接到 Anthropic API 时检查这些计划要求。如果您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关](/docs/zh-CN/llm-gateway#subscriptions-and-gateways),您保存的 claude.ai 登录保持活跃凭证,Claude Code 不检查账户的使用额度。`/model` 中的 `[1m]` 选项保持可用,网关决定请求是否成功。在 v2.1.229 之前,当 Claude Code 无法确认账户上的使用额度时,它在该配置中拒绝 `/model sonnet[1m]`。776Claude Code 仅在直接连接到 Anthropic API 时检查这些计划要求。如果您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关](/docs/zh-CN/llm-gateway#subscriptions-and-gateways),您保存的 claude.ai 登录保持活跃凭证,Claude Code 不检查账户的使用额度。`/model` 中的 `[1m]` 选项保持可用,网关决定请求是否成功。在 v2.1.229 之前,当 Claude Code 无法确认账户上的使用额度时,它在该配置中拒绝 `/model sonnet[1m]`。

777 777 

778<span id="context-window-behind-a-gateway" />

779 

780如果您将 `ANTHROPIC_BASE_URL` 设置为[LLM 网关](/docs/zh-CN/llm-gateway)或另一个代理,Claude Code 给每个它识别的模型与该模型在 Anthropic API 上具有的相同上下文窗口。Fable 5.1、Fable 5、Sonnet 5 及更高版本和 Opus 4.7 及更高版本获得 1M 窗口,没有 `[1m]` 变体可选择,仅通过其 `[1m]` 变体达到 1M 的模型(如 Opus 4.6)在没有它的情况下运行在 200K。Claude Code 无法检测网关或其后面的服务器强制的更低限制。如果您的网关拒绝超过 200K 令牌的请求,运行 [`/autocompact 200k`](#set-the-auto-compact-window) 以便会话在该边界处压缩。

781 

778要关闭 1M 上下文,设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 从模型选择器中删除 1M 模型变体。在具有本地 1M 窗口的模型上,例如 Sonnet 5 和 Fable 模型,它也将模型视为具有 200K 上下文窗口:782要关闭 1M 上下文,设置 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 从模型选择器中删除 1M 模型变体。在具有本地 1M 窗口的模型上,例如 Sonnet 5 和 Fable 模型,它也将模型视为具有 200K 上下文窗口:

779 783 

780* 启用自动压缩时,会话在 200K 边界处通过[自动压缩](#set-the-auto-compact-window)进行压缩。将自动压缩窗口设置在 200K 以上不会解除保持,因为 Claude Code 将该窗口限制为模型的上下文窗口。784* 启用自动压缩时,会话在 200K 边界处通过[自动压缩](#set-the-auto-compact-window)进行压缩。将自动压缩窗口设置在 200K 以上不会解除保持,因为 Claude Code 将该窗口限制为模型的上下文窗口。


803 807 

804在 Anthropic API 上,Sonnet 5.5 和 Sonnet 5 始终运行 1M 上下文窗口。没有 200K 变体,没有 `[1m]` 后缀可选择,任何计划上都不需要使用额度。会话在窗口填满前自动压缩,默认约 967K 令牌;设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars) 以选择不同的阈值。808在 Anthropic API 上,Sonnet 5.5 和 Sonnet 5 始终运行 1M 上下文窗口。没有 200K 变体,没有 `[1m]` 后缀可选择,任何计划上都不需要使用额度。会话在窗口填满前自动压缩,默认约 967K 令牌;设置 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-CN/env-vars) 以选择不同的阈值。

805 809 

806两个配置将窗口预算为 200K:810Claude Code 在[LLM 网关](/docs/zh-CN/llm-gateway)或另一个自定义 `ANTHROPIC_BASE_URL` 后面给 Sonnet 5.5 和 Sonnet 5 相同的 1M 窗口。如果您的网关强制更低的限制,请参阅[网关后面的上下文窗口](#context-window-behind-a-gateway)。

811 

812此设置将窗口预算为 200K:

807 813 

808* **LLM 网关**:当 `ANTHROPIC_BASE_URL` 指向[网关](/docs/zh-CN/llm-gateway)时,Claude Code 无法验证 1M 支持。要使用完整窗口,在模型选择器中选择 Sonnet 5.5 (1M context) 或 Sonnet 5 (1M context),它映射到 `sonnet[1m]`,或运行 `/model claude-sonnet-5[1m]` 用于 Sonnet 5。

809* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:将具有本地 1M 窗口的每个模型上的会话保持在 200K 窗口;请参阅[扩展上下文](#extended-context)了解保持如何被强制执行。对于需要限制上下文的部署很有用。814* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:将具有本地 1M 窗口的每个模型上的会话保持在 200K 窗口;请参阅[扩展上下文](#extended-context)了解保持如何被强制执行。对于需要限制上下文的部署很有用。

810 815 

811<h2 id="context-window-and-auto-compaction">816<h2 id="context-window-and-auto-compaction">


841* [云会话](/docs/zh-CN/claude-code-on-the-web)在对话接近模型限制时进行压缩846* [云会话](/docs/zh-CN/claude-code-on-the-web)在对话接近模型限制时进行压缩

842* Sonnet 4.6 和 Opus 4.6(不带[扩展上下文](#extended-context))在 200K 边界处进行压缩,Opus 4.8 和更高版本在使用 200K 上下文窗口运行时也是如此,例如在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上847* Sonnet 4.6 和 Opus 4.6(不带[扩展上下文](#extended-context))在 200K 边界处进行压缩,Opus 4.8 和更高版本在使用 200K 上下文窗口运行时也是如此,例如在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上

843* 当您设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars) 时,具有原生 1M 窗口的模型(例如 Sonnet 5 和 Fable 模型)在 200K 边界处进行压缩848* 当您设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-CN/env-vars) 时,具有原生 1M 窗口的模型(例如 Sonnet 5 和 Fable 模型)在 200K 边界处进行压缩

844* 使用原生 1M 窗口运行的模型(例如 Sonnet 5、Fable 模型以及 Anthropic API 上的 Opus 4.7 及更高版本)在窗口填满之前进行压缩,默认情况下约为 967K 令牌。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,[为第三方部署固定模型](#pin-models-for-third-party-deployments)说明了哪些模型使用该窗口;对于将 Sonnet 5.5 和 Sonnet 5 预算为 200K 的配置,请参阅 [Sonnet 5.5 和 Sonnet 5 上下文窗口](#sonnet-5-5-and-sonnet-5-context-window)849* 使用原生 1M 窗口运行的模型在窗口填满之前进行压缩,默认情况下约为 967K 令牌。在 Anthropic API 上,这些包括 Sonnet 5、Fable 模型以及 Opus 4.7 及更高版本。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,请参阅[为第三方部署固定模型](#pin-models-for-third-party-deployments)以了解哪些模型使用该窗口。在自定义 `ANTHROPIC_BASE_URL` 后面,请参阅[网关后面的上下文窗口](#context-window-behind-a-gateway)

845* 在 Claude Code 不识别的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)上的会话在 Claude Code 为该 ID 假设的上下文窗口处进行压缩;请参阅[为网关或自定义模型 ID 更正窗口](#correct-the-window-for-a-gateway-or-custom-model-id)850* 在 Claude Code 不识别的模型 ID(例如 [LLM 网关](/docs/zh-CN/llm-gateway)别名)上的会话在 Claude Code 为该 ID 假设的上下文窗口处进行压缩;请参阅[为网关或自定义模型 ID 更正窗口](#correct-the-window-for-a-gateway-or-custom-model-id)

846 851 

847<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">852<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

Details

1430* `error.type`:Claude Code 停止会话的原因。仅在 `refused` 事件上存在:1430* `error.type`:Claude Code 停止会话的原因。仅在 `refused` 事件上存在:

1431 * `"helper_failed"`:[策略助手运行失败](/docs/zh-CN/settings-reference#helper-failures)1431 * `"helper_failed"`:[策略助手运行失败](/docs/zh-CN/settings-reference#helper-failures)

1432 * `"policy_invalid"`:管理设置包含停止 Claude Code 启动的错误,或管理源无法加载,因此 Claude Code 无法检查组织登录强制1432 * `"policy_invalid"`:管理设置包含停止 Claude Code 启动的错误,或管理源无法加载,因此 Claude Code 无法检查组织登录强制

1433 * `"provider_not_allowed"`:会话将使用 API 提供商,或将提供商的流量发送到管理的 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders) 列表不允许的主机。需要 Claude Code v2.1.285 或更高版本

1433 * `"consent_rejected"`:用户拒绝了服务器管理设置的[安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs)1434 * `"consent_rejected"`:用户拒绝了服务器管理设置的[安全批准对话](/docs/zh-CN/server-managed-settings#security-approval-dialogs)

1434 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh) 需要的设置获取失败1435 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](/docs/zh-CN/settings-reference#forceremotesettingsrefresh) 需要的设置获取失败

1435 * `"gateway_rejected"`:[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)用 HTTP 403 回答了管理设置加载1436 * `"gateway_rejected"`:[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)用 HTTP 403 回答了管理设置加载

Details

246| `storage.googleapis.com` | 2.1.116 之前版本的本机安装程序和本机自动更新程序 |246| `storage.googleapis.com` | 2.1.116 之前版本的本机安装程序和本机自动更新程序 |

247| `registry.npmjs.org` | 插件安装(获取 npm 源插件包和安装插件的 Node.js 包依赖项)、`npx` 启动的 MCP 服务器以及 npm 和 bun 安装 Claude Code 本身的包注册表 |247| `registry.npmjs.org` | 插件安装(获取 npm 源插件包和安装插件的 Node.js 包依赖项)、`npx` 启动的 MCP 服务器以及 npm 和 bun 安装 Claude Code 本身的包注册表 |

248| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-CN/chrome) 扩展 WebSocket 桥接 |248| `bridge.claudeusercontent.com` | [Chrome 中的 Claude](/docs/zh-CN/chrome) 扩展 WebSocket 桥接 |

249| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-CN/artifacts) 内容读取。当 Claude 打开 Artifact 时,CLI 从此主机获取 Artifact 的文件,仅当 Artifact 工具对您的账户[可用](/docs/zh-CN/artifacts#availability)时。要关闭该工具并删除此要求,请设置 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-CN/env-vars);Claude Code 也遵守已弃用的 [`disableArtifact`](/docs/zh-CN/settings-reference#disableartifact) 设置。有关这些设置如何相互作用,请参阅[禁用 Artifact](/docs/zh-CN/artifacts#disable-artifacts) |249| `*.frame.claudeusercontent.com` | [Artifact](/docs/zh-CN/artifacts) 内容读取。当 Claude 打开 Artifact 时,CLI 从此主机获取 Artifact 的文件,仅当 Artifact 工具对您的账户[可用](/docs/zh-CN/artifacts#availability)时。要关闭该工具并删除此要求,请设置 [`"enableArtifact": false`](/docs/zh-CN/settings-reference#enableartifact) 或 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/zh-CN/env-vars) |

250| `github.com` | 克隆 GitHub 托管的[插件市场](/docs/zh-CN/plugins/overview)和插件,包括官方 Anthropic 市场,通过 HTTPS 或 SSH。要仅通过 HTTPS 克隆 GitHub `owner/repo` 源,请设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars) |250| `github.com` | 克隆 GitHub 托管的[插件市场](/docs/zh-CN/plugins/overview)和插件,包括官方 Anthropic 市场,通过 HTTPS 或 SSH。要仅通过 HTTPS 克隆 GitHub `owner/repo` 源,请设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars) |

251| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-CN/commands) 的更新日志源。在交互式会话中,当 Claude Code 的缓存更新日志尚未涵盖运行版本时(例如更新后的首次启动),Claude Code 也会在启动时在后台获取它;非交互式和云会话永远不会获取它 |251| `raw.githubusercontent.com` | [`/release-notes`](/docs/zh-CN/commands) 的更新日志源。在交互式会话中,当 Claude Code 的缓存更新日志尚未涵盖运行版本时(例如更新后的首次启动),Claude Code 也会在启动时在后台获取它;非交互式和云会话永远不会获取它 |

252| `*-review.googlesource.com` | `googlesource.com` 检出上的 Gerrit 更改查询。当 Claude Desktop Code 标签会话在[受信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的检出上启动或恢复,且其 `origin` 是 `googlesource.com` 主机时,Claude Code 会匿名向该主机的 `-review` 服务器查询与 HEAD 的 `Change-Id` 匹配的开放更改,每次启动或恢复一次。其他会话类型跳过查询,不会联系其他 Gerrit 主机。可选:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 禁用 |252| `*-review.googlesource.com` | `googlesource.com` 检出上的 Gerrit 更改查询。当 Claude Desktop Code 标签会话在[受信任](/docs/zh-CN/permissions#project-allow-rules-and-workspace-trust)的检出上启动或恢复,且其 `origin` 是 `googlesource.com` 主机时,Claude Code 会匿名向该主机的 `-review` 服务器查询与 HEAD 的 `Change-Id` 匹配的开放更改,每次启动或恢复一次。其他会话类型跳过查询,不会联系其他 Gerrit 主机。可选:使用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars) 禁用 |

Details

86| 您如何运行 Claude Code | 内置起始权限模式 |86| 您如何运行 Claude Code | 内置起始权限模式 |

87| :- | :- |87| :- | :- |

88| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |88| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |

89| `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/permissions) | `default` |89| `claude -p` 或 [Agent SDK](/docs/zh-CN/agent-sdk/permissions#permission-modes) | 在[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中为 `default`。在不获取功能标志的会话中,例如在第三方提供商上或关闭遥测的情况下,Claude Code v2.1.285 或更高版本中为 `auto`,较早版本中为 `default`。组织策略禁止 `auto` 默认值的会话改为以 `default` 启动 |

90| 在终端或通过 [VS Code 扩展](/docs/zh-CN/vs-code) | `auto`(Claude Code v2.1.283 或更高版本);在较早的版本上,在 Pro、Max 或 Team 计划中 `auto`(在[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |90| 在终端或通过 [VS Code 扩展](/docs/zh-CN/vs-code) | Claude Code v2.1.283 或更高版本中为 `auto`;在较早的版本上,在 Pro、Max 或 Team 计划中为 `auto`(在[获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |

91 91 

92在您[安装或升级后的第一个会话](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)中,Claude Code 可以在其功能标志到达之前选择起始权限模式。该会话可能以与表格不同的权限模式启动,您的下一个会话与表格匹配。92在您[安装或升级后的第一个会话](/docs/zh-CN/env-vars#first-session-after-an-install-or-upgrade)中,Claude Code 可以在其功能标志到达之前选择起始权限模式。该会话可能以与表格不同的权限模式启动,您的下一个会话与表格匹配。

93 93 


98* 在终端中,一次,在会话顶部98* 在终端中,一次,在会话顶部

99* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它99* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它

100 100 

101在 Pro、Max 和 Team 计划上,如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。Claude Code 在终端或 VS Code 扩展中询问一次是否将设置更改为自动模式。如果您拒绝,您的设置保持原样。101如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。在 Pro、Max 和 Team 计划上,以及在[不获取功能标志](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)的会话中,Claude Code 在终端或 VS Code 扩展中询问一次是否将设置更改为自动模式。如果您拒绝,您的设置保持原样。

102 102 

103<h3 id="start-in-a-different-mode">103<h3 id="start-in-a-different-mode">

104 以不同的权限模式启动104 以不同的权限模式启动


302自动模式还会促使 Claude 继续工作而不停下来提出澄清问题,尽管当您的提示或技能明确依赖它时 Claude 仍会询问。为了在仍会提示您的模式中获得更强的自主行为,请改为设置[主动输出风格](/docs/zh-CN/output-styles)。302自动模式还会促使 Claude 继续工作而不停下来提出澄清问题,尽管当您的提示或技能明确依赖它时 Claude 仍会询问。为了在仍会提示您的模式中获得更强的自主行为,请改为设置[主动输出风格](/docs/zh-CN/output-styles)。

303 303 

304<Warning>304<Warning>

305 自动模式减少了权限提示,但不保证安全。将其用于您信任总体方向的任务,而不是作为敏感操作审查的替代品。305 自动模式减少权限提示但不保证安全。将其用于您信任总体方向的任务,而不是作为敏感操作审查的替代品。

306</Warning>306</Warning>

307 307 

308自动模式仅在您的账户满足以下所有要求时可用:308自动模式仅在您的账户满足所有这些要求时可用:

309 309 

310* **计划**:所有计划。310* **计划**:所有计划。

311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。311* **组织**:在 Team 和 Enterprise 上,自动模式默认可用。管理员可以通过在[托管设置](/docs/zh-CN/managed-settings)中将 `permissions.disableAutoMode` 设置为 `"disable"` 来为组织关闭它。

312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws) 上,Claude Opus 4.6 或更高版本、Sonnet 4.6 或更高版本,或[Fable 模型](/docs/zh-CN/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,仅 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。较旧的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。

313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude 应用网关会话上默认可用。

314 314 

315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭了自动模式,或服务器可能已为您的账户拒绝了自动模式。收到任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。315如果 Claude Code 报告自动模式不可用,首先检查这些要求以及任何设置文件是否设置了 [`disableAutoMode`](/docs/zh-CN/settings-reference#disableautomode)。Anthropic 也可能已在服务器端关闭自动模式,或服务器可能已为您的账户拒绝自动模式。接收任一答案的会话会保持自动模式关闭直到会话结束,因此稍后启动新会话。

316 316 

317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。317一条单独的消息命名一个模型并说自动模式"无法确定"操作的安全性意味着分类器请求失败。该失败通常是暂时的,但在 Amazon Bedrock 上,它可能会重复直到您的账户可以调用命名的模型。有关原因和处理方法,请参阅[错误参考](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

318 318 


322 Bedrock、Agent Platform 或 Foundry 上的自动模式322 Bedrock、Agent Platform 或 Foundry 上的自动模式

323</h3>323</h3>

324 324 

325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。在 Claude Code v2.1.283 或更高版本中,它也是交互式终端和 [VS Code](/docs/zh-CN/vs-code) 会话的[内置起始权限模式](#which-mode-a-session-starts-in)。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。325在 [Amazon Bedrock](/docs/zh-CN/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai)、[Microsoft Foundry](/docs/zh-CN/microsoft-foundry) 和已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话上,自动模式默认可用。当没有其他设置权限模式时,它也是[内置起始权限模式](#which-mode-a-session-starts-in),在该部分的表列出的版本上。要自己选择起始权限模式,请按照[以不同权限模式启动](#start-in-a-different-mode)的描述设置 `permissions.defaultMode`,或从 VS Code 扩展的模式指示器中选择权限模式。

326 326 

327仅这些提供商上支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以 Manual 模式启动。327这些提供商上仅支持 Claude Sonnet 5 或更高版本、Opus 4.7 或更高版本和 Fable 模型。在任何其他模型上,会话以 Manual 模式启动。

328 328 

329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话会以 Manual 模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。329要防止开发人员使用自动模式,请在[托管设置](/docs/zh-CN/managed-settings)中将 `disableAutoMode` 设置为 `"disable"`。这会从 `Shift+Tab` 循环中移除 `auto`,并且使用 `--permission-mode auto` 启动的会话以 Manual 模式启动。已在自动模式中运行的会话在设置从[管理员部署的源](/docs/zh-CN/managed-settings#which-managed-source-claude-code-uses)到达该会话时会离开它,并显示 `auto mode disabled by settings`。在 v2.1.251 之前,运行中的会话会保持自动模式直到它结束。

330 330 

331在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。331在 v2.1.158 到 v2.1.206 中,自动模式在这些提供商上是关闭的,直到您设置 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,并且 Claude Code 在这些提供商上忽略 `defaultMode: "auto"`,除非也设置了该变量。该变量仍被接受以保持兼容性,从 v2.1.207 开始无效。

332 332 


340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。340* **云提供商、LLM 网关或代理**:在 [AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向[LLM 网关或代理](/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认询问需要 Claude Code v2.1.278 或更高版本。

341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本341* **已登录的[Claude 应用网关](/docs/zh-CN/claude-apps-gateway)会话**:需要 Claude Code v2.1.280 或更高版本

342 342 

343服务器审查操作的地方,其判决决定了它们。还有两种其他可能的结果:343服务器审查操作的地方,其判决决定了它们。另外两种结果是可能的:

344 344 

345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。345* **服务器不审查会话**:响应完成时没有审查结果,或服务器回答它不审查此会话。最常见的原因是 LLM 网关或代理丢弃审查请求或结果,以及平台、区域或凭证还没有服务器端检查。Claude Code 回退到自己的分类器请求。一旦该回退对会话的其余部分生效,它会在那些请求被计费的账户上显示[关于分类器请求费用的通知](/docs/zh-CN/auto-mode-classifier-billing)。

346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是运行它而不审查。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。丢弃响应或重写结果的 LLM 网关或代理可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。346* **服务器对操作没有给出判决**:Claude Code 拒绝该操作而不是运行它未审查。在任何连接上,当响应在审查结果到达之前结束或结果以 Claude Code 无法读取的形式到达时,这会发生。LLM 网关或代理切断响应或重写结果可能导致任一情况。在直接连接到 Anthropic API 时,当服务器对操作的检查失败时也会发生,例如超时。[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)涵盖拒绝消息、拒绝重复时发生的情况以及处理方法。

347 347 

348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。348要跳过询问服务器并始终使用 Claude Code 自己的分类器请求,请设置 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-CN/env-vars)。在直接连接到 Anthropic API 时,该变量需要 Claude Code v2.1.281 或更高版本。将其设置为 `1` 会在没有它的会话中打开服务器审查,例如 `-p` 或 Agent SDK 会话,除非您也设置了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您设置 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 并保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未设置,Claude Code 也会停止询问服务器,除了[禁用预发布功能](/docs/zh-CN/llm-gateway-protocol#disable-pre-release-capabilities)描述的情况。

349 349 


363* 修改共享基础设施363* 修改共享基础设施

364* 不可逆地销毁会话前存在的文件364* 不可逆地销毁会话前存在的文件

365* 强制推送365* 强制推送

366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:当推送携带敏感内容、隐瞒或误描述相对于您要求的内容、从仓库外移植的内容或绕过您要求的审查的内容时,推送到那里会被阻止366* 提交或推送会在运行时向仓库外发送秘密或敏感数据的更改,或扩大部署公开的内容。这涵盖将秘密传递给不已接收它的目的地的 CI 工作流或部署配置、读取秘密存储并发送数据的脚本或设置步骤,以及扩大部署发布内容的配置更改,例如注册表、可见性、工件或源映射设置。检查适用于任何分支,即使仓库是公开的也适用,并在提交或推送时触发,无论该提交或推送是否触发管道;清除它需要命名执行效果,而不仅仅是提交或推送。在 v2.1.211 之前,此检查的范围仅限于默认分支:推送到那里在携带敏感内容、隐瞒或误描述相对于您要求的内容、从仓库外移植的内容或绕过您要求的审查的内容时被阻止

367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器假设会丢弃未提交的更改367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分类器推测会丢弃未提交的更改

368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的368* `git commit --amend` 当 HEAD 处的提交不是在此会话中创建的

369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送。仅消息重述不被阻止:`--amend -m` 在 Claude 在此会话期间创建的提交上没有新暂存的内容369* 从 v2.1.198 开始,`git commit --amend` 当 HEAD 处的提交已被推送。仅消息重述不被阻止:`--amend -m` 在此会话中 Claude 创建的提交上没有新暂存的内容

370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及应用销毁资源的计划

371* 写入秘密管理器,或更改 DNS 记录或 TLS 证书371* 写入秘密管理器,或更改 DNS 记录或 TLS 证书

372* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查372* 合并没有人类批准的拉取请求、批准 Claude 自己的拉取请求或禁用 CI 检查


379* 打开隧道或反向 shell 使本地服务可从公网访问379* 打开隧道或反向 shell 使本地服务可从公网访问

380* 将实时凭证或令牌打印到记录或文件中380* 将实时凭证或令牌打印到记录或文件中

381* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从一个位置复制数据。从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据381* 访问在您的[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)中列为敏感数据位置的位置,或从一个位置复制数据。从 v2.1.198 开始,这也阻止从一个位置向条目排除的受众发送数据

382* 绕过您的内部包注册表将包安装路由到公共注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况382* 绕过您的内部包注册表路由包安装到公开注册表。从 v2.1.198 开始,这也适用于您在对话中告诉 Claude 内部注册表或镜像存在的情况,而不仅仅是在您的环境中列出的情况

383* 使用禁用安全防护的标志运行命令,如 `--insecure`383* 使用禁用安全防护的标志运行命令,如 `--insecure`

384* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器384* 启动在没有人类批准或沙箱的情况下运行的自主代理循环,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 启动的循环。从 v2.1.198 开始,这也涵盖运行禁用隔离和按操作批准的第三方代理或评估工具,例如使用 `--yes-always` 启动的运行器

385* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向外源发送页面内容、cookie 或凭证385* [Chrome 中的 Claude](/docs/zh-CN/chrome)浏览器操作可能会向源外发送页面内容、cookie 或凭证

386 386 

387其中几个类别取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。387其中几个类别取决于[环境](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure)条目,例如敏感的远程目标和受保护的 IaC 范围,您可以将其缩小到具体名称。

388 388 

389Claude Code v2.1.198 及更高版本也默认阻止这些:389Claude Code v2.1.198 及更高版本也默认阻止这些:

390 390 

391* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或其他共享暂存或缓存目录中的文件391* 通过通配符、glob 或年龄过滤器而不是特定命名路径删除 `/tmp`、`$TMPDIR` 或另一个共享暂存或缓存目录中的文件

392* 在您自己的消息未授权这些详情给该收件人的情况下,在发送、上传、发布或写入给其他人或共享系统的内容中包含敏感详情。当仓库在信任边界外或公开时,PR 和问题正文、提交消息和评论计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本392* 在发送、上传、发布或写入其他人或共享系统的内容中包含敏感详情,当您自己的消息没有为该收件人授权这些详情时。PR 和问题正文、提交消息和评论在仓库在信任边界外或公开时计为这种出站内容,包括您组织自己的公开仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)和基础设施标识符计为敏感详情。PR、问题和提交消息范围需要 Claude Code v2.1.200 或更高版本。PR 或问题正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要您命名这些详情和收件人,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本

393* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督393* 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自己的界面,分类器将其视为 Claude 更改自己的权限或监督

394 394 

395Claude Code v2.1.200 及更高版本也默认阻止这些:395Claude Code v2.1.200 及更高版本也默认阻止这些:

396 396 

397* 注释掉、删除或强制通过保护安全行为的测试或断言,例如身份验证、访问控制、输入验证或沙箱397* 注释掉、删除或强制通过保护安全行为的测试或断言,例如身份验证、访问控制、输入验证或沙箱

398* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您未命名该资源时398* 删除或拆除 Claude 在会话中未创建的有状态资源,当没有更具体的删除规则适用且您没有命名该资源时

399* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中399* 将 API 基础 URL、代理端点、webhook 接收器或注册表镜像重新指向不适合任务的第三方主机,包括在 `.env.example` 等示例文件中

400* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程400* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新远程

401* 将秘密或个人或受信数据推送到已知为公开的仓库,或将不属于该仓库自己工作的机密材料推送到那里。dotfiles 仓库自己的主题是个人或受信数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅当它不属于该仓库自己的工作时才被阻止。当仓库的可见性未确定时,分类器不仅基于此阻止;它改为根据其他规则判断内容401* 推送秘密或个人或受信任的数据到已知为公开的仓库,或推送不属于该仓库自己工作的机密材料到那里。dotfiles 仓库自己的主题是个人或受信任数据的唯一例外,来自私有仓库到任何公开表面的内容以相同方式被阻止;两项改进都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料分组,仅在不属于该仓库自己的工作时被阻止。当仓库的可见性未建立时,分类器不仅基于此阻止;它改为根据其他规则判断内容

402* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方仓库,除非您命名了该外部目标402* 针对不同仓库或组织打开拉取请求、使用 `gh repo fork` 进行分叉或推送到第三方仓库,除非您命名了该外部目标

403 403 

404Claude Code v2.1.203 及更高版本也默认阻止这些:404Claude Code v2.1.203 及更高版本也默认阻止这些:

405 405 

406* 来自敏感本地存储或其名称、路径或类型将其标记为敏感的文件的内容进入提交、推送、PR 或问题文本、gist 或粘贴或包发布,除非您命名了源和目的地。会话记录和对话日志、凭证和配置点文件夹(如 SSH 密钥、云凭证、浏览器配置文件和 shell 历史记录)以及用户数据导出都计为此,仓库是私有的不会清除它406* 来自敏感本地存储或其名称、路径或类型将其标记为敏感的文件的内容进入提交、推送、PR 或问题文本、gist 或粘贴或包发布,除非您命名了源和目的地。会话记录和对话日志、凭证和配置点文件夹(如 SSH 密钥、云凭证、浏览器配置文件和 shell 历史)以及用户数据导出都计为此,仓库是私有的不会清除它

407 407 

408Claude Code v2.1.205 及更高版本也默认阻止这些:408Claude Code v2.1.205 及更高版本也默认阻止这些:

409 409 

410* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止410* 写入 Claude Code 会话记录、`~/.claude/projects/` 下的 `.jsonl` 历史文件或您配置的配置目录,无论是直接还是通过 shell 命令。该规则也涵盖 Claude Code 为其自己的检查附加到每个记录条目的元数据行。读取记录不被阻止

411* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是分类器看不到的任何地方分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器从不接收,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用写入命令的已解析文字路径重新运行删除时,该块会清除。分类器可以解析其目标的删除不受影响。411* 递归强制删除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目标是在分类器看到的对话中任何地方都未分配的 shell 变量,或以这样的变量为根的 glob。该值仅来自较早的命令输出,分类器永远不会接收,因此分类器无法根据其他删除规则验证删除目标。当您命名被删除的确切路径或 Claude 使用写入命令的已解析文字路径重新运行删除时,该块会清除。其目标分类器可以解析的删除不受影响。

412 412 

413 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的从不到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。413 直接在变量下的 glob,如 `rm -rf "$VAR"/*`,是[关键路径](#critical-paths)。`Remove-Item` 目标是裸 `*` 或以 `/*` 或 `\*` 结尾的永远不会到达分类器:Claude Code [直接拒绝它们](#remove-item-in-powershell)。

414 414 

415Claude Code v2.1.257 及更高版本也默认阻止这些:415Claude Code v2.1.257 及更高版本也默认阻止这些:

416 416 

417* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用417* 从云实例元数据端点请求凭证,例如 `169.254.169.254`,或使用机器自己的服务账户或节点身份显式验证云、集群或注册表调用

418* 通过直接请求以外的路由到达公共主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置418* 通过直接请求以外的路由到达公开主机,例如隧道、反向 shell 或重写为指向外部的解析器或代理配置

419* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证419* 读取属于主机而不是您的任务的凭证,例如节点证书或节点的容器注册表身份验证

420* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点420* 连接到或扫描 Claude 未启动的同级容器、pod 或 VM,或容器下的节点

421 421 


438* 向您在 [`environment`](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、存储桶和服务发送数据。这仅涵盖数据流,不涵盖同一基础设施上的破坏性或凭证操作438* 向您在 [`environment`](/docs/zh-CN/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、存储桶和服务发送数据。这仅涵盖数据流,不涵盖同一基础设施上的破坏性或凭证操作

439* [Chrome 中的 Claude](/docs/zh-CN/chrome)导航到受信任的内部域、localhost 或您命名的 URL439* [Chrome 中的 Claude](/docs/zh-CN/chrome)导航到受信任的内部域、localhost 或您命名的 URL

440 440 

441沙箱命令默认不获得网络访问。Claude 在命令本身上命名命令需要的主机,分类器与命令一起审查它们,批准的列表仅为该一个命令打开这些主机。[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)涵盖列表可以和不能打开什么以及命令到达未列出的主机时发生的情况。441沙箱命令默认不获得网络访问。Claude 在命令本身上命名命令需要的主机,分类器与命令一起审查它们,批准的列表仅为该一个命令打开这些主机。[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)涵盖列表可以和不能打开什么以及命令到达未列出的主机时发生的情况。

442 442 

443运行 `claude auto-mode defaults` 以将完整规则列表打印为 JSON。如果常规操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的仓库、存储桶和服务:请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。443运行 `claude auto-mode defaults` 以将完整规则列表打印为 JSON。如果常规操作被阻止,管理员可以通过 `autoMode.environment` 设置添加受信任的仓库、存储桶和服务:请参阅[配置自动模式](/docs/zh-CN/auto-mode-config)。

444 444 


463 您在对话中陈述的边界463 您在对话中陈述的边界

464</h3>464</h3>

465 465 

466分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查前等待再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的判断条件已满足不会解除它。466分类器将您在对话中陈述的边界视为阻止信号。如果您告诉 Claude"不要推送"或"在我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界保持有效直到您在后续消息中解除它。Claude 自己的条件已满足的判断不会解除它。

467 467 

468边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述它的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。468边界不存储为规则。分类器在每次检查时从记录中重新读取它们,因此如果[上下文压缩](/docs/zh-CN/costs#reduce-token-usage)移除陈述边界的消息,边界可能会丢失。为了硬保证,请改为添加[拒绝规则](/docs/zh-CN/permissions#permission-rule-syntax)。

469 469 

470<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

471 您在对话中陈述的批准471 您在对话中陈述的批准


473 473 

474如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准到达多远:474如果您告诉 Claude 被阻止的操作是允许的,分类器将其读取为您的批准并可以清除阻止。您如何措辞决定了操作是否运行以及批准到达多远:

475 475 

476* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事物,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持有效。476* **命名操作及其具体情况**:您的消息必须命名操作和使其危险的具体事项,例如强制推送的分支。仅命名动词不会清除任何内容,因此"您可以强制推送"会使阻止保持有效。

477* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此稍后的操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。477* **期望它涵盖一个操作**:批准涵盖您命名的破坏性操作,因此稍后的操作再次被阻止,除非您授予批准为常设。要停止一次一个地批准常规模式,请将其添加到 [`autoMode.allow`](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)。

478* **某些阻止保持有效**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)规定了您的批准可以到达哪些阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。478* **某些阻止保持有效**:[分类器的优先级顺序](/docs/zh-CN/auto-mode-config#override-the-block-and-allow-rules)列出您的批准可以到达的阻止。要运行它不会清除的步骤,请[离开自动模式](#switch-permission-modes)并回答权限提示。

479 479 

480<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

481 当自动模式回退时481 当自动模式回退时


485 485 

486* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。486* **被阻止的操作**:Claude Code 显示通知并在 `/permissions` 下的**最近拒绝**选项卡中列出操作,您可以按 `r` 使用手动批准重试它。

487* **重复阻止**:如果分类器连续阻止操作 3 次或总共 20 次,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。有关如何计数阻止的信息,请参阅[重复阻止阈值](#repeated-block-thresholds)。487* **重复阻止**:如果分类器连续阻止操作 3 次或总共 20 次,自动模式暂停,Claude Code 恢复提示。批准提示的操作恢复自动模式。有关如何计数阻止的信息,请参阅[重复阻止阈值](#repeated-block-thresholds)。

488* **分类器无判决**:当独立于自动模式的安全检查拒绝分类器自己的请求或分类器的响应不解析时,Claude Code 拒绝操作而不显示通知或**最近拒绝**条目。有关每种情况显示的消息和处理方法,请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。488* **分类器无判决**:当与自动模式分离的安全检查拒绝分类器自己的请求或分类器的响应不解析时,Claude Code 拒绝操作而不显示通知或**最近拒绝**条目。有关每种情况显示的消息和处理方法,请参阅[自动模式无法确定操作的安全性](/docs/zh-CN/errors#auto-mode-cannot-determine-the-safety-of-an-action)。

489* **服务器无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续十个响应都没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。489* **服务器无判决**:在[服务器端分类器审查](#server-side-classifier-review)下,Claude Code 拒绝服务器给不出判决的操作,并在连续十个响应都没有判决后停止轮次。请参阅[服务器未返回安全判决](/docs/zh-CN/errors#the-server-returned-no-safety-verdict)。

490* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自动拒绝操作。490* **检查期间的模式切换**:如果您在分类器检查待处理时切换权限模式,Claude Code 丢弃新模式不会请求的判决。您改为被提示批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中操作被自动拒绝。

491 491 

492<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

493 重复阻止阈值493 重复阻止阈值

494</h4>494</h4>

495 495 

4963 个连续阻止和 20 个总阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当独立于自动模式的安全检查拒绝分类器自己的请求时,Claude Code 不计数拒绝到任一阈值。4963 个连续阻止和 20 个总阻止的阈值不可配置。总计数器对会话持续并仅在其自己的限制触发回退时重置。当与自动模式分离的安全检查拒绝分类器自己的请求时,Claude Code 不计数拒绝到任一阈值。

497 497 

498没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](/docs/zh-CN/headless) `-p` 运行没有回退提示。当重复阻止达到阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。498没有 [`--permission-prompt-tool`](/docs/zh-CN/cli-reference#cli-flags) 的[非交互式](/docs/zh-CN/headless) `-p` 运行没有回退提示。当重复阻止到达阈值时,操作不运行,Claude 继续工作。Claude Code 不停止运行。

499 499 

500重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告误报,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。500重复阻止通常意味着分类器缺少关于您的基础设施的上下文。使用 `/feedback` 报告假阳性,或让管理员[配置受信任的基础设施](/docs/zh-CN/auto-mode-config)。

501 501 

502<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

503 自动模式如何评估操作503 自动模式如何评估操作


508<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

509 509 

510<AccordionGroup>510<AccordionGroup>

511 <Accordion title="分类器如何评估操作">511 <Accordion title="自动模式如何评估操作">

512 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:512 每个操作都经过固定的决策顺序。第一个匹配的步骤获胜:

513 513 

514 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但有以下例外:514 1. 与您的[允许、询问或拒绝规则](/docs/zh-CN/permissions#manage-permissions)匹配的操作立即解决,但有以下例外:

515 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配515 * 写入[受保护路径](#protected-paths)的操作路由到分类器,即使允许规则匹配

516 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除516 * 没有允许规则批准针对[关键路径](#critical-paths)的 `rm` 和 `rmdir` 删除

517 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具您的组织在会话中设置为 `ask` 的[也是如此](/docs/zh-CN/mcp#organization-controls-on-connector-tools),其中该设置到达 Claude Code517 * 标记为 [`requiresUserInteraction`](/docs/zh-CN/mcp#require-approval-for-a-specific-tool) 的 MCP 工具直接提示您,即使允许规则匹配,连接器工具您的组织在会话中设置为 `ask` 的[组织控制](/docs/zh-CN/mcp#organization-controls-on-connector-tools)也是如此,其中该设置到达 Claude Code

518 * 携带[按命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机518 * 携带[每个命令允许的域](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也路由到分类器,即使允许规则匹配,因为规则批准命令,而不是其主机

519 * 与命令内容匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示519 * 在命令内容上匹配的询问规则,例如 `Bash(git push *)`,回退到权限提示

520 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您520 * [符号链接检查](/docs/zh-CN/permissions#symlinks)解决为受保护路径的写入在 Claude 请求的路径本身不受保护时提示您

521 2. 只读操作和您工作目录中的文件编辑自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您521 2. 只读操作和您工作目录中的文件编辑被自动批准,除了写入[受保护路径](#protected-paths)和[工作目录外的第一次读取](#first-read-outside-the-working-directories),这会提示您

522 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查,如果它标记它们则被阻止522 * 在具有[服务器端分类器审查](#server-side-classifier-review)的会话中,只读和[沙箱](/docs/zh-CN/sandboxing#sandbox-modes) shell 命令等待该审查,如果它标记它们则被阻止

523 * 您工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您523 * 您工作目录内的写入,[符号链接检查](/docs/zh-CN/permissions#symlinks)解决为其外的位置,提示您

524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具从不到达分类器,因此既不是组织要求的批准也不是同意步骤自动批准524 3. 其他所有内容都进入分类器,除了[关键路径删除](#critical-paths)在其默认处理下。在步骤 1 中直接提示您的连接器工具和 `requiresUserInteraction` MCP 工具永远不会到达分类器,因此既不是组织要求的批准也不是同意步骤被自动批准

525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)525 4. 如果分类器阻止,Claude 接收原因。在大多数会话中,原因命名分类器匹配的规则,例如 `[Data Exfiltration]`,而不是给出书面解释;请参阅[审查拒绝](/docs/zh-CN/auto-mode-config#review-denials)

526 526 

527 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:527 进入自动模式时,授予任意代码执行的广泛允许规则被丢弃:


532 * `Agent` 允许规则532 * `Agent` 允许规则

533 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool)允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令533 * [`Monitor`](/docs/zh-CN/tools-reference#monitor-tool)允许规则,因为 Claude Code 通过 shell 运行 Monitor 命令

534 534 

535 窄规则如 `Bash(npm test)` 保持有效。当您离开自动模式时,Claude Code 恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则在没有分类器审查的情况下批准 Monitor 命令。535 狭窄的规则,如 `Bash(npm test)` 保持有效。Claude Code 在您离开自动模式时恢复丢弃的规则。在 v2.1.236 之前,Claude Code 在自动模式中保持 `Monitor` 允许规则有效,因此与整个工具匹配的规则批准 Monitor 命令而不进行分类器审查。

536 536 

537 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。即使仓库的 git 配置设置 `status.showUntrackedFiles=no`,Claude Code 也在该检查中报告未跟踪的文件。537 Claude Code 也在会丢弃未提交工作的命令之前运行 `git status`,例如 `git reset --hard` 或 `rm -rf`,并向分类器显示是否存在暂存、修改或未跟踪的工作。Claude Code 在该检查中报告未跟踪的文件,即使仓库的 git 配置设置 `status.showUntrackedFiles=no`。

538 538 

539 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。539 在 Claude Code 本身发送的分类器请求中,分类器看到用户消息、除只读查找(如文件读取和搜索)之外的工具调用以及您的 CLAUDE.md 内容。工具结果从这些请求中被剥离,因此文件或网页中的恶意内容无法直接操纵分类器。

540 540 


547 分类器在三个点检查[子代理](/docs/zh-CN/sub-agents)工作:547 分类器在三个点检查[子代理](/docs/zh-CN/sub-agents)工作:

548 548 

549 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。549 1. 在子代理启动之前,委托的任务描述被评估,因此看起来危险的任务在生成时被阻止。

550 2. 当子代理运行时,其每个操作都通过分类器,使用与父会话相同的规则,子代理前言中的任何 `permissionMode` 被忽略。550 2. 当子代理运行时,其每个操作都经过与父会话相同的[决策顺序](#how-the-classifier-evaluates-actions),具有相同的阻止和允许规则。子代理的 frontmatter 中的任何 `permissionMode` 都被忽略。

551 3. 当子代理完成时,分类器审查其工作和最终报告,然后父代读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面加上安全警告。当分类器对审查不可用时,报告到达时带有注意在根据它采取行动前验证子代理工作的注意。551 3. 当子代理完成时,分类器审查其工作和最终报告,然后父会话读取报告。当分类器标记子代理的工作或报告,或单独的 API 安全检查拒绝审查时,报告仍被传递,前面带有安全警告。当分类器对审查不可用时,报告到达时带有注意在根据其采取行动之前验证子代理工作的注意。

552 </Accordion>552 </Accordion>

553 553 

554 <Accordion title="成本和延迟">554 <Accordion title="成本和延迟">

555 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 时,或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。555 分类器默认在 Claude Sonnet 5 上运行,而不是在您的 `/model` 选择上。Anthropic 配置的服务器端分类器模型优先于该默认值。当您的会话模型是 Claude Sonnet 4.6 或当 [`availableModels`](/docs/zh-CN/model-config#restrict-model-selection) 排除 Sonnet 5 时,分类器改为在会话的模型上运行,或在会话在[Fable 模型](/docs/zh-CN/model-config#work-with-fable)上运行时在 Opus 模型上运行;在 Anthropic API 以外的提供商上,该 Opus 回退是提供商的默认 Opus 模型。

556 556 

557 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它失败是因为模型不可用,会话改为使用回退。在该验证解决后,分类器的模型对会话不改变。557 会话的第一个自动模式请求验证 Sonnet 5 默认值:如果请求成功,Sonnet 5 保持会话的分类器模型,如果它因模型不可用而失败,会话改为使用回退。

558 558 

559 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。读取和工作目录编辑在受保护路径外跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。559 在 Enterprise 计划和使用 Claude API 的账户、[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分类器调用计入您的令牌使用。每次检查发送记录的一部分加上待处理操作,在执行前添加往返。读取和工作目录编辑在受保护路径外跳过分类器,因此开销主要来自 shell 命令和网络操作。服务器审查操作作为会话模型请求的一部分的地方,没有单独的分类器调用计数;请参阅[服务器端分类器审查](#server-side-classifier-review)。

560 560 

561 沙箱网络访问不添加按连接分类器请求。分类器在一次审查中与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 检查每个连接对批准列表而不再次调用分类器。561 沙箱网络访问不添加每个连接分类器请求。分类器在一次审查中与命令一起判断[命令命名的主机](/docs/zh-CN/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 根据批准的列表检查每个连接而不再次调用分类器。

562 </Accordion>562 </Accordion>

563</AccordionGroup>563</AccordionGroup>

564 564 

permissions.md +2 −2

Details

764| 设置文件中的 [Hooks](/docs/zh-CN/hooks)、[`env`](/docs/zh-CN/settings-reference#env) 块和辅助命令(如 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper)),以及项目技能的 [hooks](/docs/zh-CN/hooks#hooks-in-skills-and-agents) 和 [`allowed-tools`](/docs/zh-CN/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作区信任在任何会话中都不会限制技能的 `allowed-tools` |764| 设置文件中的 [Hooks](/docs/zh-CN/hooks)、[`env`](/docs/zh-CN/settings-reference#env) 块和辅助命令(如 [`apiKeyHelper`](/docs/zh-CN/settings-reference#apikeyhelper)),以及项目技能的 [hooks](/docs/zh-CN/hooks#hooks-in-skills-and-agents) 和 [`allowed-tools`](/docs/zh-CN/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作区信任在任何会话中都不会限制技能的 `allowed-tools` |

765| `.claude/settings.json` 中的 `permissions.allow` 规则和 `additionalDirectories` | 在您接受信任对话框之前不使用,对话框再次出现列出它们 | 不使用。Claude Code 向 stderr 打印 [`this workspace has not been trusted`](/docs/zh-CN/errors#workspace-has-not-been-trusted) 警告 |765| `.claude/settings.json` 中的 `permissions.allow` 规则和 `additionalDirectories` | 在您接受信任对话框之前不使用,对话框再次出现列出它们 | 不使用。Claude Code 向 stderr 打印 [`this workspace has not been trusted`](/docs/zh-CN/errors#workspace-has-not-been-trusted) 警告 |

766| 项目[子代理](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)中的 Frontmatter hooks、项目 [`@skills-dir` 插件](/docs/zh-CN/plugins/loading#plugins-shared-through-a-repository) 和来自存储库或 `--add-dir` 目录的 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目 | 不使用,不提供对话框 | 不使用 |766| 项目[子代理](/docs/zh-CN/sub-agents#hooks-in-subagent-frontmatter)中的 Frontmatter hooks、项目 [`@skills-dir` 插件](/docs/zh-CN/plugins/loading#plugins-shared-through-a-repository) 和来自存储库或 `--add-dir` 目录的 [`extraKnownMarketplaces`](/docs/zh-CN/settings-reference#extraknownmarketplaces) 条目 | 不使用,不提供对话框 | 不使用 |

767| 来自存储库或 `--add-dir` 目录的子代理 frontmatter 中的内联 [`mcpServers`](/docs/zh-CN/sub-agents#scope-mcp-servers-to-a-subagent)。在 v2.1.238 之前,Claude Code 在两种情况下都加载这些服务器 | 不使用,不提供对话框 | 不使用 |767| 来自存储库或 `--add-dir` 目录的子代理 frontmatter 中的内联 [`mcpServers`](/docs/zh-CN/sub-agents#scope-mcp-servers-to-a-subagent) | 不使用,不提供对话框 | 不使用 |

768| `.mcp.json` 中的服务器,包括存储库[在其自己的设置中批准的](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust)服务器 | Claude Code 在连接它们之前询问您。存储库自己的批准不计数 | 连接而不询问,无论是否批准。SDK 仅在 `settingSources` 包括项目设置时加载它们。同一文件夹中的 `claude mcp list` 仍然将此类服务器报告为待处理 |768| `.mcp.json` 中的服务器,包括存储库[在其自己的设置中批准的](/docs/zh-CN/mcp#project-server-approvals-and-workspace-trust)服务器 | Claude Code 在连接它们之前询问您。存储库自己的批准不计数 | 连接而不询问,无论是否批准。SDK 仅在 `settingSources` 包括项目设置时加载它们。同一文件夹中的 `claude mcp list` 仍然将此类服务器报告为待处理 |

769| `.mcp.json` 中服务器上的 [`headersHelper`](/docs/zh-CN/mcp#trust-a-folder-before-its-headershelper-runs)。在 v2.1.238 之前,Claude Code 在两种情况下都运行辅助程序 | 在您接受信任对话框之前不运行,对话框再次出现命名声明辅助程序的位置。Claude Code 仅使用其静态 `headers` 连接服务器直到那时 | 不运行。Claude Code 仅使用其静态 `headers` 连接服务器,并为每个服务器向 stderr 打印 [`headersHelper not run`](/docs/zh-CN/errors#headershelper-not-run) 行 |769| `.mcp.json` 中服务器上的 [`headersHelper`](/docs/zh-CN/mcp#trust-a-folder-before-its-headershelper-runs) | 在您接受信任对话框之前不运行,对话框再次出现命名声明辅助程序的位置。Claude Code 仅使用其静态 `headers` 连接服务器直到那时 | 不运行。Claude Code 仅使用其静态 `headers` 连接服务器,并为每个服务器向 stderr 打印 [`headersHelper not run`](/docs/zh-CN/errors#headershelper-not-run) 行 |

770 770 

771对于需要此确切文件夹被信任的行,手动信任它:在 `~/.claude.json` 中设置 `projects["<path>"].hasTrustDialogAccepted` 为 `true`,其中 `<path>` 是存储库根目录,或存储库外的文件夹本身。Claude Code 在跳过的子代理 hook 或内联 MCP 服务器的调试日志行中打印确切的键,在跳过的允许规则的 stderr 警告中,以及在跳过的辅助程序的 `headersHelper not run` 行中。771对于需要此确切文件夹被信任的行,手动信任它:在 `~/.claude.json` 中设置 `projects["<path>"].hasTrustDialogAccepted` 为 `true`,其中 `<path>` 是存储库根目录,或存储库外的文件夹本身。Claude Code 在跳过的子代理 hook 或内联 MCP 服务器的调试日志行中打印确切的键,在跳过的允许规则的 stderr 警告中,以及在跳过的辅助程序的 `headersHelper not run` 行中。

772 772 

Details

29每个子命令共享这些退出代码、插件参数和作用域值:29每个子命令共享这些退出代码、插件参数和作用域值:

30 30 

31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。31* **退出代码**:成功时为 `0`,失败时为 `1`。`validate` 为意外错误添加退出 `2`,`eval` 添加 [其部分](#plugin-eval) 中列出的代码。

32* **插件参数**:`<plugin>` 参数是插件 `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。32* **插件参数**:`<plugin>` 参数是插件 `name` 或 `name@marketplace`。当两个市场提供相同的名称时,使用限定形式。`configure` 仅接受限定形式。

33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。33* **作用域**:`--scope` 接受 `user`、`project` 或 `local`,并命名命令写入的设置文件。`update` 也接受 `managed`。

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">


87| 标志 | 描述 |87| 标志 | 描述 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |89| `-s, --scope <scope>` | 安装作用域:`user`、`project` 或 `local`。默认为 `user` |

90| `--config <key=value>` | 设置插件清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本 |90| `--config <key=value>` | 设置插件清单声明的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference) 选项。为每个选项重复该标志。需要 Claude Code v2.1.147 或更高版本。写作 `<server>.<key>` 的键设置 [捆绑 MCP 服务器](/docs/zh-CN/plugins/components#include-a-packaged-mcpb-server) 在其自己的 `user_config` 中声明的设置,用于在插件内部发送的捆绑文件。`<server>.<key>` 形式需要 Claude Code v2.1.285 或更高版本 |

91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。在 Claude Code 会话内运行命令时被忽略,例如从 Bash 工具或 hook。需要 Claude Code v2.1.229 或更高版本 |91| `-y, --yes` | 接受显示的安装命令,无需 `Run this command now?` 提示。在 Claude Code 会话内运行命令时被忽略,例如从 Bash 工具或 hook。需要 Claude Code v2.1.229 或更高版本 |

92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |92| `--accept-command <sha256>` | 接受显示的安装命令,其 `sha256` 之前的 [`--json` 运行](#plugin-json-result) 在 `shownCommand` 中报告,代替 `-y`。不能与 `-y` 组合。请参阅 [接受显示的安装命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更高版本 |

93| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |93| `--json` | 将结果打印为 stdout 最后一行的一个 JSON 对象,而不是人类可读的消息,供脚本使用。请参阅 [JSON 结果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更高版本 |


297| :- | :- |297| :- | :- |

298| `--json` | 将列表打印为 JSON |298| `--json` | 将列表打印为 JSON |

299| `--available` | 也列出你的市场提供但你未安装的插件。没有 `--json` 时无效 |299| `--available` | 也列出你的市场提供但你未安装的插件。没有 `--json` 时无效 |

300| `--data-size [plugin]` | 测量每个已安装插件的 [保存数据目录](#what-an-uninstall-deletes-and-keeps),或仅命名插件的,给定为 `name@marketplace`。没有 `--json` 时无效。如果名称没有安装记录,命令打印 `--data-size names a plugin that is not installed` 并退出 `1`,而不是打印列表。需要 Claude Code v2.1.285 或更高版本 |

300 301 

301Claude Code 按每个插件的加载方式对人类可读的输出进行分组:302Claude Code 按每个插件的加载方式对人类可读的输出进行分组:

302 303 


328| `notes` | array of strings | 插件加载并工作的创作警告 |329| `notes` | array of strings | 插件加载并工作的创作警告 |

329| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |330| `errorDetails` | array of objects | 每个 `errors` 条目一个对象,给出其诊断 `type` 和它引用的名称,例如插件、市场、服务器或文件。需要 Claude Code v2.1.268 或更高版本 |

330| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |331| `noteDetails` | array of objects | 每个 `notes` 条目的相同详细对象。需要 Claude Code v2.1.268 或更高版本 |

332| `hasUserConfig` | boolean | 当插件加载且其清单声明 [`userConfig` 选项](/docs/zh-CN/plugins/manifest-reference#user-configuration) 时存在且为 `true`。对于加载失败的插件不存在,无论其清单声明什么。保存的值永远不包括。需要 Claude Code v2.1.285 或更高版本 |

333| `projectEnabled` | boolean | 项目的共享 `.claude/settings.json` 是否打开插件。仅市场安装。需要 Claude Code v2.1.285 或更高版本 |

334| `dataDirSize` | object | 使用 `--data-size` 时,插件的 [保存数据目录](#what-an-uninstall-deletes-and-keeps) 的大小为 `bytes` 和 `human`;当目录缺失或为空时不存在。仅市场安装。需要 Claude Code v2.1.285 或更高版本 |

335| `dataDirUnreadable` | boolean | 使用 `--data-size` 时,当保存的数据目录存在但无法测量时为 `true`。仅市场安装。需要 Claude Code v2.1.285 或更高版本 |

331 336 

332使用 `--json --available` 时,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装插件对象的数组,其 `available` 字段保存每个未安装的市场插件的一个对象,带有下面的字段。337使用 `--json --available` 时,Claude Code 打印一个对象而不是数组。其 `installed` 字段保存已安装插件对象的数组,其 `available` 字段保存每个未安装的市场插件的一个对象,带有下面的字段。

333 338 


371 376 

372对于未加载的插件,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。377对于未加载的插件,Claude Code 打印 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` 并退出 `1`。

373 378 

379<h3 id="plugin-configure">

380 plugin configure

381</h3>

382 

383显示已安装插件的 [`userConfig`](/docs/zh-CN/plugins/manifest-reference#user-configuration) 选项及其设置的选项,或保存在 stdin 上管道传入的值。需要 Claude Code v2.1.285 或更高版本。

384 

385```bash theme={null}

386claude plugin configure <plugin>

387```

388 

389| 标志 | 描述 |

390| :- | :- |

391| `--values-stdin` | 从 stdin 读取选项值作为单行字符串的 JSON 对象并保存它们。你留出的选项保留其保存的值 |

392| `--json` | 将结果打印为 stdout 上的一个 JSON 对象。不使用 `--values-stdin` 时,对象携带选项的 `schema` 和 `choices`、它们的起始 `inputs` 和 `configured` 和 `unconfigured` 选项名称。使用 `--values-stdin` 时,它携带 `saved` 选项名称和,当它们可以被读回时,`unconfigured` 的名称 |

393 

394不使用标志时,命令列出每个选项,最多三个标签:`required` 或 `optional`,然后 `sensitive` 用于清单声明敏感的选项,然后 `set` 或 `not set`。它不打印保存的值。使用 `--json` 时,输出包括不敏感的选项的保存值,永远不包括敏感的文本。

395 

396要保存值,将它们写入文件作为将选项键映射到字符串值的 JSON 对象,然后在 stdin 上传递文件。将 `formatter@my-marketplace` 替换为你自己的插件的 id,如 `claude plugin list` 所示。此示例从包含 `{"api_url": "https://example.com"}` 的文件 `values.json` 设置一个名为 `api_url` 的选项:

397 

398```bash theme={null}

399claude plugin configure formatter@my-marketplace --values-stdin < values.json

400```

401 

402Claude Code 根据选项的声明类型验证每个值并打印 `Configuration saved. Restart Claude Code to apply it.` 如果你传递清单不声明的键,或失败验证的值,命令不保存任何内容,打印 `Failed to save configuration:` 带原因,并退出 `1`。使用 `--json` 时,拒绝的值也打印 stdout 上的对象,其 `refused` 字段携带 `message` 和,当一个选项有问题时,其 `option` 键。

403 

404传递插件的完整 `name@marketplace` id,如 `claude plugin list` 所示。`configure` 不接受裸 `name`。当没有加载的插件有该 id 时,命令打印 `No installed plugin has the id "<plugin>".` 并退出 `1`。

405 

406对于捆绑 MCP 服务器的设置,请参阅 [`plugin install --config`](#plugin-install) 或 `/plugin` 中的 **Configure** 项。

407 

374<h3 id="plugin-prune">408<h3 id="plugin-prune">

375 plugin prune409 plugin prune

376</h3>410</h3>

Details

868 868 

869服务器从捆绑清单中的 `name` 获取其名称。869服务器从捆绑清单中的 `name` 获取其名称。

870 870 

871捆绑的自己的清单可以在 `user_config` 块中声明服务器需要的用户设置。具有必需设置但没有保存值的捆绑服务器不启动。`/plugin` **Errors** 标签显示 `Bundled MCP server "<name>" was not started: it needs configuration`。

872 

873用户可以通过以下两种方式之一提供值:

874 

875* **在 `/plugin` 中**:在 **Installed** 标签上选择插件并选择 **Configure**

876* **在安装时,从 shell**:将 [`--config <server>.<key>=<value>`](/docs/zh-CN/plugins/cli-reference#plugin-install) 传递给 `claude plugin install`。需要 Claude Code v2.1.285 或更高版本,仅适用于打包在插件内的捆绑。

877 

871对于传输和身份验证,参见 [MCP](/docs/zh-CN/mcp#plugin-provided-mcp-servers)。878对于传输和身份验证,参见 [MCP](/docs/zh-CN/mcp#plugin-provided-mcp-servers)。

872 879 

873<h3 id="lsp-servers">880<h3 id="lsp-servers">


1071 配置对话框何时出现1078 配置对话框何时出现

1072</h3>1079</h3>

1073 1080 

1074对话框仅在交互式 `/plugin` 界面中出现。当用户执行以下任何操作时,它为任何尚未设置的选项打开:1081对话框是交互式 `/plugin` 界面的一部分。当用户执行以下任何操作时,它为任何尚未设置的选项打开:

1075 1082 

1076* 在 `/plugin` 中安装插件1083* 在 `/plugin` 中安装插件

1077* 在会话内运行 `/plugin install <plugin>@<marketplace>`1084* 在会话内运行 `/plugin install <plugin>@<marketplace>`


1079 1086 

1080要在任何时间打开相同的对话框,用户运行 `/plugin configure <plugin>@<marketplace>`。1087要在任何时间打开相同的对话框,用户运行 `/plugin configure <plugin>@<marketplace>`。

1081 1088 

1082`claude plugin install` shell 命令从不提示 `userConfig` 值。要从 shell 设置值,将每个值作为 `--config KEY=VALUE` 传递。当选项保持未设置时,命令打印一个 `userConfig options not yet set` 行,命名两种设置它们的方式。[`userConfig` 对话框从不出现](/docs/zh-CN/plugins/troubleshooting#the-userconfig-dialog-never-appears)引用该行。1089VS Code 扩展的[管理插件对话框](/docs/zh-CN/vs-code#install-plugins)在安装后作为表单请求未设置的选项,插件行上的齿轮图标再次打开包含每个选项的表单。

1090 

1091`claude plugin install` shell 命令从不提示 `userConfig` 值。要从 shell 设置值,在安装时将每个值作为 `--config KEY=VALUE` 传递,或之后将 JSON 对象管道传输到 [`claude plugin configure --values-stdin`](/docs/zh-CN/plugins/cli-reference#plugin-configure)。

1092 

1093当选项保持未设置时,`claude plugin install` 打印一个 `userConfig options not yet set` 行。有关该行的确切文本,请参阅[`userConfig` 对话框从不出现](/docs/zh-CN/plugins/troubleshooting#the-userconfig-dialog-never-appears)。

1083 1094 

1084对于选项字段、每个值存储的位置、组件如何引用保存的值以及哪些字段拒绝 `${user_config.*}`,请参阅[用户配置](/docs/zh-CN/plugins/manifest-reference#user-configuration)。1095对于选项字段、每个值存储的位置、组件如何引用保存的值以及哪些字段拒绝 `${user_config.*}`,请参阅[用户配置](/docs/zh-CN/plugins/manifest-reference#user-configuration)。

1085 1096 

Details

72 摘要的最后一句告诉您插件在此会话中是否可用:72 摘要的最后一句告诉您插件在此会话中是否可用:

73 73 

74 * **Active now**:`Plugin is now active.` 不需要重新加载。74 * **Active now**:`Plugin is now active.` 不需要重新加载。

75 * **Reload needed**:`Run /reload-plugins to activate.` 面板关闭,Claude Code 为您运行该重新加载。如果重新加载会 [invalidate the prompt cache](/docs/zh-CN/prompt-caching#enabling-or-disabling-a-plugin),它会警告并改为保留插件待处理。运行 `/reload-plugins --force` 以激活它,这会花费一个未缓存的请求。75 * **Active, but a server needs setup**:`Plugin is now active.` 后跟 `Its bundled MCP server needs configuration before it can start`。插件的 [bundled MCP server](/docs/zh-CN/plugins/components#include-a-packaged-mcpb-server) 在您设置其选项之前无法启动。在 `/plugin` 的 **Installed** 选项卡上选择插件,然后选择 **Configure** 以设置服务器的选项。

76 * **Load failed**:`The plugin couldn't be loaded`。在 `/plugin` 中打开 **Errors** 选项卡以了解原因,然后查看 [After install: plugin not working](/docs/zh-CN/plugins/troubleshooting#plugin-installed-but-not-working)。76 * **Reload needed**:`Run /reload-plugins to activate.` 面板关闭,Claude Code 为您运行该重新加载。如果重新加载会 [使提示缓存失效](/docs/zh-CN/prompt-caching#enabling-or-disabling-a-plugin),它会警告并改为保留插件待处理。运行 `/reload-plugins --force` 以激活它,这会花费一个未缓存的请求。

77 * **Load failed**:`The plugin couldn't be loaded`。在 `/plugin` 中打开 **Errors** 选项卡以了解原因,然后查看 [安装后:插件不工作](/docs/zh-CN/plugins/troubleshooting#plugin-installed-but-not-working)。

77 </Step>78 </Step>

78 79 

79 <Step title="确认插件有效">80 <Step title="确认插件有效">


248私有市场是您需要凭证才能克隆的存储库中的市场,在 GitHub 或任何其他 git 主机上。您使用与公共市场相同的 `/plugin marketplace add` 或 `claude plugin marketplace add` 命令添加它。Claude Code 使用已在您的机器上的 git 凭证克隆它,从不提示,因此每种连接方式都有要求:249私有市场是您需要凭证才能克隆的存储库中的市场,在 GitHub 或任何其他 git 主机上。您使用与公共市场相同的 `/plugin marketplace add` 或 `claude plugin marketplace add` 命令添加它。Claude Code 使用已在您的机器上的 git 凭证克隆它,从不提示,因此每种连接方式都有要求:

249 250 

250* **HTTPS**:您的 git 凭证助手适用,因此您使用 `gh auth login`、macOS Keychain 或 `git-credential-store` 设置的访问权限有效。交互式提示被抑制,因此您从未认证过的主机失败而不是要求密码。251* **HTTPS**:您的 git 凭证助手适用,因此您使用 `gh auth login`、macOS Keychain 或 `git-credential-store` 设置的访问权限有效。交互式提示被抑制,因此您从未认证过的主机失败而不是要求密码。

251* **SSH**:主机必须已在您的 `known_hosts` 文件中,密钥必须在没有密码短语提示的情况下工作,因为主机指纹和密码短语提示也被抑制。252* **SSH**:主机必须已在您的 `known_hosts` 文件中,密钥必须在没有密码短语提示的情况下工作。如果您的 git 设置在 `GIT_SSH_COMMAND`、`GIT_SSH` 或您的 git 配置的 `core.sshCommand` 中命名 SSH 程序,Claude Code 运行该程序。

252* **GitHub `owner/repo` shorthand**:Claude Code 检查您的 SSH 密钥是否向 `github.com` 认证,如果认证则通过 SSH 克隆,如果不认证则通过 HTTPS 克隆。设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars#variables) 以跳过该检查并始终通过 HTTPS 克隆。253* **GitHub `owner/repo` shorthand**:Claude Code 检查您的 SSH 密钥是否向 `github.com` 认证,如果认证则通过 SSH 克隆,如果不认证则通过 HTTPS 克隆。设置 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/zh-CN/env-vars#variables) 以跳过该检查并始终通过 HTTPS 克隆。

253 254 

254当您运行 `/plugin install`、`/plugin marketplace update` 和 `claude plugin update` 时,相同的凭证适用。255当您运行 `/plugin install`、`/plugin marketplace update` 和 `claude plugin update` 时,相同的凭证适用。


288 289 

289* 输入以按名称或描述过滤。290* 输入以按名称或描述过滤。

290* 按 **Space** 启用或禁用所选插件,按 **f** 将其收藏。291* 按 **Space** 启用或禁用所选插件,按 **f** 将其收藏。

291* 按 **Enter** 打开插件的详细信息。那里的菜单提供 **Disable plugin** 或 **Enable plugin**、**Update now** 和 **Uninstall**。采用设置的插件也提供 **Configure options**。292* 按 **Enter** 打开插件的详细信息。

293 

294插件的详细信息菜单提供 **Disable plugin** 或 **Enable plugin**、**Update now** 和 **Uninstall**。采用设置的插件还会显示两个更多项目,一个插件可以同时显示两者:

295 

296* **Configure options**:当插件的清单声明 [`userConfig` 选项](/docs/zh-CN/plugins/manifest-reference#user-configuration) 时显示。打开这些选项的对话框

297* **Configure**:当插件包含 [bundled MCP server](/docs/zh-CN/plugins/components#include-a-packaged-mcpb-server) 时显示。设置该服务器自己的 `user_config` 设置

292 298 

293该选项卡也可以显示 **Managed** 范围的插件。您的组织通过 [managed settings](/docs/zh-CN/settings#settings-files) 安装了这些,您无法在此处启用、禁用或卸载它们。299该选项卡也可以显示 **Managed** 范围的插件。您的组织通过 [managed settings](/docs/zh-CN/settings#settings-files) 安装了这些,您无法在此处启用、禁用或卸载它们。

294 300 

Details

201 201 

202成功的添加打印 `Successfully added marketplace: <name>`。202成功的添加打印 `Successfully added marketplace: <name>`。

203 203 

204<h3 id="invalid-git-url">

205 `Invalid git URL`

206</h3>

207 

208您添加了市场、安装了插件或从 git 地址运行了更新,命令失败,消息中显示 `Invalid git URL`。

209 

210Claude Code 在运行 git 之前检查每个 git 地址。它拒绝其协议不支持的地址。它也拒绝 git 可能读取为命名不同服务器或文件夹的地址。

211 

212地址后面的文本命名要更改的内容。按照消息说的重写地址并再次运行命令。

213 

214拒绝消息改为说 `is blocked by enterprise policy` 来自您组织的设置。请参阅 [市场源被企业策略阻止](#marketplace-source-is-blocked-by-enterprise-policy)。

215 

204<h3 id="path-does-not-exist">216<h3 id="path-does-not-exist">

205 `Path does not exist: <path>`217 `Path does not exist: <path>`

206</h3>218</h3>


410 422 

411您的 shell 中的 `claude plugin install` 打印不同的消息。对于已在目标作用域安装的插件,它打印 `Plugin "<name>@<marketplace>" is already installed (scope: user)` 并以 0 退出。如果其缓存目录缺失,相同的命令重新下载它。423您的 shell 中的 `claude plugin install` 打印不同的消息。对于已在目标作用域安装的插件,它打印 `Plugin "<name>@<marketplace>" is already installed (scope: user)` 并以 0 退出。如果其缓存目录缺失,相同的命令重新下载它。

412 424 

425<h3 id="plugin-would-share-its-folder">

426 `"<plugin>" was not installed: it would share its folder with "<other>"`

427</h3>

428 

429您通过 `claude plugin install`、`/plugin` 或会话中的安装建议安装了插件,Claude Code 拒绝了它,显示此行或 `would share its saved data with`。

430 

431被拒绝的插件的 id 和已安装的插件的 id 映射到磁盘上的同一文件夹:一旦 `.` 和 `@` 被写成 `-`,它们就是相同的。在 macOS 和 Windows 上,仅在大小写上不同的 id 也映射到同一文件夹。安装两者都会将一个插件的文件放在另一个的文件夹中,所以 Claude Code 拒绝并且已安装的插件保留其文件。

432 

433消息命名了出路:

434 

435* **其他插件已安装**:消息说 `Only one of the two can be installed.` 并命名 `claude plugin uninstall` 命令,或 `/plugin` 中的卸载步骤,删除其他插件。运行它,然后再次安装。对于卸载删除和保留的内容,请参阅 [卸载删除和保留的内容](/docs/zh-CN/plugins/cli-reference#what-an-uninstall-deletes-and-keeps)。

436* **两个 id 在一次安装中到达**,例如插件及其需要的依赖项:没有安装顺序有帮助。只有列出这两个插件的市场的维护者可以通过重命名其中一个来修复它。当两者来自不同的市场时,任一个的维护者都可以。

437 

413<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

414 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`

415</h3>440</h3>


790* **`URL is unset or invalid`**:URL 使用的 `${user_config.*}` 选项未设置。运行 `/plugin configure <plugin>` 设置它815* **`URL is unset or invalid`**:URL 使用的 `${user_config.*}` 选项未设置。运行 `/plugin configure <plugin>` 设置它

791* **`has an invalid MCP url`** 或 **`headersHelper for MCP server '<server>' references ${user_config.*}`**:插件自己的配置有问题。修复您的插件的 MCP 配置中的 `url` 或 `headersHelper`,或如果插件不是您的,向插件的作者报告。`headersHelper` 情况在 [插件命令参考 user\_config](/docs/zh-CN/errors#plugin-command-references-user-config) 下有其自己的条目816* **`has an invalid MCP url`** 或 **`headersHelper for MCP server '<server>' references ${user_config.*}`**:插件自己的配置有问题。修复您的插件的 MCP 配置中的 `url` 或 `headersHelper`,或如果插件不是您的,向插件的作者报告。`headersHelper` 情况在 [插件命令参考 user\_config](/docs/zh-CN/errors#plugin-command-references-user-config) 下有其自己的条目

792 817 

818<h4 id="bundled-mcp-server-name-was-not-started-it-needs-configuration">

819 `Bundled MCP server "<name>" was not started: it needs configuration`

820</h4>

821 

822插件包括服务器作为 [MCPB bundle](/docs/zh-CN/plugins/components#include-a-packaged-mcpb-server),声明 `user_config`,且必需的设置没有保存的值或保存的值失败 bundle 自己的验证,所以 Claude Code 跳过启动服务器。插件的其余部分工作。

823 

824在 `/plugin` 的 **Installed** 选项卡上选择插件并选择 **Configure** 以提供值。保存后,`/plugin` 显示 `Configuration saved.` 并关闭,Claude Code 重新加载插件如 [管理已安装的插件](/docs/zh-CN/plugins/install#manage-installed-plugins) 下所述。服务器在该重新加载应用后启动。在 v2.1.285 之前,Claude Code 跳过服务器而不显示此行。

825 

793<h4 id="server-is-configured-but-never-connects">826<h4 id="server-is-configured-but-never-connects">

794 服务器已配置但永远不连接827 服务器已配置但永远不连接

795</h4>828</h4>


934 967 

935你的插件声明了 `userConfig` 选项,但安装时没有出现配置对话框。968你的插件声明了 `userConfig` 选项,但安装时没有出现配置对话框。

936 969 

937交互式安装显示对话框,shell 命令改为将值作为标志:970安装是否要求这些值取决于你在哪里运行它:

938 971 

939* **在会话中 `/plugin install`,或 `/plugin` 中的 Discover 选项卡**:对话框是此交互式安装的一部分972* **在会话中 `/plugin install`,或 `/plugin` 中的 Discover 选项卡**:对话框是此交互式安装的一部分

973* **VS Code 扩展的 Manage plugins 对话框**:在安装后作为表单要求未设置的选项。在 v2.1.285 之前,在那里安装不显示选项表单,所以使用 `/plugin configure <plugin>@<marketplace>` 从终端会话设置值

940* **在你的 shell 中 `claude plugin install`**:从不提示 `userConfig` 值。它保存你传递的任何 `--config KEY=VALUE` 值,当选项保持未设置时,它打印 `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` 当任何未设置的选项是必需的时,`(M required)` 跟在 `not yet set` 后面。974* **在你的 shell 中 `claude plugin install`**:从不提示 `userConfig` 值。它保存你传递的任何 `--config KEY=VALUE` 值,当选项保持未设置时,它打印 `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` 当任何未设置的选项是必需的时,`(M required)` 跟在 `not yet set` 后面。

941 975 

942如果你从 shell 安装,请使用 `--config` 传递值,每个选项一个标志:976如果你从 shell 安装,请使用 `--config` 传递值,每个选项一个标志:


945claude plugin install my-plugin@my-marketplace --config api_url=https://example.com979claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

946```980```

947 981 

948当每个选项都设置后,安装输出不会包含 `not yet set` 行。要在之后打开对话框,请在会话中运行 `/plugin configure my-plugin@my-marketplace`。982当每个选项都设置后,安装输出不会包含 `not yet set` 行。

983 

984要在之后打开对话框,请在会话中运行 `/plugin configure my-plugin@my-marketplace`。从 shell,[`claude plugin configure`](/docs/zh-CN/plugins/cli-reference#plugin-configure) 显示哪些选项仍未设置,并保存在 stdin 上管道传入的值。它需要 Claude Code v2.1.285 或更高版本。

949 985 

950如果你传递清单未声明的 `--config` 键,插件仍会安装,命令会打印 `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` 后跟插件声明的键。986如果你传递清单未声明的 `--config` 键,插件仍会安装,命令会打印 `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` 后跟插件声明的键。

951 987 

988对于运送声明自己的 `user_config` 的[MCPB 包文件](/docs/zh-CN/plugins/components#include-a-packaged-mcpb-server)的插件,消息改为读取 `isn't declared in this plugin's userConfig or by its bundled MCP servers.`,已知的键包括该服务器的键,写作 `<server>.<key>`。清单通过 URL 引用的包在安装时不会被读取,所以其键不会被列出,消息说在 `/plugin` 中配置它。设置 `<server>.<key>` 键需要 Claude Code v2.1.285 或更高版本。

989 

952<h3 id="claude-plugin-validate-reports-errors">990<h3 id="claude-plugin-validate-reports-errors">

953 `claude plugin validate` 报告错误991 `claude plugin validate` 报告错误

954</h3>992</h3>

Details

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 

86<Note>86<Note>

87 动态选择的间隔和[内置维护提示词](#run-the-built-in-maintenance-prompt)在每个提供商上都有效,并且[特性标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)已关闭。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或关闭获取时,两者都需要 Claude Code v2.1.248 或更高版本。在这些情况下,在早期版本上,没有间隔的提示词在固定的 10 分钟计划上运行,没有提示词的 `/loop` 会打印使用消息。87 动态选择的间隔和[内置维护提示词](#run-the-built-in-maintenance-prompt)在每个提供商上都有效,并且[特性标志获取](/docs/zh-CN/env-vars#features-that-need-feature-flag-fetching)已关闭。在 Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,或关闭获取时,两者都需要 Claude Code v2.1.248 或更高版本。

88</Note>88</Note>

89 89 

90<h3 id="run-the-built-in-maintenance-prompt">90<h3 id="run-the-built-in-maintenance-prompt">

Details

87运行器一次为一个所有者服务。运行器拾取的第一个会话将运行器锁定到该会话的所有者,然后运行器仅为该所有者运行会话,达到配置的容量。所有者是谁取决于会话如何启动:87运行器一次为一个所有者服务。运行器拾取的第一个会话将运行器锁定到该会话的所有者,然后运行器仅为该所有者运行会话,达到配置的容量。所有者是谁取决于会话如何启动:

88 88 

89* **用户启动的会话**:所有者是该用户的帐户。89* **用户启动的会话**:所有者是该用户的帐户。

90* **Claude Tag 频道会话**:Claude 运行它们时没有附加用户帐户,因此所有者是启动会话的 [Claude Tag 代理](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity)。该代理启动的每个频道会话都有相同的所有者,无论谁发送了 Slack 消息,因此当您在 `--capacity` 大于 1 或正 `--drain-grace-sec` 时运行它时,锁定到它的运行器为不同的人启动的会话服务。锁定到用户的运行器永远不会拾取这些,锁定到 Claude Tag 代理的运行器永远不会拾取用户的会话。90* **Claude Tag 频道会话**:Claude 运行它们时没有附加用户帐户,因此所有者是启动会话的 [Claude Tag 代理](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity)。该代理启动的每个频道会话都有相同的所有者,无论谁发送了 Slack 消息,因此当您在 `--capacity` 大于 1 或正 `--drain-grace-sec` 时运行它时,锁定到它的运行器为不同的人启动的会话服务。

91 91 

92因此,最小舰队大小是您期望同时活跃的所有者数量,计算用户和 Claude Tag 代理。92因此,最小舰队大小是您期望同时活跃的所有者数量,计算用户和 Claude Tag 代理。

93 93 

Details

163 跨托管源的每键例外163 跨托管源的每键例外

164</h3>164</h3>

165 165 

166三种类型的键是无合并规则的例外:166这些键是无合并规则的例外:

167 167 

168* **跨源锁定键**:一小组键,例如沙箱允许列表锁,[列在托管设置页面上](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。当任何管理员控制的托管源设置它们时,Claude Code 会遵守它们;用户可写的 HKCU 注册表层被排除。168* **跨源锁定键**:一小组键,例如沙箱允许列表锁,[列在托管设置页面上](/docs/zh-CN/managed-settings#precedence-within-the-managed-tier)。当任何管理员控制的托管源设置它们时,Claude Code 会遵守它们;用户可写的 HKCU 注册表层被排除。

169 169 


171* **`env` 块**:除了与凭证键配对的遥测单元和路由变量(下面涵盖)外,它在管理员控制的源之间按键合并。对于每个环境变量,定义它的最高优先级源获胜,较低的管理员源填充较高源未设置的变量。因此,端点管理的 `env` 条目在服务器管理的配置未设置该变量时应用,或在该变量的缓存服务器值[等待服务器确认而被暂扣](#fetch-and-caching-behavior)期间应用。需要 Claude Code v2.1.223 或更高版本。在 v2.1.223 之前,Claude Code 仅应用选定源的整个 `env` 块。171* **`env` 块**:除了与凭证键配对的遥测单元和路由变量(下面涵盖)外,它在管理员控制的源之间按键合并。对于每个环境变量,定义它的最高优先级源获胜,较低的管理员源填充较高源未设置的变量。因此,端点管理的 `env` 条目在服务器管理的配置未设置该变量时应用,或在该变量的缓存服务器值[等待服务器确认而被暂扣](#fetch-and-caching-behavior)期间应用。需要 Claude Code v2.1.223 或更高版本。在 v2.1.223 之前,Claude Code 仅应用选定源的整个 `env` 块。

172 * **遥测单元**:`OTEL_EXPORTER_OTLP_*` 导出器键、`OTEL_LOG_*` 内容捕获切换、`OTEL_LOGS_EXPORTER` 以及测试版跟踪变量 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循设置其中任何一个的最高源作为一个单元。传递 `otelHeadersHelper` 凭证键的源也声称该单元,但仅在它是选定源时才放置这些变量:未被选定但传递该键的源不贡献其中任何一个,仍然阻止较低源填充它们。无论哪种方式,来自一个源的导出器端点永远不能与来自另一个源的凭证配对。172 * **遥测单元**:`OTEL_EXPORTER_OTLP_*` 导出器键、`OTEL_LOG_*` 内容捕获切换、`OTEL_LOGS_EXPORTER` 以及测试版跟踪变量 `ENABLE_BETA_TRACING_DETAILED` 和 `BETA_TRACING_ENDPOINT` 遵循设置其中任何一个的最高源作为一个单元。传递 `otelHeadersHelper` 凭证键的源也声称该单元,但仅在它是选定源时才放置这些变量:未被选定但传递该键的源不贡献其中任何一个,仍然阻止较低源填充它们。无论哪种方式,来自一个源的导出器端点永远不能与来自另一个源的凭证配对。

173 * **凭证配对的路由**:将路由变量与选定源专用凭证键(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配对的源仅在它赢得该槽位时贡献这些路由变量。173 * **凭证配对的路由**:将路由变量与选定源专用凭证键(例如 `apiKeyHelper` 或 `otelHeadersHelper`)配对的源仅在它赢得该槽位时贡献这些路由变量。

174* **`allowedProviders`**:机器上设置的列表和服务器管理的列表按照[其条目的范围说明](/docs/zh-CN/settings-reference#allowedproviders)所述进行组合。需要 Claude Code v2.1.285 或更高版本

174* **网关登录键**:Claude Code 永远不会从服务器管理的设置中读取 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/zh-CN/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此服务器管理的设置中的值既不适用也不隐藏在 MDM 策略或托管设置文件中设置的值。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior)说明机器上的哪个管理员源提供它们。175* **网关登录键**:Claude Code 永远不会从服务器管理的设置中读取 [`forceLoginGatewayUrl`](/docs/zh-CN/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/zh-CN/settings-reference#gatewayinternalnetworks) 或 [`forceLoginMethod`](/docs/zh-CN/settings-reference#forceloginmethod) 的 `"gateway"` 值,因此服务器管理的设置中的值既不适用也不隐藏在 MDM 策略或托管设置文件中设置的值。[`managedSourcesBehavior` 条目](/docs/zh-CN/settings-reference#managedsourcesbehavior)说明机器上的哪个管理员源提供它们。

175 176 

176<h3 id="fetch-and-caching-behavior">177<h3 id="fetch-and-caching-behavior">

sessions.md +20 −2

Details

29 29 

30`claude --continue` 打开已完成的[后台会话](/docs/zh-CN/agent-view),但不打开仍在运行的会话;打开已完成的后台会话需要 Claude Code v2.1.257 或更高版本。如果您最近的对话是您[移到后台](/docs/zh-CN/agent-view#send-the-session-to-the-background)的会话,并且它仍在那里运行,Claude Code 会以 `Your most recent conversation is running in the background` 和该会话的 ID 退出。从 [`claude agents`](/docs/zh-CN/agent-view#attach-to-a-session) 附加到会话,或运行 `claude --resume` 选择另一个。30`claude --continue` 打开已完成的[后台会话](/docs/zh-CN/agent-view),但不打开仍在运行的会话;打开已完成的后台会话需要 Claude Code v2.1.257 或更高版本。如果您最近的对话是您[移到后台](/docs/zh-CN/agent-view#send-the-session-to-the-background)的会话,并且它仍在那里运行,Claude Code 会以 `Your most recent conversation is running in the background` 和该会话的 ID 退出。从 [`claude agents`](/docs/zh-CN/agent-view#attach-to-a-session) 附加到会话,或运行 `claude --resume` 选择另一个。

31 31 

32<span id="resume-a-running-background-session" />

33 

34当您使用 `claude --resume` 或 `/resume` 恢复的对话属于仍在运行的[后台会话](/docs/zh-CN/agent-view)时,Claude Code 会打开运行中的会话本身。在命令行上使用 `--bg` 时,恢复是[后台调度](/docs/zh-CN/agent-view#from-your-shell)。在 v2.1.285 之前,Claude Code 拒绝并告诉您使用 `claude attach <id>` 打开会话,或首先使用 `claude stop <id>` 停止它。

35 

36* **从您的 shell**:`claude --resume <session>` 在同一终端中对该会话运行 [`claude attach`](/docs/zh-CN/agent-view#attach-to-a-session),而不是加载文本记录本身。您在命令行上传递的提示,如 `claude --resume <session> "check the tests too"`,首先作为其下一轮转到会话,Claude Code 在附加之前打印 `Sent your prompt to the background session (<id>); opening it…`。`claude -p --resume <session> "prompt"` 在终端中输入时执行相同操作,因此 `-p` 不会保持该运行非交互式。

37 

38 当命令行具有以下任何内容时,Claude Code 不会打开会话:

39 

40 * 管道或重定向的输入或输出

41 * 配置会话的标志,例如 `--permission-mode`、`--model` 或 `--settings`

42 * 读取输出的标志,例如 `--output-format json` 或 `--json-schema`

43 * 限制或倒带运行的标志,例如 `--max-turns` 或 `--max-budget-usd`

44 

45 使用这些中的任何一个,或当[代理视图被关闭](/docs/zh-CN/agent-view#turn-off-agent-view)时,Claude Code 不发送任何内容并以状态 1 退出,打印会话在后台运行以及打开它的 `claude attach <id>` 命令,或当它无法确定 ID 时告诉您在 `claude agents` 中找到它。添加 `--fork-session` 以恢复对话的副本。要在您自己的会话中继续对话本身,应用您的标志,运行 `claude stop <id>`,然后重复该命令。

46 

47 以 `/` 或 `!` 开头的提示不会被发送,会话等待您回答问题时的任何提示也不会。在这两种情况下,Claude Code 都不会打开会话,消息包括 `Your prompt was not sent to it` 和原因。

48* **从会话内**:`/resume` 将您当前的对话移到后台,并将此终端附加到运行中的会话,打印 `Opening "<title>", running in the background (<id>)`。在空提示上按 `←` 返回代理视图,这也列出您离开的对话。当当前对话无法移到后台时,例如因为您已附加到后台会话或会话持久性已关闭,`/resume` 会打印 `claude attach` 命令以改为运行。

49 

32您可以从任何目录运行 `claude --resume <session-id>`:Claude Code 首先在当前项目目录及其 git worktrees 中查找 ID,然后在此计算机上的所有其他项目中查找,因此它会找到在其他地方启动或使用 [`/cd`](/docs/zh-CN/commands) 移动的会话。跨项目搜索仅在恰好一个其他项目持有具有该 ID 的消息的文本记录时解析 ID,因此手动复制的重复项会导致 Claude Code 报告未找到,而不是恢复任意副本。如果没有存储的会话与 ID 匹配,Claude Code 会报告 `No conversation found with session ID: <session-id>`。在 v2.1.223 之前,查找在当前项目目录及其 git worktrees 处停止,因此您必须从会话最后工作的目录恢复。50您可以从任何目录运行 `claude --resume <session-id>`:Claude Code 首先在当前项目目录及其 git worktrees 中查找 ID,然后在此计算机上的所有其他项目中查找,因此它会找到在其他地方启动或使用 [`/cd`](/docs/zh-CN/commands) 移动的会话。跨项目搜索仅在恰好一个其他项目持有具有该 ID 的消息的文本记录时解析 ID,因此手动复制的重复项会导致 Claude Code 报告未找到,而不是恢复任意副本。如果没有存储的会话与 ID 匹配,Claude Code 会报告 `No conversation found with session ID: <session-id>`。在 v2.1.223 之前,查找在当前项目目录及其 git worktrees 处停止,因此您必须从会话最后工作的目录恢复。

33 51 

34<h3 id="what-a-resumed-session-restores">52<h3 id="what-a-resumed-session-restores">

35 恢复的会话恢复的内容53 恢复的会话恢复的内容

36</h3>54</h3>

37 55 

38恢复的会话会恢复对话以及保存在其中的状态:56当 Claude Code 从其文本记录加载对话时,恢复的会话会恢复对话以及保存在其中的状态:

39 57 

40* 对话历史:完整历史,包括工具调用和结果。如果工具在上一个进程结束时仍在运行(例如在崩溃中),当您恢复时它不会完成或再次运行。Claude 会看到该调用被标记为在记录其结果之前被切断,并被告知在再次运行之前检查它是否生效,除非设置了 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-CN/env-vars#variables)。在 v2.1.281 之前,Claude Code 会从对话中删除切断的调用或将其显示为您中断的调用。58* 对话历史:完整历史,包括工具调用和结果。如果工具在上一个进程结束时仍在运行(例如在崩溃中),当您恢复时它不会完成或再次运行。Claude 会看到该调用被标记为在记录其结果之前被切断,并被告知在再次运行之前检查它是否生效,除非设置了 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-CN/env-vars#variables)。在 v2.1.281 之前,Claude Code 会从对话中删除切断的调用或将其显示为您中断的调用。

41* 模型:会话继续使用它正在使用的模型。当模型已被停用或不被 `availableModels` 允许时,模型不会被恢复;当在启动时通过 `--model` 标志或 `ANTHROPIC_MODEL` 系列环境变量选择模型时;或在使用特定于提供商的部署 ID 的提供商上,例如 [Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/docs/zh-CN/third-party-integrations);请参阅[模型配置](/docs/zh-CN/model-config#setting-your-model)了解解析顺序。59* 模型:会话继续使用它正在使用的模型。当模型已被停用或不被 `availableModels` 允许时,模型不会被恢复;当在启动时通过 `--model` 标志或 `ANTHROPIC_MODEL` 系列环境变量选择模型时;或在使用特定于提供商的部署 ID 的提供商上,例如 [Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry](/docs/zh-CN/third-party-integrations);请参阅[模型配置](/docs/zh-CN/model-config#setting-your-model)了解解析顺序。


51 恢复时的权限模式69 恢复时的权限模式

52</h4>70</h4>

53 71 

54Claude Code 启动恢复会话的权限模式取决于您如何恢复:72Claude Code 启动恢复会话的权限模式取决于您如何恢复。下面的情况适用于 Claude Code 从其文本记录加载对话时;当您[打开仍在运行的后台会话](#resume-a-running-background-session)时,该会话保持它所在的权限模式。

55 73 

56* 终端:`claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(当名称与一个会话匹配时),不带 `-p`。Claude Code 恢复会话所在的权限模式,除了表中的情况。传递 `--permission-mode` 或 `--dangerously-skip-permissions` 以覆盖恢复的模式。74* 终端:`claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(当名称与一个会话匹配时),不带 `-p`。Claude Code 恢复会话所在的权限模式,除了表中的情况。传递 `--permission-mode` 或 `--dangerously-skip-permissions` 以覆盖恢复的模式。

57* 非交互式:`claude -p --resume` 或 `claude -p --continue`。Claude Code 在新 `claude -p` 运行会启动的权限模式中启动运行,除了在[下面的条件](#resume-in-plan-mode-with-p)下以计划模式结束的会话在计划模式中恢复。75* 非交互式:`claude -p --resume` 或 `claude -p --continue`。Claude Code 在新 `claude -p` 运行会启动的权限模式中启动运行,除了在[下面的条件](#resume-in-plan-mode-with-p)下以计划模式结束的会话在计划模式中恢复。

Details

599| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | 替换可以推送消息的[频道插件](/docs/zh-CN/channels#restrict-which-channel-plugins-can-run)的默认允许列表 | 插件和技能 | Managed |

600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-CN/hooks)可以针对的 URL | Hooks 和自动化 | Any file |

601| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | 允许列表用户可以添加的[MCP 服务器](/docs/zh-CN/mcp) | MCP | Any file |

602| [`allowedProviders`](#allowedproviders) | 限制[API 提供商](/docs/zh-CN/third-party-integrations)机器可以使用的 | 身份验证和提供商 | Managed |

602| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 仅运行您的组织部署的[hooks](/docs/zh-CN/hooks) | Hooks 和自动化 | Managed |603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 仅运行您的组织部署的[hooks](/docs/zh-CN/hooks) | Hooks 和自动化 | Managed |

603| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | 使托管的 [MCP](/docs/zh-CN/mcp) 允许列表成为唯一适用的列表 | MCP | Managed |604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | 使托管的 [MCP](/docs/zh-CN/mcp) 允许列表成为唯一适用的列表 | MCP | Managed |

604| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | 使[托管设置](/docs/zh-CN/managed-settings)成为[权限规则](/docs/zh-CN/permissions#managed-settings)的唯一设置来源 | 权限设置 | Managed |605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | 使[托管设置](/docs/zh-CN/managed-settings)成为[权限规则](/docs/zh-CN/permissions#managed-settings)的唯一设置来源 | 权限设置 | Managed |


3675 `spinnerTipsOverride`3676 `spinnerTipsOverride`

3676</h3>3677</h3>

3677 3678 

3678将您自己的提示添加到 Claude Code 在 Claude 工作时显示的[加载动画提示](#spinnertipsenabled),或用您的提示替换内置提示。Claude Code 将您的提示放在与内置提示相同的轮换中:它选择未显示时间最长的提示,跳过仍在冷却期中的提示,并通过优先级打破平局。3679将您自己的提示添加到 Claude Code 在 Claude 工作时显示的[加载动画提示](#spinnertipsenabled),或用您的提示替换内置提示。Claude Code 将您的提示放在与内置提示相同的轮换中。

3679 3680 

3680如果您将 [`spinnerTipsEnabled`](#spinnertipsenabled) 设置为 `false`,Claude Code 会隐藏所有提示,包括您的。3681如果您将 [`spinnerTipsEnabled`](#spinnertipsenabled) 设置为 `false`,Claude Code 会隐藏所有提示,包括您的。

3681 3682 


3683* **Type**: 对象,包含 `tips`、`tipsFile`、`label` 和 `excludeDefault` 字段,每个都是可选的3684* **Type**: 对象,包含 `tips`、`tipsFile`、`label` 和 `excludeDefault` 字段,每个都是可选的

3684* **Default**: unset,所以 Claude Code 仅显示内置提示3685* **Default**: unset,所以 Claude Code 仅显示内置提示

3685 3686 

3686提示对象、`tipsFile`、`label` 和 Scope 行的规则(项目和本地设置仅贡献纯字符串)需要 Claude Code v2.1.247 或更高版本。在较早的版本上,项目或本地文件的 `excludeDefault` 也适用。3687提示对象、`tipsFile`、`label` 和 Scope 行的规则(项目和本地设置仅贡献纯字符串)需要 Claude Code v2.1.247 或更高版本。

3687 3688 

3688每个 `tips` 条目是纯字符串或具有这些字段的对象:3689每个 `tips` 条目是纯字符串或具有这些字段的对象:

3689 3690 


5653 5654 

5654* **作用域**: [`任何文件`](#scopes)5655* **作用域**: [`任何文件`](#scopes)

5655* **类型**: 布尔值5656* **类型**: 布尔值

5656 * `true`: Claude Code 为该文件适用的每个会话关闭 Artifact 工具,且没有其他文件将其打开。在 v2.1.242 之前,优先级较高的文件可能会覆盖较低文件的 `true`,而不是该键充当锁定5657 * `true`: Claude Code 为该文件适用的每个会话关闭 Artifact 工具,且没有其他文件将其打开

5657 * `false`: 被忽略;要保持工具打开,请删除该键5658 * `false`: 被忽略;要保持工具打开,请删除该键

5658* **默认值**: 未设置,因此工具遵循你账户的[可用性](/docs/zh-CN/artifacts#availability)5659* **默认值**: 未设置,因此工具遵循你账户的[可用性](/docs/zh-CN/artifacts#availability)

5659* **每个会话的覆盖**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-CN/env-vars) 设置为 `1` 会为一个会话关闭工具5660* **每个会话的覆盖**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-CN/env-vars) 设置为 `1` 会为一个会话关闭工具


5740}5741}

5741```5742```

5742 5743 

5743当除你自己的用户设置之外的源保持工具关闭时,Claude Code 在 `/config` 中隐藏**Artifacts** 行,因为在那里打开它不会改变任何东西。[禁用 artifacts](/docs/zh-CN/artifacts#disable-artifacts) 列出了关闭工具的每种方式。在 v2.1.242 之前,Claude Code 在项目和本地设置中忽略此键,[优先级堆栈](/docs/zh-CN/settings#settings-precedence)中较高的文件可能会在较低文件的关闭上打开工具。5744当除你自己的用户设置之外的源保持工具关闭时,Claude Code 在 `/config` 中隐藏**Artifacts** 行,因为在那里打开它不会改变任何东西。[禁用 artifacts](/docs/zh-CN/artifacts#disable-artifacts) 列出了关闭工具的每种方式。

5744 5745 

5745<h3 id="inputneedednotifenabled">5746<h3 id="inputneedednotifenabled">

5746 `inputNeededNotifEnabled`5747 `inputNeededNotifEnabled`


5879 5880 

5880通过辅助脚本提供凭证,对于组织,强制使用登录方法或组织。请参阅[身份验证](/docs/zh-CN/authentication)。5881通过辅助脚本提供凭证,对于组织,强制使用登录方法或组织。请参阅[身份验证](/docs/zh-CN/authentication)。

5881 5882 

5883<h3 id="allowedproviders">

5884 `allowedProviders`

5885</h3>

5886 

5887列出机器可以通过其到达 Claude 的服务,例如 Anthropic API、Amazon Bedrock 或 LLM 网关。未列出的提供商上的会话在启动时、登录时以及下次联系 API 时被拒绝,因此在会话中期切换到未列出的提供商也被拒绝。[拒绝消息](/docs/zh-CN/errors#managed-settings-dont-allow-this-api-provider)会命名选择提供商的内容和继续的步骤。需要 Claude Code v2.1.285 或更高版本。

5888 

5889* **Scope**: [`Managed`](#scopes)。机器自身管理员源设置的列表、MDM 策略和托管设置文件在服务器托管设置也提供一个列表时继续应用:会话随后只能使用两个列表上的提供商,因此服务器托管列表可以缩小机器允许的范围但永远不能扩大它。哪个机器源的 `allowedProviders` 计数遵循[Claude Code 如何组合托管源](/docs/zh-CN/managed-settings#how-claude-code-combines-managed-sources)。通过仅服务器托管设置传递的列表仅到达[获取服务器托管设置](/docs/zh-CN/server-managed-settings#platform-availability)的会话。

5890* **Type**: 字符串数组,每个都是以下之一:

5891 * `"anthropic"`:Anthropic 自有主机上的 Anthropic API,通过 claude.ai 或 Console 登录或 API 密钥。将其与 [`forceLoginMethod`](#forceloginmethod) 或 [`forceLoginOrgUUID`](#forceloginorguuid) 配对以也限制登录

5892 * `"bedrock"`:[Amazon Bedrock](/docs/zh-CN/amazon-bedrock)

5893 * `"vertex"`:[Google Cloud 的 Agent Platform](/docs/zh-CN/google-vertex-ai),以前称为 Vertex AI

5894 * `"foundry"`:[Microsoft Foundry](/docs/zh-CN/microsoft-foundry)

5895 * `"anthropicAws"`:[AWS 上的 Claude Platform](/docs/zh-CN/claude-platform-on-aws)

5896 * `"mantle"`:Amazon Bedrock [Mantle 端点](/docs/zh-CN/amazon-bedrock#use-the-mantle-endpoint)。[在 Invoke API 旁边运行 Mantle](/docs/zh-CN/amazon-bedrock#run-mantle-alongside-the-invoke-api) 的会话使用两个提供商,因此将 `"bedrock"` 和 `"mantle"` 一起列出

5897 * `"customEndpoint"`:Anthropic API 或云提供商的 API 发送到另一个主机,例如由 `ANTHROPIC_BASE_URL` 命名的 [LLM 网关](/docs/zh-CN/llm-gateway)、提供商的 `ANTHROPIC_*_BASE_URL` 变量或不是裸资源名称的 `ANTHROPIC_FOUNDRY_RESOURCE` 值。Claude Code 仅为托管 [`env`](#env) 块固定的确切值允许它

5898 * `"gateway"`:[Cloud 网关](/docs/zh-CN/claude-apps-gateway)登录

5899* **Default**: 未设置,因此可以使用任何提供商

5900 

5901```json managed-settings.json theme={null}

5902{

5903 "allowedProviders": ["anthropic", "bedrock"]

5904}

5905```

5906 

5907每个云提供商的条目意味着该提供商自己的服务,包括其区域、FIPS 和私有端点。

5908 

5909Claude Code 不识别为提供商名称的条目被删除并报告,列表的其余部分保持强制执行。使用空列表,或其每个条目都无法识别的列表,Claude Code 拒绝每个提供商并不在机器上启动。

5910 

5911<h4 id="endpoints-that-need-a-pin-in-managed-env">

5912 需要在托管 `env` 中固定的端点

5913</h4>

5914 

5915固定是在托管 [`env`](#env) 块中设置的端点变量的值。当会话将提供商的流量发送到该提供商自己的服务以外的地方时,Claude Code 仅在会话的值与固定值相同时允许它。这些端点需要一个:

5916 

5917* **`"customEndpoint"` 会话**:命名主机的变量,例如 `ANTHROPIC_BASE_URL`

5918* **Amazon Bedrock**:AWS SDK 的 `AWS_ENDPOINT_URL`、`AWS_ENDPOINT_URL_BEDROCK` 和 `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` 变量当它们指向 Bedrock 自己的服务之外时。会话保持在 `"bedrock"` 下而不是 `"customEndpoint"`

5919* **网关登录的 URL**:会话保持在 `"gateway"` 下,[`forceLoginGatewayUrl`](#forcelogingatewayurl) 也计为固定

5920 

5921哪些 `env` 块计为固定取决于列表设置的位置:

5922 

5923* **机器上的管理员源设置列表**:仅机器自身管理员源的 `env` 块计为固定

5924* **仅服务器托管设置设置列表**:这些服务器托管设置中的 `env` 值也计为固定

5925 

5926列表不判断云提供商的凭证和租赁变量或网络路径,例如 `HTTPS_PROXY` 和证书设置。在托管 `env` 块中为舰队设置这些。

5927 

5882<h3 id="apikeyhelper">5928<h3 id="apikeyhelper">

5883 `apiKeyHelper`5929 `apiKeyHelper`

5884</h3>5930</h3>


6401| :- | :- | :- |6447| :- | :- | :- |

6402| Lists | 合并来自每个源的条目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他列表密钥 |6448| Lists | 合并来自每个源的条目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他列表密钥 |

6403| Locks | 应用任何源设置的最严格值。当没有源设置严格值时,仅从最高源应用较宽松的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布尔值或枚举锁 |6449| Locks | 应用任何源设置的最严格值。当没有源设置严格值时,仅从最高源应用较宽松的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布尔值或枚举锁 |

6404| Restriction allowlists | 从设置它的最高源整体取值,不从较低源添加条目。当最高源未设置时,从下一个较低源整体取值 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 链 |6450| Restriction allowlists | 从设置它的最高源整体取值,不从较低源添加条目。当最高源未设置时,从下一个较低源整体取值 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`allowedProviders`](#allowedproviders)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 链 |

6405| Values taken whole | 从设置它的最高源整体取值,不合并来自较低源的条目或字段。当最高源未设置时,从下一个较低源整体取值 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |6451| Values taken whole | 从设置它的最高源整体取值,不合并来自较低源的条目或字段。当最高源未设置时,从下一个较低源整体取值 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |

6406| Provided MCP servers | 合并来自每个源的服务器名称。当两个源设置相同名称时,应用较高源的整个条目 | [`managedMcpServers`](#managedmcpservers) |6452| Provided MCP servers | 合并来自每个源的服务器名称。当两个源设置相同名称时,应用较高源的整个条目 | [`managedMcpServers`](#managedmcpservers) |

6407| Read from the highest-priority source only | 仅从携带策略密钥的最高优先级源读取密钥,因此即使最高源未设置任何值,较低源的值也会被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |6453| Read from the highest-priority source only | 仅从携带策略密钥的最高优先级源读取密钥,因此即使最高源未设置任何值,较低源的值也会被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |


6415* **[`policyHelper`](#policyhelper)**: Claude Code 仅在携带策略密钥的最高源是 MDM 策略或托管设置文件时才接受它,因此在服务器管理的设置下它不适用。6461* **[`policyHelper`](#policyhelper)**: Claude Code 仅在携带策略密钥的最高源是 MDM 策略或托管设置文件时才接受它,因此在服务器管理的设置下它不适用。

6416* **[`modelOverrides`](#modeloverrides)**: 与 `availableModels` 配对。Claude Code 从设置它的最高源取值 `modelOverrides`,除非较高源设置 `availableModels` 而不设置 `modelOverrides`。在这种情况下,它忽略来自每个源的 `modelOverrides`。6462* **[`modelOverrides`](#modeloverrides)**: 与 `availableModels` 配对。Claude Code 从设置它的最高源取值 `modelOverrides`,除非较高源设置 `availableModels` 而不设置 `modelOverrides`。在这种情况下,它忽略来自每个源的 `modelOverrides`。

6417* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**: Claude Code 从不从服务器管理的设置读取它们中的任何一个,因此那里的值既不适用也不隐藏在 MDM 策略或托管设置文件中设置的值。在机器上的管理员源中,仅携带策略密钥的最高排名源提供它们,无论是否也存在服务器管理的设置。6463* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**: Claude Code 从不从服务器管理的设置读取它们中的任何一个,因此那里的值既不适用也不隐藏在 MDM 策略或托管设置文件中设置的值。在机器上的管理员源中,仅携带策略密钥的最高排名源提供它们,无论是否也存在服务器管理的设置。

6464* **[`allowedProviders`](#allowedproviders)**: 在表格的规则之后,机器自己的列表仍然限制结果,如其条目的 Scope 注释所述。

6418 6465 

6419要确认机器上合并了哪些源,请运行 `/status` 并[读取 `Setting sources` 行](/docs/zh-CN/managed-settings#read-the-source-in-/status)。6466要确认机器上合并了哪些源,请运行 `/status` 并[读取 `Setting sources` 行](/docs/zh-CN/managed-settings#read-the-source-in-/status)。

6420 6467 

skills.md +1 −1

Details

740 740 

741* **工作目录**:Claude Code 在会话 shell 的当前工作目录中运行每个命令。当 Claude 运行 `cd` 时,该目录会移动。在必须每次都以相同方式解析的路径中使用 [`${CLAUDE_SKILL_DIR}` 或 `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions)。741* **工作目录**:Claude Code 在会话 shell 的当前工作目录中运行每个命令。当 Claude 运行 `cd` 时,该目录会移动。在必须每次都以相同方式解析的路径中使用 [`${CLAUDE_SKILL_DIR}` 或 `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions)。

742* **stderr**:使用默认的 `bash` shell,Claude Code 将 stderr 合并到 stdout。命令写入 stderr 的任何内容都会出现在注入的文本中。742* **stderr**:使用默认的 `bash` shell,Claude Code 将 stderr 合并到 stdout。命令写入 stderr 的任何内容都会出现在注入的文本中。

743* **超时**:每个命令在 Bash 工具的默认 2 分钟[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)下运行。当 Bash 工具[将超时的命令移到后台](/docs/zh-CN/tools-reference#background-commands)时,技能仍然呈现。注入的文本报告移动并命名后台任务和收集命令输出的文件。当命令是 Bash 工具从不自动后台化的命令之一时,Claude Code 在超时时杀死它。该失败[中止调用](#when-an-injected-command-fails)。743* **超时**:每个命令在 Bash 工具的默认 2 分钟[超时](/docs/zh-CN/tools-reference#timeout-and-output-limits)下运行。当 Bash 工具[将超时的命令移到后台](/docs/zh-CN/tools-reference#foreground-commands-that-move-to-the-background)时,技能仍然呈现。注入的文本报告移动并命名后台任务和收集命令输出的文件。当命令是 Bash 工具从不自动后台化的命令之一时,Claude Code 在超时时杀死它。该失败[中止调用](#when-an-injected-command-fails)。

744* **输出大小**:超过 Bash 工具内联上限的输出作为文件路径加短预览到达,而不是截断的文本。[输出限制](/docs/zh-CN/tools-reference#output-limits)涵盖上限以及如何调整每个边界。744* **输出大小**:超过 Bash 工具内联上限的输出作为文件路径加短预览到达,而不是截断的文本。[输出限制](/docs/zh-CN/tools-reference#output-limits)涵盖上限以及如何调整每个边界。

745 745 

746PowerShell 工具对它运行的命令应用相同的超时、后台化和输出上限行为。有关其具体信息,请参阅 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool)部分。746PowerShell 工具对它运行的命令应用相同的超时、后台化和输出上限行为。有关其具体信息,请参阅 [PowerShell 工具](/docs/zh-CN/tools-reference#powershell-tool)部分。

statusline.md +7 −7

Details

20这是一个[多行状态行](#display-multiple-lines)的示例,它在第一行显示 git 信息,在第二行显示颜色编码的上下文栏。20这是一个[多行状态行](#display-multiple-lines)的示例,它在第一行显示 git 信息,在第二行显示颜色编码的上下文栏。

21 21 

22<Frame>22<Frame>

23 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="一个多行状态行,显示第一行上的模型名称、目录、git 分支,第二行上的上下文使用进度条、成本和持续时间" width="776" height="212" data-path="images/statusline-multiline.png" />23 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="一个多行状态行,显示第一行上的模型名称、目录、git 分支,第二行上的上下文使用进度条、成本和持续时间" width="1224" height="262" data-path="images/statusline-multiline.png" />

24</Frame>24</Frame>

25 25 

26本页面介绍了[设置基本状态行](#set-up-a-status-line),解释了[数据如何从 Claude Code 流向你的脚本](#how-status-lines-work),列出了[你可以显示的所有字段](#available-data),并提供了[常见模式的现成示例](#examples),如 git 状态、成本跟踪和进度条。26本页面介绍了[设置基本状态行](#set-up-a-status-line),解释了[数据如何从 Claude Code 流向你的脚本](#how-status-lines-work),列出了[你可以显示的所有字段](#available-data),并提供了[常见模式的现成示例](#examples),如 git 状态、成本跟踪和进度条。


93这些示例使用 Bash 脚本,在 macOS 和 Linux 上工作。在 Windows 上,请参阅[Windows 配置](#windows-configuration)了解 PowerShell 和 Git Bash 示例。93这些示例使用 Bash 脚本,在 macOS 和 Linux 上工作。在 Windows 上,请参阅[Windows 配置](#windows-configuration)了解 PowerShell 和 Git Bash 示例。

94 94 

95<Frame>95<Frame>

96 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-quickstart.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=696445e59ca0059213250651ad23db6b" alt="一个状态行,显示模型名称、目录和上下文百分比" width="726" height="164" data-path="images/statusline-quickstart.png" />96 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-quickstart.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=88a7eab9c1038dd098ee8e284d96b7e6" alt="一个状态行,显示模型名称、目录和上下文百分比" width="1224" height="224" data-path="images/statusline-quickstart.png" />

97</Frame>97</Frame>

98 98 

99<Steps>99<Steps>


444显示当前模型和上下文窗口使用情况,带有可视进度条。每个脚本从 stdin 读取 JSON,提取 `used_percentage` 字段,并构建一个 10 字符的栏,其中填充的块(▓)代表使用情况:444显示当前模型和上下文窗口使用情况,带有可视进度条。每个脚本从 stdin 读取 JSON,提取 `used_percentage` 字段,并构建一个 10 字符的栏,其中填充的块(▓)代表使用情况:

445 445 

446<Frame>446<Frame>

447 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-context-window-usage.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=15b58ab3602f036939145dde3165c6f7" alt="一个状态行,显示模型名称和带有百分比的进度条" width="448" height="152" data-path="images/statusline-context-window-usage.png" />447 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-context-window-usage.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f3918a549912dc47e90f2b69e68bc847" alt="一个状态行,显示模型名称和带有百分比的进度条" width="1224" height="224" data-path="images/statusline-context-window-usage.png" />

448</Frame>448</Frame>

449 449 

450<CodeGroup>450<CodeGroup>


513显示 git 分支,带有暂存和修改文件的颜色编码指示器。此脚本使用[ANSI 转义码](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)表示终端颜色:`\033[32m` 是绿色,`\033[33m` 是黄色,`\033[0m` 重置为默认值。513显示 git 分支,带有暂存和修改文件的颜色编码指示器。此脚本使用[ANSI 转义码](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)表示终端颜色:`\033[32m` 是绿色,`\033[33m` 是黄色,`\033[0m` 重置为默认值。

514 514 

515<Frame>515<Frame>

516 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-git-context.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e656f34f90d1d9a1d0e220988914345f" alt="一个状态行,显示模型、目录、git 分支和暂存和修改文件的彩色指示器" width="742" height="178" data-path="images/statusline-git-context.png" />516 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-git-context.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f13c190724d9ec7188c17cd2f98b7bf4" alt="一个状态行,显示模型、目录、git 分支和暂存和修改文件的彩色指示器" width="1224" height="224" data-path="images/statusline-git-context.png" />

517</Frame>517</Frame>

518 518 

519每个脚本检查当前目录是否是 git 存储库,计算暂存和修改文件,并显示颜色编码的指示器:519每个脚本检查当前目录是否是 git 存储库,计算暂存和修改文件,并显示颜色编码的指示器:


611每个脚本将成本格式化为货币并将毫秒转换为分钟和秒:611每个脚本将成本格式化为货币并将毫秒转换为分钟和秒:

612 612 

613<Frame>613<Frame>

614 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-cost-tracking.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e3444a51fe6f3440c134bd5f1f08ad29" alt="一个状态行,显示模型名称、会话成本和持续时间" width="588" height="180" data-path="images/statusline-cost-tracking.png" />614 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-cost-tracking.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=925f7024c3b38be0f0eca63564bfb52f" alt="一个状态行,显示模型名称、会话成本和持续时间" width="1224" height="224" data-path="images/statusline-cost-tracking.png" />

615</Frame>615</Frame>

616 616 

617<CodeGroup>617<CodeGroup>


672你的脚本可以输出多行来创建更丰富的显示。672你的脚本可以输出多行来创建更丰富的显示。

673 673 

674<Frame>674<Frame>

675 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="一个多行状态行,显示第一行上的模型名称、目录、git 分支,第二行上的上下文使用进度条、成本和持续时间" width="776" height="212" data-path="images/statusline-multiline.png" />675 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="一个多行状态行,显示第一行上的模型名称、目录、git 分支,第二行上的上下文使用进度条、成本和持续时间" width="1224" height="262" data-path="images/statusline-multiline.png" />

676</Frame>676</Frame>

677 677 

678此示例结合了几种技术:基于阈值的颜色(70% 以下为绿色,70-89% 为黄色,90%+ 为红色)、进度条和 git 分支信息。每个 `print` 或 `echo` 语句创建单独的行:678此示例结合了几种技术:基于阈值的颜色(70% 以下为绿色,70-89% 为黄色,90%+ 为红色)、进度条和 git 分支信息。每个 `print` 或 `echo` 语句创建单独的行:


781此示例创建指向你的 GitHub 存储库的可点击链接。按住 Cmd(macOS)或 Ctrl(Windows/Linux)并单击以在浏览器中打开链接。781此示例创建指向你的 GitHub 存储库的可点击链接。按住 Cmd(macOS)或 Ctrl(Windows/Linux)并单击以在浏览器中打开链接。

782 782 

783<Frame>783<Frame>

784 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-links.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=4bcc6e7deb7cf52f41ab85a219b52661" alt="一个状态行,显示指向 GitHub 存储库的可点击链接" width="726" height="198" data-path="images/statusline-links.png" />784 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-links.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=4778a144a28cb498c99d5fa018bb374a" alt="一个状态行,显示指向 GitHub 存储库的可点击链接" width="1224" height="224" data-path="images/statusline-links.png" />

785</Frame>785</Frame>

786 786 

787每个脚本获取 git 远程 URL,将 SSH 格式转换为 HTTPS,并将存储库名称包装在 OSC 8 转义码中。Bash 版本使用 `printf '%b'`,它比 `echo -e` 更可靠地跨不同 shell 解释反斜杠转义:787每个脚本获取 git 远程 URL,将 SSH 格式转换为 HTTPS,并将存储库名称包装在 OSC 8 转义码中。Bash 版本使用 `printf '%b'`,它比 `echo -e` 更可靠地跨不同 shell 解释反斜杠转义:

Details

253 253 

254安全团队可以配置托管权限,定义 Claude Code 允许和不允许做什么,这不能被本地配置覆盖。[了解更多](/docs/zh-CN/security)。254安全团队可以配置托管权限,定义 Claude Code 允许和不允许做什么,这不能被本地配置覆盖。[了解更多](/docs/zh-CN/security)。

255 255 

256要限制托管机器可以使用的这些部署选项,请在托管设置中设置 [`allowedProviders`](/docs/zh-CN/settings-reference#allowedproviders)。例如,`["bedrock"]` 仅允许 Amazon Bedrock;同时启用 Mantle 端点的 Bedrock 队列也列出 `"mantle"`。该条目说明哪些端点变量还需要托管 `env` 固定。需要 Claude Code v2.1.285 或更高版本。

257 

256<h3 id="leverage-mcp-for-integrations">258<h3 id="leverage-mcp-for-integrations">

257 利用 MCP 进行集成259 利用 MCP 进行集成

258</h3>260</h3>

Details

174* `BASH_DEFAULT_TIMEOUT_MS` — 当 Claude 不传递超时时的默认值;开箱即用为两分钟174* `BASH_DEFAULT_TIMEOUT_MS` — 当 Claude 不传递超时时的默认值;开箱即用为两分钟

175* `BASH_MAX_TIMEOUT_MS` — 使用默认值,设置上限以限制 Claude 请求的任何内容:有效上限是两者中较大的,开箱即用为十分钟175* `BASH_MAX_TIMEOUT_MS` — 使用默认值,设置上限以限制 Claude 请求的任何内容:有效上限是两者中较大的,开箱即用为十分钟

176 176 

177对于 Claude 在后台启动的命令,`timeout` 改为设置命令在那里可以运行多长时间,具有在[后台命令](#background-commands)下描述的单独默认值和最大值。[PowerShell 工具](#powershell-tool)遵循相同的超时规则并读取相同的两个变量。177对于 Claude 在后台启动的命令,`timeout` 改为设置命令在那里可以运行多长时间,具有在[后台命令时间限制](#time-limit-for-background-commands)下描述的单独默认值和最大值。[PowerShell 工具](#powershell-tool)遵循相同的超时规则并读取相同的两个变量。

178 178 

179<h4 id="output-limits">179<h4 id="output-limits">

180 输出限制180 输出限制


199 199 

200对于长时间运行的进程(例如开发服务器或监视构建),Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在您从那里停止一个后,或从连接的客户端(例如桌面应用)停止,Claude 继续而不是等待。如果子代理启动了命令,则是该子代理继续。200对于长时间运行的进程(例如开发服务器或监视构建),Claude 可以设置 `run_in_background: true` 以将命令作为后台任务启动并在其运行时继续工作。使用 `/tasks` 列出和停止后台任务。在您从那里停止一个后,或从连接的客户端(例如桌面应用)停止,Claude 继续而不是等待。如果子代理启动了命令,则是该子代理继续。

201 201 

202[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的命令在该子代理的运行结束时停止,无论它是完成、失败还是被中断。主对话或后台子代理启动的命令在最终响应后继续运行,直到它退出、被停止或达到其时间限制。在使用 `-p` 标志的非交互模式下,[后台命令在运行的最终结果后不久结束](/docs/zh-CN/headless#background-tasks-at-exit)。202<h4 id="when-a-background-command-stops">

203 后台命令何时停止

204</h4>

205 

206[前台子代理](/docs/zh-CN/sub-agents#run-subagents-in-foreground-or-background)启动的命令在该子代理的运行结束时停止,无论它是完成、失败还是被中断。主对话或后台子代理启动的命令在最终响应后继续运行,直到它退出、被停止或达到其[时间限制](#time-limit-for-background-commands)。在使用 `-p` 标志的非交互模式下,[后台命令在运行的最终结果后不久结束](/docs/zh-CN/headless#background-tasks-at-exit)。

207 

208<h4 id="time-limit-for-background-commands">

209 后台命令的时间限制

210</h4>

203 211 

204后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:212后台 Bash 和 PowerShell 命令有时间限制,从命令进入后台的时刻开始计算:

205 213 

206* Claude 在后台启动的命令获得 30 分钟,或 Claude 使用 `run_in_background` 传递的 `timeout`,最多 2 小时214* Claude 在后台启动的命令获得 30 分钟,或 Claude 使用 `run_in_background` 传递的 `timeout`,最多 2 小时

207* 在前台启动然后移到后台的命令,例如使用 `Ctrl+B` 或在其超时时,从移动时获得 30 分钟215* 在前台启动然后移到后台的命令,例如使用 `Ctrl+B` 或在其超时时,从移动时获得 30 分钟

208 216 

217当后台命令达到其时间限制时,Claude Code 停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动命令,如果工作仍然需要的话。停止通知读作 `Background command "<description>" was stopped after reaching its background time limit`。

218 

219<h4 id="raise-the-time-limit-for-background-commands">

220 提高后台命令的时间限制

221</h4>

222 

209两个[环境变量](/docs/zh-CN/env-vars)提高这些限制,对于 Bash 和 PowerShell 命令都是如此。两者都采用毫秒,都不能缩短限制:较低的值保留 30 分钟的默认值和 2 小时的最大值。223两个[环境变量](/docs/zh-CN/env-vars)提高这些限制,对于 Bash 和 PowerShell 命令都是如此。两者都采用毫秒,都不能缩短限制:较低的值保留 30 分钟的默认值和 2 小时的最大值。

210 224 

211* 将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `1800000` 以用该值替换 30 分钟的默认值,既适用于 Claude 启动的没有 `timeout` 的命令,也适用于移动的命令225* 将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `1800000` 以用该值替换 30 分钟的默认值,既适用于 Claude 启动的没有 `timeout` 的命令,也适用于移动的命令

212* 将 `BASH_MAX_TIMEOUT_MS` 设置为高于 `7200000` 以将 2 小时的最大值提高到该值。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `7200000` 以相同方式提高最大值226* 将 `BASH_MAX_TIMEOUT_MS` 设置为高于 `7200000` 以将 2 小时的最大值提高到该值。将 `BASH_DEFAULT_TIMEOUT_MS` 设置为高于 `7200000` 以相同方式提高最大值

213 227 

214当后台命令达到其时间限制时,Claude Code 停止它并告诉 Claude 原因,Claude 可以使用更长的 `timeout` 重新启动命令,如果工作仍然需要的话。停止通知读作 `Background command "<description>" was stopped after reaching its background time limit`。228<h4 id="foreground-commands-that-move-to-the-background">

229 移到后台的前台命令

230</h4>

215 231 

216当前台命令在完成前达到其超时时,Claude Code 会将其移到后台而不是停止它,除非命令以 `sleep` 开头。移动的命令的时间限制从移动时开始计算,前台子代理的移动命令仍然在该子代理的运行结束时停止。232当前台命令在完成前达到其超时时,Claude Code 会将其移到后台而不是停止它,除非命令以 `sleep` 开头。移动的命令的[时间限制](#time-limit-for-background-commands)从移动时开始计算,前台子代理的移动命令仍然在该子代理的运行结束时停止。

217 233 

218设置 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-CN/env-vars#variables) 禁用自动后台处理以及其余后台任务功能。234设置 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-CN/env-vars#variables) 禁用自动后台处理以及其余后台任务功能。

219 235 


246无论您列出什么,这些规则适用:262无论您列出什么,这些规则适用:

247 263 

248* **未知名称**:Claude Code 忽略它不识别的名称264* **未知名称**:Claude Code 忽略它不识别的名称

249* **Bash、PowerShell 和 Monitor**:Claude Code 无论您列出什么,都将 Bash、PowerShell 和 Monitor 工具命令保持在上限以下

250* **变量未设置**:Claude Code 从 Anthropic 从服务器传递的配置中获取其他限制类型的集合,该集合可能随时间变化,因此当您需要不变的集合时设置变量265* **变量未设置**:Claude Code 从 Anthropic 从服务器传递的配置中获取其他限制类型的集合,该集合可能随时间变化,因此当您需要不变的集合时设置变量

251* **权限门控 hooks**:即使每种类型都受限,Claude Code 也会从上限中排除可以阻止或更改操作结果的 hook,以及任何此类 hook 调用的 MCP 服务器,因此内核杀死权限门控 hook 不能允许它阻止的操作266* **权限门控 hooks**:即使每种类型都受限,Claude Code 也会从上限中排除可以阻止或更改操作结果的 hook,以及任何此类 hook 调用的 MCP 服务器,因此内核杀死权限门控 hook 不能允许它阻止的操作

252 267 

ultrareview.md +1 −1

Details

66 66 

67在 PR 模式下,云沙箱直接从主机克隆拉取请求,而不是捆绑您的本地工作树。PR 模式适用于 `github.com` 上的存储库以及 Owner 已连接到 Claude Code 的 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例。67在 PR 模式下,云沙箱直接从主机克隆拉取请求,而不是捆绑您的本地工作树。PR 模式适用于 `github.com` 上的存储库以及 Owner 已连接到 Claude Code 的 [GitHub Enterprise Server](/docs/zh-CN/github-enterprise-server) 实例。

68 68 

69对于 `github.com` 上的存储库,沙箱使用连接到您的 Claude 账户的 GitHub 账户进行克隆,因此该账户必须能够读取 PR 的存储库。Claude Code 在创建云会话之前检查这一点,除非您已设置 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-CN/env-vars#variables),并在[未连接账户](/docs/zh-CN/errors#no-github-account-is-connected-to-your-claude-account)或[账户无法看到存储库](/docs/zh-CN/errors#your-connected-github-account-cant-see-the-repository)时拒绝启动;拒绝会说明修复方法。在 v2.1.248 之前,Claude Code 在启动前不检查这一点。69对于 `github.com` 上的存储库,沙箱使用连接到您的 Claude 账户的 GitHub 账户进行克隆,因此该账户必须能够读取 PR 的存储库。

70 70 

71运行 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 将您的 GitHub CLI 登录连接到您的 Claude 账户。71运行 [`/web-setup`](/docs/zh-CN/web-quickstart#connect-from-your-terminal) 将您的 GitHub CLI 登录连接到您的 Claude 账户。

72 72 

vs-code.md +25 −5

Details

58 58 

59 * **活动栏**:点击左侧边栏中的 Spark 图标以打开会话列表。点击任何会话以在您的[首选位置](#extension-settings)中打开它,或开始新的会话。此图标在活动栏中始终可见。59 * **活动栏**:点击左侧边栏中的 Spark 图标以打开会话列表。点击任何会话以在您的[首选位置](#extension-settings)中打开它,或开始新的会话。此图标在活动栏中始终可见。

60 * **命令面板**:`Cmd+Shift+P`(Mac)或 `Ctrl+Shift+P`(Windows/Linux),输入"Claude Code",然后选择一个选项,如"在新选项卡中打开"60 * **命令面板**:`Cmd+Shift+P`(Mac)或 `Ctrl+Shift+P`(Windows/Linux),输入"Claude Code",然后选择一个选项,如"在新选项卡中打开"

61 * **状态栏**:如果您已将 [`preferredLocation`](#extension-settings) 设置为 `sidebar`,或使用**Claude Code: Open in Side Bar** 打开了 Claude,请点击窗口右下角的 **✻ Claude Code**。即使没有打开文件,这也有效。61 * **状态栏**:点击窗口右下角的 **✻ Claude Code**。即使没有打开文件,这也有效。

62 62 

63 您可以拖动 Claude 面板以在 VS Code 中的任何位置重新定位它。有关详细信息,请参阅[自定义您的工作流](#customize-your-workflow)。63 您可以拖动 Claude 面板以在 VS Code 中的任何位置重新定位它。有关详细信息,请参阅[自定义您的工作流](#customize-your-workflow)。

64 </Step>64 </Step>


362 362 

363在 Plugins 选项卡中:363在 Plugins 选项卡中:

364 364 

365* **已安装的插件**显示在顶部,带有切换开关以启用或禁用它们365* **已安装的插件**显示在顶部,带有切换开关以启用或禁用它们。

366 * 如果您关闭项目的共享 `.claude/settings.json` 启用的插件,扩展会先询问:**为我禁用**仅为您关闭它,而**为所有人禁用**会更改共享文件。

366* **可用插件**来自您配置的市场,显示在下方367* **可用插件**来自您配置的市场,显示在下方

367* 搜索以按名称或描述过滤插件368* 搜索以按名称或描述过滤插件

368* 点击任何可用插件上的**安装**369* 点击任何可用插件上的**安装**


373* **为此项目安装**:与项目协作者共享(项目范围)374* **为此项目安装**:与项目协作者共享(项目范围)

374* **本地安装**:仅供您使用,仅在此存储库中(本地范围)375* **本地安装**:仅供您使用,仅在此存储库中(本地范围)

375 376 

377安装完成后,表单会要求设置任何尚未设置的插件的 [configuration options](/docs/zh-CN/plugins/components#user-configuration)。要稍后查看或更改选项,请点击插件行上的齿轮图标。

378 

379敏感文本字段被掩盖,您之前保存的密钥显示 **(unchanged)**。将字段留空以保持保存的值。

380 

381保存更改后,打开的会话会重新加载其插件,对话框显示**重启 Claude 以应用插件更改**。

382 

383<h3 id="uninstall-plugins">

384 卸载插件

385</h3>

386 

387每个已安装的行都标明了它安装的 [scope](/docs/zh-CN/plugins/install#choose-an-install-scope)。要卸载该安装,请点击该行的垃圾桶图标。暗淡的垃圾桶图标标记您无法从此工作区卸载的行,例如您的组织管理的插件或为另一个项目安装的插件。

388 

389扩展在两种情况下会先询问:

390 

391* **项目的共享 `.claude/settings.json` 启用的插件**:选择**为我禁用**,这会为您的协作者保留插件安装,或**为所有人卸载**,这会使用 [`--keep-data`](/docs/zh-CN/plugins/cli-reference#what-an-uninstall-deletes-and-keeps) 删除项目的安装,因此插件的保存数据目录会保留。如果您已经为自己关闭了插件,垃圾桶图标会删除您自己的安装而不会提问。

392* **否则,最后一个具有保存数据的插件安装**:选择是否保留或删除数据;**保留**是默认选项

393 

376<h3 id="share-a-plugin-install-link">394<h3 id="share-a-plugin-install-link">

377 分享插件安装链接395 分享插件安装链接

378</h3>396</h3>


407 425 

408* 输入 GitHub 仓库、URL 或本地路径以添加新市场426* 输入 GitHub 仓库、URL 或本地路径以添加新市场

409* 点击刷新图标以更新市场的插件列表427* 点击刷新图标以更新市场的插件列表

410* 点击垃圾桶图标以删除市场428* 点击垃圾桶图标以删除市场。删除它会 [卸载您从中安装的每个插件](/docs/zh-CN/plugins/install#manage-marketplaces),因此确认会首先列出这些插件

429 

430您在对话框中所做的插件更改会立即应用到该 VS Code 窗口中打开的 Claude Code 会话。

411 431 

412您在对话框中所做的插件更改会立即应用到该 VS Code 窗口中打开的 Claude Code 会话。如果您打开对话框的会话无法重新加载其插件,对话框会提供重试或在该会话中重启 Claude 的选项。432如果您打开对话框的会话无法重新加载其插件,对话框会提供重试或在该会话中重启 Claude 的选项。

413 433 

414<Note>434<Note>

415 VS Code 中的插件管理在底层使用相同的 CLI 命令。您在扩展中配置的插件和市场也可在 CLI 中使用,反之亦然。435 VS Code 中的插件管理在底层使用相同的 CLI 命令。您在扩展中配置的插件和市场也可在 CLI 中使用,反之亦然。


7904. **禁用冲突的扩展程序**:临时禁用其他 AI 扩展程序(Cline、Continue 等)8104. **禁用冲突的扩展程序**:临时禁用其他 AI 扩展程序(Cline、Continue 等)

7915. **检查工作区信任**:该扩展程序在受限模式下不起作用8115. **检查工作区信任**:该扩展程序在受限模式下不起作用

792 812 

793或者,如果您已将 [`preferredLocation`](#extension-settings) 设置为 `sidebar`,或使用**Claude Code: Open in Side Bar** 打开了 Claude,请点击**状态栏**(右下角)中的"✻ Claude Code"。即使没有打开文件,这也能工作。您也可以使用**命令面板**(`Cmd+Shift+P` / `Ctrl+Shift+P`)并输入"Claude Code"。813或者,点击窗口右下角**状态栏**中的 **✻ Claude Code**。即使没有打开文件,这也能工作。您也可以使用**命令面板**(`Cmd+Shift+P` / `Ctrl+Shift+P`)并输入"Claude Code"。

794 814 

795<h3 id="cmd-esc-does-nothing-on-macos">815<h3 id="cmd-esc-does-nothing-on-macos">

796 Cmd+Esc 在 macOS 上无效816 Cmd+Esc 在 macOS 上无效

worktrees.md +1 −1

Details

145* worktree 属于您未后台的 `--worktree` 会话,无论其年龄如何。145* worktree 属于您未后台的 `--worktree` 会话,无论其年龄如何。

146* 您自己使用 `git worktree add` 创建了 worktree,即使您随后在其中运行了 `--worktree <name>` 会话并后台了该会话。146* 您自己使用 `git worktree add` 创建了 worktree,即使您随后在其中运行了 `--worktree <name>` 会话并后台了该会话。

147 147 

148Claude Code 将标记写入它使用 git 创建的每个 worktree 的 git 元数据中,扫描会保留任何没有标记的 worktree,包括 [`WorktreeCreate` hook](#non-git-version-control) 创建的 worktree。在 v2.1.246 之前,扫描没有检查标记,当旧的后台会话记录指向它时可能会删除您自己创建的 worktree。148Claude Code 将标记写入它使用 git 创建的每个 worktree 的 git 元数据中,扫描会保留任何没有标记的 worktree,包括 [`WorktreeCreate` hook](#non-git-version-control) 创建的 worktree。

149 149 

150当代理运行时,Claude Code 在其 worktree 上持有 `git worktree lock`,以便并发清理无法删除它,当代理完成时释放锁。Claude Code 在为后台会话创建的 worktree 上持有相同的锁,同时会话运行,因此扫描会保留 worktree 并且 `git worktree remove` 拒绝删除它。150当代理运行时,Claude Code 在其 worktree 上持有 `git worktree lock`,以便并发清理无法删除它,当代理完成时释放锁。Claude Code 在为后台会话创建的 worktree 上持有相同的锁,同时会话运行,因此扫描会保留 worktree 并且 `git worktree remove` 拒绝删除它。

151 151