SpyBara
Go Premium

Documentation 2026-10-29 23:57 UTC to 2026-10-30 23:01 UTC

90 files changed +4,632 −4,579. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

77* **Python:** 使用从 `claude_agent_sdk` 导入的类的 `isinstance()` 检查消息类型(例如,`isinstance(message, ResultMessage)`)。77* **Python:** 使用从 `claude_agent_sdk` 导入的类的 `isinstance()` 检查消息类型(例如,`isinstance(message, ResultMessage)`)。

78* **TypeScript:** 检查 `type` 字符串字段(例如,`message.type === "result"`)。`AssistantMessage` 和 `UserMessage` 在 `.message` 字段中包装原始 API 消息,因此内容块位于 `message.message.content`,而不是 `message.content`。78* **TypeScript:** 检查 `type` 字符串字段(例如,`message.type === "result"`)。`AssistantMessage` 和 `UserMessage` 在 `.message` 字段中包装原始 API 消息,因此内容块位于 `message.message.content`,而不是 `message.content`。

79 79 

80> **示例:检查消息类型并处理结果**80> [accordion] 示例:检查消息类型并处理结果

81>81>

82> ```python Python theme={null}82> ```python Python theme={null}

83> import asyncio83> import asyncio


273* **`PreCompact` hook:** 在压缩发生前运行自定义逻辑,例如存档完整成绩单。hook 接收一个 `trigger` 字段(`manual` 或 `auto`)。请参阅 [hooks](https://code.claude.com/docs/zh-CN/agent-sdk/hooks.md)。273* **`PreCompact` hook:** 在压缩发生前运行自定义逻辑,例如存档完整成绩单。hook 接收一个 `trigger` 字段(`manual` 或 `auto`)。请参阅 [hooks](https://code.claude.com/docs/zh-CN/agent-sdk/hooks.md)。

274* **手动压缩:** 发送 `/compact` 作为提示字符串以按需触发压缩。以这种方式发送的命令是普通的 SDK 输入。请参阅[通过名称分派命令](https://code.claude.com/docs/zh-CN/agent-sdk/skills.md#dispatch-commands-by-name)。274* **手动压缩:** 发送 `/compact` 作为提示字符串以按需触发压缩。以这种方式发送的命令是普通的 SDK 输入。请参阅[通过名称分派命令](https://code.claude.com/docs/zh-CN/agent-sdk/skills.md#dispatch-commands-by-name)。

275 275 

276> **示例:CLAUDE.md 中的总结指令**276> [accordion] 示例:CLAUDE.md 中的总结指令

277>277>

278> 向你的项目的 CLAUDE.md 添加一个部分,告诉压缩器保留什么。标题名称不特殊;使用任何清晰的标签。278> 向你的项目的 CLAUDE.md 添加一个部分,告诉压缩器保留什么。标题名称不特殊;使用任何清晰的标签。

279>279>

Details

42 42 

43本页中发出 HTTP 请求的 Python 示例使用 [httpx](https://www.python-httpx.org/)。请使用您项目所用的包管理器添加它:43本页中发出 HTTP 请求的 Python 示例使用 [httpx](https://www.python-httpx.org/)。请使用您项目所用的包管理器添加它:

44 44 

45**Python (uv)**45> [tab] Python (uv)

46 46>

47```bash theme={null}47> ```bash theme={null}

48uv add httpx48> uv add httpx

49```49> ```

50 

51**Python (pip)**

52 50 

53```bash theme={null}51> [tab] Python (pip)

54pip install httpx52>

55```53> ```bash theme={null}

54> pip install httpx

55> ```

56 56 

57### 天气工具示例57### 天气工具示例

58 58 


198 198 

199将此代码片段与[天气工具示例](#weather-tool-example)中的工具和服务器定义合并到一个文件(`weather.py` 或 `weather.ts`)中,然后在终端中运行它:199将此代码片段与[天气工具示例](#weather-tool-example)中的工具和服务器定义合并到一个文件(`weather.py` 或 `weather.ts`)中,然后在终端中运行它:

200 200 

201**TypeScript**201> [tab] TypeScript

202 202>

203```bash theme={null}203> ```bash theme={null}

204npx tsx weather.ts204> npx tsx weather.ts

205```205> ```

206 

207**Python (uv)**

208 

209```bash theme={null}

210uv run weather.py

211```

212 

213**Python (pip)**

214 206 

215激活您安装了 SDK 的虚拟环境,然后运行:207> [tab] Python (uv)

208>

209> ```bash theme={null}

210> uv run weather.py

211> ```

216 212 

217```bash theme={null}213> [tab] Python (pip)

218python weather.py214>

219```215> 激活您安装了 SDK 的虚拟环境,然后运行:

216>

217> ```bash theme={null}

218> python weather.py

219> ```

220 220 

221Claude 调用 `get_temperature`,脚本打印一行答案,显示旧金山的当前温度。221Claude 调用 `get_temperature`,脚本打印一行答案,显示旧金山的当前温度。

222 222 

Details

585>585>

586> 在运行脚本之前,在您的IDE或编辑器中打开您的实用程序文件(`utils.py`或`utils.ts`)。当agent添加doc注释时,您将看到文件实时更新,然后当您选择回滚时恢复到原始状态。586> 在运行脚本之前,在您的IDE或编辑器中打开您的实用程序文件(`utils.py`或`utils.ts`)。当agent添加doc注释时,您将看到文件实时更新,然后当您选择回滚时恢复到原始状态。

587 587 

588**Python**588> [tab] Python

589 589>

590```bash theme={null}590> ```bash theme={null}

591python try_checkpointing.py591> python try_checkpointing.py

592```592> ```

593 

594**TypeScript**

595 593 

596```bash theme={null}594> [tab] TypeScript

597npx tsx try_checkpointing.ts595>

598```596> ```bash theme={null}

597> npx tsx try_checkpointing.ts

598> ```

599 599 

600您将看到agent添加doc注释,然后出现一个提示,询问您是否想回滚。如果您选择是,文件将恢复到其原始状态。600您将看到agent添加doc注释,然后出现一个提示,询问您是否想回滚。如果您选择是,文件将恢复到其原始状态。

601 601 

agent-sdk/mcp.md +98 −98

Details

386 386 

387使用 `env` 字段将 API 密钥、令牌和其他凭证传递给 MCP 服务器:387使用 `env` 字段将 API 密钥、令牌和其他凭证传递给 MCP 服务器:

388 388 

389**In code**389> [tab] In code

390 390>

391```typescript TypeScript hidelines={1,-1} theme={null}391> ```typescript TypeScript hidelines={1,-1} theme={null}

392const _ = {392> const _ = {

393 options: {393> options: {

394 mcpServers: {394> mcpServers: {

395 "api-server": {395> "api-server": {

396 command: "npx",396> command: "npx",

397 args: ["-y", "@your-org/api-mcp-server"],397> args: ["-y", "@your-org/api-mcp-server"],

398 env: {398> env: {

399 API_KEY: process.env.API_KEY399> API_KEY: process.env.API_KEY

400 }400> }

401 }401> }

402 },402> },

403 allowedTools: ["mcp__api-server__*"]403> allowedTools: ["mcp__api-server__*"]

404 }404> }

405};405> };

406```406> ```

407 407>

408```python Python theme={null}408> ```python Python theme={null}

409options = ClaudeAgentOptions(409> options = ClaudeAgentOptions(

410 mcp_servers={410> mcp_servers={

411 "api-server": {411> "api-server": {

412 "command": "npx",412> "command": "npx",

413 "args": ["-y", "@your-org/api-mcp-server"],413> "args": ["-y", "@your-org/api-mcp-server"],

414 "env": {"API_KEY": os.environ["API_KEY"]},414> "env": {"API_KEY": os.environ["API_KEY"]},

415 }415> }

416 },416> },

417 allowed_tools=["mcp__api-server__*"],417> allowed_tools=["mcp__api-server__*"],

418)418> )

419```419> ```

420 420 

421**.mcp.json**421> [tab] .mcp.json

422 422>

423```json theme={null}423> ```json theme={null}

424{424> {

425 "mcpServers": {425> "mcpServers": {

426 "api-server": {426> "api-server": {

427 "command": "npx",427> "command": "npx",

428 "args": ["-y", "@your-org/api-mcp-server"],428> "args": ["-y", "@your-org/api-mcp-server"],

429 "env": {429> "env": {

430 "API_KEY": "${API_KEY}"430> "API_KEY": "${API_KEY}"

431 }431> }

432 }432> }

433 }433> }

434}434> }

435```435> ```

436 436>

437`${API_KEY}` 语法在运行时展开环境变量。437> `${API_KEY}` 语法在运行时展开环境变量。

438 438 

439### 远程服务器的 HTTP 头439### 远程服务器的 HTTP 头

440 440 

441对于 HTTP 和 SSE 服务器,直接在服务器配置中传递身份验证头:441对于 HTTP 和 SSE 服务器,直接在服务器配置中传递身份验证头:

442 442 

443**In code**443> [tab] In code

444 444>

445```typescript TypeScript hidelines={1,-1} theme={null}445> ```typescript TypeScript hidelines={1,-1} theme={null}

446const _ = {446> const _ = {

447 options: {447> options: {

448 mcpServers: {448> mcpServers: {

449 "secure-api": {449> "secure-api": {

450 type: "http",450> type: "http",

451 url: "https://api.example.com/mcp",451> url: "https://api.example.com/mcp",

452 headers: {452> headers: {

453 Authorization: `Bearer ${process.env.API_TOKEN}`453> Authorization: `Bearer ${process.env.API_TOKEN}`

454 }454> }

455 }455> }

456 },456> },

457 allowedTools: ["mcp__secure-api__*"]457> allowedTools: ["mcp__secure-api__*"]

458 }458> }

459};459> };

460```460> ```

461 461>

462```python Python theme={null}462> ```python Python theme={null}

463options = ClaudeAgentOptions(463> options = ClaudeAgentOptions(

464 mcp_servers={464> mcp_servers={

465 "secure-api": {465> "secure-api": {

466 "type": "http",466> "type": "http",

467 "url": "https://api.example.com/mcp",467> "url": "https://api.example.com/mcp",

468 "headers": {"Authorization": f"Bearer {os.environ['API_TOKEN']}"},468> "headers": {"Authorization": f"Bearer {os.environ['API_TOKEN']}"},

469 }469> }

470 },470> },

471 allowed_tools=["mcp__secure-api__*"],471> allowed_tools=["mcp__secure-api__*"],

472)472> )

473```473> ```

474 474 

475**.mcp.json**475> [tab] .mcp.json

476 476>

477```json theme={null}477> ```json theme={null}

478{478> {

479 "mcpServers": {479> "mcpServers": {

480 "secure-api": {480> "secure-api": {

481 "type": "http",481> "type": "http",

482 "url": "https://api.example.com/mcp",482> "url": "https://api.example.com/mcp",

483 "headers": {483> "headers": {

484 "Authorization": "Bearer ${API_TOKEN}"484> "Authorization": "Bearer ${API_TOKEN}"

485 }485> }

486 }486> }

487 }487> }

488}488> }

489```489> ```

490 490>

491`${API_TOKEN}` 语法在运行时展开环境变量。491> `${API_TOKEN}` 语法在运行时展开环境变量。

492 492 

493有关使用头进行身份验证的远程服务器的完整工作示例,请参阅[从存储库列出问题](#list-issues-from-a-repository)。493有关使用头进行身份验证的远程服务器的完整工作示例,请参阅[从存储库列出问题](#list-issues-from-a-repository)。

494 494 

Details

163 163 

164您可以在启动查询时一次性设置权限模式,也可以在会话活动期间动态更改。164您可以在启动查询时一次性设置权限模式,也可以在会话活动期间动态更改。

165 165 

166**查询时**166> [tab] 查询时

167 167>

168在创建查询时传入 `permission_mode`(Python)或 `permissionMode`(TypeScript)。168> 在创建查询时传入 `permission_mode`(Python)或 `permissionMode`(TypeScript)。

169 169>

170```python Python theme={null}170> ```python Python theme={null}

171import asyncio171> import asyncio

172from claude_agent_sdk import query, ClaudeAgentOptions172> from claude_agent_sdk import query, ClaudeAgentOptions

173 173>

174 174>

175async def main():175> async def main():

176 async for message in query(176> async for message in query(

177 prompt="Help me refactor this code",177> prompt="Help me refactor this code",

178 options=ClaudeAgentOptions(178> options=ClaudeAgentOptions(

179 permission_mode="default", # Set the mode here179> permission_mode="default", # Set the mode here

180 ),180> ),

181 ):181> ):

182 if hasattr(message, "result"):182> if hasattr(message, "result"):

183 print(message.result)183> print(message.result)

184 184>

185 185>

186asyncio.run(main())186> asyncio.run(main())

187```187> ```

188 188>

189```typescript TypeScript theme={null}189> ```typescript TypeScript theme={null}

190import { query } from "@anthropic-ai/claude-agent-sdk";190> import { query } from "@anthropic-ai/claude-agent-sdk";

191 191>

192async function main() {192> async function main() {

193 for await (const message of query({193> for await (const message of query({

194 prompt: "Help me refactor this code",194> prompt: "Help me refactor this code",

195 options: {195> options: {

196 permissionMode: "default" // Set the mode here196> permissionMode: "default" // Set the mode here

197 }197> }

198 })) {198> })) {

199 if ("result" in message) {199> if ("result" in message) {

200 console.log(message.result);200> console.log(message.result);

201 }201> }

202 }202> }

203}203> }

204 204>

205main();205> main();

206```206> ```

207 

208**流式传输期间**

209 

210调用 `set_permission_mode()`(Python)或 `setPermissionMode()`(TypeScript)可在会话中途更改模式。新模式会立即对所有后续工具请求生效。这样您可以先采用严格限制,随着信任建立再放宽权限,例如在审查 Claude 的初始方案后切换到 `acceptEdits`。

211 

212```python Python theme={null}

213import asyncio

214from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

215 

216 

217async def main():

218 async with ClaudeSDKClient(

219 options=ClaudeAgentOptions(

220 permission_mode="default", # Start in default mode

221 )

222 ) as client:

223 await client.query("Help me refactor this code")

224 

225 # Change mode dynamically mid-session

226 await client.set_permission_mode("acceptEdits")

227 

228 # Process messages with the new permission mode

229 async for message in client.receive_response():

230 if hasattr(message, "result"):

231 print(message.result)

232 

233 

234asyncio.run(main())

235```

236 207 

237```typescript TypeScript theme={null}208> [tab] 流式传输期间

238import { query } from "@anthropic-ai/claude-agent-sdk";209>

239 210> 调用 `set_permission_mode()`(Python)或 `setPermissionMode()`(TypeScript)可在会话中途更改模式。新模式会立即对所有后续工具请求生效。这样您可以先采用严格限制,随着信任建立再放宽权限,例如在审查 Claude 的初始方案后切换到 `acceptEdits`。

240async function main() {211>

241 const q = query({212> ```python Python theme={null}

242 prompt: "Help me refactor this code",213> import asyncio

243 options: {214> from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

244 permissionMode: "default" // Start in default mode215>

245 }216>

246 });217> async def main():

247 218> async with ClaudeSDKClient(

248 // Change mode dynamically mid-session219> options=ClaudeAgentOptions(

249 await q.setPermissionMode("acceptEdits");220> permission_mode="default", # Start in default mode

250 221> )

251 // Process messages with the new permission mode222> ) as client:

252 for await (const message of q) {223> await client.query("Help me refactor this code")

253 if ("result" in message) {224>

254 console.log(message.result);225> # Change mode dynamically mid-session

255 }226> await client.set_permission_mode("acceptEdits")

256 }227>

257}228> # Process messages with the new permission mode

258 229> async for message in client.receive_response():

259main();230> if hasattr(message, "result"):

260```231> print(message.result)

232>

233>

234> asyncio.run(main())

235> ```

236>

237> ```typescript TypeScript theme={null}

238> import { query } from "@anthropic-ai/claude-agent-sdk";

239>

240> async function main() {

241> const q = query({

242> prompt: "Help me refactor this code",

243> options: {

244> permissionMode: "default" // Start in default mode

245> }

246> });

247>

248> // Change mode dynamically mid-session

249> await q.setPermissionMode("acceptEdits");

250>

251> // Process messages with the new permission mode

252> for await (const message of q) {

253> if ("result" in message) {

254> console.log(message.result);

255> }

256> }

257> }

258>

259> main();

260> ```

261 261 

262### 模式详情262### 模式详情

263 263 

Details

36 36 

37为你的语言安装 Agent SDK 包:37为你的语言安装 Agent SDK 包:

38 38 

39**TypeScript(新项目)**39> [tab] TypeScript(新项目)

40 40>

41```bash theme={null}41> ```bash theme={null}

42npm init -y42> npm init -y

43npm pkg set type=module43> npm pkg set type=module

44npm install @anthropic-ai/claude-agent-sdk44> npm install @anthropic-ai/claude-agent-sdk

45npm install --save-dev tsx45> npm install --save-dev tsx

46```46> ```

47 47>

48在 `package.json` 中设置 `"type": "module"` 让你的代理脚本使用顶级 `await`,而 [tsx](https://tsx.hirok.io) 直接运行 TypeScript 文件。npm 在安装成功时会打印 `added N packages`。48> 在 `package.json` 中设置 `"type": "module"` 让你的代理脚本使用顶级 `await`,而 [tsx](https://tsx.hirok.io) 直接运行 TypeScript 文件。npm 在安装成功时会打印 `added N packages`。

49 

50**TypeScript(现有项目)**

51 

52```bash theme={null}

53npm install @anthropic-ai/claude-agent-sdk

54npm install --save-dev tsx

55```

56 

57[tsx](https://tsx.hirok.io) 直接运行 TypeScript 文件。如果你的项目使用 CommonJS,将你的代理脚本命名为 `agent.mts` 而不是 `agent.ts`。`.mts` 扩展名使 tsx 将文件视为 ES 模块,所以顶级 `await` 可以工作,而无需将整个项目转换为 ES 模块。在本快速开始中后面的创建和运行步骤中使用 `agent.mts` 代替 `agent.ts`。

58 

59**Python(uv)**

60 

61[安装 uv](https://docs.astral.sh/uv/),一个快速的 Python 包管理器,可以自动处理虚拟环境。然后初始化一个项目并添加 SDK:

62 

63```bash theme={null}

64uv init

65uv add claude-agent-sdk

66```

67 

68**Python(pip)**

69 

70创建并激活虚拟环境,然后安装该包。

71 

72在 macOS 或 Linux 上:

73 

74```bash theme={null}

75python3 -m venv .venv

76source .venv/bin/activate

77pip install claude-agent-sdk

78```

79 49 

80在 Windows 上:50> [tab] TypeScript(现有项目)

51>

52> ```bash theme={null}

53> npm install @anthropic-ai/claude-agent-sdk

54> npm install --save-dev tsx

55> ```

56>

57> [tsx](https://tsx.hirok.io) 直接运行 TypeScript 文件。如果你的项目使用 CommonJS,将你的代理脚本命名为 `agent.mts` 而不是 `agent.ts`。`.mts` 扩展名使 tsx 将文件视为 ES 模块,所以顶级 `await` 可以工作,而无需将整个项目转换为 ES 模块。在本快速开始中后面的创建和运行步骤中使用 `agent.mts` 代替 `agent.ts`。

81 58 

82```powershell theme={null}59> [tab] Python(uv)

83py -m venv .venv60>

84.venv\Scripts\Activate.ps161> [安装 uv](https://docs.astral.sh/uv/),一个快速的 Python 包管理器,可以自动处理虚拟环境。然后初始化一个项目并添加 SDK:

85pip install claude-agent-sdk62>

86```63> ```bash theme={null}

64> uv init

65> uv add claude-agent-sdk

66> ```

87 67 

88如果 PowerShell 因执行策略错误而阻止 `Activate.ps1`,请先运行 `Set-ExecutionPolicy -Scope Process RemoteSigned`。68> [tab] Python(pip)

69>

70> 创建并激活虚拟环境,然后安装该包。

71>

72> 在 macOS 或 Linux 上:

73>

74> ```bash theme={null}

75> python3 -m venv .venv

76> source .venv/bin/activate

77> pip install claude-agent-sdk

78> ```

79>

80> 在 Windows 上:

81>

82> ```powershell theme={null}

83> py -m venv .venv

84> .venv\Scripts\Activate.ps1

85> pip install claude-agent-sdk

86> ```

87>

88> 如果 PowerShell 因执行策略错误而阻止 `Activate.ps1`,请先运行 `Set-ExecutionPolicy -Scope Process RemoteSigned`。

89 89 

90> [!NOTE]90> [!NOTE]

91>91>


98 98 

99从 [Claude 控制台](https://platform.claude.com/)获取 API 密钥,然后在你将运行代理的 shell 中将其设置为环境变量:99从 [Claude 控制台](https://platform.claude.com/)获取 API 密钥,然后在你将运行代理的 shell 中将其设置为环境变量:

100 100 

101**macOS / Linux**101> [tab] macOS / Linux

102 102>

103```bash theme={null}103> ```bash theme={null}

104export ANTHROPIC_API_KEY=your-api-key104> export ANTHROPIC_API_KEY=your-api-key

105```105> ```

106 

107**Windows(PowerShell)**

108 106 

109```powershell theme={null}107> [tab] Windows(PowerShell)

110$env:ANTHROPIC_API_KEY = "your-api-key"108>

111```109> ```powershell theme={null}

110> $env:ANTHROPIC_API_KEY = "your-api-key"

111> ```

112 112 

113SDK 从运行你的代理的进程的环境中读取密钥;它不会自动加载 `.env` 文件。如果你将密钥保存在 `.env` 文件中,请自己加载它,例如使用 `dotenv` 包,然后再调用 SDK。113SDK 从运行你的代理的进程的环境中读取密钥;它不会自动加载 `.env` 文件。如果你将密钥保存在 `.env` 文件中,请自己加载它,例如使用 `dotenv` 包,然后再调用 SDK。

114 114 


224 224 

225你的代理已准备好。使用以下命令运行它:225你的代理已准备好。使用以下命令运行它:

226 226 

227**TypeScript**227> [tab] TypeScript

228 228>

229```bash theme={null}229> ```bash theme={null}

230npx tsx agent.ts230> npx tsx agent.ts

231```231> ```

232 232>

233如果你将脚本命名为 `agent.mts`,请改为运行 `npx tsx agent.mts`。233> 如果你将脚本命名为 `agent.mts`,请改为运行 `npx tsx agent.mts`。

234 

235**Python(uv)**

236 

237```bash theme={null}

238uv run agent.py

239```

240 

241**Python(pip)**

242 234 

243使用你仍然激活的虚拟环境:235> [tab] Python(uv)

236>

237> ```bash theme={null}

238> uv run agent.py

239> ```

244 240 

245```bash theme={null}241> [tab] Python(pip)

246python agent.py242>

247```243> 使用你仍然激活的虚拟环境:

244>

245> ```bash theme={null}

246> python agent.py

247> ```

248 248 

249运行时,代理会打印其推理和它调用的每个工具,最后以 `Done: success` 结束。运行后,检查 `utils.py`。你会看到处理空列表和空用户的防御性代码。你的代理自主地:249运行时,代理会打印其推理和它调用的每个工具,最后以 `Done: success` 结束。运行后,检查 `utils.py`。你会看到处理空列表和空用户的防御性代码。你的代理自主地:

250 250 

Details

470 470 

471每个 SDK 以不同的方式呈现拒绝:471每个 SDK 以不同的方式呈现拒绝:

472 472 

473**TypeScript**473> [tab] TypeScript

474 474>

475TypeScript SDK 抛出一个 `Error`,说明条目破坏的规则。例如,`skills: ["docs:*"]` 抛出:475> TypeScript SDK 抛出一个 `Error`,说明条目破坏的规则。例如,`skills: ["docs:*"]` 抛出:

476 476>

477```text theme={null}477> ```text theme={null}

478Invalid skill name "docs:*": wildcard-suffix names are not allowed; list each skill by its exact name.478> Invalid skill name "docs:*": wildcard-suffix names are not allowed; list each skill by its exact name.

479```479> ```

480 480>

481空名称报告 `Skill names must be non-empty strings.`481> 空名称报告 `Skill names must be non-empty strings.`

482 482>

483在 TypeScript Agent SDK 0.3.221 之前,SDK 没有运行此检查。483> 在 TypeScript Agent SDK 0.3.221 之前,SDK 没有运行此检查。

484 

485**Python**

486 

487Python SDK 引发 `ValueError`,说明条目破坏的规则。例如,`skills=["docs:*"]` 引发:

488 

489```text theme={null}

490ValueError: Invalid skill name 'docs:*': wildcard-suffix names are not allowed; list each skill by its exact name.

491```

492 

493空名称报告 `Skill names must be non-empty strings`。

494 484 

495在 Python Agent SDK 0.2.129 之前,SDK 没有运行此检查。485> [tab] Python

486>

487> Python SDK 引发 `ValueError`,说明条目破坏的规则。例如,`skills=["docs:*"]` 引发:

488>

489> ```text theme={null}

490> ValueError: Invalid skill name 'docs:*': wildcard-suffix names are not allowed; list each skill by its exact name.

491> ```

492>

493> 空名称报告 `Skill names must be non-empty strings`。

494>

495> 在 Python Agent SDK 0.2.129 之前,SDK 没有运行此检查。

496 496 

497### 其他故障排除497### 其他故障排除

498 498 

Details

16 16 

17考虑一个食谱应用,其中代理搜索网络并返回食谱。没有结构化输出,你会得到需要自己解析的自由格式文本。有了结构化输出,你定义你想要的形状并获得可以直接在应用中使用的类型化数据。17考虑一个食谱应用,其中代理搜索网络并返回食谱。没有结构化输出,你会得到需要自己解析的自由格式文本。有了结构化输出,你定义你想要的形状并获得可以直接在应用中使用的类型化数据。

18 18 

19> **没有结构化输出**19> [accordion] 没有结构化输出

20>20>

21> ```text theme={null}21> ```text theme={null}

22> 这是一个经典的巧克力芯片饼干食谱!22> 这是一个经典的巧克力芯片饼干食谱!


32>32>

33> 要在你的应用中使用这个,你需要解析出标题,将"15 分钟"转换为数字,将材料与说明分开,并处理响应中的不一致格式。33> 要在你的应用中使用这个,你需要解析出标题,将"15 分钟"转换为数字,将材料与说明分开,并处理响应中的不一致格式。

34 34 

35> **有结构化输出**35> [accordion] 有结构化输出

36>36>

37> ```jsonc theme={null}37> ```jsonc theme={null}

38> {38> {

Details

225 225 

226以下代码片段中的 `ask_user` 和 `askUser` 帮助程序代表您应用程序自己的提示 UI。226以下代码片段中的 `ask_user` 和 `askUser` 帮助程序代表您应用程序自己的提示 UI。

227 227 

228**批准**228> [tab] 批准

229 229>

230用户按原样批准该操作。从您的回调中传递 `input` 不变,工具完全按 Claude 请求的方式执行。230> 用户按原样批准该操作。从您的回调中传递 `input` 不变,工具完全按 Claude 请求的方式执行。

231 231>

232```python Python theme={null}232> ```python Python theme={null}

233async def can_use_tool(tool_name, input_data, context):233> async def can_use_tool(tool_name, input_data, context):

234 print(f"Claude wants to use {tool_name}")234> print(f"Claude wants to use {tool_name}")

235 approved = await ask_user("Allow this action?")235> approved = await ask_user("Allow this action?")

236 236>

237 if approved:237> if approved:

238 return PermissionResultAllow(updated_input=input_data)238> return PermissionResultAllow(updated_input=input_data)

239 return PermissionResultDeny(message="User declined")239> return PermissionResultDeny(message="User declined")

240```240> ```

241 241>

242```typescript TypeScript theme={null}242> ```typescript TypeScript theme={null}

243canUseTool: async (toolName, input) => {243> canUseTool: async (toolName, input) => {

244 console.log(`Claude wants to use ${toolName}`);244> console.log(`Claude wants to use ${toolName}`);

245 const approved = await askUser("Allow this action?");245> const approved = await askUser("Allow this action?");

246 246>

247 if (approved) {247> if (approved) {

248 return { behavior: "allow", updatedInput: input };248> return { behavior: "allow", updatedInput: input };

249 }249> }

250 return { behavior: "deny", message: "User declined" };250> return { behavior: "deny", message: "User declined" };

251};251> };

252```252> ```

253 253 

254**批准并进行更改**254> [tab] 批准并进行更改

255 255>

256用户批准但想先修改请求。您可以在工具执行前更改输入。Claude 会看到结果,但不会被告知您更改了任何内容。对于清理参数、添加约束或限制访问范围很有用。256> 用户批准但想先修改请求。您可以在工具执行前更改输入。Claude 会看到结果,但不会被告知您更改了任何内容。对于清理参数、添加约束或限制访问范围很有用。

257 257>

258```python Python theme={null}258> ```python Python theme={null}

259async def can_use_tool(tool_name, input_data, context):259> async def can_use_tool(tool_name, input_data, context):

260 if tool_name == "Bash":260> if tool_name == "Bash":

261 # 用户批准,但将所有命令限制在沙箱中261> # 用户批准,但将所有命令限制在沙箱中

262 sandboxed_input = {**input_data}262> sandboxed_input = {**input_data}

263 sandboxed_input["command"] = input_data["command"].replace(263> sandboxed_input["command"] = input_data["command"].replace(

264 "/tmp", "/tmp/sandbox"264> "/tmp", "/tmp/sandbox"

265 )265> )

266 return PermissionResultAllow(updated_input=sandboxed_input)266> return PermissionResultAllow(updated_input=sandboxed_input)

267 return PermissionResultAllow(updated_input=input_data)267> return PermissionResultAllow(updated_input=input_data)

268```268> ```

269 269>

270```typescript TypeScript theme={null}270> ```typescript TypeScript theme={null}

271canUseTool: async (toolName, input) => {271> canUseTool: async (toolName, input) => {

272 if (toolName === "Bash") {272> if (toolName === "Bash") {

273 // 用户批准,但将所有命令限制在沙箱中273> // 用户批准,但将所有命令限制在沙箱中

274 const sandboxedInput = {274> const sandboxedInput = {

275 ...input,275> ...input,

276 command: input.command.replace("/tmp", "/tmp/sandbox")276> command: input.command.replace("/tmp", "/tmp/sandbox")

277 };277> };

278 return { behavior: "allow", updatedInput: sandboxedInput };278> return { behavior: "allow", updatedInput: sandboxedInput };

279 }279> }

280 return { behavior: "allow", updatedInput: input };280> return { behavior: "allow", updatedInput: input };

281};281> };

282```282> ```

283 283 

284**批准并记住**284> [tab] 批准并记住

285 285>

286用户批准并且不想再被询问此类调用。第三个回调参数携带 `suggestions`,一个现成的 [`PermissionUpdate`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#permissionupdate) 条目数组。在 `updatedPermissions` 中回显其中一个以应用它。带有 `localSettings` 目标的建议会将规则写入 `.claude/settings.local.json`,以便将来的会话跳过匹配调用的提示。286> 用户批准并且不想再被询问此类调用。第三个回调参数携带 `suggestions`,一个现成的 [`PermissionUpdate`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#permissionupdate) 条目数组。在 `updatedPermissions` 中回显其中一个以应用它。带有 `localSettings` 目标的建议会将规则写入 `.claude/settings.local.json`,以便将来的会话跳过匹配调用的提示。

287 287>

288在 TypeScript 中,跳过选项携带 [`suppressAlwaysAllowRule: true`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#canusetool) 的请求的始终允许选择。该提示需要 Agent SDK v0.3.268 或更高版本,Python `context` 不携带它。288> 在 TypeScript 中,跳过选项携带 [`suppressAlwaysAllowRule: true`](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#canusetool) 的请求的始终允许选择。该提示需要 Agent SDK v0.3.268 或更高版本,Python `context` 不携带它。

289 289>

290Python 示例需要 `claude-agent-sdk` 0.1.80 或更高版本。290> Python 示例需要 `claude-agent-sdk` 0.1.80 或更高版本。

291 291>

292```python Python theme={null}292> ```python Python theme={null}

293async def can_use_tool(tool_name, input_data, context):293> async def can_use_tool(tool_name, input_data, context):

294 choice = await ask_user(f"Allow {tool_name}?", ["once", "always", "no"])294> choice = await ask_user(f"Allow {tool_name}?", ["once", "always", "no"])

295 295>

296 if choice == "always":296> if choice == "always":

297 persist = [297> persist = [

298 s for s in context.suggestions if s.destination == "localSettings"298> s for s in context.suggestions if s.destination == "localSettings"

299 ]299> ]

300 return PermissionResultAllow(300> return PermissionResultAllow(

301 updated_input=input_data, updated_permissions=persist301> updated_input=input_data, updated_permissions=persist

302 )302> )

303 if choice == "once":303> if choice == "once":

304 return PermissionResultAllow(updated_input=input_data)304> return PermissionResultAllow(updated_input=input_data)

305 return PermissionResultDeny(message="User declined")305> return PermissionResultDeny(message="User declined")

306```306> ```

307 307>

308```typescript TypeScript theme={null}308> ```typescript TypeScript theme={null}

309canUseTool: async (toolName, input, { suggestions = [] }) => {309> canUseTool: async (toolName, input, { suggestions = [] }) => {

310 const choice = await askUser(`Allow ${toolName}?`, ["once", "always", "no"]);310> const choice = await askUser(`Allow ${toolName}?`, ["once", "always", "no"]);

311 311>

312 if (choice === "always") {312> if (choice === "always") {

313 const persist = suggestions.filter(313> const persist = suggestions.filter(

314 (s) => s.destination === "localSettings"314> (s) => s.destination === "localSettings"

315 );315> );

316 return {316> return {

317 behavior: "allow",317> behavior: "allow",

318 updatedInput: input,318> updatedInput: input,

319 updatedPermissions: persist319> updatedPermissions: persist

320 };320> };

321 }321> }

322 if (choice === "once") {322> if (choice === "once") {

323 return { behavior: "allow", updatedInput: input };323> return { behavior: "allow", updatedInput: input };

324 }324> }

325 return { behavior: "deny", message: "User declined" };325> return { behavior: "deny", message: "User declined" };

326};326> };

327```327> ```

328 328 

329**拒绝**329> [tab] 拒绝

330 330>

331用户不希望发生此操作。阻止工具并提供说明原因的消息。Claude 会看到此消息并可能尝试不同的方法。331> 用户不希望发生此操作。阻止工具并提供说明原因的消息。Claude 会看到此消息并可能尝试不同的方法。

332 332>

333```python Python theme={null}333> ```python Python theme={null}

334async def can_use_tool(tool_name, input_data, context):334> async def can_use_tool(tool_name, input_data, context):

335 approved = await ask_user(f"Allow {tool_name}?")335> approved = await ask_user(f"Allow {tool_name}?")

336 336>

337 if not approved:337> if not approved:

338 return PermissionResultDeny(message="User rejected this action")338> return PermissionResultDeny(message="User rejected this action")

339 return PermissionResultAllow(updated_input=input_data)339> return PermissionResultAllow(updated_input=input_data)

340```340> ```

341 341>

342```typescript TypeScript theme={null}342> ```typescript TypeScript theme={null}

343canUseTool: async (toolName, input) => {343> canUseTool: async (toolName, input) => {

344 const approved = await askUser(`Allow ${toolName}?`);344> const approved = await askUser(`Allow ${toolName}?`);

345 345>

346 if (!approved) {346> if (!approved) {

347 return {347> return {

348 behavior: "deny",348> behavior: "deny",

349 message: "User rejected this action"349> message: "User rejected this action"

350 };350> };

351 }351> }

352 return { behavior: "allow", updatedInput: input };352> return { behavior: "allow", updatedInput: input };

353};353> };

354```354> ```

355 355 

356**建议替代方案**356> [tab] 建议替代方案

357 357>

358用户不想要此特定操作,但有不同的想法。阻止工具并在您的消息中包含指导。Claude 将阅读此内容并根据您的反馈决定如何继续。358> 用户不想要此特定操作,但有不同的想法。阻止工具并在您的消息中包含指导。Claude 将阅读此内容并根据您的反馈决定如何继续。

359 359>

360```python Python theme={null}360> ```python Python theme={null}

361async def can_use_tool(tool_name, input_data, context):361> async def can_use_tool(tool_name, input_data, context):

362 if tool_name == "Bash" and "rm" in input_data.get("command", ""):362> if tool_name == "Bash" and "rm" in input_data.get("command", ""):

363 # 用户不想删除,建议改为存档363> # 用户不想删除,建议改为存档

364 return PermissionResultDeny(364> return PermissionResultDeny(

365 message="User doesn't want to delete files. They asked if you could compress them into an archive instead."365> message="User doesn't want to delete files. They asked if you could compress them into an archive instead."

366 )366> )

367 return PermissionResultAllow(updated_input=input_data)367> return PermissionResultAllow(updated_input=input_data)

368```368> ```

369 369>

370```typescript TypeScript theme={null}370> ```typescript TypeScript theme={null}

371canUseTool: async (toolName, input) => {371> canUseTool: async (toolName, input) => {

372 if (toolName === "Bash" && input.command.includes("rm")) {372> if (toolName === "Bash" && input.command.includes("rm")) {

373 // 用户不想删除,建议改为存档373> // 用户不想删除,建议改为存档

374 return {374> return {

375 behavior: "deny",375> behavior: "deny",

376 message:376> message:

377 "User doesn't want to delete files. They asked if you could compress them into an archive instead."377> "User doesn't want to delete files. They asked if you could compress them into an archive instead."

378 };378> };

379 }379> }

380 return { behavior: "allow", updatedInput: input };380> return { behavior: "allow", updatedInput: input };

381};381> };

382```382> ```

383 383 

384**完全重定向**384> [tab] 完全重定向

385 385>

386对于完全改变方向(不仅仅是轻推),使用[流输入](https://code.claude.com/docs/zh-CN/agent-sdk/streaming-vs-single-mode.md)向 Claude 发送新指令。这绕过当前工具请求并为 Claude 提供全新指令来遵循。386> 对于完全改变方向(不仅仅是轻推),使用[流输入](https://code.claude.com/docs/zh-CN/agent-sdk/streaming-vs-single-mode.md)向 Claude 发送新指令。这绕过当前工具请求并为 Claude 提供全新指令来遵循。

387 387 

388## 处理澄清问题388## 处理澄清问题

389 389 

agents.md +1 −1

Details

13| [子代理](https://code.claude.com/docs/zh-CN/sub-agents.md) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |13| [子代理](https://code.claude.com/docs/zh-CN/sub-agents.md) | 在一个会话内的委派工作人员,在自己的上下文中执行辅助任务并返回摘要 | 辅助任务会用搜索结果、日志或文件内容淹没您的主对话,而您不会再次引用这些内容 |

14| [代理视图](https://code.claude.com/docs/zh-CN/agent-view.md) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |14| [代理视图](https://code.claude.com/docs/zh-CN/agent-view.md) | 一个屏幕来分派和监控在后台运行的会话,使用 `claude agents` 打开。研究预览 | 您有多个独立任务,想要交付它们,一目了然地检查状态,并仅在需要时介入 |

15| [代理团队](https://code.claude.com/docs/zh-CN/agent-teams.md) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |15| [代理团队](https://code.claude.com/docs/zh-CN/agent-teams.md) | 多个协调的会话,具有共享任务列表和代理间消息传递,由主导者管理。实验性功能,默认禁用 | 您希望 Claude 将项目分成多个部分、分配它们,并保持工作人员同步 |

16| [项目](https://code.claude.com/docs/zh-CN/claude-projects.md) | 在 claude.ai/code 或桌面应用中进行的一个持续对话。Claude 启动称为线程的并行会话,在云中或当您要求时通过远程控制在您的计算机上运行,为每个会话提供项目的说明,并向您显示哪些需要您。Pro 和 Max 上的公开测试版 | 工作跨越多个任务,持续数天或数周,应在您的机器关闭时继续运行,并且您宁愿描述一次而不是分派和跟踪每个会话 |16| [项目](https://code.claude.com/docs/zh-CN/claude-projects.md) | 在 claude.ai/code 或桌面应用中进行的一个持续对话。Claude 启动称为线程的并行会话,在云中运行,或在您要求时通过 Remote Control 在您的计算机上运行。它为每个会话提供项目的说明,并向您显示哪些需要您处理。Pro、Max 和 Ultra 上的公开测试版 | 工作跨越多个任务,持续数天或数周,应在您的机器关闭时继续运行,并且您宁愿描述一次而不是分派和跟踪每个会话 |

17| [动态工作流](https://code.claude.com/docs/zh-CN/workflows.md) | 一个脚本,运行许多子代理并交叉检查其结果,用于一个太大而无法一次协调的工作或需要多次处理的工作 | 一个任务对于少数几个子代理来说太大了,或者您想要对结果进行相互验证:代码库范围的审计、500 个文件的迁移、交叉检查的研究或从多个角度起草的计划 |17| [动态工作流](https://code.claude.com/docs/zh-CN/workflows.md) | 一个脚本,运行许多子代理并交叉检查其结果,用于一个太大而无法一次协调的工作或需要多次处理的工作 | 一个任务对于少数几个子代理来说太大了,或者您想要对结果进行相互验证:代码库范围的审计、500 个文件的迁移、交叉检查的研究或从多个角度起草的计划 |

18 18 

19在每种方法中,工作人员都是 Claude 会话。要涉及不同的工具,请将其作为 [MCP server](https://code.claude.com/docs/zh-CN/mcp.md) 公开给 Claude。19在每种方法中,工作人员都是 Claude 会话。要涉及不同的工具,请将其作为 [MCP server](https://code.claude.com/docs/zh-CN/mcp.md) 公开给 Claude。

artifacts.md +5 −5

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Artifacts 在 Pro、Max、Team 和 Enterprise 计划中可用,需要使用 [`/login`](https://code.claude.com/docs/zh-CN/setup#authenticate) 登录的会话。有关完整的要求集,请参阅 [可用性](#availability)。11> Artifacts 在 Pro、Max、Ultra、Team 和 Enterprise 计划中可用,需要使用 [`/login`](https://code.claude.com/docs/zh-CN/setup#authenticate) 登录的会话。有关完整的要求集,请参阅 [可用性](#availability)。

12 12 

13[Artifact](https://claude.com/features/artifacts) 是一个实时交互式网页,Claude Code 从您的会话发布到 claude.ai 上的私密 URL。您在浏览器中打开它,随着会话的继续,它会实时更新。当您希望其他人也看到它时,可以从页面标题中共享它。13[Artifact](https://claude.com/features/artifacts) 是一个实时交互式网页,Claude Code 从您的会话发布到 claude.ai 上的私密 URL。您在浏览器中打开它,随着会话的继续,它会实时更新。当您希望其他人也看到它时,可以从页面标题中共享它。

14 14 


197 197 

198## 使用 MCP 连接器拉取实时数据198## 使用 MCP 连接器拉取实时数据

199 199 

200artifact 可以在每次有人查看它时调用 [MCP 连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai),因此页面显示的是当前数据而不是构建它的会话中的快照。来自 artifact 的连接器调用在 Pro、Max、Team 和 Enterprise 计划上可用,需要 Claude Code v2.1.209 或更高版本。在早期版本上,Claude 会发布该页面,其中包含会话在构建时收集的任何数据。200Artifact 可以在每次有人查看它时调用 [MCP 连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai),因此页面显示的是当前数据,而不是构建它的会话中的快照。来自 Artifact 的连接器调用在 Pro、Max、Ultra、Team 和 Enterprise 计划上可用,需要 Claude Code v2.1.209 或更高版本。在早期版本上,Claude 会发布该页面,其中包含会话在构建时收集的任何数据。

201 201 

202要创建一个由连接器支持的页面,请在提示中命名连接器和您想要的数据:202要创建一个由连接器支持的页面,请在提示中命名连接器和您想要的数据:

203 203 

204```text wrap theme={null}204```text wrap theme={null}

205构建一个我们开放拉取请求的 dashboard artifact,当页面加载时通过我的 GitHub 连接器拉取实时列表。205构建一个我们未关闭的 Pull Request 的 dashboard Artifact,当页面加载时通过我的 GitHub 连接器拉取实时列表。

206```206```

207 207 

208Claude 声明该页面可能调用哪些连接器作为发布的一部分,该页面无法调用该声明之外的连接器。只有来自您 claude.ai 账户的连接器符合条件:Claude 在声明中命名它们,当有人查看页面时,每个调用都会[通过查看账户自己的连接](#how-connector-calls-work-for-viewers)运行到该连接器。您在 Claude Code 中配置的本地 MCP 服务器(例如来自 `.mcp.json` 的服务器)可以在 Claude 构建页面时提供数据,但已发布的页面无法调用它们。208Claude 声明该页面可能调用哪些连接器作为发布的一部分,该页面无法调用该声明之外的连接器。只有来自您 claude.ai 账户的连接器符合条件:Claude 在声明中命名它们,当有人查看页面时,每个调用都会[通过查看账户自己的连接](#how-connector-calls-work-for-viewers)运行到该连接器。您在 Claude Code 中配置的本地 MCP 服务器(例如来自 `.mcp.json` 的服务器)可以在 Claude 构建页面时提供数据,但已发布的页面无法调用它们。


314 314 

315> [!NOTE]315> [!NOTE]

316>316>

317> 模板处于测试阶段。它们在 Pro、Max 和 Team 计划上默认启用。在 Enterprise 计划上,所有者在**组织设置 > 工件**下[启用每个模板](https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans)。如果您的组织关闭了 Slides 模板,`/slides` 不会出现;如果关闭了 Design 模板,`/design` 不会草拟设计。两个命令都需要 Claude Code v2.1.265 或更高版本以及一个[工件可用](#availability)的会话。317> 模板处于测试阶段。它们在 Pro、Max、Ultra 和 Team 计划上默认启用。在 Enterprise 计划上,所有者在**组织设置 > Artifacts**下[启用每个模板](https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans)。如果您的组织关闭了 Slides 模板,`/slides` 不会出现;如果关闭了 Design 模板,`/design` 不会草拟设计。两个命令都需要 Claude Code v2.1.265 或更高版本以及一个[Artifact 可用](#availability)的会话。

318 318 

319### 制作幻灯片演示文稿319### 制作幻灯片演示文稿

320 320 


368 368 

369| 要求 | 可用时间 |369| 要求 | 可用时间 |

370| :- | :- |370| :- | :- |

371| 计划 | Pro、Max、Team 或 Enterprise。在 Pro 和 Max 计划上,artifacts 仅对您私有,直到您共享它们,不适用任何管理员管理。在 Team 和 Enterprise 计划上,artifacts 默认启用,Owner 可以在 claude.ai 管理设置中 [关闭它们](#manage-artifacts-for-your-organization)。 |371| 计划 | Pro、Max、Ultra、Team 或 Enterprise。在 Pro、Max 和 Ultra 计划上,artifacts 仅对您私有,直到您共享它们,不适用任何管理员管理。在 Team 和 Enterprise 计划上,artifacts 默认启用,Owner 可以在 claude.ai 管理设置中 [为组织关闭它们](#manage-artifacts-for-your-organization)。 |

372| 身份验证 | 会话由 claude.ai 账户支持:在 CLI 或桌面应用中使用 `/login` 登录。Claude Tag 会话无需登录步骤。使用 API 密钥、[网关令牌](https://code.claude.com/docs/zh-CN/llm-gateway) 或云提供商凭据的会话无法发布。 |372| 身份验证 | 会话由 claude.ai 账户支持:在 CLI 或桌面应用中使用 `/login` 登录。Claude Tag 会话无需登录步骤。使用 API 密钥、[网关令牌](https://code.claude.com/docs/zh-CN/llm-gateway) 或云提供商凭据的会话无法发布。 |

373| 模型提供商 | Anthropic API。在 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md) 上不可用。 |373| 模型提供商 | Anthropic API。在 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md) 上不可用。 |

374| 组织策略 | 客户管理的加密密钥 (CMEK)、HIPAA 和 [零数据保留](https://code.claude.com/docs/zh-CN/zero-data-retention.md) 未为组织启用。 |374| 组织策略 | 客户管理的加密密钥 (CMEK)、HIPAA 和 [零数据保留](https://code.claude.com/docs/zh-CN/zero-data-retention.md) 未为组织启用。 |

authentication.md +21 −21

Details

23 23 

24您可以使用以下任一账户类型进行身份验证:24您可以使用以下任一账户类型进行身份验证:

25 25 

26* **Claude Pro 或 Max 订阅**:使用您的 claude.ai 账户登录。请在 [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max) 订阅。26* **Claude Pro、Max 或 Ultra 订阅**:使用您的 claude.ai 账户登录。请在 [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max) 订阅。

27* **Claude for Teams 或 Enterprise**:使用团队管理员邀请您加入的 claude.ai 账户登录。27* **Claude for Teams 或 Enterprise**:使用团队管理员邀请您加入的 claude.ai 账户登录。

28* **Claude Console**:使用您的 Console 凭据登录。您的管理员必须先[邀请您](#claude-console-authentication)。您可以在[创建 API 密钥](#sign-in-without-an-api-key)或不创建 API 密钥的情况下登录。28* **Claude Console**:使用您的 Console 凭据登录。您的管理员必须先[邀请您](#claude-console-authentication)。您可以在[创建 API 密钥](#sign-in-without-an-api-key)或不创建 API 密钥的情况下登录。

29* **云提供商**:如果您的组织使用 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md),请在运行 `claude` 之前设置所需的环境变量,或在登录提示处选择 **3rd-party platform**,这会启动 Bedrock 和 Vertex AI 的交互式设置向导。无需浏览器登录。29* **云提供商**:如果您的组织使用 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md),请在运行 `claude` 之前设置所需的环境变量,或在登录提示处选择 **3rd-party platform**,这会启动 Bedrock 和 Vertex AI 的交互式设置向导。无需浏览器登录。


2534. [`apiKeyHelper`](https://code.claude.com/docs/zh-CN/settings-reference#apikeyhelper) 脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。2534. [`apiKeyHelper`](https://code.claude.com/docs/zh-CN/settings-reference#apikeyhelper) 脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。

2545. `CLAUDE_CODE_OAUTH_TOKEN` 环境变量。由 [`claude setup-token`](#generate-a-long-lived-token) 生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。如果您在设置了该变量时运行 `/login`,Claude Code 会将当前会话切换到新登录,但在每个新会话中都会再次读取该变量,直到您从 shell 配置文件或[设置文件](https://code.claude.com/docs/zh-CN/settings.md)的 `env` 块中删除它。2545. `CLAUDE_CODE_OAUTH_TOKEN` 环境变量。由 [`claude setup-token`](#generate-a-long-lived-token) 生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。如果您在设置了该变量时运行 `/login`,Claude Code 会将当前会话切换到新登录,但在每个新会话中都会再次读取该变量,直到您从 shell 配置文件或[设置文件](https://code.claude.com/docs/zh-CN/settings.md)的 `env` 块中删除它。

2556. Anthropic 配置文件和联合凭证,即 `ant` CLI 和 Workload Identity Federation 使用的凭证。`ant auth login` 写入的配置文件仅在您在 `ANTHROPIC_PROFILE` 中命名它时才排在此处;否则它排在 `/login` 下方。请参阅 [Anthropic 配置文件和联合凭证](#anthropic-profiles-and-federation-credentials)。2556. Anthropic 配置文件和联合凭证,即 `ant` CLI 和 Workload Identity Federation 使用的凭证。`ant auth login` 写入的配置文件仅在您在 `ANTHROPIC_PROFILE` 中命名它时才排在此处;否则它排在 `/login` 下方。请参阅 [Anthropic 配置文件和联合凭证](#anthropic-profiles-and-federation-credentials)。

2567. 来自 `/login` 的订阅 OAuth 凭证。这是 Claude Pro、Max、Team 和 Enterprise 用户的默认设置。2567. 来自 `/login` 的订阅 OAuth 凭据。这是 Claude Pro、Max、Ultra、Team 和 Enterprise 用户的默认设置。

257 257 

258一个已签名的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话位于此列表之外:它是一个提供商选择,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,并且它优先于它们。当网关会话存在时,即使设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,CLI 也会使用网关令牌进行身份验证,上面的持有者令牌、API 密钥、`apiKeyHelper` 和配置文件等凭证源不会被使用。258一个已签名的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话位于此列表之外:它是一个提供商选择,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,并且它优先于它们。当网关会话存在时,即使设置了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,CLI 也会使用网关令牌进行身份验证,上面的持有者令牌、API 密钥、`apiKeyHelper` 和配置文件等凭证源不会被使用。

259 259 


300 300 

301该命令会打开与 `/login` 相同的浏览器授权流程,在您在浏览器中批准访问后,令牌会打印到终端。它不会将令牌保存在任何地方;复制它并将其设置为 `CLAUDE_CODE_OAUTH_TOKEN` 环境变量,无论您想在何处进行身份验证:301该命令会打开与 `/login` 相同的浏览器授权流程,在您在浏览器中批准访问后,令牌会打印到终端。它不会将令牌保存在任何地方;复制它并将其设置为 `CLAUDE_CODE_OAUTH_TOKEN` 环境变量,无论您想在何处进行身份验证:

302 302 

303**macOS, Linux, WSL**303> [tab] macOS, Linux, WSL

304 304>

305```bash theme={null}305> ```bash theme={null}

306export CLAUDE_CODE_OAUTH_TOKEN=your-token306> export CLAUDE_CODE_OAUTH_TOKEN=your-token

307```307> ```

308 308 

309**Windows PowerShell**309> [tab] Windows PowerShell

310 310>

311```powershell theme={null}311> ```powershell theme={null}

312$env:CLAUDE_CODE_OAUTH_TOKEN = "your-token"312> $env:CLAUDE_CODE_OAUTH_TOKEN = "your-token"

313```313> ```

314 314 

315**Windows CMD**315> [tab] Windows CMD

316 316>

317```batch theme={null}317> ```batch theme={null}

318set CLAUDE_CODE_OAUTH_TOKEN=your-token318> set CLAUDE_CODE_OAUTH_TOKEN=your-token

319```319> ```

320 320 

321此令牌使用您的 Claude 订阅进行身份验证,需要 Pro、Max、Team 或 Enterprise 计划。它只能进行模型请求,因此无法建立 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话或获取 [claude.ai 连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai)。您在本地配置的 MCP 服务器仍然有效。321此令牌使用您的 Claude 订阅进行身份验证,需要 Pro、Max、Ultra、Team 或 Enterprise 套餐。它只能进行模型请求,因此无法建立 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话或获取 [claude.ai 连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai)。您在本地配置的 MCP 服务器仍然有效。

322 322 

323[裸模式](https://code.claude.com/docs/zh-CN/headless.md#start-faster-with-bare-mode)不读取 `CLAUDE_CODE_OAUTH_TOKEN`。如果您的脚本传递 `--bare`,请改用 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 进行身份验证。323[裸模式](https://code.claude.com/docs/zh-CN/headless.md#start-faster-with-bare-mode)不读取 `CLAUDE_CODE_OAUTH_TOKEN`。如果您的脚本传递 `--bare`,请改用 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 进行身份验证。

Details

43 43 

44## 为什么会出现通知44## 为什么会出现通知

45 45 

46[服务器端分类器审查](https://code.claude.com/docs/zh-CN/permission-modes.md#server-side-classifier-review)列出了哪些会话向服务器请求分类器检查。Pro、Max 和 Team 计划永远不会显示该通知。当它出现时,通常的原因是:46使用 Pro、Max、Ultra 或 Team 计划时,永远不会看到该通知。要了解哪些会话会向服务器请求分类器检查,请参阅[服务器端分类器审查](https://code.claude.com/docs/zh-CN/permission-modes.md#server-side-classifier-review)。如果您看到该通知,请检查以下常见原因:

47 47 

48* **路径中存在 LLM 网关或代理**:一个会剥离或重写请求头、丢弃它不识别的请求字段或编辑响应的网关。服务器随后永远不会收到检查请求,或 Claude Code 永远不会收到结果。当您的配置或响应识别网关时,通知会将其命名。48* **路径中存在 LLM 网关或代理**:一个会剥离或重写请求头、丢弃它不识别的请求字段或编辑响应的网关。服务器随后永远不会收到检查请求,或 Claude Code 永远不会收到结果。当您的配置或响应识别网关时,通知会将其命名。

49* **服务器端检查尚未到达您的平台、区域或凭证**:平台或区域是否执行检查取决于该平台的推出情况。如果您看到通知且路径中没有网关或代理,并且它持续出现,这是可能的原因。要确认,请联系支持或您公司的管理员,或使用 `/feedback` 报告。49* **服务器端检查尚未到达您的平台、区域或凭证**:平台或区域是否执行检查取决于该平台的推出情况。如果您看到通知且路径中没有网关或代理,并且它持续出现,这是可能的原因。要确认,请联系支持或您公司的管理员,或使用 `/feedback` 报告。

Details

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `/auto-mode-setup` 适用于 Pro、Max、Team 和 Enterprise 计划,以及使用 Claude Console API 密钥的情况。在 Pro、Max 或 Team 计划中,您需要 v2.1.228 或更高版本,在原生 Windows 上则需要 v2.1.233 或更高版本。在 Enterprise 计划中或使用 Claude Console API 密钥时,您需要 v2.1.283 或更高版本。如果您的会话中没有该命令,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](#auto-mode-setup-returns-unknown-command)。164> `/auto-mode-setup` 适用于 Pro、Max、Ultra、Team 和 Enterprise 计划,以及使用 Claude Console API 密钥的情况。在 Pro、Max、Ultra 或 Team 计划中,您需要 v2.1.228 或更高版本,在原生 Windows 上则需要 v2.1.233 或更高版本。在 Enterprise 计划中或使用 Claude Console API 密钥时,您需要 v2.1.283 或更高版本。如果您的会话中没有该命令,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](#auto-mode-setup-returns-unknown-command)。

165 165 

166### `/auto-mode-setup` 读取的内容166### `/auto-mode-setup` 读取的内容

167 167 

Details

489 489 

490由于大多数当前模型拥有 1M token 的窗口,并且在接近上限时进行压缩,您很少会用完上下文。不过,您仍然可能为不需要的上下文*付费*。每个请求都会发送整个对话,因此一个累积了三个无关任务的会话,在处理第四个任务的每个轮次时都会重新读取前三个。在[缓存有效期间会有折扣](https://code.claude.com/docs/zh-CN/costs.md#why-usage-climbs-in-a-long-session),而缓存过期后则按全价计费。490由于大多数当前模型拥有 1M token 的窗口,并且在接近上限时进行压缩,您很少会用完上下文。不过,您仍然可能为不需要的上下文*付费*。每个请求都会发送整个对话,因此一个累积了三个无关任务的会话,在处理第四个任务的每个轮次时都会重新读取前三个。在[缓存有效期间会有折扣](https://code.claude.com/docs/zh-CN/costs.md#why-usage-climbs-in-a-long-session),而缓存过期后则按全价计费。

491 491 

492[`/usage`](https://code.claude.com/docs/zh-CN/costs) 是首先要查看的地方。在 Pro、Max、Team 和 Enterprise 上,它会按 skill、子代理、插件和 MCP 服务器细分您的用量。当长上下文或频繁缓存未命中等模式之一超过您用量的 10% 时,它也会标记出来。常见的解决方法有:492[`/usage`](https://code.claude.com/docs/zh-CN/costs) 是首先要查看的地方。在 Pro、Max、Ultra、Team 和 Enterprise 上,它会按 skill、子代理、插件和 MCP 服务器细分您的用量。当长上下文或频繁缓存未命中等模式之一超过您用量的 10% 时,它也会标记出来。常见的解决方法有:

493 493 

494* 在不相关的任务之间使用 `/clear`。它不花任何成本,并且意味着下一个任务不必继续为上一个任务的历史付费。`/clear oauth-migration` 会为您离开的会话命名,以便您之后回到它。494* 在不相关的任务之间使用 `/clear`。它不花任何成本,并且意味着下一个任务不必继续为上一个任务的历史付费。`/clear oauth-migration` 会为您离开的会话命名,以便您之后回到它。

495* 带焦点地使用 `/compact`,比如 `/compact keep the API changes and the test commands`。在长会话中,`/compact` 本身就是一个大请求,因为它要读取整个对话来进行总结,缓存过期后更是如此。495* 带焦点地使用 `/compact`,比如 `/compact keep the API changes and the test commands`。在长会话中,`/compact` 本身就是一个大请求,因为它要读取整个对话来进行总结,缓存过期后更是如此。

channels.md +189 −189

Details

24 24 

25每个支持的频道都是一个需要 [Bun](https://bun.sh) 的插件。在连接真实平台之前,要获得插件流程的实际演示,请尝试 [fakechat 快速入门](#quickstart)。25每个支持的频道都是一个需要 [Bun](https://bun.sh) 的插件。在连接真实平台之前,要获得插件流程的实际演示,请尝试 [fakechat 快速入门](#quickstart)。

26 26 

27**Telegram**27> [tab] Telegram

28 

29查看完整的 [Telegram 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)。

30 

31**1. 创建 Telegram 机器人**

32 

33在 Telegram 中打开 [BotFather](https://t.me/BotFather) 并发送 `/newbot`。给它一个显示名称和一个以 `bot` 结尾的唯一用户名。复制 BotFather 返回的令牌。

34 

35**2. 安装插件**

36 

37在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

38 

39```

40/plugin install telegram@claude-plugins-official

41```

42 

43如果安装失败,请匹配 Claude Code 报告的消息:

44 

45* `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

46* `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

47 

48当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。检查安装摘要:如果它报告 `Run /reload-plugins to apply.`,请参阅[在不重启的情况下应用插件更改](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#reload-plugins)以使插件的配置命令可用。

49 

50**3. 配置您的令牌**

51 

52使用来自 BotFather 的令牌运行配置命令:

53 

54```

55/telegram:configure <token>

56```

57 

58这会将其保存到 `~/.claude/channels/telegram/.env`。您也可以在启动 Claude Code 之前在 shell 环境中设置 `TELEGRAM_BOT_TOKEN`。

59 

60**4. 重启并启用频道**

61 

62退出 Claude Code 并使用频道标志重启。这会启动 Telegram 插件,它开始轮询来自您的机器人的消息:

63 

64```bash theme={null}

65claude --channels plugin:telegram@claude-plugins-official

66```

67 

68**5. 配对您的账户**

69 

70打开 Telegram 并向您的机器人发送任何消息。机器人会回复一个配对代码。

71 

72> [!NOTE]

73>28>

74> 如果您的机器人没有响应,请确保 Claude Code 正在使用上一步中的 `--channels` 运行。机器人只能在频道处于活动状态时回复。29> 查看完整的 [Telegram 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)。

75 

76回到 Claude Code,运行:

77 

78```

79/telegram:access pair <code>

80```

81 

82然后锁定访问权限,以便只有您的账户可以发送消息:

83 

84```

85/telegram:access policy allowlist

86```

87 

88**Discord**

89 

90查看完整的 [Discord 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord)。

91 

92**1. 创建 Discord 机器人**

93 

94转到 [Discord 开发者门户](https://discord.com/developers/applications),点击**新应用程序**,并为其命名。在**机器人**部分中,创建用户名,然后点击**重置令牌**并复制令牌。

95 

96**2. 启用消息内容意图**

97 

98在您的机器人设置中,滚动到**特权网关意图**并启用**消息内容意图**。

99 

100**3. 邀请机器人加入您的服务器**

101 

102转到 **OAuth2 > URL 生成器**。选择 `bot` 作用域并启用这些权限:

103 

104* 查看频道

105* 发送消息

106* 在线程中发送消息

107* 读取消息历史记录

108* 附加文件

109* 添加反应

110 

111打开生成的 URL 以将机器人添加到您的服务器。

112 

113**4. 安装插件**

114 

115在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

116 

117```

118/plugin install discord@claude-plugins-official

119```

120 

121如果安装失败,请匹配 Claude Code 报告的消息:

122 

123* `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

124* `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

125 

126当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。检查安装摘要:如果它报告 `Run /reload-plugins to apply.`,请参阅[在不重启的情况下应用插件更改](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#reload-plugins)以使插件的配置命令可用。

127 

128**5. 配置您的令牌**

129 

130使用您复制的机器人令牌运行配置命令:

131 

132```

133/discord:configure <token>

134```

135 

136这会将其保存到 `~/.claude/channels/discord/.env`。您也可以在启动 Claude Code 之前在 shell 环境中设置 `DISCORD_BOT_TOKEN`。

137 

138**6. 重启并启用频道**

139 

140退出 Claude Code 并使用频道标志重启。这会连接 Discord 插件,以便您的机器人可以接收和响应消息:

141 

142```bash theme={null}

143claude --channels plugin:discord@claude-plugins-official

144```

145 

146**7. 配对您的账户**

147 

148在 Discord 上向您的机器人发送私信。机器人会回复一个配对代码。

149 

150> [!NOTE]

151>30>

152> 如果您的机器人没有响应,请确保 Claude Code 正在使用上一步中的 `--channels` 运行。机器人只能在频道处于活动状态时回复。31> **1. 创建 Telegram 机器人**

153 

154回到 Claude Code,运行:

155 

156```

157/discord:access pair <code>

158```

159 

160然后锁定访问权限,以便只有您的账户可以发送消息:

161 

162```

163/discord:access policy allowlist

164```

165 

166**iMessage**

167 

168查看完整的 [iMessage 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。

169 

170iMessage 频道直接读取您的消息数据库,并通过 AppleScript 发送回复。它需要 macOS,不需要机器人令牌或外部服务。

171 

172**1. 授予完全磁盘访问权限**

173 

174位于 `~/Library/Messages/chat.db` 的消息数据库受 macOS 保护。服务器第一次读取它时,macOS 会提示访问权限:点击**允许**。提示会命名启动 Bun 的应用程序,例如终端、iTerm 或您的 IDE。

175 

176如果提示没有出现或您点击了"不允许",请在**系统设置 > 隐私和安全 > 完全磁盘访问**下手动授予访问权限,并添加您的终端。没有这个,服务器会立即退出,显示 `authorization denied`。

177 

178**2. 安装插件**

179 

180在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

181 

182```

183/plugin install imessage@claude-plugins-official

184```

185 

186如果安装失败,请匹配 Claude Code 报告的消息:

187 

188* `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

189* `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

190 

191当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。

192 

193如果安装摘要报告 `Run /reload-plugins to apply.`,您无需在此处理,因为下一步中的重启会加载该插件。

194 

195**3. 重启并启用频道**

196 

197退出 Claude Code 并使用频道标志重启:

198 

199```bash theme={null}

200claude --channels plugin:imessage@claude-plugins-official

201```

202 

203**4. 给自己发短信**

204 

205在任何登录到您的 Apple ID 的设备上打开消息,并向自己发送消息。它立即到达 Claude:自聊天绕过访问控制,无需设置。

206 

207> [!NOTE]

208>32>

209> Claude 发送的第一条回复会触发 macOS 自动化提示,询问您的终端是否可以控制消息。点击**确定**。33> 在 Telegram 中打开 [BotFather](https://t.me/BotFather) 并发送 `/newbot`。给它一个显示名称和一个以 `bot` 结尾的唯一用户名。复制 BotFather 返回的令牌。

210 34>

211**5. 允许其他发送者**35> **2. 安装插件**

212 36>

213默认情况下,只有您自己的消息通过。要让另一个联系人到达 Claude,请添加他们的句柄:37> 在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

38>

39> ```

40> /plugin install telegram@claude-plugins-official

41> ```

42>

43> 如果安装失败,请匹配 Claude Code 报告的消息:

44>

45> * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

46> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

47>

48> 当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。检查安装摘要:如果它报告 `Run /reload-plugins to apply.`,请参阅[在不重启的情况下应用插件更改](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#reload-plugins)以使插件的配置命令可用。

49>

50> **3. 配置您的令牌**

51>

52> 使用来自 BotFather 的令牌运行配置命令:

53>

54> ```

55> /telegram:configure <token>

56> ```

57>

58> 这会将其保存到 `~/.claude/channels/telegram/.env`。您也可以在启动 Claude Code 之前在 shell 环境中设置 `TELEGRAM_BOT_TOKEN`。

59>

60> **4. 重启并启用频道**

61>

62> 退出 Claude Code 并使用频道标志重启。这会启动 Telegram 插件,它开始轮询来自您的机器人的消息:

63>

64> ```bash theme={null}

65> claude --channels plugin:telegram@claude-plugins-official

66> ```

67>

68> **5. 配对您的账户**

69>

70> 打开 Telegram 并向您的机器人发送任何消息。机器人会回复一个配对代码。

71>

72> > [!NOTE]

73> >

74> > 如果您的机器人没有响应,请确保 Claude Code 正在使用上一步中的 `--channels` 运行。机器人只能在频道处于活动状态时回复。

75>

76> 回到 Claude Code,运行:

77>

78> ```

79> /telegram:access pair <code>

80> ```

81>

82> 然后锁定访问权限,以便只有您的账户可以发送消息:

83>

84> ```

85> /telegram:access policy allowlist

86> ```

214 87 

215```88> [tab] Discord

216/imessage:access allow +1555123456789>

217```90> 查看完整的 [Discord 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord)。

91>

92> **1. 创建 Discord 机器人**

93>

94> 转到 [Discord 开发者门户](https://discord.com/developers/applications),点击**新应用程序**,并为其命名。在**机器人**部分中,创建用户名,然后点击**重置令牌**并复制令牌。

95>

96> **2. 启用消息内容意图**

97>

98> 在您的机器人设置中,滚动到**特权网关意图**并启用**消息内容意图**。

99>

100> **3. 邀请机器人加入您的服务器**

101>

102> 转到 **OAuth2 > URL 生成器**。选择 `bot` 作用域并启用这些权限:

103>

104> * 查看频道

105> * 发送消息

106> * 在线程中发送消息

107> * 读取消息历史记录

108> * 附加文件

109> * 添加反应

110>

111> 打开生成的 URL 以将机器人添加到您的服务器。

112>

113> **4. 安装插件**

114>

115> 在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

116>

117> ```

118> /plugin install discord@claude-plugins-official

119> ```

120>

121> 如果安装失败,请匹配 Claude Code 报告的消息:

122>

123> * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

124> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

125>

126> 当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。检查安装摘要:如果它报告 `Run /reload-plugins to apply.`,请参阅[在不重启的情况下应用插件更改](https://code.claude.com/docs/zh-CN/plugins/cli-reference.md#reload-plugins)以使插件的配置命令可用。

127>

128> **5. 配置您的令牌**

129>

130> 使用您复制的机器人令牌运行配置命令:

131>

132> ```

133> /discord:configure <token>

134> ```

135>

136> 这会将其保存到 `~/.claude/channels/discord/.env`。您也可以在启动 Claude Code 之前在 shell 环境中设置 `DISCORD_BOT_TOKEN`。

137>

138> **6. 重启并启用频道**

139>

140> 退出 Claude Code 并使用频道标志重启。这会连接 Discord 插件,以便您的机器人可以接收和响应消息:

141>

142> ```bash theme={null}

143> claude --channels plugin:discord@claude-plugins-official

144> ```

145>

146> **7. 配对您的账户**

147>

148> 在 Discord 上向您的机器人发送私信。机器人会回复一个配对代码。

149>

150> > [!NOTE]

151> >

152> > 如果您的机器人没有响应,请确保 Claude Code 正在使用上一步中的 `--channels` 运行。机器人只能在频道处于活动状态时回复。

153>

154> 回到 Claude Code,运行:

155>

156> ```

157> /discord:access pair <code>

158> ```

159>

160> 然后锁定访问权限,以便只有您的账户可以发送消息:

161>

162> ```

163> /discord:access policy allowlist

164> ```

218 165 

219句柄是 `+country` 格式的电话号码或 Apple ID 电子邮件,如 `user@example.com`。166> [tab] iMessage

167>

168> 查看完整的 [iMessage 插件源代码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。

169>

170> iMessage 频道直接读取您的消息数据库,并通过 AppleScript 发送回复。它需要 macOS,不需要机器人令牌或外部服务。

171>

172> **1. 授予完全磁盘访问权限**

173>

174> 位于 `~/Library/Messages/chat.db` 的消息数据库受 macOS 保护。服务器第一次读取它时,macOS 会提示访问权限:点击**允许**。提示会命名启动 Bun 的应用程序,例如终端、iTerm 或您的 IDE。

175>

176> 如果提示没有出现或您点击了"不允许",请在**系统设置 > 隐私和安全 > 完全磁盘访问**下手动授予访问权限,并添加您的终端。没有这个,服务器会立即退出,显示 `authorization denied`。

177>

178> **2. 安装插件**

179>

180> 在终端中运行 `claude` 启动 Claude Code,然后在其输入框中输入以下内容:

181>

182> ```

183> /plugin install imessage@claude-plugins-official

184> ```

185>

186> 如果安装失败,请匹配 Claude Code 报告的消息:

187>

188> * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 添加市场,然后重试安装。

189> * `Plugin "<name>" not found in marketplace "claude-plugins-official"`:您本地的市场目录副本可能已过期。使用 `/plugin marketplace update claude-plugins-official` 刷新它,然后重试安装。如果重试后打印相同的消息,请参阅[在市场中找不到插件](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-not-found-in-marketplace)。

190>

191> 当安装要求选择安装作用域时,选择用户作用域选项,以便插件在所有项目中可用。

192>

193> 如果安装摘要报告 `Run /reload-plugins to apply.`,您无需在此处理,因为下一步中的重启会加载该插件。

194>

195> **3. 重启并启用频道**

196>

197> 退出 Claude Code 并使用频道标志重启:

198>

199> ```bash theme={null}

200> claude --channels plugin:imessage@claude-plugins-official

201> ```

202>

203> **4. 给自己发短信**

204>

205> 在任何登录到您的 Apple ID 的设备上打开消息,并向自己发送消息。它立即到达 Claude:自聊天绕过访问控制,无需设置。

206>

207> > [!NOTE]

208> >

209> > Claude 发送的第一条回复会触发 macOS 自动化提示,询问您的终端是否可以控制消息。点击**确定**。

210>

211> **5. 允许其他发送者**

212>

213> 默认情况下,只有您自己的消息通过。要让另一个联系人到达 Claude,请添加他们的句柄:

214>

215> ```

216> /imessage:access allow +15551234567

217> ```

218>

219> 句柄是 `+country` 格式的电话号码或 Apple ID 电子邮件,如 `user@example.com`。

220 220 

221## 快速入门221## 快速入门

222 222 


308| `channelsEnabled` | 主开关。必须为 `true` 才能让任何 channel 传递消息。阻止所有 channels,包括开发标志(关闭时)。请参阅[为您的组织启用 channels](#enable-channels-for-your-organization)。 | claude.ai Team 和 Enterprise:channels 被阻止。控制台:channels 被允许,除非您的组织部署托管设置,在这种情况下 channels 被阻止,直到设置此密钥 |308| `channelsEnabled` | 主开关。必须为 `true` 才能让任何 channel 传递消息。阻止所有 channels,包括开发标志(关闭时)。请参阅[为您的组织启用 channels](#enable-channels-for-your-organization)。 | claude.ai Team 和 Enterprise:channels 被阻止。控制台:channels 被允许,除非您的组织部署托管设置,在这种情况下 channels 被阻止,直到设置此密钥 |

309| `allowedChannelPlugins` | 启用 channels 后哪些插件可以注册。设置时替换 Anthropic 维护的列表。 | 应用 Anthropic 默认列表 |309| `allowedChannelPlugins` | 启用 channels 后哪些插件可以注册。设置时替换 Anthropic 维护的列表。 | 应用 Anthropic 默认列表 |

310 310 

311没有组织的 Pro 和 Max 用户完全跳过这些检查:channels 可用,用户使用 `--channels` 按会话选择加入。311没有组织的 Pro、Max 和 Ultra 用户完全跳过这些检查:频道可用,用户使用 `--channels` 按会话选择加入。

312 312 

313### 为您的组织启用 channels313### 为您的组织启用 channels

314 314 

chrome.md +1 −1

Details

39* [Google Chrome](https://www.google.com/chrome/)、[Microsoft Edge](https://www.microsoft.com/edge) 或其他基于 Chromium 的浏览器,如 Brave、Arc、Vivaldi 或 Opera39* [Google Chrome](https://www.google.com/chrome/)、[Microsoft Edge](https://www.microsoft.com/edge) 或其他基于 Chromium 的浏览器,如 Brave、Arc、Vivaldi 或 Opera

40* [Claude in Chrome 扩展程序](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) 版本 1.0.36 或更高版本,可在 Chrome Web Store 中获得40* [Claude in Chrome 扩展程序](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) 版本 1.0.36 或更高版本,可在 Chrome Web Store 中获得

41* [Claude Code](https://code.claude.com/docs/zh-CN/quickstart.md#step-1-install-claude-code)41* [Claude Code](https://code.claude.com/docs/zh-CN/quickstart.md#step-1-install-claude-code)

42* 直接 Anthropic 计划(Pro、Max、Team 或 Enterprise)42* 直接 Anthropic 计划(Pro、Max、Ultra、Team 或 Enterprise)

43 43 

44在已启用 HIPAA 的 Enterprise 组织中,Claude in Chrome 默认处于关闭状态,[Owner](https://code.claude.com/docs/zh-CN/server-managed-settings.md#access-control) 可以在 [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension) 中将其启用。您与 Anthropic 签订的商业伙伴协议(BAA)不涵盖通过 Claude in Chrome 发送到第三方网站的数据。有关合格服务(Eligible Services)的列表,请参阅[实施指南](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide)。44在已启用 HIPAA 的 Enterprise 组织中,Claude in Chrome 默认处于关闭状态,[Owner](https://code.claude.com/docs/zh-CN/server-managed-settings.md#access-control) 可以在 [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension) 中将其启用。您与 Anthropic 签订的商业伙伴协议(BAA)不涵盖通过 Claude in Chrome 发送到第三方网站的数据。有关合格服务(Eligible Services)的列表,请参阅[实施指南](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide)。

45 45 

Details

325 325 

326**7. 部署**326**7. 部署**

327 327 

328**ECS Fargate**328> [tab] ECS Fargate

329 329>

330创建集群和 gateway 的日志组,用于其 stderr,其中包含其审计事件和操作日志。保留期需要通过单独的调用来设置;如果不设置,CloudWatch 会永远保留日志;将 90 天与您的审计保留策略对齐:330> 创建集群和 gateway 的日志组,用于其 stderr,其中包含其审计事件和操作日志。保留期需要通过单独的调用来设置;如果不设置,CloudWatch 会永远保留日志;将 90 天与您的审计保留策略对齐:

331 331>

332```bash theme={null}332> ```bash theme={null}

333aws ecs create-cluster --cluster-name claude-gateway333> aws ecs create-cluster --cluster-name claude-gateway

334aws logs create-log-group --log-group-name /ecs/claude-gateway334> aws logs create-log-group --log-group-name /ecs/claude-gateway

335aws logs put-retention-policy --log-group-name /ecs/claude-gateway \335> aws logs put-retention-policy --log-group-name /ecs/claude-gateway \

336 --retention-in-days 90336> --retention-in-days 90

337```337> ```

338 338>

339编写任务定义。任务角色携带 Bedrock 权限,执行角色注入机密;使用 Secrets Manager 步骤中的机密 ARN:339> 编写任务定义。任务角色携带 Bedrock 权限,执行角色注入机密;使用 Secrets Manager 步骤中的机密 ARN:

340 340>

341```json claude-gateway-task.json theme={null}341> ```json claude-gateway-task.json theme={null}

342{342> {

343 "family": "claude-gateway",343> "family": "claude-gateway",

344 "networkMode": "awsvpc",344> "networkMode": "awsvpc",

345 "requiresCompatibilities": ["FARGATE"],345> "requiresCompatibilities": ["FARGATE"],

346 "cpu": "1024",346> "cpu": "1024",

347 "memory": "2048",347> "memory": "2048",

348 "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" },348> "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" },

349 "executionRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-execution",349> "executionRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-execution",

350 "taskRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-task",350> "taskRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-task",

351 "containerDefinitions": [351> "containerDefinitions": [

352 {352> {

353 "name": "gateway",353> "name": "gateway",

354 "image": "<account-id>.dkr.ecr.<region>.amazonaws.com/claude-gateway:<version>",354> "image": "<account-id>.dkr.ecr.<region>.amazonaws.com/claude-gateway:<version>",

355 "portMappings": [{ "containerPort": 8080 }],355> "portMappings": [{ "containerPort": 8080 }],

356 "secrets": [356> "secrets": [

357 { "name": "GATEWAY_JWT_SECRET", "valueFrom": "<gateway-jwt-secret ARN>" },357> { "name": "GATEWAY_JWT_SECRET", "valueFrom": "<gateway-jwt-secret ARN>" },

358 { "name": "OIDC_CLIENT_SECRET", "valueFrom": "<gateway-oidc-client-secret ARN>" },358> { "name": "OIDC_CLIENT_SECRET", "valueFrom": "<gateway-oidc-client-secret ARN>" },

359 { "name": "GATEWAY_POSTGRES_URL", "valueFrom": "<gateway-postgres-url ARN>" }359> { "name": "GATEWAY_POSTGRES_URL", "valueFrom": "<gateway-postgres-url ARN>" }

360 ],360> ],

361 "logConfiguration": {361> "logConfiguration": {

362 "logDriver": "awslogs",362> "logDriver": "awslogs",

363 "options": {363> "options": {

364 "awslogs-group": "/ecs/claude-gateway",364> "awslogs-group": "/ecs/claude-gateway",

365 "awslogs-region": "<region>",365> "awslogs-region": "<region>",

366 "awslogs-stream-prefix": "gateway"366> "awslogs-stream-prefix": "gateway"

367 }367> }

368 }368> }

369 }369> }

370 ]370> ]

371}371> }

372```372> ```

373 373>

374注册它:374> 注册它:

375 375>

376```bash theme={null}376> ```bash theme={null}

377aws ecs register-task-definition --cli-input-json file://claude-gateway-task.json377> aws ecs register-task-definition --cli-input-json file://claude-gateway-task.json

378```378> ```

379 379>

380在前面放一个内部 ALB,带有一个对 gateway 进行健康检查的目标组。`--ip-address-type ipv4` 很重要:内部双栈 ALB 发布公共范围 AAAA 记录,`/login` 私有网络检查拒绝:380> 在前面放一个内部 ALB,带有一个对 gateway 进行健康检查的目标组。`--ip-address-type ipv4` 很重要:内部双栈 ALB 发布公共范围 AAAA 记录,`/login` 私有网络检查拒绝:

381 381>

382```bash theme={null}382> ```bash theme={null}

383ALB_ARN="$(aws elbv2 create-load-balancer --name claude-gateway \383> ALB_ARN="$(aws elbv2 create-load-balancer --name claude-gateway \

384 --scheme internal --type application --ip-address-type ipv4 \384> --scheme internal --type application --ip-address-type ipv4 \

385 --subnets $PRIVATE_SUBNETS --security-groups "$ALB_SG" \385> --subnets $PRIVATE_SUBNETS --security-groups "$ALB_SG" \

386 --query 'LoadBalancers[0].LoadBalancerArn' --output text)"386> --query 'LoadBalancers[0].LoadBalancerArn' --output text)"

387 387>

388TG_ARN="$(aws elbv2 create-target-group --name claude-gateway \388> TG_ARN="$(aws elbv2 create-target-group --name claude-gateway \

389 --protocol HTTP --port 8080 --vpc-id "$VPC_ID" --target-type ip \389> --protocol HTTP --port 8080 --vpc-id "$VPC_ID" --target-type ip \

390 --health-check-path /readyz \390> --health-check-path /readyz \

391 --query 'TargetGroups[0].TargetGroupArn' --output text)"391> --query 'TargetGroups[0].TargetGroupArn' --output text)"

392```392> ```

393 393>

394添加 HTTPS 侦听器。`--ssl-policy` 固定现代 TLS 下限,因为省略它会回退到遗留 `ELBSecurityPolicy-2016-08` 默认值,仍然接受 TLS 1.0/1.1。394> 添加 HTTPS 侦听器。`--ssl-policy` 固定现代 TLS 下限,因为省略它会回退到遗留 `ELBSecurityPolicy-2016-08` 默认值,仍然接受 TLS 1.0/1.1。

395 395>

396ALB 在默认情况下 60 秒无数据后关闭连接。gateway 的保活 ping 保持流在该默认值内,因此提高超时在 ping 节奏上方增加余量;[故障排除](#troubleshooting)行关于丢弃的流涵盖了机制和较旧的 gateway。下面的命令添加侦听器并提高超时:396> ALB 在默认情况下 60 秒无数据后关闭连接。gateway 的保活 ping 保持流在该默认值内,因此提高超时在 ping 节奏上方增加余量;[故障排除](#troubleshooting)行关于丢弃的流涵盖了机制和较旧的 gateway。下面的命令添加侦听器并提高超时:

397 397>

398```bash theme={null}398> ```bash theme={null}

399aws elbv2 create-listener --load-balancer-arn "$ALB_ARN" \399> aws elbv2 create-listener --load-balancer-arn "$ALB_ARN" \

400 --protocol HTTPS --port 443 \400> --protocol HTTPS --port 443 \

401 --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \401> --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \

402 --certificates CertificateArn=<your-acm-certificate-arn> \402> --certificates CertificateArn=<your-acm-certificate-arn> \

403 --default-actions Type=forward,TargetGroupArn="$TG_ARN"403> --default-actions Type=forward,TargetGroupArn="$TG_ARN"

404 404>

405aws elbv2 modify-load-balancer-attributes --load-balancer-arn "$ALB_ARN" \405> aws elbv2 modify-load-balancer-attributes --load-balancer-arn "$ALB_ARN" \

406 --attributes Key=idle_timeout.timeout_seconds,Value=3600406> --attributes Key=idle_timeout.timeout_seconds,Value=3600

407```407> ```

408 408>

409创建服务。部署断路器将其任务持续失败的部署(来自坏镜像或无法启动的配置)回滚到最后的稳定状态,而不是永远重新启动失败的任务:409> 创建服务。部署断路器将其任务持续失败的部署(来自坏镜像或无法启动的配置)回滚到最后的稳定状态,而不是永远重新启动失败的任务:

410 410>

411```bash theme={null}411> ```bash theme={null}

412aws ecs create-service --cluster claude-gateway --service-name claude-gateway \412> aws ecs create-service --cluster claude-gateway --service-name claude-gateway \

413 --task-definition claude-gateway --desired-count 1 --launch-type FARGATE \413> --task-definition claude-gateway --desired-count 1 --launch-type FARGATE \

414 --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \414> --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \

415 --health-check-grace-period-seconds 60 \415> --health-check-grace-period-seconds 60 \

416 --network-configuration "awsvpcConfiguration={subnets=[$(echo $PRIVATE_SUBNETS | tr ' ' ',')],securityGroups=[$GW_SG],assignPublicIp=DISABLED}" \416> --network-configuration "awsvpcConfiguration={subnets=[$(echo $PRIVATE_SUBNETS | tr ' ' ',')],securityGroups=[$GW_SG],assignPublicIp=DISABLED}" \

417 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"417> --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

418```418> ```

419 419>

42060 秒的宽限期给冷任务时间拉取镜像、连接到存储并在 ECS 开始计算针对部署的失败之前回答其第一个健康检查。420> 60 秒的宽限期给冷任务时间拉取镜像、连接到存储并在 ECS 开始计算针对部署的失败之前回答其第一个健康检查。

421 421>

422目标组对 `GET /readyz` 的健康检查验证存储是否可达,因此无法到达 Postgres 的任务永远不会进入轮换。要通过短数据库中断(例如 RDS 故障转移)保持任务通过检查,请按照[中断行为](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#outage-behavior)中所述设置 `store.readiness_grace_seconds`,其中也涵盖了 `/healthz` 替代方案。422> 目标组对 `GET /readyz` 的健康检查验证存储是否可达,因此无法到达 Postgres 的任务永远不会进入轮换。要通过短数据库中断(例如 RDS 故障转移)保持任务通过检查,请按照[中断行为](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#outage-behavior)中所述设置 `store.readiness_grace_seconds`,其中也涵盖了 `/healthz` 替代方案。

423 423>

424任务在私有子网中运行,没有公共 IP,因此所有出站(到 Bedrock、您的 IdP、Secrets Manager、ECR 和 CloudWatch Logs)都通过 NAT 网关。要将 Bedrock 流量保持在公共路径之外,创建一个 `bedrock-runtime` 接口 VPC 端点并将上游的 `base_url` 指向它,如 [Bedrock 上游参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#amazon-bedrock)所示;IdP 仍然需要互联网出站。424> 任务在私有子网中运行,没有公共 IP,因此所有出站(到 Bedrock、您的 IdP、Secrets Manager、ECR 和 CloudWatch Logs)都通过 NAT 网关。要将 Bedrock 流量保持在公共路径之外,创建一个 `bedrock-runtime` 接口 VPC 端点并将上游的 `base_url` 指向它,如 [Bedrock 上游参考](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config.md#amazon-bedrock)所示;IdP 仍然需要互联网出站。

425 425>

426最后,为开发人员提供一个可私有解析的主机名:在 Route 53 私有托管区域中,将 gateway 的内部 DNS 名称别名到 ALB,并将 `listen.public_url` 设置为该主机名。ALB 自己的 `*.elb.amazonaws.com` 名称在内部 ALB 上解析为私有地址,但它不能携带您的 ACM 证书,因此使用您自己的名称。426> 最后,为开发人员提供一个可私有解析的主机名:在 Route 53 私有托管区域中,将 gateway 的内部 DNS 名称别名到 ALB,并将 `listen.public_url` 设置为该主机名。ALB 自己的 `*.elb.amazonaws.com` 名称在内部 ALB 上解析为私有地址,但它不能携带您的 ACM 证书,因此使用您自己的名称。

427 427>

428在第一次登录之前,将 OAuth 客户端的授权重定向 URI 更新为 `<public_url>/oauth/callback`。更改 `public_url` 后,在新标签下重建并推送镜像,注册新的任务定义修订版本,然后重新部署。在 ECS 上,该设置位于镜像的嵌入式 `gateway.yaml` 中,gateway 仅从该设置构建其公共源,忽略 `X-Forwarded-Host` 和 `X-Forwarded-Proto`。`X-Forwarded-For` 仅在设置 `listen.trusted_proxies` 时才被遵守用于客户端 IP。428> 在第一次登录之前,将 OAuth 客户端的授权重定向 URI 更新为 `<public_url>/oauth/callback`。更改 `public_url` 后,在新标签下重建并推送镜像,注册新的任务定义修订版本,然后重新部署。在 ECS 上,该设置位于镜像的嵌入式 `gateway.yaml` 中,gateway 仅从该设置构建其公共源,忽略 `X-Forwarded-Host` 和 `X-Forwarded-Proto`。`X-Forwarded-For` 仅在设置 `listen.trusted_proxies` 时才被遵守用于客户端 IP。

429 

430**EKS**

431 

432此轨道需要本地安装 `kubectl` 和 `eksctl`,以及具有 IAM OIDC 提供程序和已安装 AWS Load Balancer Controller 的现有 EKS 集群。集群必须在 `$VPC_ID` 上,以便 pod 可以到达 RDS 私有端点,`claude-gateway-db` 安全组必须允许集群的 pod 或节点安全组而不是 `$GW_SG`。

433 

434在 EKS 上,gateway 通过 IRSA 而不是 ECS 角色获得其 Bedrock 凭据。IAM 步骤中的 `ecs-tasks.amazonaws.com` 信任策略在这里不适用;IRSA 需要一个信任策略在集群的 OIDC 提供程序上联合的角色,范围为 `system:serviceaccount:claude-gateway:gateway`。`eksctl create iamserviceaccount` 在一个步骤中创建该角色、附加策略并使用角色 ARN 注解 Kubernetes 服务账户。将 IAM 步骤中的两个策略文档转换为它可以附加的托管策略:

435 

436```bash theme={null}

437BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \

438 --policy-document file://bedrock-invoke.json --query Policy.Arn --output text)"

439SECRETS_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-secrets-read \

440 --policy-document file://secrets-read.json --query Policy.Arn --output text)"

441 

442kubectl create namespace claude-gateway

443eksctl create iamserviceaccount --cluster <your-cluster> --region "$AWS_REGION" \

444 --namespace claude-gateway --name gateway --role-name claude-gateway \

445 --attach-policy-arn "$BEDROCK_POLICY_ARN" \

446 --attach-policy-arn "$SECRETS_POLICY_ARN" \

447 --approve

448```

449 

450机密策略仅在 pod 自己读取 Secrets Manager 时需要,如 Secrets Store CSI 驱动程序的 AWS 提供程序使用挂载 pod 的服务账户所做的那样;如果您以其他方式创建 Kubernetes Secrets,则删除它。提供程序需要策略的两个操作:它在协调轮换的机密时调用 `DescribeSecret`,因此仅 `GetSecretValue` 授予在第一次部署时挂载但停止拾取轮换。

451 

452将 gateway 部署为标准 Deployment 加上 Service 和 Ingress,如[Kubernetes 部署](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes)中所述,具有:

453 

454* `serviceAccountName: gateway`

455* 从 ConfigMap 挂载的 `gateway.yaml` 和在 `/secrets` 挂载的机密

456* 就绪探针指向 `GET /readyz`

457 

458对于前端,由 AWS Load Balancer Controller 管理的 Ingress 配置内部 ALB。使用以下注解:

459 

460* `alb.ingress.kubernetes.io/scheme: internal` 和 `alb.ingress.kubernetes.io/target-type: ip`

461* `alb.ingress.kubernetes.io/ip-address-type: ipv4`,因此不会发布会被 `/login` [私有网络检查](https://code.claude.com/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝的公共范围 AAAA 记录

462* `alb.ingress.kubernetes.io/inbound-cidrs: <your-corporate-cidr>`,因此控制器管理的前端安全组仅允许您的企业网络而不是其 `0.0.0.0/0` 默认值

463* `alb.ingress.kubernetes.io/certificate-arn` 与 ACM 证书

464* `alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06`,因此侦听器不会回退到接受 TLS 1.0 和 1.1 的遗留默认策略

465* `alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=3600`,gateway 流式保活上方的余量;请参阅[故障排除](#troubleshooting)

466 429 

467使用 IRSA,AWS SDK 读取投影的服务账户令牌并与 AWS STS 交换它,因此 pod 永远不需要 EC2 实例元数据服务;出站 NetworkPolicy 可能会为 gateway pod 阻止 `169.254.169.254`。下面[故障排除](#troubleshooting)中的节点跳跃限制问题仅适用于跳过 IRSA 并依赖节点实例角色的集群。430> [tab] EKS

431>

432> 此轨道需要本地安装 `kubectl` 和 `eksctl`,以及具有 IAM OIDC 提供程序和已安装 AWS Load Balancer Controller 的现有 EKS 集群。集群必须在 `$VPC_ID` 上,以便 pod 可以到达 RDS 私有端点,`claude-gateway-db` 安全组必须允许集群的 pod 或节点安全组而不是 `$GW_SG`。

433>

434> 在 EKS 上,gateway 通过 IRSA 而不是 ECS 角色获得其 Bedrock 凭据。IAM 步骤中的 `ecs-tasks.amazonaws.com` 信任策略在这里不适用;IRSA 需要一个信任策略在集群的 OIDC 提供程序上联合的角色,范围为 `system:serviceaccount:claude-gateway:gateway`。`eksctl create iamserviceaccount` 在一个步骤中创建该角色、附加策略并使用角色 ARN 注解 Kubernetes 服务账户。将 IAM 步骤中的两个策略文档转换为它可以附加的托管策略:

435>

436> ```bash theme={null}

437> BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \

438> --policy-document file://bedrock-invoke.json --query Policy.Arn --output text)"

439> SECRETS_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-secrets-read \

440> --policy-document file://secrets-read.json --query Policy.Arn --output text)"

441>

442> kubectl create namespace claude-gateway

443> eksctl create iamserviceaccount --cluster <your-cluster> --region "$AWS_REGION" \

444> --namespace claude-gateway --name gateway --role-name claude-gateway \

445> --attach-policy-arn "$BEDROCK_POLICY_ARN" \

446> --attach-policy-arn "$SECRETS_POLICY_ARN" \

447> --approve

448> ```

449>

450> 机密策略仅在 pod 自己读取 Secrets Manager 时需要,如 Secrets Store CSI 驱动程序的 AWS 提供程序使用挂载 pod 的服务账户所做的那样;如果您以其他方式创建 Kubernetes Secrets,则删除它。提供程序需要策略的两个操作:它在协调轮换的机密时调用 `DescribeSecret`,因此仅 `GetSecretValue` 授予在第一次部署时挂载但停止拾取轮换。

451>

452> 将 gateway 部署为标准 Deployment 加上 Service 和 Ingress,如[Kubernetes 部署](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes)中所述,具有:

453>

454> * `serviceAccountName: gateway`

455> * 从 ConfigMap 挂载的 `gateway.yaml` 和在 `/secrets` 挂载的机密

456> * 就绪探针指向 `GET /readyz`

457>

458> 对于前端,由 AWS Load Balancer Controller 管理的 Ingress 配置内部 ALB。使用以下注解:

459>

460> * `alb.ingress.kubernetes.io/scheme: internal` 和 `alb.ingress.kubernetes.io/target-type: ip`

461> * `alb.ingress.kubernetes.io/ip-address-type: ipv4`,因此不会发布会被 `/login` [私有网络检查](https://code.claude.com/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝的公共范围 AAAA 记录

462> * `alb.ingress.kubernetes.io/inbound-cidrs: <your-corporate-cidr>`,因此控制器管理的前端安全组仅允许您的企业网络而不是其 `0.0.0.0/0` 默认值

463> * `alb.ingress.kubernetes.io/certificate-arn` 与 ACM 证书

464> * `alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06`,因此侦听器不会回退到接受 TLS 1.0 和 1.1 的遗留默认策略

465> * `alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=3600`,gateway 流式保活上方的余量;请参阅[故障排除](#troubleshooting)

466>

467> 使用 IRSA,AWS SDK 读取投影的服务账户令牌并与 AWS STS 交换它,因此 pod 永远不需要 EC2 实例元数据服务;出站 NetworkPolicy 可能会为 gateway pod 阻止 `169.254.169.254`。下面[故障排除](#troubleshooting)中的节点跳跃限制问题仅适用于跳过 IRSA 并依赖节点实例角色的集群。

468 468 

469**8. 将 gateway URL 推送到开发人员机器**469**8. 将 gateway URL 推送到开发人员机器**

470 470 

Details

203 203 

204**7. 部署**204**7. 部署**

205 205 

206**Cloud Run**206> [tab] Cloud Run

207 

208下面的命令在内部负载均衡器后面部署用于生产。

209 

210```bash theme={null}

211gcloud run deploy claude-gateway \

212 --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" \

213 --region="$REGION" \

214 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

215 --min-instances=1 \

216 --max-instances=8 \

217 --timeout=3600 \

218 --ingress=internal \

219 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

220 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

221 --no-invoker-iam-check

222```

223 

224直接 VPC 出口,通过 `--network`、`--subnet` 和 `--vpc-egress=private-ranges-only`,让服务直接到达 Cloud SQL 私有 IP。到 Google Cloud 的 Agent Platform 端点和 `accounts.google.com` 的公共出口直接进入互联网,而不是通过 VPC,因此不需要 Cloud NAT。

225 

226> [!NOTE]

227>207>

228> 每个实例最多持有 [`store.max_connections`](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#store) 个 Postgres 连接,默认为 5 个。请参阅[调整连接池大小](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#size-the-connection-pool),根据数据库为网关剩余的连接数检查 `--max-instances=8`,并将滚动更新启动的额外实例计算在内。208> 下面的命令在内部负载均衡器后面部署用于生产。

229 209>

230调用者 IAM 检查必须打开或禁用。网关运行自己的 OIDC,其客户端不携带 GCP 令牌,因此 Cloud Run 的调用者检查必须允许未经身份验证的请求。网关的 OIDC 登录在请求到达容器后对其进行身份验证,`allowed_email_domains` 限制哪些域可以登录。210> ```bash theme={null}

231 211> gcloud run deploy claude-gateway \

232两个标志允许未经身份验证的请求:212> --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" \

233 213> --region="$REGION" \

234* `--no-invoker-iam-check`:禁用检查,无需管理 `allUsers` 绑定,并在域受限共享下工作214> --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

235* `--allow-unauthenticated`:向 `allUsers` 授予 `run.invoker` 角色;如果您的组织不允许 `--no-invoker-iam-check`,请使用它215> --min-instances=1 \

236 216> --max-instances=8 \

237通过 `--ingress` 的入口限制是与调用者检查分离的独立层;保持设置以将服务限制在您的公司网络。217> --timeout=3600 \

238 218> --ingress=internal \

239默认情况下,Cloud Run `*.run.app` URL 解析为公共地址,`/login` [私有网络检查](https://code.claude.com/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝该地址。两种拓扑为开发者提供私有可解析的主机名,Cloud Run 都不为您配置:219> --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

240 220> --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

241* **内部应用负载均衡器**,此页面的 `gateway.yaml` 假设的拓扑:在服务前面配置一个内部应用负载均衡器,具有内部 DNS 名称和证书,并将 `listen.public_url` 设置为该主机名。`internal` 入口设置已允许来自内部应用负载均衡器的流量;`internal-and-cloud-load-balancing` 还允许外部应用负载均衡器,其公共地址 `/login` 私有网络检查拒绝,因此此页面上的任何拓扑都不需要它。221> --no-invoker-iam-check

242* **仅内部入口,无负载均衡器**:保持部署命令不变,将 `listen.public_url` 保留为 `*.run.app` URL,下面[参考资产](#terraform-reference)中的默认值。为了让 `*.run.app` 私有解析,您的网络团队必须已经运行 Google API 的私有服务连接端点、将 `*.run.app` 解析到它的 Cloud DNS 私有区域,以及到该端点的本地路由。222> ```

243 223>

244Google 的 [Cloud Run 私有网络指南](https://cloud.google.com/run/docs/securing/private-networking)涵盖了两个选项都需要的基础设施。一旦网关在私有主机名上提供服务,验证登录;在此之前,从 Cloud Run 中的日志确认容器已启动。224> 直接 VPC 出口,通过 `--network`、`--subnet` 和 `--vpc-egress=private-ranges-only`,让服务直接到达 Cloud SQL 私有 IP。到 Google Cloud 的 Agent Platform 端点和 `accounts.google.com` 的公共出口直接进入互联网,而不是通过 VPC,因此不需要 Cloud NAT。

245 225>

246在首次登录前更新 OAuth 客户端的授权重定向 URI 为 `<public_url>/oauth/callback`。更改 `public_url` 后重新部署,因为网关仅从该设置构建其公共源,忽略 `X-Forwarded-Host` 和 `X-Forwarded-Proto`。仅当设置 `listen.trusted_proxies` 时,才会为客户端 IP 遵守 `X-Forwarded-For`。226> > [!NOTE]

247 227> >

248**GKE**228> > 每个实例最多持有 [`store.max_connections`](https://code.claude.com/docs/zh-CN/claude-apps-gateway-config#store) 个 Postgres 连接,默认为 5 个。请参阅[调整连接池大小](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#size-the-connection-pool),根据数据库为网关剩余的连接数检查 `--max-instances=8`,并将滚动更新启动的额外实例计算在内。

249 229>

250集群必须在 Cloud SQL 步骤中创建的 `$VPC` 上,以便 Pod 可以到达数据库的私有 IP;仅 VPC 对等不起作用,因为 Cloud SQL 私有 IP 本身是对等网络,对等是非传递的。要在该 VPC 上创建新集群,请将 `--network="$VPC" --subnetwork=cc-gateway-subnet` 传递给 `gcloud container clusters create`。230> 调用者 IAM 检查必须打开或禁用。网关运行自己的 OIDC,其客户端不携带 GCP 令牌,因此 Cloud Run 的调用者检查必须允许未经身份验证的请求。网关的 OIDC 登录在请求到达容器后对其进行身份验证,`allowed_email_domains` 限制哪些域可以登录。

251 231>

252在集群及其节点池上启用 Workload Identity,然后将 Google 服务账户绑定到 Kubernetes 服务账户,以便 Pod 继承其凭证:232> 两个标志允许未经身份验证的请求:

253 233>

254```bash theme={null}234> * `--no-invoker-iam-check`:禁用检查,无需管理 `allUsers` 绑定,并在域受限共享下工作

255gcloud container clusters update <cluster> --region="$REGION" \235> * `--allow-unauthenticated`:向 `allUsers` 授予 `run.invoker` 角色;如果您的组织不允许 `--no-invoker-iam-check`,请使用它

256 --workload-pool="${PROJECT_ID}.svc.id.goog"236>

257# 在标准集群上,现有节点池也需要 GKE_METADATA;237> 通过 `--ingress` 的入口限制是与调用者检查分离的独立层;保持设置以将服务限制在您的公司网络。

258# Autopilot 默认启用此功能。238>

259gcloud container node-pools update <pool> --cluster=<cluster> \239> 默认情况下,Cloud Run `*.run.app` URL 解析为公共地址,`/login` [私有网络检查](https://code.claude.com/docs/zh-CN/claude-apps-gateway#prerequisites)拒绝该地址。两种拓扑为开发者提供私有可解析的主机名,Cloud Run 都不为您配置:

260 --region="$REGION" --workload-metadata=GKE_METADATA240>

261 241> * **内部应用负载均衡器**,此页面的 `gateway.yaml` 假设的拓扑:在服务前面配置一个内部应用负载均衡器,具有内部 DNS 名称和证书,并将 `listen.public_url` 设置为该主机名。`internal` 入口设置已允许来自内部应用负载均衡器的流量;`internal-and-cloud-load-balancing` 还允许外部应用负载均衡器,其公共地址 `/login` 私有网络检查拒绝,因此此页面上的任何拓扑都不需要它。

262kubectl create namespace claude-gateway242> * **仅内部入口,无负载均衡器**:保持部署命令不变,将 `listen.public_url` 保留为 `*.run.app` URL,下面[参考资产](#terraform-reference)中的默认值。为了让 `*.run.app` 私有解析,您的网络团队必须已经运行 Google API 的私有服务连接端点、将 `*.run.app` 解析到它的 Cloud DNS 私有区域,以及到该端点的本地路由。

263kubectl create serviceaccount gateway -n claude-gateway243>

264 244> Google 的 [Cloud Run 私有网络指南](https://cloud.google.com/run/docs/securing/private-networking)涵盖了两个选项都需要的基础设施。一旦网关在私有主机名上提供服务,验证登录;在此之前,从 Cloud Run 中的日志确认容器已启动。

265gcloud iam service-accounts add-iam-policy-binding \245>

266 "claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \246> 在首次登录前更新 OAuth 客户端的授权重定向 URI 为 `<public_url>/oauth/callback`。更改 `public_url` 后重新部署,因为网关仅从该设置构建其公共源,忽略 `X-Forwarded-Host` 和 `X-Forwarded-Proto`。仅当设置 `listen.trusted_proxies` 时,才会为客户端 IP 遵守 `X-Forwarded-For`。

267 --role roles/iam.workloadIdentityUser \

268 --member "serviceAccount:${PROJECT_ID}.svc.id.goog[claude-gateway/gateway]"

269 

270kubectl annotate serviceaccount gateway -n claude-gateway \

271 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

272```

273 

274将网关部署为标准 Deployment 加上 Service 和内部 Ingress,类 `gce-internal`,如 [Kubernetes 部署](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes)中所述,具有:

275 

276* `serviceAccountName: gateway`

277* Secret Manager CSI 驱动程序在 `/secrets` 处挂载密钥

278* 就绪探针指向 `GET /readyz`

279 

280将具有提高的 `timeoutSec` 的 BackendConfig 附加到网关 Service:GKE Ingress 后面的负载均衡器后端服务默认为 30 秒超时,这会切断长流式响应。

281 

282不要在 Workload Identity 集群上应用阻止 `169.254.169.254` 的出口 NetworkPolicy;Pod 必须到达元数据服务器以获取凭证。网关的内置 [SSRF 防护](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#threat-model-summary)是那里的防御。

283 247 

284网关记录一个启动警告,指出元数据端点可达,并建议应用出口 NetworkPolicy。在 Workload Identity 下,该警告是预期的,因为 Pod 需要端点。248> [tab] GKE

249>

250> 集群必须在 Cloud SQL 步骤中创建的 `$VPC` 上,以便 Pod 可以到达数据库的私有 IP;仅 VPC 对等不起作用,因为 Cloud SQL 私有 IP 本身是对等网络,对等是非传递的。要在该 VPC 上创建新集群,请将 `--network="$VPC" --subnetwork=cc-gateway-subnet` 传递给 `gcloud container clusters create`。

251>

252> 在集群及其节点池上启用 Workload Identity,然后将 Google 服务账户绑定到 Kubernetes 服务账户,以便 Pod 继承其凭证:

253>

254> ```bash theme={null}

255> gcloud container clusters update <cluster> --region="$REGION" \

256> --workload-pool="${PROJECT_ID}.svc.id.goog"

257> # 在标准集群上,现有节点池也需要 GKE_METADATA;

258> # Autopilot 默认启用此功能。

259> gcloud container node-pools update <pool> --cluster=<cluster> \

260> --region="$REGION" --workload-metadata=GKE_METADATA

261>

262> kubectl create namespace claude-gateway

263> kubectl create serviceaccount gateway -n claude-gateway

264>

265> gcloud iam service-accounts add-iam-policy-binding \

266> "claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

267> --role roles/iam.workloadIdentityUser \

268> --member "serviceAccount:${PROJECT_ID}.svc.id.goog[claude-gateway/gateway]"

269>

270> kubectl annotate serviceaccount gateway -n claude-gateway \

271> iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

272> ```

273>

274> 将网关部署为标准 Deployment 加上 Service 和内部 Ingress,类 `gce-internal`,如 [Kubernetes 部署](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#kubernetes)中所述,具有:

275>

276> * `serviceAccountName: gateway`

277> * Secret Manager CSI 驱动程序在 `/secrets` 处挂载密钥

278> * 就绪探针指向 `GET /readyz`

279>

280> 将具有提高的 `timeoutSec` 的 BackendConfig 附加到网关 Service:GKE Ingress 后面的负载均衡器后端服务默认为 30 秒超时,这会切断长流式响应。

281>

282> 不要在 Workload Identity 集群上应用阻止 `169.254.169.254` 的出口 NetworkPolicy;Pod 必须到达元数据服务器以获取凭证。网关的内置 [SSRF 防护](https://code.claude.com/docs/zh-CN/claude-apps-gateway-deploy.md#threat-model-summary)是那里的防御。

283>

284> 网关记录一个启动警告,指出元数据端点可达,并建议应用出口 NetworkPolicy。在 Workload Identity 下,该警告是预期的,因为 Pod 需要端点。

285 285 

286**8. 将网关 URL 推送到开发者机器**286**8. 将网关 URL 推送到开发者机器**

287 287 

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> 云端会话在 Pro、Max 和 Team 计划上可用,以及拥有高级席位或 Chat + Claude Code 席位的 Enterprise 用户。如果[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您还需要一个包含云端会话权限的角色,才能从浏览器、应用或终端在 Anthropic 的基础设施上启动会话。请让 Owner 在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中将该权限添加到您的某个角色。11> 云端会话在 Pro、Max、Ultra 和 Team 计划上可用,以及拥有高级席位或 Chat + Claude Code 席位的 Enterprise 用户。如果[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您还需要一个包含云端会话权限的角色,才能从浏览器、应用或终端在 Anthropic 的基础设施上启动会话。请让 Owner 在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中将该权限添加到您的某个角色。

12 12 

13云端会话是在云基础设施上运行的 Claude Code 会话,而不是在您的机器上运行。默认情况下,它在 Anthropic 管理的基础设施上运行,或在路由到您的组织的[自托管环境](https://code.claude.com/docs/zh-CN/self-hosted-environments)时在那里运行。即使关闭笔记本电脑后,会话也会继续运行,您可以从任何设备检查或控制它。它会与您的其他 Claude 和 Claude Code 使用量一起计入您计划的用量限制,云端 VM 不会单独收费。13云端会话是在云基础设施上运行的 Claude Code 会话,而不是在您的机器上运行。默认情况下,它在 Anthropic 管理的基础设施上运行,或在路由到您的组织的[自托管环境](https://code.claude.com/docs/zh-CN/self-hosted-environments)时在那里运行。即使关闭笔记本电脑后,会话也会继续运行,您可以从任何设备检查或控制它。它会与您的其他 Claude 和 Claude Code 使用量一起计入您计划的用量限制,云端 VM 不会单独收费。

14 14 


342* **您的名称**:您账户的显示名称对所有有访问权限的收件人可见342* **您的名称**:您账户的显示名称对所有有访问权限的收件人可见

343* **Slack 会话**:[Claude in Slack](https://code.claude.com/docs/zh-CN/slack.md) 会话会自动以团队可见性共享343* **Slack 会话**:[Claude in Slack](https://code.claude.com/docs/zh-CN/slack.md) 会话会自动以团队可见性共享

344 344 

345#### 从 Max 或 Pro 账户共享345#### 从 Max、Ultra 或 Pro 账户共享

346 

347Max 和 Pro 账户的共享方式如下:

348 346 

349* **可见性选项**:**私有**和**公开**。公开可见性使会话对任何登录 claude.ai 的用户可见347* **可见性选项**:**私有**和**公开**。公开可见性使会话对任何登录 claude.ai 的用户可见

350* **仓库访问权限**:默认不启用验证348* **仓库访问权限**:默认不启用验证

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Projects 目前在 Pro 和 Max 计划上以公开测试版提供,并正在逐步推出。推出首先面向已使用过[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)且在 claude.ai 聊天或 Cowork 中没有现有项目的账户。Projects 目前尚未在 Team 或 Enterprise 计划上提供。11> Projects 目前在 Pro、Max 和 Ultra 计划上以公开测试版提供,并正在逐步推出。推出首先面向已使用过[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)且在 claude.ai 聊天或 Cowork 中没有现有项目的账户。Projects 目前尚未在 Team 或 Enterprise 计划上提供。

12>12>

13> 如果您在 [claude.ai/code](https://claude.ai/code) 的侧边栏中或[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)的代码选项卡中没有看到 **Projects**,请在其中的 **More** 下查看。如果那里也没有,说明推出尚未覆盖到您的账户。您可以[加入等待列表](https://claude.com/form/projects),并参阅[并行运行 Agent](https://code.claude.com/docs/zh-CN/agents.md),了解您在此期间可以使用的功能。13> 如果您在 [claude.ai/code](https://claude.ai/code) 的侧边栏中或[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)的代码选项卡中没有看到 **Projects**,请在其中的 **More** 下查看。如果那里也没有,说明推出尚未覆盖到您的账户。您可以[加入等待列表](https://claude.com/form/projects),并参阅[并行运行 Agent](https://code.claude.com/docs/zh-CN/agents.md),了解您在此期间可以使用的功能。

14 14 


78 78 

79在创建项目之前,检查您的计划、GitHub 设置以及工作需要到达的内容:79在创建项目之前,检查您的计划、GitHub 设置以及工作需要到达的内容:

80 80 

81* **计划**:您使用的是 Pro 或 Max,并且 **Projects** 显示在您的侧边栏中(直接显示或位于 **More** 下)。选择 **Projects** 并检查它是否提供 **New project** 或 **Get started**。81* **计划**:您使用的是 Pro、Max 或 Ultra,并且 **Projects** 显示在您的侧边栏中(直接显示或位于 **More** 下)。选择 **Projects** 并检查它是否提供 **New project** 或 **Get started**。

82* **GitHub,如果项目将处理代码**:您的代码在 github.com 上而不是 GitHub Enterprise Server、GitLab 或 Bitbucket 上,您连接的 GitHub 账户对其有推送访问权限,Claude GitHub App 已安装在其上。如果您使用 [`/web-setup`](https://code.claude.com/docs/zh-CN/web-quickstart#connect-from-your-terminal) 连接了 GitHub,该令牌让您的其他云会话可以访问代码库,但对于项目线程来说还不够,项目线程需要 Claude GitHub App。[设置 GitHub 访问](#set-up-github-access)有相关步骤。82* **GitHub,如果项目将处理代码**:您的代码在 github.com 上而不是 GitHub Enterprise Server、GitLab 或 Bitbucket 上,您连接的 GitHub 账户对其有推送访问权限,Claude GitHub App 已安装在其上。如果您使用 [`/web-setup`](https://code.claude.com/docs/zh-CN/web-quickstart#connect-from-your-terminal) 连接了 GitHub,该令牌让您的其他云会话可以访问代码库,但对于项目线程来说还不够,项目线程需要 Claude GitHub App。[设置 GitHub 访问](#set-up-github-access)有相关步骤。

83* **网络访问、密钥和工具**:对于云端线程,这些来自项目的[云环境](#choose-an-environment-for-threads)。默认环境已经可以访问[常见的包注册表](https://code.claude.com/docs/zh-CN/cloud-environments.md#default-allowed-domains),因此仅在工作需要其他域、密钥或未预装的工具时检查此项。如果工作需要 MCP 服务器,检查它是否在您的 [claude.ai 连接器](https://claude.ai/customize/connectors)中显示为已连接。83* **网络访问、密钥和工具**:对于云端线程,这些来自项目的[云环境](#choose-an-environment-for-threads)。默认环境已经可以访问[常见的包注册表](https://code.claude.com/docs/zh-CN/cloud-environments.md#default-allowed-domains),因此仅在工作需要其他域、密钥或未预装的工具时检查此项。如果工作需要 MCP 服务器,检查它是否在您的 [claude.ai 连接器](https://claude.ai/customize/connectors)中显示为已连接。

84 84 


421 421 

422在 **Project settings** 中打开 **Usage** 以按线程和按模型查看令牌使用,以及有多少进入项目对话。要降低它:422在 **Project settings** 中打开 **Usage** 以按线程和按模型查看令牌使用,以及有多少进入项目对话。要降低它:

423 423 

424* 路由到已闲置超过[缓存生命周期](https://code.claude.com/docs/zh-CN/prompt-caching.md#cache-lifetime)(Pro 和 Max 在您计划限制内为一小时)的线程的后续,在做任何事情之前重新读取该线程的整个对话。对于新工作,要求 Claude 启动新线程可以使用比恢复大的旧线程更少的。424* 在 Pro、Max 和 Ultra 计划限制内,[缓存生命周期](https://code.claude.com/docs/zh-CN/prompt-caching.md#cache-lifetime)为一小时。闲置时间超过该时长的线程在收到后续消息时,会先重新读取其整个对话,然后再执行任何操作。对于新工作,请要求 Claude 启动一个新线程,这可能比恢复一个大型旧线程使用得更少。

425* 对于不需要最大模型的工作,为线程、对话或两者[选择更小的模型或更低的努力级别](#choose-models-and-let-claude-manage-context)。425* 对于不需要最大模型的工作,为线程、对话或两者[选择更小的模型或更低的努力级别](#choose-models-and-let-claude-manage-context)。

426* 在项目对话中要求 Claude 一次运行更少的线程,或自己回答小问题而不是启动线程。426* 在项目对话中要求 Claude 一次运行更少的线程,或自己回答小问题而不是启动线程。

427 427 


429 429 

430几个 Claude Code 功能让多个会话同时工作,因此并行运行工作本身不是项目的目的。在项目中,Claude 启动和跟踪会话而不是您,每个都从相同的说明开始。这是每个相邻功能如何连接到项目的方式:430几个 Claude Code 功能让多个会话同时工作,因此并行运行工作本身不是项目的目的。在项目中,Claude 启动和跟踪会话而不是您,每个都从相同的说明开始。这是每个相邻功能如何连接到项目的方式:

431 431 

432* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您团队 Slack 频道中的 Claude,在 Team 和 Enterprise 计划上。频道中的任何人都可以给它工作,频道中的每个人都看到并引导它,它使用管理员为该频道设置的连接。项目是您的:您是唯一给它工作或看到其线程的人,它使用您自己的 GitHub 访问和连接器,它在 Pro 和 Max 上。[Claude Tag 与 Cowork 和 Claude Code 的不同之处](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)有并排比较。432* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您团队 Slack 频道中的 Claude,在 Team 和 Enterprise 计划上提供。频道中的任何人都可以给它分配工作,频道中的每个人都能看到并引导它,它使用管理员为该频道设置的连接。

433 

434 项目在 Pro、Max 和 Ultra 上提供。项目仅属于您一人:您是唯一给它分配工作或看到其线程的人,它使用您自己的 GitHub 访问权限和连接器。[Claude Tag 与 Cowork 和 Claude Code 的不同之处](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)有并排比较。

433* **云端会话**:每个线程都是一个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),除非您要求 Claude 在您的机器上运行它。无论哪种方式,Claude 启动和跟踪它而不是您。您还可以将自己启动的云端会话的工作带入项目:在该会话的侧边栏菜单中选择 [**Continue in project**](#start-from-an-existing-cloud-session)。435* **云端会话**:每个线程都是一个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),除非您要求 Claude 在您的机器上运行它。无论哪种方式,Claude 启动和跟踪它而不是您。您还可以将自己启动的云端会话的工作带入项目:在该会话的侧边栏菜单中选择 [**Continue in project**](#start-from-an-existing-cloud-session)。

434* **定时任务**:当您在项目中请求定时工作时,Claude 会创建一个[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md),它作为该项目中的线程运行,并显示在项目的 **Scheduled tasks** 标签页上。您在项目之外创建的定时任务会继续独立运行。436* **定时任务**:当您在项目中请求定时工作时,Claude 会创建一个[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md),它作为该项目中的线程运行,并显示在项目的 **Scheduled tasks** 标签页上。您在项目之外创建的定时任务会继续独立运行。

435* **Remote Control**:[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 连接 claude.ai 到在您的机器上运行的 Claude Code 会话。当您在项目中要求 Claude 在您的计算机上运行线程时,项目[使用 Remote Control 来执行](#run-a-thread-on-your-own-computer)。437* **Remote Control**:[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 连接 claude.ai 到在您的机器上运行的 Claude Code 会话。当您在项目中要求 Claude 在您的计算机上运行线程时,项目[使用 Remote Control 来执行](#run-a-thread-on-your-own-computer)。

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> 云环境适用于[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),这些会话在 Pro、Max 和 Team 计划上可用,以及具有[高级席位或 Chat + Claude Code 席位](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)的 Enterprise 用户。11> 云环境适用于[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),这些会话在 Pro、Max、Ultra 和 Team 计划上可用,以及具有[高级席位或 Chat + Claude Code 席位](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)的 Enterprise 用户。

12 12 

13每个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)都在云环境中运行。您可以配置环境以允许或拒绝[网络访问](#access-levels)、为会话[设置环境变量](#set-environment-variables)、存储会话使用但无法看到的[网络密钥](#add-network-secrets),以及在 Claude 开始工作前运行[设置脚本](#setup-scripts)。13每个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)都在云环境中运行。您可以配置环境以允许或拒绝[网络访问](#access-levels)、为会话[设置环境变量](#set-environment-variables)、存储会话使用但无法看到的[网络密钥](#add-network-secrets),以及在 Claude 开始工作前运行[设置脚本](#setup-scripts)。

14 14 


32如果您还没有环境,引导设置会为您设置 **Default** 环境。具体方式取决于您在哪里进行引导:32如果您还没有环境,引导设置会为您设置 **Default** 环境。具体方式取决于您在哪里进行引导:

33 33 

34* **CLI 流程(例如 `/web-setup`)**:为您创建 **Default**34* **CLI 流程(例如 `/web-setup`)**:为您创建 **Default**

35* **Pro 和 Max 上的网页引导**:为您创建 **Default**35* **Pro、Max 和 Ultra 上的网页引导**:自动为您提供 **Default**

36* **Team 和 Enterprise 上的网页引导**:显示 **Create your first cloud environment** 表单,除非所有者已启用[快速设置](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#quick-setup-for-team-and-enterprise);保持表单的默认值并点击 **Create & finish** 以获得相同的 **Default** 环境36* **Team 和 Enterprise 上的网页引导**:显示 **Create your first cloud environment** 表单,除非所有者已启用[快速设置](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#quick-setup-for-team-and-enterprise);保持表单的默认值并点击 **Create & finish** 以获得相同的 **Default** 环境

37 37 

38**Default** 本身不带有任何配置:38**Default** 本身不带有任何配置:


93 93 

94网络机密是您存储在云环境中的 API 密钥或令牌,使 Claude 可以从该环境中的任何会话调用该 API,而无需看到密钥。每个请求离开会话的 VM 后,Anthropic 的 Agent 代理会将密钥添加到发往您所列主机的请求中,因此密钥本身始终位于 VM 之外。94网络机密是您存储在云环境中的 API 密钥或令牌,使 Claude 可以从该环境中的任何会话调用该 API,而无需看到密钥。每个请求离开会话的 VM 后,Anthropic 的 Agent 代理会将密钥添加到发往您所列主机的请求中,因此密钥本身始终位于 VM 之外。

95 95 

96网络机密适用于 Pro、Max、Team 和 Enterprise 计划。要确认您是否可以自行添加,请参阅[要求](#requirements)。96网络机密适用于 Pro、Max、Ultra、Team 和 Enterprise 计划。要确认您是否可以自行添加,请参阅[要求](#requirements)。

97 97 

98#### 要求98#### 要求

99 99 


552 552 

553使用 **Trusted** 网络访问,会话默认可以访问以下域。标记为 `*` 的域表示通配符子域匹配,因此 `*.gcr.io` 允许 `gcr.io` 的任何子域。553使用 **Trusted** 网络访问,会话默认可以访问以下域。标记为 `*` 的域表示通配符子域匹配,因此 `*.gcr.io` 允许 `gcr.io` 的任何子域。

554 554 

555> **Anthropic 服务**555> [accordion] Anthropic 服务

556>556>

557> * api.anthropic.com557> * api.anthropic.com

558> * docs.claude.com558> * docs.claude.com


564> * anthropic.com564> * anthropic.com

565> * [www.anthropic.com](http://www.anthropic.com)565> * [www.anthropic.com](http://www.anthropic.com)

566 566 

567> **版本控制**567> [accordion] 版本控制

568>568>

569> * github.com569> * github.com

570> * [www.github.com](http://www.github.com)570> * [www.github.com](http://www.github.com)


585> * [www.bitbucket.org](http://www.bitbucket.org)585> * [www.bitbucket.org](http://www.bitbucket.org)

586> * api.bitbucket.org586> * api.bitbucket.org

587 587 

588> **容器注册表**588> [accordion] 容器注册表

589>589>

590> * registry-1.docker.io590> * registry-1.docker.io

591> * auth.docker.io591> * auth.docker.io


602> * \*.data.mcr.microsoft.com602> * \*.data.mcr.microsoft.com

603> * public.ecr.aws603> * public.ecr.aws

604 604 

605> **云平台**605> [accordion] 云平台

606>606>

607> * cloud.google.com607> * cloud.google.com

608> * accounts.google.com608> * accounts.google.com


633> * yum.oracle.com633> * yum.oracle.com

634> * \*.r2.cloudflarestorage.com634> * \*.r2.cloudflarestorage.com

635 635 

636> **JavaScript 和 Node 包管理器**636> [accordion] JavaScript 和 Node 包管理器

637>637>

638> * registry.npmjs.org638> * registry.npmjs.org

639> * [www.npmjs.com](http://www.npmjs.com)639> * [www.npmjs.com](http://www.npmjs.com)


645> * jsr.io645> * jsr.io

646> * npm.jsr.io646> * npm.jsr.io

647 647 

648> **Python 包管理器**648> [accordion] Python 包管理器

649>649>

650> * pypi.org650> * pypi.org

651> * [www.pypi.org](http://www.pypi.org)651> * [www.pypi.org](http://www.pypi.org)


656> * pypa.io656> * pypa.io

657> * [www.pypa.io](http://www.pypa.io)657> * [www.pypa.io](http://www.pypa.io)

658 658 

659> **Ruby 包管理器**659> [accordion] Ruby 包管理器

660>660>

661> * rubygems.org661> * rubygems.org

662> * [www.rubygems.org](http://www.rubygems.org)662> * [www.rubygems.org](http://www.rubygems.org)


671> * rvm.io671> * rvm.io

672> * get.rvm.io672> * get.rvm.io

673 673 

674> **Rust 包管理器**674> [accordion] Rust 包管理器

675>675>

676> * crates.io676> * crates.io

677> * [www.crates.io](http://www.crates.io)677> * [www.crates.io](http://www.crates.io)


681> * static.rust-lang.org681> * static.rust-lang.org

682> * [www.rust-lang.org](http://www.rust-lang.org)682> * [www.rust-lang.org](http://www.rust-lang.org)

683 683 

684> **Go 包管理器**684> [accordion] Go 包管理器

685>685>

686> * proxy.golang.org686> * proxy.golang.org

687> * sum.golang.org687> * sum.golang.org


691> * goproxy.io691> * goproxy.io

692> * pkg.go.dev692> * pkg.go.dev

693 693 

694> **JVM 包管理器**694> [accordion] JVM 包管理器

695>695>

696> * maven.org696> * maven.org

697> * repo.maven.org697> * repo.maven.org


710> * spring.io710> * spring.io

711> * repo.spring.io711> * repo.spring.io

712 712 

713> **其他包管理器**713> [accordion] 其他包管理器

714>714>

715> * packagist.org (PHP Composer)715> * packagist.org (PHP Composer)

716> * [www.packagist.org](http://www.packagist.org)716> * [www.packagist.org](http://www.packagist.org)


736> * swift.org736> * swift.org

737> * [www.swift.org](http://www.swift.org)737> * [www.swift.org](http://www.swift.org)

738 738 

739> **Linux 发行版**739> [accordion] Linux 发行版

740>740>

741> * archive.ubuntu.com741> * archive.ubuntu.com

742> * security.ubuntu.com742> * security.ubuntu.com


748> * [www.launchpad.net](http://www.launchpad.net)748> * [www.launchpad.net](http://www.launchpad.net)

749> * \*.nixos.org749> * \*.nixos.org

750 750 

751> **开发工具和平台**751> [accordion] 开发工具和平台

752>752>

753> * dl.k8s.io (Kubernetes)753> * dl.k8s.io (Kubernetes)

754> * pkgs.k8s.io754> * pkgs.k8s.io


780> * pkg.stainless.com780> * pkg.stainless.com

781> * binaries.prisma.sh781> * binaries.prisma.sh

782 782 

783> **云服务和监控**783> [accordion] 云服务和监控

784>784>

785> * http-intake.logs.datadoghq.com785> * http-intake.logs.datadoghq.com

786> * \*.datadoghq.com786> * \*.datadoghq.com

787> * \*.datadoghq.eu787> * \*.datadoghq.eu

788> * api.honeycomb.io788> * api.honeycomb.io

789 789 

790> **内容分发和镜像**790> [accordion] 内容分发和镜像

791>791>

792> * sourceforge.net792> * sourceforge.net

793> * \*.sourceforge.net793> * \*.sourceforge.net


796> * fonts.googleapis.com796> * fonts.googleapis.com

797> * fonts.gstatic.com797> * fonts.gstatic.com

798 798 

799> **架构和配置**799> [accordion] 架构和配置

800>800>

801> * json-schema.org801> * json-schema.org

802> * [www.json-schema.org](http://www.json-schema.org)802> * [www.json-schema.org](http://www.json-schema.org)

803> * json.schemastore.org803> * json.schemastore.org

804> * [www.schemastore.org](http://www.schemastore.org)804> * [www.schemastore.org](http://www.schemastore.org)

805 805 

806> **Model Context Protocol**806> [accordion] Model Context Protocol

807>807>

808> * \*.modelcontextprotocol.io808> * \*.modelcontextprotocol.io

809 809 

code-review.md +5 −5

Details

32 32 

33根据您需要完成的操作选择相应页面:33根据您需要完成的操作选择相应页面:

34 34 

35> **[设置 Code Review](https://code.claude.com/docs/zh-CN/code-review-setup.md)**35> [card] [设置 Code Review](https://code.claude.com/docs/zh-CN/code-review-setup.md)

36>36>

37> 检查要求、安装 Claude GitHub App,并选择仓库、审查级别以及审查的运行时机37> 检查要求、安装 Claude GitHub App,并选择仓库、审查级别以及审查的运行时机

38 38 

39> **[自定义 Code Review](https://code.claude.com/docs/zh-CN/code-review-customize.md)**39> [card] [自定义 Code Review](https://code.claude.com/docs/zh-CN/code-review-customize.md)

40>40>

41> 通过仓库中的 `REVIEW.md` 和 `CLAUDE.md` 文件调整标记的内容41> 通过仓库中的 `REVIEW.md` 和 `CLAUDE.md` 文件调整标记的内容

42 42 

43> **[在 Pull Request 上阅读和请求审查](https://code.claude.com/docs/zh-CN/code-review-pull-requests.md)**43> [card] [在 Pull Request 上阅读和请求审查](https://code.claude.com/docs/zh-CN/code-review-pull-requests.md)

44>44>

45> 阅读发现及其严重程度,并通过评论请求再次审查45> 阅读发现及其严重程度,并通过评论请求再次审查

46 46 

47> **[Code Review 故障排除](https://code.claude.com/docs/zh-CN/code-review-troubleshooting.md)**47> [card] [Code Review 故障排除](https://code.claude.com/docs/zh-CN/code-review-troubleshooting.md)

48>48>

49> 修复未启动、失败或因预算而被跳过的审查49> 修复未启动、失败或因预算而被跳过的审查

50 50 

51> **[Code Review 成本和使用情况](https://code.claude.com/docs/zh-CN/code-review-costs.md)**51> [card] [Code Review 成本和使用情况](https://code.claude.com/docs/zh-CN/code-review-costs.md)

52>52>

53> 了解审查的计费方式、估算支出、设置每月支出上限并跟踪审查活动53> 了解审查的计费方式、估算支出、设置每月支出上限并跟踪审查活动

54 54 

commands.md +5 −5

Details

55| `/artifact-capabilities` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 加载已发布的 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 可使用的运行时功能参考,例如[调用您的连接器](https://code.claude.com/docs/zh-CN/artifacts.md#pull-live-data-with-mcp-connectors)或[提供文件下载](https://code.claude.com/docs/zh-CN/artifacts.md#offer-a-file-download),包括您的账户拥有哪些功能。Claude 通常会在构建使用其中某项功能的页面之前自行加载它。在 [Artifact 可用](https://code.claude.com/docs/zh-CN/artifacts.md#availability)的地方可用 |55| `/artifact-capabilities` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 加载已发布的 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 可使用的运行时功能参考,例如[调用您的连接器](https://code.claude.com/docs/zh-CN/artifacts.md#pull-live-data-with-mcp-connectors)或[提供文件下载](https://code.claude.com/docs/zh-CN/artifacts.md#offer-a-file-download),包括您的账户拥有哪些功能。Claude 通常会在构建使用其中某项功能的页面之前自行加载它。在 [Artifact 可用](https://code.claude.com/docs/zh-CN/artifacts.md#availability)的地方可用 |

56| `/artifact-diagramming` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 加载供 Claude 在 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 中遵循的绘图指导:何时使用图表有帮助、绘制什么,以及如何编写在浅色和深色主题下都清晰可读的内联 SVG。需要 Claude Code v2.1.221 或更高版本 |56| `/artifact-diagramming` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 加载供 Claude 在 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 中遵循的绘图指导:何时使用图表有帮助、绘制什么,以及如何编写在浅色和深色主题下都清晰可读的内联 SVG。需要 Claude Code v2.1.221 或更高版本 |

57| `/artifacts` | 列出您拥有的或与您共享的 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md#find-an-artifact-again),然后将其中一个附加到会话、在浏览器中打开,或复制其链接。在 [Artifact 可用](https://code.claude.com/docs/zh-CN/artifacts.md#availability)的地方可用 |57| `/artifacts` | 列出您拥有的或与您共享的 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md#find-an-artifact-again),然后将其中一个附加到会话、在浏览器中打开,或复制其链接。在 [Artifact 可用](https://code.claude.com/docs/zh-CN/artifacts.md#availability)的地方可用 |

58| `/auto-mode-setup` | 根据您的项目和最近的会话[起草 `autoMode.environment` 条目](https://code.claude.com/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审阅草稿并将其保存到您的用户设置中。在 Pro、Max 或 Team 套餐上,需要 Claude Code v2.1.228 或更高版本,在原生 Windows 上则需要 v2.1.233 或更高版本。在 Enterprise 套餐上或使用 Claude Console API 密钥时,需要 v2.1.283 或更高版本。如果该命令不存在,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](https://code.claude.com/docs/zh-CN/auto-mode-config#auto-mode-setup-returns-unknown-command) |58| `/auto-mode-setup` | 根据您的项目和最近的会话[起草 `autoMode.environment` 条目](https://code.claude.com/docs/zh-CN/auto-mode-config#generate-environment-entries),然后审阅草稿并将其保存到您的用户设置中。在 Pro、Max、Ultra 或 Team 套餐上,需要 Claude Code v2.1.228 或更高版本,在原生 Windows 上则需要 v2.1.233 或更高版本。在 Enterprise 套餐上或使用 Claude Console API 密钥时,需要 v2.1.283 或更高版本。如果该命令不存在,请参阅 [`/auto-mode-setup` 返回 "Unknown command"](https://code.claude.com/docs/zh-CN/auto-mode-config#auto-mode-setup-returns-unknown-command) |

59| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:即上下文窗口填充到多满时 Claude Code 会自动压缩。传递大小(例如 `500k`),或传递 `auto` 以恢复为针对您的模型调整的窗口。Claude Code 会将该值保存到用户设置并应用于当前会话。有关接受的值以及哪些设置会覆盖它,请参阅[设置自动压缩窗口](https://code.claude.com/docs/zh-CN/model-config.md#set-the-auto-compact-window)。不带参数时,打开显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |59| `/autocompact [auto\|<tokens>]` | 设置自动压缩窗口:即上下文窗口填充到多满时 Claude Code 会自动压缩。传递大小(例如 `500k`),或传递 `auto` 以恢复为针对您的模型调整的窗口。Claude Code 会将该值保存到用户设置并应用于当前会话。有关接受的值以及哪些设置会覆盖它,请参阅[设置自动压缩窗口](https://code.claude.com/docs/zh-CN/model-config.md#set-the-auto-compact-window)。不带参数时,打开显示当前窗口的对话框。需要 Claude Code v2.1.221 或更高版本 |

60| `/autofix-pr [prompt]` | 生成一个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#auto-fix-pull-requests),监视当前分支的 PR,并在 CI 失败或审阅者留下评论时推送修复。通过 `gh pr view` 从您检出的分支检测打开的 PR;要监视其他 PR,请先检出其分支。默认情况下,云端会话会被指示修复每个 CI 失败和审阅评论;传递提示词可给出不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 以及[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)访问权限 |60| `/autofix-pr [prompt]` | 生成一个[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#auto-fix-pull-requests),监视当前分支的 PR,并在 CI 失败或审阅者留下评论时推送修复。通过 `gh pr view` 从您检出的分支检测打开的 PR;要监视其他 PR,请先检出其分支。默认情况下,云端会话会被指示修复每个 CI 失败和审阅评论;传递提示词可给出不同的指令,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 以及[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)访问权限 |

61| `/background [prompt]` | 将当前会话分离,作为[后台 Agent](https://code.claude.com/docs/zh-CN/agent-view.md) 运行,并释放此终端。传递提示词可在分离前再发送一条指令。使用 `claude agents` 监视该会话。要将对话复制到新的后台会话中,同时让当前会话继续运行,请使用 `/fork`。别名:`/bg` |61| `/background [prompt]` | 将当前会话分离,作为[后台 Agent](https://code.claude.com/docs/zh-CN/agent-view.md) 运行,并释放此终端。传递提示词可在分离前再发送一条指令。使用 `claude agents` 监视该会话。要将对话复制到新的后台会话中,同时让当前会话继续运行,请使用 `/fork`。别名:`/bg` |


120| `/plugin-authoring` | 加载 Claude 用于[编写 mod](https://code.claude.com/docs/zh-CN/plugins/mods/create.md#ask-claude-for-a-mod) 的参考资料。当您请求 mod 时,Claude 可以自行加载它。这是一个来自[内置插件](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md#mods-built-into-claude-code)的 skill,您可以在 `/plugin` 中将其关闭。需要 Claude Code v2.1.287 或更高版本 |120| `/plugin-authoring` | 加载 Claude 用于[编写 mod](https://code.claude.com/docs/zh-CN/plugins/mods/create.md#ask-claude-for-a-mod) 的参考资料。当您请求 mod 时,Claude 可以自行加载它。这是一个来自[内置插件](https://code.claude.com/docs/zh-CN/plugins/mods/overview.md#mods-built-into-claude-code)的 skill,您可以在 `/plugin` 中将其关闭。需要 Claude Code v2.1.287 或更高版本 |

121| `/powerup` | 通过带有动画演示的快速交互式课程了解 Claude Code 功能 |121| `/powerup` | 通过带有动画演示的快速交互式课程了解 Claude Code 功能 |

122| `/pr-comments [PR]` | 已在 v2.1.91 中移除。请改为直接让 Claude 查看 Pull Request 评论。在更早版本中,获取并显示 GitHub Pull Request 中的评论;自动检测当前分支的 PR,或传递 PR URL 或编号。需要 `gh` CLI |122| `/pr-comments [PR]` | 已在 v2.1.91 中移除。请改为直接让 Claude 查看 Pull Request 评论。在更早版本中,获取并显示 GitHub Pull Request 中的评论;自动检测当前分支的 PR,或传递 PR URL 或编号。需要 `gh` CLI |

123| `/privacy-settings` | 查看和更新您的隐私设置。仅适用于 Pro 和 Max 套餐订阅者 |123| `/privacy-settings` | 查看和更新您的隐私设置。仅适用于 Pro、Max 和 Ultra 套餐订阅者 |

124| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。没有可用浏览器时输出流 URL |124| `/radio` | 在浏览器中打开 Claude FM lo-fi 电台。没有可用浏览器时输出流 URL |

125| `/rate-limit-options` | 显示当 claude.ai 用量限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](https://code.claude.com/docs/zh-CN/interactive-mode.md#wait-for-a-usage-limit-to-reset)、添加[使用额度](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription),或升级您的套餐。当您在自己的终端中遇到限制时,Claude Code 也可能会自行打开此菜单。请参阅[关闭自动继续](https://code.claude.com/docs/zh-CN/interactive-mode.md#turn-automatic-continue-off)。需要 claude.ai 订阅。等待并继续的选项行需要 Claude Code v2.1.234 或更高版本 |125| `/rate-limit-options` | 显示当 claude.ai 用量限制阻止请求时继续工作的方法:等待并[在限制重置时自动继续](https://code.claude.com/docs/zh-CN/interactive-mode.md#wait-for-a-usage-limit-to-reset)、添加[使用额度](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription),或升级您的套餐。当您在自己的终端中遇到限制时,Claude Code 也可能会自行打开此菜单。请参阅[关闭自动继续](https://code.claude.com/docs/zh-CN/interactive-mode.md#turn-automatic-continue-off)。需要 claude.ai 订阅。等待并继续的选项行需要 Claude Code v2.1.234 或更高版本 |

126| `/recap` | 按需生成当前会话的单行摘要。有关您离开一段时间后出现的自动回顾,请参阅[会话回顾](https://code.claude.com/docs/zh-CN/interactive-mode.md#session-recap) |126| `/recap` | 按需生成当前会话的单行摘要。有关您离开一段时间后出现的自动回顾,请参阅[会话回顾](https://code.claude.com/docs/zh-CN/interactive-mode.md#session-recap) |


130| `/remote-control` | 使此会话可通过 claude.ai 进行 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)。在未登录时运行,会输出 Remote Control 需要 claude.ai 订阅的提示,并告诉您如何登录。别名:`/rc` |130| `/remote-control` | 使此会话可通过 claude.ai 进行 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)。在未登录时运行,会输出 Remote Control 需要 claude.ai 订阅的提示,并告诉您如何登录。别名:`/rc` |

131| `/remote-env` | 为您从 CLI 启动的云端会话选择默认[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md#select-an-environment-from-the-cli) |131| `/remote-env` | 为您从 CLI 启动的云端会话选择默认[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md#select-an-environment-from-the-cli) |

132| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。不提供名称时,根据对话历史自动生成一个名称。也可在非交互模式(`-p`)中使用。在所有重命名入口(包括 claude.ai 和桌面应用)中,Claude Code 都会将新名称中的控制字符和不可见字符替换为空格,并将名称长度上限设为 200 个字符。如果移除不可见字符后名称为空,Claude Code 会拒绝该名称并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度上限需要 Claude Code v2.1.221 或更高版本 |132| `/rename [name]` | 重命名当前会话并在提示栏上显示名称。不提供名称时,根据对话历史自动生成一个名称。也可在非交互模式(`-p`)中使用。在所有重命名入口(包括 claude.ai 和桌面应用)中,Claude Code 都会将新名称中的控制字符和不可见字符替换为空格,并将名称长度上限设为 200 个字符。如果移除不可见字符后名称为空,Claude Code 会拒绝该名称并显示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字符替换和长度上限需要 Claude Code v2.1.221 或更高版本 |

133| `/restart` | 重启 Claude Code 并恢复此会话,从而应用已安装的更新。在更新安装后页脚提供此选项时运行它。需要 Pro 或 Max 套餐,以及在 macOS 或 Linux(非 WSL)上的原生安装。需要 Claude Code v2.1.288 或更高版本。别名:`/update` |133| `/restart` | 重启 Claude Code 并恢复此会话,从而应用已安装的更新。在更新安装后页脚提供此选项时运行它。需要 Pro、Max 或 Ultra 套餐,以及在 macOS 或 Linux(非 WSL)上的原生安装。需要 Claude Code v2.1.288 或更高版本。别名:`/update` |

134| `/resume [session]` | 通过 ID 或名称恢复对话,或打开会话选择器。[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)在选择器中以 `bg` 标记显示。恢复仍在运行的后台会话时(无论是从选择器还是通过 ID 或名称),会[打开该会话](https://code.claude.com/docs/zh-CN/sessions.md#resume-a-running-background-session):您当前的对话会移到后台,此终端会附加到正在运行的会话。在空输入框中按 `←` 可返回 Agent 视图,其中也会列出您离开的对话。在 v2.1.285 之前,Claude Code 会拒绝并告诉您使用 `claude attach` 打开该会话,或先停止它。别名:`/continue` |134| `/resume [session]` | 通过 ID 或名称恢复对话,或打开会话选择器。[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)在选择器中以 `bg` 标记显示。恢复仍在运行的后台会话时(无论是从选择器还是通过 ID 或名称),会[打开该会话](https://code.claude.com/docs/zh-CN/sessions.md#resume-a-running-background-session):您当前的对话会移到后台,此终端会附加到正在运行的会话。在空输入框中按 `←` 可返回 Agent 视图,其中也会列出您离开的对话。在 v2.1.285 之前,Claude Code 会拒绝并告诉您使用 `claude attach` 打开该会话,或先停止它。别名:`/continue` |

135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](https://code.claude.com/docs/zh-CN/code-review-local) 的别名:审查当前 diff,或您传递的 PR 编号、分支或路径(例如 `/review 1234`),并接受相同的 effort 级别和标志。未指定级别时,审查会沿用您上次输入的 `low` 到 `max` 级别;有关确切规则,请参阅[使用 `/code-review` 在本地审查](https://code.claude.com/docs/zh-CN/code-review-local)。要进行深度云端审查,请使用 [`/code-review ultra`](https://code.claude.com/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,按编号对 GitHub Pull Request 运行单次只读审查,不带参数运行时会列出打开的 PR 供选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多 Agent 引擎 |135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](https://code.claude.com/docs/zh-CN/code-review-local) 的别名:审查当前 diff,或您传递的 PR 编号、分支或路径(例如 `/review 1234`),并接受相同的 effort 级别和标志。未指定级别时,审查会沿用您上次输入的 `low` 到 `max` 级别;有关确切规则,请参阅[使用 `/code-review` 在本地审查](https://code.claude.com/docs/zh-CN/code-review-local)。要进行深度云端审查,请使用 [`/code-review ultra`](https://code.claude.com/docs/zh-CN/ultrareview)。在 v2.1.223 之前,`/review` 是一个单独的命令,按编号对 GitHub Pull Request 运行单次只读审查,不带参数运行时会列出打开的 PR 供选择;从 v2.1.186 到 v2.1.201,它运行与 `/code-review medium` 相同的多 Agent 引擎 |

136| `/rewind` | 将对话和/或代码回退到之前的某个时间点,或从选定的消息开始总结。请参阅[检查点功能](https://code.claude.com/docs/zh-CN/checkpointing.md)。别名:`/checkpoint`、`/undo` |136| `/rewind` | 将对话和/或代码回退到之前的某个时间点,或从选定的消息开始总结。请参阅[检查点功能](https://code.claude.com/docs/zh-CN/checkpointing.md)。别名:`/checkpoint`、`/undo` |


159| `/theme` | 更改颜色主题。包括与终端浅色或深色背景匹配的 `auto` 选项、浅色和深色变体、色盲友好(daltonized)主题、使用终端调色板的 ANSI 主题,以及来自 `~/.claude/themes/` 或插件的任何[自定义主题](https://code.claude.com/docs/zh-CN/terminal-config.md#create-a-custom-theme)。选择 **New custom theme…** 可创建一个主题 |159| `/theme` | 更改颜色主题。包括与终端浅色或深色背景匹配的 `auto` 选项、浅色和深色变体、色盲友好(daltonized)主题、使用终端调色板的 ANSI 主题,以及来自 `~/.claude/themes/` 或插件的任何[自定义主题](https://code.claude.com/docs/zh-CN/terminal-config.md#create-a-custom-theme)。选择 **New custom theme…** 可创建一个主题 |

160| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器,并在保持对话完整的情况下重新启动到该渲染器。`fullscreen` 会启用[无闪烁备用屏幕渲染器](https://code.claude.com/docs/zh-CN/fullscreen.md)。不带参数时,输出当前活动的渲染器 |160| `/tui [default\|fullscreen]` | 设置终端 UI 渲染器,并在保持对话完整的情况下重新启动到该渲染器。`fullscreen` 会启用[无闪烁备用屏幕渲染器](https://code.claude.com/docs/zh-CN/fullscreen.md)。不带参数时,输出当前活动的渲染器 |

161| `/ultraplan <prompt>` | 已移除。请改用[计划模式](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)。以前会将规划任务发送到[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),以便在浏览器中审阅 |161| `/ultraplan <prompt>` | 已移除。请改用[计划模式](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode)。以前会将规划任务发送到[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),以便在浏览器中审阅 |

162| `/ultrareview [PR or branch]` | 使用 [ultrareview](https://code.claude.com/docs/zh-CN/ultrareview.md) 在云端沙箱中运行深度多 Agent 代码审查。传递 PR 引用可审查该 Pull Request,或传递基准分支或提交以更改比较基准。首选调用方式是 `/code-review ultra`,`/ultrareview` 是其别名。Pro 和 Max 包含 3 次免费运行,之后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |162| `/ultrareview [PR or branch]` | 使用 [ultrareview](https://code.claude.com/docs/zh-CN/ultrareview.md) 在云端沙箱中运行深度多 Agent 代码审查。传递 PR 引用可审查该 Pull Request,或传递基准分支或提交以更改比较基准。首选调用方式是 `/code-review ultra`,`/ultrareview` 是其别名。Pro、Max 和 Ultra 包含 3 次免费运行,之后需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 描述一项设置更改,例如允许某个命令、设置环境变量或添加 [hook](https://code.claude.com/docs/zh-CN/hooks.md),Claude 会编辑相应的 [`settings.json`](https://code.claude.com/docs/zh-CN/settings) 文件。对于主题和模型等选项,请改用 `/config` |163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 描述一项设置更改,例如允许某个命令、设置环境变量或添加 [hook](https://code.claude.com/docs/zh-CN/hooks.md),Claude 会编辑相应的 [`settings.json`](https://code.claude.com/docs/zh-CN/settings) 文件。对于主题和模型等选项,请改用 `/config` |

164| `/upgrade` | 在浏览器中打开升级页面,以切换到更高的套餐级别。当浏览器无法打开时,该命令会显示登录提示,但不会输出 URL |164| `/upgrade` | 在浏览器中打开升级页面,以切换到更高的套餐级别。当浏览器无法打开时,该命令会显示登录提示,但不会输出 URL |

165| `/usage` | 显示会话开销、套餐用量限制和活动统计信息。在 Pro、Max、Team 或 Enterprise 套餐上,包括[计入套餐限制的内容明细](https://code.claude.com/docs/zh-CN/costs.md#plan-usage-breakdown)。`/cost` 和 `/stats` 是其别名 |165| `/usage` | 显示会话开销、套餐用量限制和活动统计信息。在 Pro、Max、Ultra、Team 或 Enterprise 套餐上,包括[计入套餐限制的内容明细](https://code.claude.com/docs/zh-CN/costs.md#plan-usage-breakdown)。`/cost` 和 `/stats` 是其别名 |

166| `/usage-credits` | 在达到限制时配置使用额度,或向管理员申请使用额度。在浏览器中打开您的[使用额度计费设置](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription);但没有计费访问权限的 Team 和 Enterprise 成员会在对话框中确认该请求会通知其管理员后,改为从 CLI 向管理员发送使用额度请求。当无法打开浏览器访问计费页面时(例如通过 SSH),该命令会改为输出要访问的 URL;这需要 Claude Code v2.1.205 或更高版本,更早版本在这种情况下不显示任何内容。以前为 `/extra-usage` |166| `/usage-credits` | 在达到限制时配置使用额度,或向管理员申请使用额度。在浏览器中打开您的[使用额度计费设置](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription);但没有计费访问权限的 Team 和 Enterprise 成员会在对话框中确认该请求会通知其管理员后,改为从 CLI 向管理员发送使用额度请求。当无法打开浏览器访问计费页面时(例如通过 SSH),该命令会改为输出要访问的 URL;这需要 Claude Code v2.1.205 或更高版本,更早版本在这种情况下不显示任何内容。以前为 `/extra-usage` |

167| `/verify` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 通过构建、运行您项目的应用并观察结果来确认代码更改是否按预期工作,而不是依赖测试或类型检查。请参阅[运行并验证您的应用](https://code.claude.com/docs/zh-CN/skills.md#run-and-verify-your-app) |167| `/verify` | **[Skill](https://code.claude.com/docs/zh-CN/skills.md#bundled-skills)。** 通过构建、运行您项目的应用并观察结果来确认代码更改是否按预期工作,而不是依赖测试或类型检查。请参阅[运行并验证您的应用](https://code.claude.com/docs/zh-CN/skills.md#run-and-verify-your-app) |

168| `/vim` | 已在 v2.1.92 中移除。要在 Vim 和 Normal 编辑模式之间切换,请使用 `/config` → Editor mode |168| `/vim` | 已在 v2.1.92 中移除。要在 Vim 和 Normal 编辑模式之间切换,请使用 `/config` → Editor mode |

Details

500 500 

501## 后续步骤501## 后续步骤

502 502 

503> **[最佳实践](https://code.claude.com/docs/zh-CN/best-practices.md)**503> [card] [最佳实践](https://code.claude.com/docs/zh-CN/best-practices.md)

504>504>

505> 充分利用 Claude Code 的模式505> 充分利用 Claude Code 的模式

506 506 

507> **[管理会话](https://code.claude.com/docs/zh-CN/sessions.md)**507> [card] [管理会话](https://code.claude.com/docs/zh-CN/sessions.md)

508>508>

509> 恢复、命名和分支对话509> 恢复、命名和分支对话

510 510 

511> **[Worktrees](https://code.claude.com/docs/zh-CN/worktrees.md)**511> [card] [Worktrees](https://code.claude.com/docs/zh-CN/worktrees.md)

512>512>

513> 运行隔离的并行会话513> 运行隔离的并行会话

514 514 

515> **[扩展 Claude Code](https://code.claude.com/docs/zh-CN/features-overview.md)**515> [card] [扩展 Claude Code](https://code.claude.com/docs/zh-CN/features-overview.md)

516>516>

517> 添加 skills、hooks、MCP、subagents 和插件517> 添加 skills、hooks、MCP、subagents 和插件

Details

33 33 

34将此用作您的标准组织范围推出消息。它涵盖了 Claude Code 是什么,提供了两分钟的安装路径,为读者提供了一个具体的任务来尝试,并在任何人必须询问之前回答了"我的代码去哪里了?"。34将此用作您的标准组织范围推出消息。它涵盖了 Claude Code 是什么,提供了两分钟的安装路径,为读者提供了一个具体的任务来尝试,并在任何人必须询问之前回答了"我的代码去哪里了?"。

35 35 

36**电子邮件**36> [tab] 电子邮件

37 37>

38```text theme={null}38> ```text theme={null}

39主题:Claude Code 现已为 [工程部门 / 您的团队] 推出39> 主题:Claude Code 现已为 [工程部门 / 您的团队] 推出

40 40>

41团队,41> 团队,

42 42>

43从今天开始,您可以访问 Claude Code,这是一个在您的终端中运行、读取您的实际代码库并端到端处理真实任务的 AI 编码 Agent:调试、重构、测试、PR。它不是自动完成,也不是聊天窗口。它会编辑文件并运行您的命令。43> 从今天开始,您可以访问 Claude Code,这是一个在您的终端中运行、读取您的实际代码库并端到端处理真实任务的 AI 编码 Agent:调试、重构、测试、PR。它不是自动完成,也不是聊天窗口。它会编辑文件并运行您的命令。

44 44>

45在两分钟内开始运行:45> 在两分钟内开始运行:

46 46>

47 curl -fsSL https://claude.ai/install.sh | bash47> curl -fsSL https://claude.ai/install.sh | bash

48 cd <your-repo>48> cd <your-repo>

49 claude49> claude

50 50>

51然后运行 /init 一次。Claude 读取您的项目并写入一个 CLAUDE.md,其中包含您的构建命令和约定,因此您不再需要重新解释基础知识。51> 然后运行 /init 一次。Claude 读取您的项目并写入一个 CLAUDE.md,其中包含您的构建命令和约定,因此您不再需要重新解释基础知识。

52 52>

53然后在您已经在的仓库上尝试以下其中之一:53> 然后在您已经在的仓库上尝试以下其中之一:

54 54>

55 - "文件 [file] 中的测试不稳定。找出原因并修复它"55> - "文件 [file] 中的测试不稳定。找出原因并修复它"

56 - "向我介绍 [module] 如何处理 [X]"56> - "向我介绍 [module] 如何处理 [X]"

57 - "查看我当前工作的 diff,并在我推送之前告诉我有哪些风险"57> - "查看我当前工作的 diff,并在我推送之前告诉我有哪些风险"

58 58>

59您的代码去哪里了:Claude Code 在您的终端中运行,直接与 Anthropic 的 API 通信。在我们的 Team 或 Enterprise 计划下,Anthropic 不会使用您的代码或提示词来训练其模型。59> 您的代码去哪里了:Claude Code 在您的终端中运行,直接与 Anthropic 的 API 通信。在我们的 Team 或 Enterprise 计划下,Anthropic 不会使用您的代码或提示词来训练其模型。

60详情:https://code.claude.com/docs/en/data-usage60> 详情:https://code.claude.com/docs/en/data-usage

61 https://code.claude.com/docs/en/security61> https://code.claude.com/docs/en/security

62 62>

63有问题去哪里:#claude-code。[所有者名称] 本周在关注它。63> 有问题去哪里:#claude-code。[所有者名称] 本周在关注它。

64 64>

65- [名称]65> - [名称]

66 66>

67附注:更喜欢您的编辑器?有一个 VS Code 扩展和一个 JetBrains 插件。相同的 Agent,不需要终端。67> 附注:更喜欢您的编辑器?有一个 VS Code 扩展和一个 JetBrains 插件。相同的 Agent,不需要终端。

68```68> ```

69 

70**Slack 或 Teams**

71 

72```markdown theme={null}

73🚀 *Claude Code 现已为 [团队] 推出*

74 

75AI 编码 Agent,在您的终端中运行,读取您的仓库,完成真实工作:

76错误、重构、测试、PR。

77 

78`curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

79 

80*首先尝试的事情* → 运行 `/init`,然后:"文件 [file] 中的测试不稳定,

81找出原因并修复它。"

82 

83🔒 在您的终端中运行,直接与 Anthropic 的 API 通信。在我们的 Team 或

84Enterprise 计划下,您的代码和提示词不会用于训练模型。

85数据使用 → https://code.claude.com/docs/en/data-usage

86 

87📚 快速入门 · VS Code · 免费 1 小时课程

88 https://code.claude.com/docs/en/quickstart

89 https://code.claude.com/docs/en/vs-code

90 https://academy.claude.com/courses/claude-code-in-action

91 69 

92问题 → 此线程。[所有者] 在处理。70> [tab] Slack 或 Teams

93```71>

72> ```markdown theme={null}

73> 🚀 *Claude Code 现已为 [团队] 推出*

74>

75> AI 编码 Agent,在您的终端中运行,读取您的仓库,完成真实工作:

76> 错误、重构、测试、PR。

77>

78> `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

79>

80> *首先尝试的事情* → 运行 `/init`,然后:"文件 [file] 中的测试不稳定,

81> 找出原因并修复它。"

82>

83> 🔒 在您的终端中运行,直接与 Anthropic 的 API 通信。在我们的 Team 或

84> Enterprise 计划下,您的代码和提示词不会用于训练模型。

85> 数据使用 → https://code.claude.com/docs/en/data-usage

86>

87> 📚 快速入门 · VS Code · 免费 1 小时课程

88> https://code.claude.com/docs/en/quickstart

89> https://code.claude.com/docs/en/vs-code

90> https://academy.claude.com/courses/claude-code-in-action

91>

92> 问题 → 此线程。[所有者] 在处理。

93> ```

94 94 

95### 执行赞助商变体95### 执行赞助商变体

96 96 


98 98 

99此版本故意精简为一个要求:安装它并在一个真实任务上运行它。高管的工作是让要求落地;标准公告和 `#claude-code` 处理方式。99此版本故意精简为一个要求:安装它并在一个真实任务上运行它。高管的工作是让要求落地;标准公告和 `#claude-code` 处理方式。

100 100 

101**电子邮件**101> [tab] 电子邮件

102 102>

103```text theme={null}103> ```text theme={null}

104主题:我希望每位工程师本周尝试的一件事104> 主题:我希望每位工程师本周尝试的一件事

105 105>

106团队,106> 团队,

107 107>

108我们已为所有工程部门启用了 Claude Code。这是一个直接在您的终端中工作、在您的实际代码库上工作的 AI 代理,已经使用它的团队的早期结果足够强劲,我希望每个人本周都使用它。108> 我们已为所有工程部门启用了 Claude Code。这是一个直接在您的终端中工作、在您的实际代码库上工作的 AI 代理,已经使用它的团队的早期结果足够强劲,我希望每个人本周都使用它。

109 109>

110我要求十分钟:110> 我要求十分钟:

111 111>

112 curl -fsSL https://claude.ai/install.sh | bash112> curl -fsSL https://claude.ai/install.sh | bash

113 cd <your-repo>113> cd <your-repo>

114 claude114> claude

115 115>

116然后给它一个真实的任务:您一直在推迟的错误,或"向我介绍 [module] 如何工作"。116> 然后给它一个真实的任务:您一直在推迟的错误,或"向我介绍 [module] 如何工作"。

117 117>

118这就是全部要求。[所有者名称] 和团队在 #claude-code 中处理您遇到的任何问题。118> 这就是全部要求。[所有者名称] 和团队在 #claude-code 中处理您遇到的任何问题。

119 119>

120- [执行官名称]120> - [执行官名称]

121 [职位]121> [职位]

122```122> ```

123 

124**Slack 或 Teams**

125 

126```markdown theme={null}

127📣 *来自 [执行官名称]:本周尝试的一件事*

128 

129我们已为所有工程部门启用了 *Claude Code*。早期结果足够强劲,我要求每个人本周在真实工作上给它十分钟。

130 

131`curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` →

132`claude` → 给它一个真实的任务。

133 123 

134就这样。问题 → #claude-code。124> [tab] Slack 或 Teams

135```125>

126> ```markdown theme={null}

127> 📣 *来自 [执行官名称]:本周尝试的一件事*

128>

129> 我们已为所有工程部门启用了 *Claude Code*。早期结果足够强劲,我要求每个人本周在真实工作上给它十分钟。

130>

131> `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` →

132> `claude` → 给它一个真实的任务。

133>

134> 就这样。问题 → #claude-code。

135> ```

136 136 

137### 试点组变体137### 试点组变体

138 138 

computer-use.md +2 −2

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Computer use 是 macOS 上的研究预览版,需要 Pro 或 Max 计划。它在 Team 或 Enterprise 计划上不可用。它需要交互式会话,因此在使用 `-p` 标志的非交互式模式下不可用。11> Computer use 是 macOS 上的研究预览版,需要 Pro、Max 或 Ultra 计划。它在 Team 或 Enterprise 计划上不可用。它需要交互式会话,因此在使用 `-p` 标志的非交互模式下不可用。

12 12 

13Computer use 让 Claude 能够打开应用、控制您的屏幕,并以您的方式在您的机器上工作。从 CLI 中,Claude 可以编译 Swift 应用、启动它、点击每个按钮,并截图结果,所有这些都在编写代码的同一对话中进行。13Computer use 让 Claude 能够打开应用、控制您的屏幕,并以您的方式在您的机器上工作。从 CLI 中,Claude 可以编译 Swift 应用、启动它、点击每个按钮,并截图结果,所有这些都在编写代码的同一对话中进行。

14 14 


196服务器仅在符合条件的设置上出现。检查:196服务器仅在符合条件的设置上出现。检查:

197 197 

198* 您在 macOS 上。Computer use 在 CLI 中在 Linux 或 Windows 上不可用。在 Windows 上,改用 [Desktop 中的 computer use](https://code.claude.com/docs/zh-CN/desktop.md#let-claude-use-your-computer)。198* 您在 macOS 上。Computer use 在 CLI 中在 Linux 或 Windows 上不可用。在 Windows 上,改用 [Desktop 中的 computer use](https://code.claude.com/docs/zh-CN/desktop.md#let-claude-use-your-computer)。

199* 您在 Pro 或 Max 计划上。运行 `/status` 来确认您的订阅。199* 您使用的是 Pro、Max 或 Ultra 套餐。运行 `/status` 来确认您的订阅。

200* 您通过 claude.ai 进行身份验证。Computer use 不适用于第三方提供商,如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。如果您仅通过第三方提供商访问 Claude,您需要单独的 claude.ai 账户来使用此功能。200* 您通过 claude.ai 进行身份验证。Computer use 不适用于第三方提供商,如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。如果您仅通过第三方提供商访问 Claude,您需要单独的 claude.ai 账户来使用此功能。

201* 您在交互式会话中。Computer use 在使用 `-p` 标志的非交互式模式下不可用。201* 您在交互式会话中。Computer use 在使用 `-p` 标志的非交互式模式下不可用。

202 202 

costs.md +106 −106

Details

6 6 

7> 跟踪令牌使用情况,设置团队支出限制,并通过上下文管理、模型选择、扩展思考设置和预处理 hooks 来降低 Claude Code 成本。7> 跟踪令牌使用情况,设置团队支出限制,并通过上下文管理、模型选择、扩展思考设置和预处理 hooks 来降低 Claude Code 成本。

8 8 

9Claude Code 按 API 令牌消耗收费。有关订阅计划定价(Pro、Max、Team、Enterprise),请参阅 [claude.com/pricing](https://claude.com/pricing)。每个开发者的成本差异很大,取决于模型选择、代码库大小和使用模式,例如运行多个实例或自动化。9Claude Code 按 API token 消耗收费。有关订阅套餐定价(Pro、Max、Ultra、Team、Enterprise),请参阅 [claude.com/pricing](https://claude.com/pricing)。每个开发者的成本差异很大,取决于模型选择、代码库大小和使用模式,例如运行多个实例或自动化。

10 10 

11在企业部署中,平均成本约为每个开发者每个活跃日 $13,每个开发者每月 $150-250,90% 的用户每个活跃日成本保持在 \$30 以下。要估计您自己团队的支出,请从一个小的试点团体开始,并使用下面的跟踪工具建立基线,然后再进行更广泛的推出。11在企业部署中,平均成本约为每个开发者每个活跃日 $13,每个开发者每月 $150-250,90% 的用户每个活跃日成本保持在 \$30 以下。要估计您自己团队的支出,请从一个小的试点团体开始,并使用下面的跟踪工具建立基线,然后再进行更广泛的推出。

12 12 


18 18 

19> [!NOTE]19> [!NOTE]

20>20>

21> `/usage` 中的 Session 块显示 API 令牌使用情况,适用于 API 用户。Claude Max 和 Pro 订阅者的使用情况包含在订阅中,因此会话成本数据与计费无关。订阅者在同一屏幕上看到计划使用条、活动统计以及使用情况明细。21> `/usage` 中的 Session 块显示 API token 使用情况,适用于 API 用户。Claude Pro、Max 和 Ultra 订阅者的使用量包含在订阅中,因此会话成本数据与计费无关。订阅者会在同一屏幕上看到套餐使用条、活动统计以及使用情况明细。

22 22 

23`/usage` 顶部的 Session 块显示当前会话的详细令牌使用统计。Claude Code 从令牌计数本地计算美元数字,按列表价格计算,除非 [`modelPricing`](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing) 表生效。管理员在您组织的托管设置中设置一个表,以便该数字使用您的合同费率,当表生效时,`Total cost` 行会带有注释 `at your organization's configured rates`。该数字是估计值,有关权威计费,请参阅 [Claude Console](https://platform.claude.com/usage) 中的使用情况页面。23`/usage` 顶部的 Session 块显示当前会话的详细令牌使用统计。Claude Code 从令牌计数本地计算美元数字,按列表价格计算,除非 [`modelPricing`](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing) 表生效。管理员在您组织的托管设置中设置一个表,以便该数字使用您的合同费率,当表生效时,`Total cost` 行会带有注释 `at your organization's configured rates`。该数字是估计值,有关权威计费,请参阅 [Claude Console](https://platform.claude.com/usage) 中的使用情况页面。

24 24 


55 55 

56#### 计划使用情况明细56#### 计划使用情况明细

57 57 

58在 Pro、Max、Team 或 Enterprise 套餐上,`/usage` 还显示计入您的套餐限制的内容明细,并附带建议:58在 Pro、Max、Ultra、Team 或 Enterprise 套餐上,`/usage` 还显示计入您的套餐限制的内容明细,并附带建议:

59 59 

60* **Attribution(归属)**:最近使用情况归属于 skills、subagents、plugins 和各个 MCP 服务器,每个都显示为总数的百分比。MCP 服务器的份额仅计算消耗其工具结果之一的请求。在 v2.1.222 之前,在调用 MCP 服务器一次后,Claude Code 将每个后续请求归属于该服务器,高估了其份额。60* **Attribution(归属)**:最近使用情况归属于 skills、subagents、plugins 和各个 MCP 服务器,每个都显示为总数的百分比。MCP 服务器的份额仅计算消耗其工具结果之一的请求。在 v2.1.222 之前,在调用 MCP 服务器一次后,Claude Code 将每个后续请求归属于该服务器,高估了其份额。

61* **Recommendations(建议)**:建议的更改,每行一项。每行开头是您最近使用情况的一个份额(至少 10%),例如 `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`。61* **Recommendations(建议)**:建议的更改,每行一项。每行开头是您最近使用情况的一个份额(至少 10%),例如 `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`。


92 92 

93`/usage` 还在[使用额度](#add-usage-credits-to-your-subscription)开启时显示使用额度行。该行显示的内容取决于您的计划:93`/usage` 还在[使用额度](#add-usage-credits-to-your-subscription)开启时显示使用额度行。该行显示的内容取决于您的计划:

94 94 

95* **Pro 和 Max**:当前月份的支出,与您设置的每月支出限制进行比较(如果您设置了一个)。当您未设置限制时,该行显示 `Unlimited`,没有支出数字。95* **Pro、Max 和 Ultra**:当前月份的支出,与您设置的每月支出限制进行比较(如果您设置了一个)。当您未设置限制时,该行显示 `Unlimited`,没有支出数字。

96* **Team 和 Enterprise**:当前月份的您自己的支出,与您的组织设置的任何[限制](#claude-for-teams-and-enterprise)进行比较,该限制适用于您。覆盖整个组织的限制不会出现在该行中。当您没有自己的限制时,该行显示您的支出,旁边没有限制。当使用额度对您关闭时,`/usage` 不显示使用额度行。96* **Team 和 Enterprise**:当前月份的您自己的支出,与您的组织设置的任何[限制](#claude-for-teams-and-enterprise)进行比较,该限制适用于您。覆盖整个组织的限制不会出现在该行中。当您没有自己的限制时,该行显示您的支出,旁边没有限制。当使用额度对您关闭时,`/usage` 不显示使用额度行。

97 97 

98当您有支出限制时,该行在使用额度开启后立即出现,并显示 0%,直到您首次支出使用额度。在 v2.1.236 之前,`/usage` 仅在 Pro 和 Max 计划上显示该行,带有支出限制的行在您支出某些内容之前保持隐藏。98当您有支出限制时,该行在使用额度开启后立即出现,并显示 0%,直到您首次支出使用额度。在 v2.1.236 之前,`/usage` 仅在 Pro、Max 和 Ultra 套餐上显示该行,带有支出限制的行在您支出某些内容之前保持隐藏。

99 99 

100#### 当使用情况请求失败时100#### 当使用情况请求失败时

101 101 


130 130 

131| 您的角色 | `/usage-credits` 的作用 |131| 您的角色 | `/usage-credits` 的作用 |

132| :- | :- |132| :- | :- |

133| Pro 或 Max 订阅者 | 在浏览器中打开 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage)。在其 **Usage credits** 部分中,您可以打开或关闭使用额度,并检查您的额度余额、本月支出和每月支出限制 |133| Pro、Max 或 Ultra 订阅者 | 在浏览器中打开 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage)。在其 **Usage credits** 部分中,您可以打开或关闭使用额度,并检查您的额度余额、本月支出和每月支出限制 |

134| 具有计费访问权限的 Team 或 Enterprise 成员 | 在浏览器中打开您组织的用量设置 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) |134| 具有计费访问权限的 Team 或 Enterprise 成员 | 在浏览器中打开您组织的用量设置 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) |

135| 没有计费访问权限的 Team 或 Enterprise 成员 | 要求您确认,然后向您的组织管理员发送请求。在 v2.1.211 之前,Claude Code 在没有确认步骤的情况下发送请求 |135| 没有计费访问权限的 Team 或 Enterprise 成员 | 要求您确认,然后向您的组织管理员发送请求。在 v2.1.211 之前,Claude Code 在没有确认步骤的情况下发送请求 |

136 136 


142 142 

143## 管理组织的成本143## 管理组织的成本

144 144 

145您对 Claude Code 的控制方式取决于您的组织如何访问 Claude Code:通过 Claude for Teams 或 Enterprise 计划、Claude Console 或云提供商。在 Teams 和 Enterprise 计划中,使用情况从每个成员的座位额度中扣除。在 Console 和云提供商上,使用情况按令牌计费到您的组织。如果您的组织混合使用登录方法,每个开发者将根据他们进行身份验证的方法进行计量。145您拥有哪些控制手段,取决于您的组织访问 Claude Code 的方式:Claude for Teams 或 Enterprise 套餐、Claude Console,或云服务提供商。在 Teams 和 Enterprise 套餐中,用量从每位成员的席位额度中扣除。在 Console 和云服务提供商上,用量按 token 向您的组织计费。如果您的组织混合使用多种登录方式,每位开发者将按其进行身份验证时所用的方式计量。

146 146 

147该表将每种设置映射到您查看支出的位置、您限制支出的位置以及如何提取每用户数字。在个人 Pro 或 Max 计划中,您没有组织可管理,因此请跟踪您自己的使用额度支出,包括[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md#see-where-fast-mode-spend-appears),在[向您的订阅添加使用额度](#add-usage-credits-to-your-subscription)下。147下表列出了每种设置下在哪里查看支出、在哪里设置支出上限,以及如何获取按用户统计的数据。在个人 Pro、Max 或 Ultra 套餐中,您没有需要管理的组织,因此请在[为您的订阅添加使用额度](#add-usage-credits-to-your-subscription)下跟踪您自己的使用额度支出,包括[快速模式](https://code.claude.com/docs/zh-CN/fast-mode.md#see-where-fast-mode-spend-appears)。

148 148 

149| 您的设置 | 查看支出 | 限制支出 | 每用户报告 |149| 您的设置 | 查看支出 | 限制支出 | 按用户报告 |

150| :- | :- | :- | :- |150| :- | :- | :- | :- |

151| [Claude for Teams 或 Enterprise](#claude-for-teams-and-enterprise) | [组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | 管理员设置中的支出限制 | [支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans);Enterprise 上的 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) |151| [Claude for Teams 或 Enterprise](#claude-for-teams-and-enterprise) | [组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | 管理设置中的支出限制 | [支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans);Enterprise 套餐可使用 [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) |

152| [Claude Console (API)](#claude-console) | [Console 使用情况页面](https://platform.claude.com/usage) | 工作区支出限制 | [Console 仪表板](https://platform.claude.com/claude-code)、[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |152| [Claude Console (API)](#claude-console) | [Console 用量页面](https://platform.claude.com/usage) | 工作区支出限制 | [Console 仪表板](https://platform.claude.com/claude-code)、[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |

153| [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry](#cloud-providers) | 您的云计费控制台 | 您的云预算控制 | [OpenTelemetry](https://code.claude.com/docs/zh-CN/monitoring-usage.md) 或 [LLM gateway](https://code.claude.com/docs/zh-CN/llm-gateway) |153| [Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry](#cloud-providers) | 您的云计费控制台 | 您的云预算控制 | [OpenTelemetry](https://code.claude.com/docs/zh-CN/monitoring-usage.md) 或 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway) |

154 154 

155[OpenTelemetry 导出](https://code.claude.com/docs/zh-CN/monitoring-usage.md)适用于每种设置,是唯一能够以近实时方式将每用户令牌和成本指标流式传输到您自己的可观测性堆栈的选项。155[OpenTelemetry 导出](https://code.claude.com/docs/zh-CN/monitoring-usage.md)适用于所有设置,并且是唯一能将按用户统计的 token 和成本指标近乎实时地流式传输到您自己的可观测性平台的选项。

156 156 

157### 按您的合同费率报告支出157### 按您的合同费率报告支出

158 158 

159默认情况下,Claude Code 按列表价格计算它向开发者显示的每个成本数字,因此如果您的组织支付合同费率,`/usage`、状态行和 OpenTelemetry 中的数字与您的账单不匹配。为了使它们匹配,请将 [`modelPricing`](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing) 托管设置设置为您的费率。该设置改变 Claude Code 报告的内容,而不是 Anthropic 收费的内容。需要 Claude Code v2.1.242 或更高版本。159默认情况下,Claude Code 向开发者显示的每个成本数字都按标价计算,因此如果您的组织支付的是合同费率,`/usage`、状态栏和 OpenTelemetry 中的数字将与您的账单不符。要使其一致,请将 [`modelPricing`](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing) 托管设置设为您的费率。该设置改变的是 Claude Code 报告的内容,而不是 Anthropic 收取的费用。需要 Claude Code v2.1.242 或更高版本。

160 160 

161**1. 从您的合同中获取费率**161**1. 从合同中获取费率**

162 162 

163输入您的合同中的每百万令牌费率。Claude Code 不会从 Claude Console 获取它们,因此在合同更改时更新设置。163输入合同中的每百万 token 费率。Claude Code 不会从 Claude Console 获取这些费率,因此合同变更时请更新该设置。

164 164 

165**2. 编写设置**165**2. 编写设置**

166 166 

167为列表价格设置 `multiplier` 以获得固定折扣或高于 1 以获得加价,在 `overrides` 下列出每个模型的四个每令牌费率,或两者都做。加价需要 Claude Code v2.1.271 或更高版本。[`modelPricing` 条目](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing)具有形状和粘贴就用的示例。167将 `multiplier` 设为小于 1 的值以获得统一折扣,或设为大于 1 的值以进行加价;也可以在 `overrides` 下列出每个模型的四项按 token 费率,或两者同时使用。加价需要 Claude Code v2.1.271 或更高版本。[`modelPricing` 条目](https://code.claude.com/docs/zh-CN/settings-reference#modelpricing)中提供了结构说明和可直接粘贴的示例。

168 168 

169**3. 通过托管设置部署它**169**3. 通过托管设置部署**

170 170 

171将其作为[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)交付:服务器管理的设置、MDM 策略、`managed-settings.json` 或[策略助手](https://code.claude.com/docs/zh-CN/managed-settings.md#compute-the-policy-with-a-helper-program)。Claude Code 忽略用户、项目和本地设置以及 `--settings` 中的密钥。171将其作为[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)下发:服务器托管设置、MDM 策略、`managed-settings.json` 或[策略辅助程序](https://code.claude.com/docs/zh-CN/managed-settings.md#compute-the-policy-with-a-helper-program)。Claude Code 会忽略用户、项目和本地设置以及 `--settings` 中的该键。

172 172 

173要确认费率生效,请在已[接收托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md#read-the-source-in-%2Fstatus)的会话中运行 `/usage`:Session 块的 `Total cost` 行带有注释 `at your organization's configured rates`。这些数字仍然是估计值,而不是发票。`/model` 选择器中的每百万令牌价格保持在列表价格。173要确认费率已生效,请在[已收到托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md#read-the-source-in-%2Fstatus)的会话中运行 `/usage`:Session 区块的 `Total cost` 行会附带注释 `at your organization's configured rates`。这些数字仍是估算值,而非发票。`/model` 选择器中的每百万 token 价格仍保持标价。

174 174 

175### Claude for Teams 和 Enterprise175### Claude for Teams 和 Enterprise

176 176 

177在 Claude for Teams 和 Enterprise 计划中,每个成员的 Claude Code 使用情况从按座位额度中扣除,该额度在滚动五小时窗口和每周窗口上重置。该额度与 Claude chat 和 Cowork 共享,其大小取决于成员的[座位等级](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)(Standard 或 Premium)。您的控制位于 claude.ai 管理控制台中,而不是 Claude Console。177在 Claude for Teams 和 Enterprise 套餐中,每位成员的 Claude Code 用量从按席位分配的额度中扣除,该额度按滚动的五小时窗口和每周窗口重置。该额度与 Claude 聊天和 Cowork 共享,其大小取决于成员的[席位等级](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)(Standard 或 Premium)。您的控制手段位于 claude.ai 管理控制台中,而不是 Claude Console 中。

178 178 

179* **查看支出**:[组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans)显示每个用户和每个模型的估计支出,带有 CSV 导出,每日更新。该报告涵盖使用额度支出,并在启用使用额度后出现。座位额度内的使用情况不以美元计量。179* **查看支出**:[组织分析中的支出报告](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans)按用户和按模型显示估算支出,支持 CSV 导出,每日更新。该报告涵盖使用额度支出,并在启用使用额度后显示。席位额度内的用量不以美元计量。

180* **查看采用情况**:[分析仪表板](https://claude.ai/analytics/claude-code)显示每日活跃用户、会话和贡献指标,带有贡献数据的 CSV 导出。请参阅[使用分析跟踪团队使用情况](https://code.claude.com/docs/zh-CN/analytics.md)。180* **查看采用情况**:[分析仪表板](https://claude.ai/analytics/claude-code)显示每日活跃用户、会话和贡献指标,并支持以 CSV 导出贡献数据。请参阅[使用分析跟踪团队用量](https://code.claude.com/docs/zh-CN/analytics.md)。

181* **限制支出**:座位额度是默认上限。要让成员继续超过它,请启用[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)并在组织、组或个人成员级别设置支出限制。181* **限制支出**:席位额度是默认上限。要让成员在超出额度后继续使用,请启用[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),并在组织、群组或单个成员级别设置支出限制。

182* **提取每用户数字**:在 Enterprise 计划中,[Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) 返回跨 Claude 表面(包括 Claude Code)的每用户使用情况和成本报告。主所有者在 [claude.ai/analytics/api-keys](https://claude.ai/analytics/api-keys) 处使用 `read:analytics` 范围创建密钥。在 Teams 计划中,导出[支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans),其中列出了每个用户和每个模型的令牌使用情况和估计支出。182* **获取按用户统计的数据**:在 Enterprise 套餐中,[Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) 返回跨各 Claude 使用入口(包括 Claude Code)的按用户用量和成本报告。Primary Owner 可在 [claude.ai/analytics/api-keys](https://claude.ai/analytics/api-keys) 创建具有 `read:analytics` 作用域的密钥。在 Teams 套餐中,请导出[支出报告 CSV](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans),其中列出了按用户和按模型的 token 用量及估算支出。

183 183 

184[Claude Enterprise 消费指南](https://support.claude.com/en/articles/14782391-claude-enterprise-consumption-guide)是管理员的规划参考。它解释了消费如何在 Claude chat、Claude Code 和 Cowork 中有所不同,并为预算提供了每用户美元起点。为编码座位预算比聊天座位更多:每个 Claude Code 轮次都包含文件内容、工具调用和多步推理,因此一个调试会话可能会消耗超过一天的聊天。184[Claude Enterprise 消耗指南](https://support.claude.com/en/articles/14782391-claude-enterprise-consumption-guide)是供管理员进行规划的参考资料。它说明了 Claude 聊天、Claude Code 和 Cowork 之间的消耗差异,并提供了用于预算编制的按用户美元起始参考值。为编码席位编制的预算应多于聊天席位:每个 Claude Code 轮次都携带文件内容、工具调用和多步推理,因此一次调试会话的消耗可能超过一整天的聊天。

185 185 

186### Claude Console186### Claude Console

187 187 

188API 组织通过[工作区](https://platform.claude.com/docs/en/build-with-claude/workspaces)管理 Claude Code 支出。您可以[设置工作区支出限制](https://platform.claude.com/docs/en/build-with-claude/workspaces#workspace-limits)以限制 Claude Code 总支出,并在 Console 中[查看成本和使用情况报告](https://platform.claude.com/docs/en/build-with-claude/workspaces#usage-and-cost-tracking)。188API 组织通过[工作区](https://platform.claude.com/docs/en/build-with-claude/workspaces)管理 Claude Code 支出。您可以针对 Claude Code 的总支出[设置工作区支出限制](https://platform.claude.com/docs/en/build-with-claude/workspaces#workspace-limits),并在 Console 中[查看成本和用量报告](https://platform.claude.com/docs/en/build-with-claude/workspaces#usage-and-cost-tracking)。

189 189 

190> [!NOTE]190> [!NOTE]

191>191>

192> 当您首次使用 Claude Console 账户对 Claude Code 进行身份验证时,会自动为您创建一个名为"Claude Code"的工作区。此工作区为您的组织中的所有 Claude Code 使用情况提供集中式成本跟踪和管理。您无法为此工作区创建 API 密钥;它专门用于 Claude Code 身份验证和使用。192> 当您首次使用 Claude Console 账户对 Claude Code 进行身份验证时,系统会自动为您创建一个名为"Claude Code"的工作区。该工作区为您组织中所有 Claude Code 用量提供集中的成本跟踪和管理。您无法为该工作区创建 API 密钥;它专门用于 Claude Code 的身份验证和使用。

193>193>

194> 对于具有自定义速率限制的组织,此工作区中的 Claude Code 流量计入您的组织整体 API 速率限制。您可以在 Claude Console 的此工作区的 Limits 页面上设置[工作区速率限制](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces),以限制 Claude Code 的份额并保护其他生产工作负载。194> 对于具有自定义速率限制的组织,该工作区中的 Claude Code 流量会计入您组织的整体 API 速率限制。您可以在 Claude Console 中该工作区的 Limits 页面上设置[工作区速率限制](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces),以限制 Claude Code 的占用份额并保护其他生产工作负载。

195 195 

196对于每用户报告,[Console 仪表板](https://platform.claude.com/claude-code)显示每个成员的支出和接受的行数,[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api)使用[管理员 API 密钥](https://platform.claude.com/settings/admin-keys)以编程方式返回相同的每日每用户指标。请参阅[API 客户的分析](https://code.claude.com/docs/zh-CN/analytics.md#access-analytics-for-api-customers)。196对于按用户报告,[Console 仪表板](https://platform.claude.com/claude-code)显示每位成员的支出和已接受的代码行数,[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) 则可通过 [Admin API 密钥](https://platform.claude.com/settings/admin-keys)以编程方式返回相同的每日按用户指标。请参阅[面向 API 客户的分析](https://code.claude.com/docs/zh-CN/analytics.md#access-analytics-for-api-customers)。

197 197 

198#### 速率限制建议198#### 速率限制建议

199 199 

200为团队设置 Claude Code 时,请根据您的组织规模考虑这些每用户的令牌/分钟 (TPM) 和请求/分钟 (RPM) 建议:200为团队设置 Claude Code 时,请根据您的组织规模参考以下每用户每分钟 token 数(TPM)和每分钟请求数(RPM)建议:

201 201 

202| 团队规模 | 每用户 TPM | 每用户 RPM |202| 团队规模 | 每用户 TPM | 每用户 RPM |

203| - | - | - |203| - | - | - |

204| 1-5 用户 | 200k-300k | 5-7 |204| 1-5 名用户 | 200k-300k | 5-7 |

205| 5-20 用户 | 100k-150k | 2.5-3.5 |205| 5-20 名用户 | 100k-150k | 2.5-3.5 |

206| 20-50 用户 | 50k-75k | 1.25-1.75 |206| 20-50 名用户 | 50k-75k | 1.25-1.75 |

207| 50-100 用户 | 25k-35k | 0.62-0.87 |207| 50-100 名用户 | 25k-35k | 0.62-0.87 |

208| 100-500 用户 | 15k-20k | 0.37-0.47 |208| 100-500 名用户 | 15k-20k | 0.37-0.47 |

209| 500+ 用户 | 10k-15k | 0.25-0.35 |209| 500+ 名用户 | 10k-15k | 0.25-0.35 |

210 210 

211例如,如果您有 200 个用户,您可能会为每个用户请求 20k TPM,或总共 400 万 TPM (200\*20,000 = 400 万)。211例如,如果您有 200 名用户,您可以为每位用户申请 20k TPM,即总计 400 万 TPM(200\*20,000 = 400 万)。

212 212 

213随着团队规模的增长,每用户的 TPM 会减少,因为在较大的组织中,往往较少的用户同时使用 Claude Code。这些速率限制在组织级别应用,而不是按个人用户应用,这意味着当其他人未积极使用该服务时,个人用户可以暂时消耗超过其计算份额的资源。213每用户 TPM 随团队规模增大而降低,因为在较大的组织中,同时使用 Claude Code 的用户比例往往较低。这些速率限制作用于组织级别,而不是针对单个用户,这意味着当其他人未在积极使用该服务时,单个用户可以暂时消耗超过其计算份额的量。

214 214 

215> [!NOTE]215> [!NOTE]

216>216>

217> 如果您预期会出现异常高的并发使用情况(例如与大型团体进行的实时培训会话),您可能需要更高的每用户 TPM 分配。217> 如果您预计会出现并发用量异常高的场景(例如大型团体的现场培训),您可能需要为每位用户分配更高的 TPM。

218 218 

219### 云提供商219### 云服务提供商

220 220 

221在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,Claude Code 按令牌计费到您的云账户,支出控制位于您的云提供商的计费控制台中。Claude Code 不会从您的云向 Anthropic 发送指标,因此[分析仪表板](https://code.claude.com/docs/zh-CN/analytics.md)和 Claude Code Analytics API 不涵盖此使用情况。221在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,Claude Code 按 token 向您的云账户计费,支出控制位于您的云服务提供商的计费控制台中。Claude Code 不会将您云端的指标发送回 Anthropic,因此[分析仪表板](https://code.claude.com/docs/zh-CN/analytics.md)和 Claude Code Analytics API 不涵盖这部分用量。

222 222 

223对于每用户成本归因,您有三个选项:223对于按用户的成本归属,您有三种选择:

224 224 

225* **OpenTelemetry**:[导出指标](https://code.claude.com/docs/zh-CN/monitoring-usage.md)从每个开发者的机器到您自己的可观测性堆栈。这为您提供每用户令牌计数、成本和工具活动,无论提供商如何。225* **OpenTelemetry**:从每位开发者的机器[导出指标](https://code.claude.com/docs/zh-CN/monitoring-usage.md)到您自己的可观测性平台。无论使用哪家提供商,这都能为您提供按用户统计的 token 数、成本和工具活动。

226* **Claude apps gateway**:自托管的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway)提供每用户使用情况归因、带有令牌计数的 OTLP 指标,以及这些提供商上的[每用户支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md)。226* **Claude apps 网关**:自托管的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 在这些提供商上提供按用户的用量归属、包含 token 数的 OTLP 指标以及[按用户的支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md)。

227* **LLM gateway**:通过代理路由所有 Claude Code 流量,该代理按密钥跟踪支出。几个大型企业报告使用[LiteLLM](https://code.claude.com/docs/zh-CN/llm-gateway),一个开源工具,可以[按密钥跟踪支出](https://docs.litellm.ai/docs/proxy/virtual_keys#tracking-spend)。此项目与 Anthropic 无关,尚未进行安全审计。227* **LLM 网关**:将所有 Claude Code 流量通过一个按密钥跟踪支出的代理进行路由。多家大型企业报告称使用了 [LiteLLM](https://code.claude.com/docs/zh-CN/llm-gateway),这是一个可以[按密钥跟踪支出](https://docs.litellm.ai/docs/proxy/virtual_keys#tracking-spend)的开源工具。该项目与 Anthropic 无关,且未经过安全审计。

228 228 

229### 当开发者询问限制时229### 当开发者询问限制问题时

230 230 

231开发者通常会向他们的管理员提出限制问题,因此了解他们遇到的上限会很有帮助。这些情况意味着不同的事情:231开发者通常会向管理员咨询限制问题,因此了解他们触及的是哪种上限会很有帮助。以下几种情况含义各不相同:

232 232 

233* **"您已达到会话限制"或"您已达到每周限制"**:订阅计划上基于座位的使用窗口,在所有模型中共享,因此开发者无法通过使用 `/model` 切换模型来恢复访问权限。该消息显示窗口何时重置。在模型特定的"您已达到 Opus 限制"或"您已达到 Sonnet 限制"消息之后,使用 `/model` 切换到该系列之外的模型确实会让开发者继续工作。请参阅[使用限制错误](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit)。开发者在此期间可以做什么:233* **"You've hit your session limit"或"You've hit your weekly limit"**:订阅套餐中基于席位的用量窗口,由所有模型共享,因此开发者无法通过 `/model` 切换模型来恢复访问。该消息会显示窗口的重置时间。在出现特定于模型的"You've hit your Opus limit"或"You've hit your Sonnet limit"消息后,使用 `/model` 切换到该系列以外的模型确实可以让开发者继续工作。请参阅[用量限制错误](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-session-limit)。在此期间开发者可以:

234 * 运行 `/usage-credits` 以请求超过额度的使用情况,如果您已启用[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。234 * 如果您已启用[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),运行 `/usage-credits` 申请超出额度的用量。

235 * 在 Claude Code v2.1.234 或更高版本上,[在重置后自动等待并继续中断的任务](https://code.claude.com/docs/zh-CN/interactive-mode.md#wait-for-a-usage-limit-to-reset);该部分列出了 Claude Code 何时自动启动等待以及开发者何时从 `/rate-limit-options` 中选择它。要控制您的车队 Claude Code 是否自动启动该等待,请在[托管设置](https://code.claude.com/docs/zh-CN/settings.md#settings-precedence)中设置 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-CN/settings-reference#autocontinueatusagelimit)。235 * 在 Claude Code v2.1.234 或更高版本中,[等待重置后自动继续被中断的任务](https://code.claude.com/docs/zh-CN/interactive-mode.md#wait-for-a-usage-limit-to-reset);该部分列出了 Claude Code 何时会自行开始等待,以及开发者何时需要从 `/rate-limit-options` 中选择等待。要为您的所有设备控制 Claude Code 是否自行开始该等待,请在[托管设置](https://code.claude.com/docs/zh-CN/settings.md#settings-precedence)中设置 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/zh-CN/settings-reference#autocontinueatusagelimit)。

236* **"You've hit your individual spend limit"、"org's monthly spend limit"或"team's shared budget"**:开发者的请求本应计费到使用额度,而这些额度已达到您设置的支出限制。要让开发者继续,请前往 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) 并提高消息中指出的限制。如果消息中还指出了套餐重置时间,开发者也可以等到那时。请参阅[错误参考](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-monthly-spend-limit)了解各个变体。236* **"You've hit your individual spend limit"、"org's monthly spend limit"或"team's shared budget"**:开发者的请求本应计入使用额度,而这些额度已达到您设置的支出限制。要让开发者继续使用,请前往 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) 并提高消息中提到的限制。如果消息中还指明了套餐重置时间,开发者也可以等到那时。各种变体请参阅[错误参考](https://code.claude.com/docs/zh-CN/errors.md#youve-hit-your-monthly-spend-limit)。

237* **来自 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 的支出限制消息**:开发者超过了您在自托管网关上设置的支出上限,网关会阻止他们的请求,直到该期间重置或您提高上限。请参阅[网关支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md)以了解上限、重置计划和开发者看到的消息。237* **来自 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 的支出限制消息**:开发者超出了您在自托管网关上设置的支出上限,网关会阻止其请求,直到周期重置或您提高上限。有关上限、重置计划以及开发者看到的消息,请参阅[网关支出限制](https://code.claude.com/docs/zh-CN/claude-apps-gateway-spend-limits.md)。

238* **上下文或自动压缩警告**:不是使用限制。对话已接近会话的[自动压缩窗口](https://code.claude.com/docs/zh-CN/model-config.md#set-the-auto-compact-window),这是 Claude Code 总结较早历史以释放空间的阈值。将开发者指向[减少令牌使用](#reduce-token-usage)。238* **上下文或自动压缩警告**:这不是用量限制。对话已接近会话的[自动压缩窗口](https://code.claude.com/docs/zh-CN/model-config.md#set-the-auto-compact-window),即 Claude Code 汇总较早历史记录以释放空间的阈值。请引导开发者参阅[减少 token 用量](#reduce-token-usage)。

239* **API 或云提供商计划上的意外高支出**:通常可以追溯到从未清除的长会话或将 Opus 作为默认模型。要分享的最高影响习惯是在不相关的任务之间清除和将模型与工作相匹配,两者都在[减少令牌使用](#reduce-token-usage)中涵盖。239* **API 或云服务提供商套餐上的意外高额支出**:通常源于从未清除的长会话,或将 Opus 保留为默认模型。最值得分享的高影响习惯是在不相关的任务之间进行清除,以及根据工作选择合适的模型,这两点都在[减少 token 用量](#reduce-token-usage)中有介绍。

240 240 

241### Agent 团队令牌成本241### Agent team 的 token 成本

242 242 

243[Agent 团队](https://code.claude.com/docs/zh-CN/agent-teams.md)生成多个 Claude Code 实例,每个实例都有自己的上下文窗口。令牌使用情况随活跃队友的数量和每个队友运行的时间长度而扩展。243[Agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 会启动多个 Claude Code 实例,每个实例都有自己的上下文窗口。token 用量随活跃队友的数量以及每个队友的运行时长而增长。

244 244 

245为了保持 agent 团队成本可控:245要使 agent team 的成本保持在可控范围内:

246 246 

247* 为队友使用 Sonnet。它为协调任务平衡了能力和成本。247* 为队友使用 Sonnet。它在协调任务的能力与成本之间取得了平衡。

248* 保持团队规模小。每个队友运行自己的上下文窗口,因此令牌使用大致与团队规模成正比。248* 保持团队规模较小。每个队友都运行自己的上下文窗口,因此 token 用量大致与团队规模成正比。

249* 保持生成提示的重点。队友会自动加载 CLAUDE.md、MCP servers 和 skills,但生成提示中的所有内容都会从一开始就添加到其上下文中。249* 保持启动提示词简洁聚焦。队友会自动加载 CLAUDE.md、MCP 服务器和 skill,但启动提示词中的所有内容都会从一开始就增加其上下文。

250* 工作完成后关闭队友。每个活跃的队友会继续消耗令牌,直到它退出或会话结束。250* 在队友完成工作后将其关闭。每个活跃的队友都会持续消耗 token,直到其退出或会话结束。

251* Agent 团队默认被禁用。在您的[settings.json](https://code.claude.com/docs/zh-CN/settings.md)或环境中设置 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 以启用它们。请参阅[启用 agent 团队](https://code.claude.com/docs/zh-CN/agent-teams.md#enable-agent-teams)。251* Agent team 默认处于禁用状态。在您的 [settings.json](https://code.claude.com/docs/zh-CN/settings.md) 或环境中设置 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 以启用它们。请参阅[启用 agent team](https://code.claude.com/docs/zh-CN/agent-teams.md#enable-agent-teams)。

252 252 

253## 减少 token 使用253## 减少 token 使用

254 254 


294 294 

295例如,此 PreToolUse hook 过滤测试输出以仅显示失败:295例如,此 PreToolUse hook 过滤测试输出以仅显示失败:

296 296 

297**settings.json**297> [tab] settings.json

298 298>

299将此添加到您的 [settings.json](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live),以在每个 Bash 命令之前运行 hook:299> 将此添加到您的 [settings.json](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live),以在每个 Bash 命令之前运行 hook:

300 300>

301```json theme={null}301> ```json theme={null}

302{302> {

303 "hooks": {303> "hooks": {

304 "PreToolUse": [304> "PreToolUse": [

305 {305> {

306 "matcher": "Bash",306> "matcher": "Bash",

307 "hooks": [307> "hooks": [

308 {308> {

309 "type": "command",309> "type": "command",

310 "command": "~/.claude/hooks/filter-test-output.sh"310> "command": "~/.claude/hooks/filter-test-output.sh"

311 }311> }

312 ]312> ]

313 }313> }

314 ]314> ]

315 }315> }

316}316> }

317```317> ```

318 318 

319**filter-test-output.sh**319> [tab] filter-test-output.sh

320 320>

321hook 调用此脚本。使用 `mkdir -p ~/.claude/hooks` 创建文件夹,将下面的脚本保存为 `~/.claude/hooks/filter-test-output.sh`,并使用 `chmod +x ~/.claude/hooks/filter-test-output.sh` 使其可执行。它检查命令是否为测试运行器并修改它以仅显示失败:321> hook 调用此脚本。使用 `mkdir -p ~/.claude/hooks` 创建文件夹,将下面的脚本保存为 `~/.claude/hooks/filter-test-output.sh`,并使用 `chmod +x ~/.claude/hooks/filter-test-output.sh` 使其可执行。它检查命令是否为测试运行器并修改它以仅显示失败:

322 322>

323```bash theme={null}323> ```bash theme={null}

324#!/bin/bash324> #!/bin/bash

325input=$(cat)325> input=$(cat)

326cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

327 327>

328# If running tests, filter to show only failures328> # If running tests, filter to show only failures

329pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

330if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

331 filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"

332 echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

333 '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

334else334> else

335 echo "{}"335> echo "{}"

336fi336> fi

337```337> ```

338 338 

339要验证设置,运行 `/hooks` 并检查 hook 是否出现在 PreToolUse 下。您也可以使用 `claude --debug-file ./claude-debug.txt` 启动 Claude Code 并要求 Claude 运行 `npm test`。当 hook 重写命令时,该日志文件包含一个 `modified tool input keys` 行,列出 `command` 和其他 Bash 输入字段。339要验证设置,运行 `/hooks` 并检查 hook 是否出现在 PreToolUse 下。您也可以使用 `claude --debug-file ./claude-debug.txt` 启动 Claude Code 并要求 Claude 运行 `npm test`。当 hook 重写命令时,该日志文件包含一个 `modified tool input keys` 行,列出 `command` 和其他 Bash 输入字段。

340 340 


392* **代理队友**:每个活跃的 [队友](#agent-team-token-costs) 会继续消耗令牌,直到它退出392* **代理队友**:每个活跃的 [队友](#agent-team-token-costs) 会继续消耗令牌,直到它退出

393* **压缩**:`/compact` 读取它总结的对话,因此 [压缩大型上下文](https://code.claude.com/docs/zh-CN/prompt-caching.md#compacting-the-conversation) 本身就是一个大型请求。当你想要全新开始而不是连续性时,`/clear` 不消耗任何成本393* **压缩**:`/compact` 读取它总结的对话,因此 [压缩大型上下文](https://code.claude.com/docs/zh-CN/prompt-caching.md#compacting-the-conversation) 本身就是一个大型请求。当你想要全新开始而不是连续性时,`/clear` 不消耗任何成本

394 394 

395在 Pro、Max、Team 或 Enterprise 计划上,[`/usage` 分解](#plan-usage-breakdown)会针对占您最近使用量 10% 或更多的行为(例如长上下文或缓存未命中)建议相应的调整。395要了解在 Pro、Max、Ultra、Team 或 Enterprise 计划上应做哪些调整,请在 Claude Code 输入框中运行 [`/usage`](#plan-usage-breakdown)。其明细会针对占您最近使用量 10% 或更多的行为建议相应的调整。这些行为包括长上下文和缓存未命中。

396 396 

397## 了解 Claude Code 行为的变化397## 了解 Claude Code 行为的变化

398 398 


400 400 

401有关您特定账户的计费问题,请通过产品内信使联系 Anthropic 支持:401有关您特定账户的计费问题,请通过产品内信使联系 Anthropic 支持:

402 402 

403* **订阅计划**(Pro、Max、Team、Enterprise):在 [claude.ai](https://claude.ai) 登录,点击左下角的您的首字母缩写,然后选择**获取帮助**403* **订阅套餐**(Pro、Max、Ultra、Team、Enterprise):在 [claude.ai](https://claude.ai) 登录,点击左下角的您的首字母缩写,然后选择**获取帮助**

404* **Console(API)计费**:在 [platform.claude.com](https://platform.claude.com) 登录,点击您的首字母缩写,然后选择**获取帮助**404* **Console(API)计费**:在 [platform.claude.com](https://platform.claude.com) 登录,点击您的首字母缩写,然后选择**获取帮助**

405 405 

406请参阅[如何获取支持](https://support.claude.com/en/articles/9015913-how-to-get-support)了解完整流程,包括每个计划中谁可以联系人工代理。406请参阅[如何获取支持](https://support.claude.com/en/articles/9015913-how-to-get-support)了解完整流程,包括每个计划中谁可以联系人工代理。

data-usage.md +6 −6

Details

10 10 

11### 数据训练政策11### 数据训练政策

12 12 

13**消费者用户(Free、Pro 和 Max 计划)**:13**消费者用户(Free、Pro、Max 和 Ultra 计划)**:

14我们让您自行选择是否允许将您的数据用于改进未来的 Claude 模型。当此设置开启时,我们将使用来自 Free、Pro 和 Max 账户的数据训练新模型(包括您通过这些账户使用 Claude Code 时)。14我们让您自行选择是否允许将您的数据用于改进未来的 Claude 模型。当此设置开启时,我们将使用来自 Free、Pro、Max 和 Ultra 账户的数据训练新模型(包括您通过这些账户使用 Claude Code 时)。

15 15 

16**商业用户**:(Team 和 Enterprise 计划、API、第三方平台以及 Claude Gov)维持现有政策:Anthropic 不会使用在商业条款下发送给 Claude Code 的代码或提示词来训练生成式模型,除非客户已选择向我们提供其数据以用于模型改进(例如 [Developer Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program))。16**商业用户**:(Team 和 Enterprise 计划、API、第三方平台以及 Claude Gov)维持现有政策:Anthropic 不会使用在商业条款下发送给 Claude Code 的代码或提示词来训练生成式模型,除非客户已选择向我们提供其数据以用于模型改进(例如 [Developer Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program))。

17 17 


43 43 

44Anthropic 根据您的账户类型和偏好保留 Claude Code 数据。44Anthropic 根据您的账户类型和偏好保留 Claude Code 数据。

45 45 

46**消费者用户(Free、Pro 和 Max 计划)**:46**消费者用户(Free、Pro、Max 和 Ultra 计划)**:

47 47 

48* 允许将数据用于模型改进的用户:保留期为 5 年,以支持模型开发和安全性改进48* 允许将数据用于模型改进的用户:保留期为 5 年,以支持模型开发和安全性改进

49* 不允许将数据用于模型改进的用户:保留期为 30 天49* 不允许将数据用于模型改进的用户:保留期为 30 天


61 61 

62在我们的[隐私中心](https://privacy.anthropic.com/)了解有关数据保留做法的更多信息。62在我们的[隐私中心](https://privacy.anthropic.com/)了解有关数据保留做法的更多信息。

63 63 

64有关完整详情,请查阅我们的[商业服务条款](https://www.anthropic.com/legal/commercial-terms)(适用于 Team、Enterprise 和 API 用户)或[消费者条款](https://www.anthropic.com/legal/consumer-terms)(适用于 Free、Pro 和 Max 用户)以及[隐私政策](https://www.anthropic.com/legal/privacy)。64有关完整详情,请查阅我们的[商业服务条款](https://www.anthropic.com/legal/commercial-terms)(适用于 Team、Enterprise 和 API 用户)或[消费者条款](https://www.anthropic.com/legal/consumer-terms)(适用于 Free、Pro、Max 和 Ultra 用户)以及[隐私政策](https://www.anthropic.com/legal/privacy)。

65 65 

66## 数据访问66## 数据访问

67 67 


107 107 

108错误报告仅在以下所有条件都适用时才启用:108错误报告仅在以下所有条件都适用时才启用:

109 109 

110* 您使用 Claude Pro 或 Max 订阅登录110* 您使用 Claude Pro、Max 或 Ultra 订阅登录

111* 您运行的是 Claude Code v2.1.198 或更高版本111* 您运行的是 Claude Code v2.1.198 或更高版本

112* 您直接连接到 Claude API112* 您直接连接到 Claude API

113* 您的组织没有零数据保留或 HIPAA 协议113* 您的组织没有零数据保留或 HIPAA 协议


123| 服务 | Claude API | Google Cloud 的 Agent Platform API | Amazon Bedrock API | Microsoft Foundry API | Claude Platform on AWS |123| 服务 | Claude API | Google Cloud 的 Agent Platform API | Amazon Bedrock API | Microsoft Foundry API | Claude Platform on AWS |

124| - | - | - | - | - | - |124| - | - | - | - | - | - |

125| **Metrics** | 默认开启。 `DISABLE_TELEMETRY=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |125| **Metrics** | 默认开启。 `DISABLE_TELEMETRY=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

126| **Error reports** | v2.1.198+ 上 Pro 和 Max 登录默认开启,否则关闭。 `DISABLE_ERROR_REPORTING=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |126| **Error reports** | v2.1.198+ 上 Pro、Max 和 Ultra 登录默认开启,否则关闭。 `DISABLE_ERROR_REPORTING=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

127| **Claude API(`/feedback` 报告)** | 默认开启。 `DISABLE_FEEDBACK_COMMAND=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |127| **Claude API(`/feedback` 报告)** | 默认开启。 `DISABLE_FEEDBACK_COMMAND=1` 禁用。 | 默认关闭。 `CLAUDE_CODE_USE_VERTEX` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_BEDROCK` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_FOUNDRY` 必须为 1。 | 默认关闭。 `CLAUDE_CODE_USE_ANTHROPIC_AWS` 必须为 1。 |

128| **会话质量调查** | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 |128| **会话质量调查** | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 | 默认开启。 `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` 禁用。 |

129| **WebFetch 域安全检查** | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 |129| **WebFetch 域安全检查** | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 | 默认开启。 [settings](https://code.claude.com/docs/zh-CN/settings.md) 中 `skipWebFetchPreflight: true` 禁用。 |

Details

95 95 

96在没有运行 Claude Code 会话的 shell 中,创建该目录并进入其中:96在没有运行 Claude Code 会话的 shell 中,创建该目录并进入其中:

97 97 

98**Bash or Zsh**98> [tab] Bash or Zsh

99 99>

100```bash theme={null}100> ```bash theme={null}

101mkdir -p ~/claude-clean/empty && cd ~/claude-clean/empty101> mkdir -p ~/claude-clean/empty && cd ~/claude-clean/empty

102```102> ```

103 

104**PowerShell**

105 103 

106```powershell theme={null}104> [tab] PowerShell

107New-Item -ItemType Directory -Force "$HOME/claude-clean/empty" | Out-Null105>

108Set-Location "$HOME/claude-clean/empty"106> ```powershell theme={null}

109```107> New-Item -ItemType Directory -Force "$HOME/claude-clean/empty" | Out-Null

108> Set-Location "$HOME/claude-clean/empty"

109> ```

110 110 

111**2. 使用干净的配置目录启动 Claude Code**111**2. 使用干净的配置目录启动 Claude Code**

112 112 

113在同一个 shell 中,将 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-CN/env-vars) 设置为一个新目录以替代 `~/.claude`,并传入 [`--setting-sources user`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 以关闭项目配置,例如 `.claude/settings.json`、`CLAUDE.md` 和 `.mcp.json`:113在同一个 shell 中,将 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-CN/env-vars) 设置为一个新目录以替代 `~/.claude`,并传入 [`--setting-sources user`](https://code.claude.com/docs/zh-CN/cli-reference#cli-flags) 以关闭项目配置,例如 `.claude/settings.json`、`CLAUDE.md` 和 `.mcp.json`:

114 114 

115**Bash or Zsh**115> [tab] Bash or Zsh

116 116>

117该变量仅对本次启动生效。117> 该变量仅对本次启动生效。

118 118>

119```bash theme={null}119> ```bash theme={null}

120CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user120> CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user

121```121> ```

122 

123**PowerShell**

124 

125该变量在此 PowerShell 会话的剩余时间内保持设置,因此之后在同一窗口中启动的 `claude` 会继续使用这个干净目录。要恢复使用您的常用目录,请在下次启动前运行 `Remove-Item Env:CLAUDE_CONFIG_DIR`。

126 122 

127```powershell theme={null}123> [tab] PowerShell

128$env:CLAUDE_CONFIG_DIR = "$HOME/claude-clean/config"124>

129claude --setting-sources user125> 该变量在此 PowerShell 会话的剩余时间内保持设置,因此之后在同一窗口中启动的 `claude` 会继续使用这个干净目录。要恢复使用您的常用目录,请在下次启动前运行 `Remove-Item Env:CLAUDE_CONFIG_DIR`。

130```126>

127> ```powershell theme={null}

128> $env:CLAUDE_CONFIG_DIR = "$HOME/claude-clean/config"

129> claude --setting-sources user

130> ```

131 131 

132首次启动时,您会再次经历首次运行设置屏幕,这表明干净配置目录已生效。托管设置仍然适用;如果您使用 claude.ai 账户登录,[连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai)仍会加载。132首次启动时,您会再次经历首次运行设置屏幕,这表明干净配置目录已生效。托管设置仍然适用;如果您使用 claude.ai 账户登录,[连接器](https://code.claude.com/docs/zh-CN/mcp.md#use-mcp-servers-from-claude-ai)仍会加载。

133 133 

desktop.md +119 −89

Details

8 8 

9在 Claude Desktop 应用中,Claude Code 就是 **Code** 选项卡。该应用还包含聊天和 [Cowork](https://claude.com/product/cowork),后者负责 Dispatch 和更长的代理工作。本页是 Code 选项卡的参考。9在 Claude Desktop 应用中,Claude Code 就是 **Code** 选项卡。该应用还包含聊天和 [Cowork](https://claude.com/product/cowork),后者负责 Dispatch 和更长的代理工作。本页是 Code 选项卡的参考。

10 10 

11> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**11> [card] [下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)

12>12>

13> 适用于 Intel 和 Apple Silicon 的通用版本13> 适用于 Intel 和 Apple Silicon 的通用版本

14 14 

15> **[下载 Windows 版本](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)**15> [card] [下载 Windows 版本](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)

16>16>

17> 适用于 x64 处理器17> 适用于 x64 处理器

18 18 

19> **[获取 Claude for Linux(测试版)](https://code.claude.com/docs/zh-CN/desktop-linux.md)**19> [card] [获取 Claude for Linux(测试版)](https://code.claude.com/docs/zh-CN/desktop-linux.md)

20>20>

21> Ubuntu 和 Debian 的 apt 或 .deb21> Ubuntu 和 Debian 的 apt 或 .deb

22 22 


92| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍会询问。当您信任文件更改并希望更快迭代时,请使用此选项。 |92| **Accept edits** | `acceptEdits` | Claude 自动接受文件编辑和常见的文件系统命令,如 `mkdir`、`touch` 和 `mv`,但在运行其他终端命令之前仍会询问。当您信任文件更改并希望更快迭代时,请使用此选项。 |

93| **Plan** | `plan` | Claude 读取文件并运行命令进行探索,然后提出计划而不编辑您的源代码。适合复杂任务,您想先审查方法。 |93| **Plan** | `plan` | Claude 读取文件并运行命令进行探索,然后提出计划而不编辑您的源代码。适合复杂任务,您想先审查方法。 |

94| **Auto** | `auto` | Claude 运行时不需要常规提示;在执行 shell 命令和网络请求等操作之前,后台分类器会检查它们是否与您的请求一致。当[自动模式可用](#auto-mode-availability)时出现;没有单独的设置切换。 |94| **Auto** | `auto` | Claude 运行时不需要常规提示;在执行 shell 命令和网络请求等操作之前,后台分类器会检查它们是否与您的请求一致。当[自动模式可用](#auto-mode-availability)时出现;没有单独的设置切换。 |

95| **Bypass permissions** | `bypassPermissions` | Claude 运行时不需要权限提示,除了[任何模式都不会自动批准的操作](https://code.claude.com/docs/zh-CN/permission-modes.md#actions-no-mode-auto-approves)、当 Claude [在外部网站上操作](#browse-external-sites)时的安全分类器,或删除会话等桌面操作(但[归档会话](#work-across-sessions)不在此列)。等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 计划上,请在 **Settings > Code** 或 **Settings > Claude Code** 中启用"Allow bypass permissions mode"。在 Team 和 Enterprise 计划上没有设置切换,而是由组织策略控制它。仅在沙箱容器或虚拟机中使用。 |95| **Bypass permissions** | `bypassPermissions` | Claude 运行时不需要权限提示,除了[任何模式都不会自动批准的操作](https://code.claude.com/docs/zh-CN/permission-modes.md#actions-no-mode-auto-approves)、当 Claude [在外部网站上操作](#browse-external-sites)时的安全分类器,或删除会话等桌面操作(但[归档会话](#work-across-sessions)不在此列)。等同于 CLI 中的 `--dangerously-skip-permissions`。在 Pro、Max 和 Ultra 计划上,请在 **Settings > Code** 或 **Settings > Claude Code** 中启用"Allow bypass permissions mode"。在 Team 和 Enterprise 计划上没有设置切换,而是由组织策略控制它。仅在沙箱容器或虚拟机中使用。 |

96 96 

97Code 选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。97Code 选项卡的早期版本将这些模式标记为 Ask permissions、Auto accept edits 和 Plan mode。

98 98 


320 320 

321> [!NOTE]321> [!NOTE]

322>322>

323> Computer use 是 macOS 和 Windows 上的研究预览版功能,需要 Pro 或 Max 计划。Team 或 Enterprise 计划不提供此功能。Claude Desktop 应用必须处于运行状态。在 macOS 上,computer use 需要 macOS 14 或更高版本。323> Computer use 是 macOS 和 Windows 上的研究预览版功能,需要 Pro、Max 或 Ultra 计划。Team 或 Enterprise 计划不提供此功能。Claude Desktop 应用必须处于运行状态。在 macOS 上,computer use 需要 macOS 14 或更高版本。

324 324 

325Computer use 默认处于关闭状态。在 Claude 能够控制您的屏幕之前,请先[在设置中启用它](#enable-computer-use)。在 macOS 上,您还需要授予辅助功能和屏幕录制权限。325Computer use 默认处于关闭状态。在 Claude 能够控制您的屏幕之前,请先[在设置中启用它](#enable-computer-use)。在 macOS 上,您还需要授予辅助功能和屏幕录制权限。

326 326 


362* **Windows**:开关立即生效,设置完成362* **Windows**:开关立即生效,设置完成

363* **macOS**:继续下一步363* **macOS**:继续下一步

364 364 

365如果您没有看到该开关,请确认您使用的是 macOS 或 Windows,并且拥有 Pro 或 Max 计划,然后更新并重启应用。365如果您没有看到该开关,请确认您使用的是 macOS 或 Windows,并且拥有 Pro、Max 或 Ultra 计划,然后更新并重启应用。

366 366 

367**3. 授予 macOS 权限**367**3. 授予 macOS 权限**

368 368 


562 562 

563#### 设置 Dispatch563#### 设置 Dispatch

564 564 

565有关设置、配对和 Dispatch 设置,请参阅 [Dispatch 帮助文章](https://support.claude.com/en/articles/13947068)。Dispatch 需要 Pro 或 Max 计划,Team 或 Enterprise 计划不可用。565* **计划**:Dispatch 需要 Pro、Max 或 Ultra 计划,Team 或 Enterprise 计划不可用

566* **设置、配对和 Dispatch 设置**:请参阅 [Dispatch 帮助文章](https://support.claude.com/en/articles/13947068)

566 567 

567Dispatch 是您离开终端时与 Claude 协作的几种方式之一。有关与其他选项的比较,请参阅[平台和集成](https://code.claude.com/docs/zh-CN/platforms.md#work-when-you-are-away-from-your-terminal)。568Dispatch 是您离开终端时与 Claude 协作的几种方式之一。有关与其他选项的比较,请参阅[平台和集成](https://code.claude.com/docs/zh-CN/platforms.md#work-when-you-are-away-from-your-terminal)。

568 569 


738 739 

739这些配置显示了不同项目类型的常见设置:740这些配置显示了不同项目类型的常见设置:

740 741 

741**Next.js**742> [tab] Next.js

742 743>

743此配置使用 Yarn 在端口 3000 上运行 Next.js 应用:744> 此配置使用 Yarn 在端口 3000 上运行 Next.js 应用:

744 745>

745```json theme={null}746> ```json theme={null}

746{747> {

747 "version": "0.0.1",748> "version": "0.0.1",

748 "configurations": [749> "configurations": [

749 {750> {

750 "name": "web",751> "name": "web",

751 "runtimeExecutable": "yarn",752> "runtimeExecutable": "yarn",

752 "runtimeArgs": ["dev"],753> "runtimeArgs": ["dev"],

753 "port": 3000754> "port": 3000

754 }755> }

755 ]756> ]

756}757> }

757```758> ```

758 759 

759**多个服务器**760> [tab] 多个服务器

760 761>

761对于具有前端和 API 服务器的 monorepo,定义多个配置。前端使用 `autoPort: true`,因此如果 3000 被占用,它会选择空闲端口,而 API 服务器需要端口 8080:762> 对于具有前端和 API 服务器的 monorepo,定义多个配置。前端使用 `autoPort: true`,因此如果 3000 被占用,它会选择空闲端口,而 API 服务器需要端口 8080:

762 763>

763```json theme={null}764> ```json theme={null}

764{765> {

765 "version": "0.0.1",766> "version": "0.0.1",

766 "configurations": [767> "configurations": [

767 {768> {

768 "name": "frontend",769> "name": "frontend",

769 "runtimeExecutable": "npm",770> "runtimeExecutable": "npm",

770 "runtimeArgs": ["run", "dev"],771> "runtimeArgs": ["run", "dev"],

771 "cwd": "apps/web",772> "cwd": "apps/web",

772 "port": 3000,773> "port": 3000,

773 "autoPort": true774> "autoPort": true

774 },775> },

775 {776> {

776 "name": "api",777> "name": "api",

777 "runtimeExecutable": "npm",778> "runtimeExecutable": "npm",

778 "runtimeArgs": ["run", "start"],779> "runtimeArgs": ["run", "start"],

779 "cwd": "server",780> "cwd": "server",

780 "port": 8080,781> "port": 8080,

781 "env": { "NODE_ENV": "development" },782> "env": { "NODE_ENV": "development" },

782 "autoPort": false783> "autoPort": false

783 }784> }

784 ]785> ]

785}786> }

786```787> ```

787 788 

788**Node.js 脚本**789> [tab] Node.js 脚本

789 790>

790要直接运行 Node.js 脚本而不是使用包管理器命令,使用 `program` 字段:791> 要直接运行 Node.js 脚本而不是使用包管理器命令,使用 `program` 字段:

791 792>

792```json theme={null}793> ```json theme={null}

793{794> {

794 "version": "0.0.1",795> "version": "0.0.1",

795 "configurations": [796> "configurations": [

796 {797> {

797 "name": "server",798> "name": "server",

798 "program": "server.js",799> "program": "server.js",

799 "args": ["--verbose"],800> "args": ["--verbose"],

800 "port": 4000801> "port": 4000

801 }802> }

802 ]803> ]

803}804> }

804```805> ```

805 806 

806## 环境配置807## 环境配置

807 808 


1327* **工作流**:Desktop 会在每个新[工作流](https://code.claude.com/docs/zh-CN/workflows.md)启动前对其进行检查,因此在 Desktop 断开连接期间,新工作流最多等待 10 分钟,然后失败1328* **工作流**:Desktop 会在每个新[工作流](https://code.claude.com/docs/zh-CN/workflows.md)启动前对其进行检查,因此在 Desktop 断开连接期间,新工作流最多等待 10 分钟,然后失败

1328* **MCP 服务器**:Claude Code 在远程计算机上启动的 MCP 服务器不通过 Desktop 运行,因此 Claude 仍可调用其工具。仅当 Desktop 未使用其[内置 SSH 客户端](#worktree-edits-while-disconnected)时,来自 `claude_desktop_config.json` 的服务器才属于这一类。否则,以及在[某些 Windows 远程计算机](#windows-remote-machines)上,Desktop 断开连接期间 Claude 无法调用其工具。1329* **MCP 服务器**:Claude Code 在远程计算机上启动的 MCP 服务器不通过 Desktop 运行,因此 Claude 仍可调用其工具。仅当 Desktop 未使用其[内置 SSH 客户端](#worktree-edits-while-disconnected)时,来自 `claude_desktop_config.json` 的服务器才属于这一类。否则,以及在[某些 Windows 远程计算机](#windows-remote-machines)上,Desktop 断开连接期间 Claude 无法调用其工具。

1329 1330 

1330> **worktree 中的编辑何时可以继续工作**1331> [accordion] worktree 中的编辑何时可以继续工作

1331>1332>

1332> 在 Linux 或 macOS 远程计算机上,该检查不经过 Desktop,因此在 Desktop 断开连接期间,worktree 内的编辑可以继续工作。在 Claude Desktop v2.37337.0 之前,这仅适用于 Linux 远程计算机。1333> 在 Linux 或 macOS 远程计算机上,该检查不经过 Desktop,因此在 Desktop 断开连接期间,worktree 内的编辑可以继续工作。在 Claude Desktop v2.37337.0 之前,这仅适用于 Linux 远程计算机。

1333>1334>


1368* **记住的密码**:您让 Desktop 记住的密码也可以无需提示登录,但若长时间离开,最好使用由您的 SSH agent 持有的密钥。如果使用该密码的登录中断或挂起,Desktop 可能会停止重新连接并等待您。1369* **记住的密码**:您让 Desktop 记住的密码也可以无需提示登录,但若长时间离开,最好使用由您的 SSH agent 持有的密钥。如果使用该密码的登录中断或挂起,Desktop 可能会停止重新连接并等待您。

1369* **任何其他提示**:如果远程计算机提示输入其他内容(例如一次性验证码),您可能会在计算机上收到通知。点击该通知或在会话中发送消息,Desktop 就会显示该提示。1370* **任何其他提示**:如果远程计算机提示输入其他内容(例如一次性验证码),您可能会在计算机上收到通知。点击该通知或在会话中发送消息,Desktop 就会显示该提示。

1370 1371 

1371> **如果跳板机要求登录、中断时间较长、输出缺失或进程已不存在**1372> [accordion] 如果跳板机要求登录、中断时间较长、输出缺失或进程已不存在

1372>1373>

1373> * **跳板机,您不在时推送停止**:当无人响应跳板机的登录(例如向手机发送的推送)时,macOS 或 Linux 上的 Desktop 可能会出现这种情况。此时,在无人使用您的计算机期间,Desktop 会停止重新连接。当您解锁或使用计算机时,您可能会收到另一条推送,因为 Desktop 可能会再次尝试。在三次无人响应的尝试后,它会等到您重试或发送消息。1374> * **跳板机,您不在时推送停止**:当无人响应跳板机的登录(例如向手机发送的推送)时,macOS 或 Linux 上的 Desktop 可能会出现这种情况。此时,在无人使用您的计算机期间,Desktop 会停止重新连接。当您解锁或使用计算机时,您可能会收到另一条推送,因为 Desktop 可能会再次尝试。在三次无人响应的尝试后,它会等到您重试或发送消息。

1374> * **跳板机,推送持续不断**:在 Desktop 无法判断无人响应的情况下(例如 Windows 上的 Desktop),只要有可重新接入的进程,无论该进程是否仍在运行,它都会持续尝试。每次尝试您都可能收到另一条推送。若要结束尝试,请退出 Desktop,但这[可能会让您失去正在运行的任务](#reopen-a-session-after-you-quit-desktop)。1375> * **跳板机,推送持续不断**:在 Desktop 无法判断无人响应的情况下(例如 Windows 上的 Desktop),只要有可重新接入的进程,无论该进程是否仍在运行,它都会持续尝试。每次尝试您都可能收到另一条推送。若要结束尝试,请退出 Desktop,但这[可能会让您失去正在运行的任务](#reopen-a-session-after-you-quit-desktop)。


1592>1593>

1593> 通过命令创建的连接需要在 macOS 或 Linux 上使用 Claude Desktop v3.6556.0 或更高版本,并使用 Claude 账户登录。管理员可以[将命令分发给团队](#distribute-commands-to-your-team)。1594> 通过命令创建的连接需要在 macOS 或 Linux 上使用 Claude Desktop v3.6556.0 或更高版本,并使用 Claude 账户登录。管理员可以[将命令分发给团队](#distribute-commands-to-your-team)。

1594 1595 

1595每个条目对应一个连接,一次只有一个主机。Desktop 仅在您创建连接或[替换其主机](#replace-the-host)时运行命令,而不是每次连接时都运行。要同时保留两台机器,请添加第二个条目。1596Desktop 仅在您创建连接或[创建另一台机器](#create-another-machine)时运行该命令,而不是每次连接时都运行。每个条目对应一个连接,指向 Desktop 最近一次从该条目的命令中保存的主机。

1596 1597 

1597> [!WARNING]1598> [!WARNING]

1598>1599>

1599> Desktop 不会停止或删除机器。以下每一项都会持续运行,并可能持续产生费用,直到您使用自己的工具将其删除:1600> Desktop 不会停止或删除机器。以下每一项都会持续运行,并可能持续产生费用,直到您使用自己的工具将其删除:

1600>1601>

1601> * 您已替换的主机1602> * 在您[创建另一台](#create-another-machine)之前某个条目所指向的机器

1602> * 您已从文件中移除的条目的主机,或您已更改其 `id` 的条目的主机1603> * 您从文件中移除的条目或更改了 `id` 的条目所对应的机器

1603> * 您的命令创建了但 Desktop 未保存其主机的机器,例如以下情况:1604> * 您的命令创建了但 Desktop 未保存其主机的机器,例如以下情况:

1604> * 命令失败或超时1605> * 命令失败或超时

1605> * Desktop 无法使用输出的主机、另一个连接已在使用该主机,或您的组织不允许该主机1606> * Desktop 无法使用输出的主机、另一个连接已在使用该主机,或您的组织不允许该主机

1606> * 在命令运行期间,您取消了它、移除了其条目、更改了其 `command` 或 `id`,或退出了 Desktop1607> * 在命令运行期间,您取消了命令、移除了其条目、更改了其 `command` 或 `id`,或退出了 Desktop

1607 1608 

1608以下示例添加一个名为 Dev box 的连接。如果该文件不存在,请创建它。如果文件中已有设置,请将该键添加在它们旁边。命令 `acme-dev create` 代表您自己的工具,`~/project` 是 Desktop 在您的命令创建的每台机器上选择的文件夹:1609以下示例添加一个名为 Dev box 的连接。如果该文件不存在,请创建它。如果文件中已有设置,请将该键添加在它们旁边。命令 `acme-dev create` 代表您自己的工具,`~/project` 是 Desktop 在您的命令创建的每台机器上选择的文件夹:

1609 1610 


1624 1625 

1625| 字段 | 值 |1626| 字段 | 值 |

1626| :- | :- |1627| :- | :- |

1627| `id` | 最多 64 个 ASCII 字母、数字、`.`、`_` 和 `-`,以字母或数字开头。请使用 `sshHostCommands` 或 [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 中其他条目均未使用的 `id`。Desktop 以它为键保存连接的主机,因此如果您更改它,连接会重新开始且没有主机,而旧机器会继续运行。 |1628| `id` | 最多 64 个 ASCII 字母、数字、`.`、`_` 和 `-`,以字母或数字开头。使用 `sshHostCommands` 或 [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 中其他条目都未使用的 `id`。Desktop 以它为键保存连接的主机,因此如果您更改它,该连接会从无主机状态重新开始,其机器会继续运行,且 Desktop [仍可连接到它们](#remove-an-entry)。 |

1628| `name` | 连接在环境选择器中的名称,最多 200 个字符,且为单行 |1629| `name` | 连接在环境选择器中的名称,最多 200 个字符,且为单行 |

1629| `command` | 一个程序及其参数,如[编写命令](#write-the-command)所述 |1630| `command` | 一个程序及其参数,如[编写命令](#write-the-command)所述 |

1630| `sshIdentityFile` | 您的私钥路径,例如 `~/.ssh/id_ed25519`。省略此项则使用您的 SSH 配置或 SSH agent。 |1631| `sshIdentityFile` | 您的私钥路径,例如 `~/.ssh/id_ed25519`。省略此项则使用您的 SSH 配置或 SSH agent。 |


1677 1678 

1678请为这些主机保持启用主机密钥检查,并为它们保留 `known_hosts` 文件。如果 `StrictHostKeyChecking` 为 `no` 或 `accept-new`,且 `UserKnownHostsFile` 也为 `/dev/null` 或 `none`,则不会记录任何密钥。之后当您的工具重复使用某个名称时,您可能会在没有任何警告的情况下连接到另一台机器。1679请为这些主机保持启用主机密钥检查,并为它们保留 `known_hosts` 文件。如果 `StrictHostKeyChecking` 为 `no` 或 `accept-new`,且 `UserKnownHostsFile` 也为 `/dev/null` 或 `none`,则不会记录任何密钥。之后当您的工具重复使用某个名称时,您可能会在没有任何警告的情况下连接到另一台机器。

1679 1680 

1680##### 替换主机1681即使计算机前没有人,复用的名称也会造成影响,因为 Desktop 会自行连接到这些主机。例如,它会在主机恢复响应后,投递您在主机无法访问时发送的消息。即使开启了主机密钥检查,在以下情况下该消息也可能送达使用该名称的新机器,因此请在删除机器之前[停止使用该机器](#stop-using-a-machine):

1682 

1683* 您、您的命令或其他程序将新密钥添加到了 `known_hosts`,或移除了旧密钥所在的行,正如您的命令在添加主机密钥时所做的那样

1684* 您工具创建的机器共享同一个主机密钥

1685* 您工具创建的机器共享一个受 `known_hosts` 信任的证书颁发机构

1686* 您或您的管理员设置了 `KnownHostsCommand` 或 `VerifyHostKeyDNS yes`,使 SSH 接受来自 `known_hosts` 之外的密钥

1687 

1688##### 创建另一台机器

1689 

1690选择 **Create another Dev box** 后,您在之前机器上的会话仍可继续使用,新会话则使用新机器。在环境选择器中选择该项,可以创建一台全新的机器,或替换一台已不存在的机器。在新建会话页面上,提示 Desktop 无法访问主机的消息中也提供该选项。

1681 1691 

1682Dev box 有了主机后,选择器会在您的 SSH 连接中列出 Dev box,并且 **Create Dev box** 会变为 **Replace Dev box's host**。如果该项不在列表中,请在 **More** 下查找。1692* **之前机器上的会话**:从侧边栏继续这些会话,因为选择器只列出 Dev box 当前的机器,而不列出之前的机器。Desktop 可能会自行连接到它们的机器,例如在 Desktop 启动时,因此用完某台机器后请[停止使用该机器](#stop-using-a-machine)。

1693* **在 Claude Desktop v4.4212.0 之前替换的主机**:这些版本显示 **Replace Dev box's host**,并停止连接到被替换的主机。要在该主机上继续会话,请打开会话,选择 **Add SSH connection**,然后保存 Desktop 填入的连接。在替换另一个主机之前请先更新 Desktop。

1694* **在两台机器上新建会话**:向 [`sshHostCommands`](#create-an-ssh-connection-from-a-command) 添加第二个条目

1695* **尚未响应的新主机**:在新建会话页面持续尝试连接期间,将其保持打开最多 10 分钟。如果主机仍无响应,请在页面的消息中选择 **Create another Dev box**。

1696* **紧接着再创建一台机器**:在一小时内多次运行该命令后,每次后续运行都需要在 Desktop 打开的对话框中确认,该对话框会显示该命令

1683 1697 

1684当机器已不存在或您想要一台新机器时,请选择该项。在新建会话页面上,提示 Desktop 无法访问主机的消息中也会提供此选项。Desktop 会再次运行命令,新会话将使用新主机。1698##### 停止使用某台机器

1685 1699 

1686* **新主机**:Desktop 保存主机后的 10 分钟内,该项显示为灰色,因为新机器可能需要一段时间才能启动。在新主机无响应期间,新建会话页面会在这 10 分钟内持续尝试连接。1700要阻止 Desktop 自行连接到由命令创建的机器,请归档该机器上的所有会话:

1687* **旧主机上的会话**:这些会话保留在旧主机上,除非您将其重新添加,否则 Desktop 不会连接到该主机。要继续某个会话,请打开该会话并选择 **Add SSH connection**。Desktop 会填入旧主机。将其另存为一个独立的连接。1701 

17021. 在侧边栏中找到该机器的会话。会话的[详细信息面板](#see-session-details)会显示其运行所在的主机。

17032. [归档每个会话](#archive-a-session),并保持其归档状态。

17043. 如果自创建这台机器以来,您尚未从同一个 `sshHostCommands` 条目创建另一台机器,也请[创建一台](#create-another-machine)或[移除该条目](#remove-an-entry)。在此之前,该机器是该条目已保存的连接,当您在选中该连接的情况下打开新建会话页面时,Desktop 可能会连接到它。

17054. 在应用中删除指向该机器的任何其他 SSH 连接,或移除其 [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 条目。

17065. 退出并重新打开 Desktop,这会关闭它与该机器的连接,并停止其访问该机器的尝试。

17076. 用您的工具删除该机器。

1708 

1709##### 移除条目

1710 

1711从设置文件中移除某个条目或更改其 `id` 后,其机器上的会话仍会保留,因此 Desktop 仍可连接到这些机器。即使计算机前没有人,它也可能这样做,例如重新加入会话正在运行的进程,或投递一条等待发送的消息。要阻止这种情况,请按照[停止使用某台机器](#stop-using-a-machine)中的说明归档这些会话。

1712 

1713如果您是管理员并移除了一个托管条目,您用户的会话也会保留,每个用户都必须归档自己的会话。要自行阻止该条目的机器,请设置一个 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to),使其匹配您的用户仍需要的主机,而不匹配这些机器的主机名。只有在某个模式能够区分两者的情况下,您才能这样做。

1688 1714 

1689##### 将命令分发给团队1715##### 将命令分发给团队

1690 1716 


1711* **`id`**:如果用户的 `sshHostCommands` 条目使用了您的 `id`,则只有您的条目生效。如果其他任何 SSH 连接使用了它(例如用户 `sshConfigs` 中的连接),您的条目会显示为灰色。请选择用户不太可能使用的 `id`。1737* **`id`**:如果用户的 `sshHostCommands` 条目使用了您的 `id`,则只有您的条目生效。如果其他任何 SSH 连接使用了它(例如用户 `sshConfigs` 中的连接),您的条目会显示为灰色。请选择用户不太可能使用的 `id`。

1712* **程序**:请提供其完整路径,因为 Desktop 会在每个用户自己的 `PATH` 中查找裸名称。程序以该用户身份运行,使用其登录 shell 导出的变量。1738* **程序**:请提供其完整路径,因为 Desktop 会在每个用户自己的 `PATH` 中查找裸名称。程序以该用户身份运行,使用其登录 shell 导出的变量。

1713* **用户自己的条目**:Desktop 将用户的条目视同 [hook](https://code.claude.com/docs/zh-CN/hooks.md),因为两者都会在计算机上运行程序。要仅允许您的条目,请将 [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-CN/settings-reference#strictpluginonlycustomization) 设置为 `["hooks"]`,或将 `"hooks"` 添加到其列表中。这样也会阻止来自用户、项目和本地设置的 Claude Code hook,且无法保留它们。如果您改为将该键或 [`allowManagedHooksOnly`](https://code.claude.com/docs/zh-CN/settings-reference#allowmanagedhooksonly) 设置为 `true`,则会阻止更多内容,具体见每个键的条目说明。1739* **用户自己的条目**:Desktop 将用户的条目视同 [hook](https://code.claude.com/docs/zh-CN/hooks.md),因为两者都会在计算机上运行程序。要仅允许您的条目,请将 [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-CN/settings-reference#strictpluginonlycustomization) 设置为 `["hooks"]`,或将 `"hooks"` 添加到其列表中。这样也会阻止来自用户、项目和本地设置的 Claude Code hook,且无法保留它们。如果您改为将该键或 [`allowManagedHooksOnly`](https://code.claude.com/docs/zh-CN/settings-reference#allowmanagedhooksonly) 设置为 `true`,则会阻止更多内容,具体见每个键的条目说明。

1714* **所有条目**:要同时关闭您的条目,请在托管设置中设置 [`disableAllHooks`](https://code.claude.com/docs/zh-CN/settings-reference#disableallhooks)。如果您设置了 [`disableDesktopLocalSessions`](https://code.claude.com/docs/zh-CN/settings-reference#disabledesktoplocalsessions),或设置了不允许任何主机的 `sshHostAllowlist`,选择器将不会列出任何 **Create** 或 **Replace** 项。1740* **所有条目**:要同时关闭您的条目,请在托管设置中设置 [`disableAllHooks`](https://code.claude.com/docs/zh-CN/settings-reference#disableallhooks)。如果您设置了 [`disableDesktopLocalSessions`](https://code.claude.com/docs/zh-CN/settings-reference#disabledesktoplocalsessions),或设置了不允许任何主机的 `sshHostAllowlist`,选择器将不会列出任何 **Create** 或 **Create another** 项。

1715* **锁定在哪里生效**:对于这些条目,Desktop 会从服务器托管设置以及计算机自身的文件或策略中读取 `allowManagedHooksOnly`、`strictPluginOnlyCustomization` 和 `disableAllHooks`,并应用更严格的结果。在 Desktop 检查 claude.ai 上的服务器托管设置之前,所有条目都保持灰色,即使您的组织没有任何服务器托管设置也是如此。1741* **锁定在哪里生效**:对于这些条目,Desktop 会从服务器托管设置以及计算机自身的文件或策略中读取 `allowManagedHooksOnly`、`strictPluginOnlyCustomization` 和 `disableAllHooks`,并应用更严格的结果。在 Desktop 检查 claude.ai 上的服务器托管设置之前,所有条目都保持灰色,即使您的组织没有任何服务器托管设置也是如此。

1716* **允许的主机**:如果您设置了 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to),请确保有一个模式能匹配您的工具打印的每个主机名,并且模式中不要包含 `user@`。Desktop 只在命令运行后才检查打印的名称,因此被列表拒绝的机器已经存在,用户必须使用您的工具将其删除。每次连接时,解析后的 `HostName` 也必须匹配。1742* **允许的主机**:如果您设置了 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to),请确保有一个模式能匹配您的工具打印的每个主机名,并且模式中不要包含 `user@`。Desktop 只在命令运行后才检查打印的名称,因此被列表拒绝的机器已经存在,用户必须使用您的工具将其删除。每次连接时,解析后的 `HostName` 也必须匹配。

1717 1743 


1719 1745 

1720##### 如果命令缺失或显示为灰色1746##### 如果命令缺失或显示为灰色

1721 1747 

1722在以下情况下,环境选择器不会列出任何 **Create** 或 **Replace** 项:1748在以下情况下,环境选择器不会列出任何 **Create** 或 **Create another** 项:

1723 1749 

1724* **文件**:`~/.claude/settings.json` 包含[无效的 JSON 或被 schema 拒绝的值](https://code.claude.com/docs/zh-CN/settings.md#fix-a-broken-settings-file)、您拼错了键名,或者您将其放在了项目的设置中。请修复该文件。1750* **文件**:`~/.claude/settings.json` 包含[无效的 JSON 或被 schema 拒绝的值](https://code.claude.com/docs/zh-CN/settings.md#fix-a-broken-settings-file)、您拼错了键名,或者您将其放在了项目的设置中。请修复该文件。

1725* **平台和账户**:您使用的是 Windows,或者使用的是[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)而非 Claude 账户。请自行将每个主机添加为 [SSH 连接](#ssh-sessions)。1751* **平台和账户**:您使用的是 Windows,或者使用的是[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)而非 Claude 账户。请自行将每个主机添加为 [SSH 连接](#ssh-sessions)。


1730 1756 

1731* **条目中有错误**:修复消息中指出的字段或命令。如果 `id` 已被使用,请为该条目指定另一个。1757* **条目中有错误**:修复消息中指出的字段或命令。如果 `id` 已被使用,请为该条目指定另一个。

1732* **设置文件损坏**:当您自己的设置文件损坏时,管理员的条目可能显示为灰色,并附带指出该文件的消息。[修复该文件](https://code.claude.com/docs/zh-CN/settings.md#fix-a-broken-settings-file)。1758* **设置文件损坏**:当您自己的设置文件损坏时,管理员的条目可能显示为灰色,并附带指出该文件的消息。[修复该文件](https://code.claude.com/docs/zh-CN/settings.md#fix-a-broken-settings-file)。

1733* **新主机**:主机保存满 10 分钟后,您才能[替换主机](#replace-the-host)。1759* **新主机**:Desktop 保存主机后的一分钟内,[**Create another**](#create-another-machine) 显示为灰色。请在一分钟后再选择它。在 Claude Desktop v4.4212.0 之前,**Replace Dev box's host** 会显示为灰色 10 分钟。

1734* **hook 已关闭或受限**:您自己的条目只在您自己的 hook 可以运行的地方生效。请从您的设置中移除 `disableAllHooks`,或询问您的管理员。1760* **hook 已关闭或受限**:您自己的条目只在您自己的 hook 可以运行的地方生效。请从您的设置中移除 `disableAllHooks`,或询问您的管理员。

1735* **设置仍在加载**:在 Desktop 加载您组织的[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)之前,所有条目都显示为灰色,通常在启动后几秒钟内完成。如果条目一直是灰色,请检查您与 claude.ai 的连接。1761* **设置仍在加载**:在 Desktop 加载您组织的[服务器托管设置](https://code.claude.com/docs/zh-CN/server-managed-settings.md)之前,所有条目都显示为灰色,通常在启动后几秒钟内完成。如果条目一直是灰色,请检查您与 claude.ai 的连接。

1736 1762 


1946 1972 

1947将占位符替换为您的 claude.ai 组织 ID,该 ID 显示在 [claude.ai 管理员设置](https://claude.ai/admin-settings/organization)中。它与 Claude Code 的 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-CN/settings-reference#forceloginorguuid) 设置所采用的 ID 相同。有关设置此键的 macOS 和 Windows 示例,请参阅面向 HIPAA 就绪组织的 Cowork 指南中的[部署 Claude Desktop 策略](https://claude.com/docs/cowork/hipaa-setup#deploy-the-claude-desktop-policy)。1973将占位符替换为您的 claude.ai 组织 ID,该 ID 显示在 [claude.ai 管理员设置](https://claude.ai/admin-settings/organization)中。它与 Claude Code 的 [`forceLoginOrgUUID`](https://code.claude.com/docs/zh-CN/settings-reference#forceloginorguuid) 设置所采用的 ID 相同。有关设置此键的 macOS 和 Windows 示例,请参阅面向 HIPAA 就绪组织的 Cowork 指南中的[部署 Claude Desktop 策略](https://claude.com/docs/cowork/hipaa-setup#deploy-the-claude-desktop-policy)。

1948 1974 

1975> [!WARNING]

1976>

1977> 部署之前,请检查 `forceLoginOrgUUID` 值。如果该 ID 不是您组织的 ID,您组织中的人员将无法使用 Claude Desktop,除非他们同时属于具有该 ID 的组织。要恢复,请部署正确的 ID,并让他们重新启动 Claude Desktop。

1978 

1949如果您在 Claude Code 的[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中设置 `forceLoginMethod` 和 `forceLoginOrgUUID`,并不会改变 Claude Desktop 的登录屏幕。1979如果您在 Claude Code 的[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)中设置 `forceLoginMethod` 和 `forceLoginOrgUUID`,并不会改变 Claude Desktop 的登录屏幕。

1950 1980 

1951### 网络访问要求1981### 网络访问要求


2055| `--model sonnet` | 输入框下方一行中的模型选择器 |2085| `--model sonnet` | 输入框下方一行中的模型选择器 |

2056| `--resume`, `--continue` | 点击侧边栏中的会话,或在输入框中输入 `/resume` 来选择您从 CLI 启动的会话 |2086| `--resume`, `--continue` | 点击侧边栏中的会话,或在输入框中输入 `/resume` 来选择您从 CLI 启动的会话 |

2057| `--permission-mode` | 输入框下方一行中的模式选择器 |2087| `--permission-mode` | 输入框下方一行中的模式选择器 |

2058| `--dangerously-skip-permissions` | 绕过权限模式。在 Pro 和 Max 套餐上,在 **设置 > Code** 或 **设置 > Claude Code** 中启用"允许绕过权限模式";在 Team 和 Enterprise 套餐上,由组织策略控制 |2088| `--dangerously-skip-permissions` | 绕过权限模式。在 Pro、Max 和 Ultra 套餐上,在 **设置 > Code** 或 **设置 > Claude Code** 中启用"允许绕过权限模式";在 Team 和 Enterprise 套餐上,由组织策略控制 |

2059| `--add-dir` | 在本地和 SSH 会话中[向会话添加文件夹](#add-folders-to-a-session),或在云端会话中选择[多个仓库](#run-long-running-tasks-in-the-cloud) |2089| `--add-dir` | 在本地和 SSH 会话中[向会话添加文件夹](#add-folders-to-a-session),或在云端会话中选择[多个仓库](#run-long-running-tasks-in-the-cloud) |

2060| `--allowedTools`, `--disallowedTools` | 无每个会话的等效项。[设置文件](https://code.claude.com/docs/zh-CN/settings.md)中的权限规则仍然适用。 |2090| `--allowedTools`, `--disallowedTools` | 无每个会话的等效项。[设置文件](https://code.claude.com/docs/zh-CN/settings.md)中的权限规则仍然适用。 |

2061| `--verbose` | [Verbose 视图模式](#switch-view-modes) |2091| `--verbose` | [Verbose 视图模式](#switch-view-modes) |


2091 2121 

2092| 功能 | CLI | Desktop |2122| 功能 | CLI | Desktop |

2093| - | - | - |2123| - | - | - |

2094| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。启用后,绕过权限会出现在模式选择器中:在 Pro 和 Max 套餐上通过设置开关启用,在 Team 和 Enterprise 套餐上通过组织策略启用 |2124| 权限模式 | 所有模式,包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。启用后,绕过权限会出现在模式选择器中:在 Pro、Max 和 Ultra 套餐上通过设置开关启用,在 Team 和 Enterprise 套餐上通过组织策略启用 |

2095| [第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | 默认使用 Anthropic 的 API。对于网关路由,请参阅[将桌面应用连接到网关](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |2125| [第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | 默认使用 Anthropic 的 API。对于网关路由,请参阅[将桌面应用连接到网关](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app)。要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡,请参阅 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |

2096| [MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |2126| [MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md) | 在设置文件中配置 | 本地和 SSH 会话的连接器 UI,或设置文件 |

2097| [插件](https://code.claude.com/docs/zh-CN/plugins/overview.md) | `/plugin` 命令 | 插件管理器 UI |2127| [插件](https://code.claude.com/docs/zh-CN/plugins/overview.md) | `/plugin` 命令 | 插件管理器 UI |


2153如果在使用 Code 选项卡时看到 `Error 403: Forbidden` 或其他身份验证失败:2183如果在使用 Code 选项卡时看到 `Error 403: Forbidden` 或其他身份验证失败:

2154 2184 

21551. 从应用菜单中注销并重新登录。这是最常见的修复。21851. 从应用菜单中注销并重新登录。这是最常见的修复。

21562. 验证你有活跃的付费订阅:Pro、Max、Team 或 Enterprise。21862. 验证您有活跃的付费订阅:Pro、Max、Ultra、Team 或 Enterprise。

21573. 如果 CLI 工作但 Desktop 不工作,完全退出桌面应用,而不仅仅是关闭窗口,然后重新打开并登录。21873. 如果 CLI 工作但 Desktop 不工作,完全退出桌面应用,而不仅仅是关闭窗口,然后重新打开并登录。

21584. 检查你的互联网连接和代理设置。21884. 检查你的互联网连接和代理设置。

2159 2189 

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> iOS Simulator 窗格在 macOS 上的 Claude Code Desktop 中处于公开测试版。它在 Pro、Max、Team 和 Enterprise 计划中可用,但在启用了 HIPAA 配置的 Enterprise 组织中不可用。11> iOS Simulator 窗格在 macOS 上的 Claude Code Desktop 中处于公开测试版。它在 Pro、Max、Ultra、Team 和 Enterprise 计划中可用,但在启用了 HIPAA 配置的 Enterprise 组织中不可用。

12 12 

13iOS Simulator 窗格在 Claude Code Desktop 中的对话旁边显示你的应用在 Apple 的 iOS Simulator 中运行。当 Claude 在模拟器中构建、安装、启动或检查你的应用时,该窗格会自动打开并实时流式传输设备屏幕。使用它来观看 Claude 运行和测试你的应用,或者在 Claude 继续工作时自己点击浏览应用。13iOS Simulator 窗格在 Claude Code Desktop 中的对话旁边显示你的应用在 Apple 的 iOS Simulator 中运行。当 Claude 在模拟器中构建、安装、启动或检查你的应用时,该窗格会自动打开并实时流式传输设备屏幕。使用它来观看 Claude 运行和测试你的应用,或者在 Claude 继续工作时自己点击浏览应用。

14 14 

Details

6 6 

7> 安装 Claude 桌面应用,打开 Code 选项卡,并在您计算机上的项目文件夹中开始您的第一个 Claude Code 会话。7> 安装 Claude 桌面应用,打开 Code 选项卡,并在您计算机上的项目文件夹中开始您的第一个 Claude Code 会话。

8 8 

9桌面应用为您提供具有图形界面的 Claude Code。您可以要求 Claude 处理计算机上文件夹中的代码,并查看其更改,而无需使用终端。9桌面应用为您提供具有图形界面的 Claude Code。您可以要求 Claude 处理计算机上文件夹中的代码,然后自行查看更改,而无需使用终端。

10 10 

11Claude Code 位于应用侧边栏顶部的 **Code** 选项卡中。本页面将指导您安装应用并在其中开始您的第一个会话。Claude Code 需要 [Pro、Max、Team 或 Enterprise 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。11Claude Code 位于应用侧边栏顶部的 **Code** 选项卡中。本页面将指导您安装应用并在其中开始您的第一个会话。Claude Code 需要 [Pro、Max、Ultra、Team 或 Enterprise 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。

12 12 

13> **[下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**13> [card] [下载 macOS 版本](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)

14>14>

15> 适用于 Intel 和 Apple Silicon 的通用版本15> 适用于 Intel 和 Apple Silicon 的通用版本

16 16 

17> **[下载 Windows 版本](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)**17> [card] [下载 Windows 版本](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)

18>18>

19> 适用于 x64 处理器19> 适用于 x64 处理器

20 20 

21> **[获取 Claude for Linux(测试版)](https://code.claude.com/docs/zh-CN/desktop-linux.md)**21> [card] [获取 Claude for Linux(测试版)](https://code.claude.com/docs/zh-CN/desktop-linux.md)

22>22>

23> Ubuntu 和 Debian 的 apt 或 .deb23> Ubuntu 和 Debian 的 apt 或 .deb

24 24 

devcontainer.md +1 −1

Details

17> 仅在使用受信任的存储库进行开发时使用开发容器,并监控 Claude 的活动。17> 仅在使用受信任的存储库进行开发时使用开发容器,并监控 Claude 的活动。

18> 避免将主机密钥(如 `~/.ssh` 或云凭证文件)挂载到容器中;优先使用存储库范围或短期令牌。18> 避免将主机密钥(如 `~/.ssh` 或云凭证文件)挂载到容器中;优先使用存储库范围或短期令牌。

19 19 

20> **开发容器如何与您的编辑器配合工作**20> [accordion] 开发容器如何与您的编辑器配合工作

21>21>

22> ![显示主机上的编辑器连接到 Docker 开发容器的图表。Claude Code、终端和构建工具在容器内运行。主机存储库绑定挂载到容器中作为工作区。](https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max\&auto=format\&n=YvJyjZfd9yMihr0i\&q=85\&s=9017b1d16a446c6cc37ba562f35b9aae)22> ![显示主机上的编辑器连接到 Docker 开发容器的图表。Claude Code、终端和构建工具在容器内运行。主机存储库绑定挂载到容器中作为工作区。](https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max\&auto=format\&n=YvJyjZfd9yMihr0i\&q=85\&s=9017b1d16a446c6cc37ba562f35b9aae)

23>23>

env-vars.md +41 −41

Details

23 23 

24在启动 `claude` 之前设置变量:24在启动 `claude` 之前设置变量:

25 25 

26**macOS, Linux, WSL**26> [tab] macOS, Linux, WSL

27 27>

28```bash theme={null}28> ```bash theme={null}

29export API_TIMEOUT_MS="1200000"29> export API_TIMEOUT_MS="1200000"

30claude30> claude

31```31> ```

32 32>

33要为每个会话设置它,请将 `export` 行添加到 `~/.bashrc`、`~/.zshrc` 或您的 shell 配置文件中。33> 要为每个会话设置它,请将 `export` 行添加到 `~/.bashrc`、`~/.zshrc` 或您的 shell 配置文件中。

34 

35**Windows PowerShell**

36 

37```powershell theme={null}

38$env:API_TIMEOUT_MS = "1200000"

39claude

40```

41 

42要为每个会话设置它,请运行 `[Environment]::SetEnvironmentVariable("API_TIMEOUT_MS", "1200000", "User")` 并打开一个新终端。

43 

44**Windows CMD**

45 34 

46```batch theme={null}35> [tab] Windows PowerShell

47set API_TIMEOUT_MS=120000036>

48claude37> ```powershell theme={null}

49```38> $env:API_TIMEOUT_MS = "1200000"

39> claude

40> ```

41>

42> 要为每个会话设置它,请运行 `[Environment]::SetEnvironmentVariable("API_TIMEOUT_MS", "1200000", "User")` 并打开一个新终端。

50 43 

51要为每个会话设置它,请运行 `setx API_TIMEOUT_MS "1200000"` 并打开一个新终端。44> [tab] Windows CMD

45>

46> ```batch theme={null}

47> set API_TIMEOUT_MS=1200000

48> claude

49> ```

50>

51> 要为每个会话设置它,请运行 `setx API_TIMEOUT_MS "1200000"` 并打开一个新终端。

52 52 

53赋值行在成功时不会打印任何内容。要确认变量已设置,请在同一 shell 中打印它:53赋值行在成功时不会打印任何内容。要确认变量已设置,请在同一 shell 中打印它:

54 54 

55**macOS, Linux, WSL**55> [tab] macOS, Linux, WSL

56 56>

57```bash theme={null}57> ```bash theme={null}

58echo $API_TIMEOUT_MS58> echo $API_TIMEOUT_MS

59```59> ```

60 

61**Windows PowerShell**

62 

63```powershell theme={null}

64echo $env:API_TIMEOUT_MS

65```

66 60 

67**Windows CMD**61> [tab] Windows PowerShell

62>

63> ```powershell theme={null}

64> echo $env:API_TIMEOUT_MS

65> ```

68 66 

69```batch theme={null}67> [tab] Windows CMD

70echo %API_TIMEOUT_MS%68>

71```69> ```batch theme={null}

70> echo %API_TIMEOUT_MS%

71> ```

72 72 

73### 在设置文件中设置变量73### 在设置文件中设置变量

74 74 


130 130 

131| 变量 | 用途 |131| 变量 | 用途 |

132| :- | :- |132| :- | :- |

133| `ANTHROPIC_API_KEY` | 作为 `X-Api-Key` 标头发送的 API 密钥。设置后,即使您已登录,也会使用此密钥,而不是您的 Claude Pro、Max、Team 或 Enterprise 订阅。在非交互模式(`-p`)下,只要存在该密钥就始终使用。在交互模式下,系统会提示您批准该密钥一次,之后它才会覆盖您的订阅。若要改用您的订阅,请运行 `unset ANTHROPIC_API_KEY` |133| `ANTHROPIC_API_KEY` | 作为 `X-Api-Key` 标头发送的 API 密钥。设置后,即使您已登录,也会使用此密钥,而不是您的 Claude Pro、Max、Ultra、Team 或 Enterprise 订阅。在非交互模式(`-p`)下,只要存在该密钥就始终会使用它。在交互模式下,系统会提示您批准一次该密钥,之后它才会覆盖您的订阅。如需改用您的订阅,请运行 `unset ANTHROPIC_API_KEY` |

134| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 标头的自定义值(您在此设置的值将以 `Bearer ` 为前缀) |134| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 标头的自定义值(您在此设置的值将以 `Bearer ` 为前缀) |

135| `ANTHROPIC_AWS_API_KEY` | 用于 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 的工作区 API 密钥,在 AWS Console 中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |135| `ANTHROPIC_AWS_API_KEY` | 用于 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 的工作区 API 密钥,在 AWS Console 中生成。作为 `x-api-key` 发送,优先于 AWS SigV4 |

136| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 端点 URL。用于自定义区域或通过 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 按照[与 Amazon Bedrock 相同的优先级](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#3-configure-claude-code)解析区域 |136| `ANTHROPIC_AWS_BASE_URL` | 覆盖 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 端点 URL。用于自定义区域或通过 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)路由时。默认为 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 按照[与 Amazon Bedrock 相同的优先级](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#3-configure-claude-code)解析区域 |


575* 在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md#requirements) 不可用时[向本机以外的会话发送消息](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#message-sessions-on-other-machines)。关闭获取后,本机上会话之间的消息传递仍可正常工作575* 在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md#requirements) 不可用时[向本机以外的会话发送消息](https://code.claude.com/docs/zh-CN/cross-session-messaging.md#message-sessions-on-other-machines)。关闭获取后,本机上会话之间的消息传递仍可正常工作

576* 运行 [`claude import` 或 `/import` 命令](https://code.claude.com/docs/zh-CN/cli-reference#cli-commands)576* 运行 [`claude import` 或 `/import` 命令](https://code.claude.com/docs/zh-CN/cli-reference#cli-commands)

577* 运行 [`/skill-doctor`](https://code.claude.com/docs/zh-CN/skills#find-unused-skills) 或在 `/plugin` 的 **Stats** 选项卡中打开其报告577* 运行 [`/skill-doctor`](https://code.claude.com/docs/zh-CN/skills#find-unused-skills) 或在 `/plugin` 的 **Stats** 选项卡中打开其报告

578* 在 Pro 和 Max 计划中运行 [`/restart`](https://code.claude.com/docs/zh-CN/commands)578* 在 Pro、Max 和 Ultra 计划中运行 [`/restart`](https://code.claude.com/docs/zh-CN/commands)

579* 将您的 claude.ai 账户中启用的 [skill](https://code.claude.com/docs/zh-CN/skills.md#where-synced-skills-load) 和[插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins)同步到终端会话中579* 将您的 claude.ai 账户中启用的 [skill](https://code.claude.com/docs/zh-CN/skills.md#where-synced-skills-load) 和[插件](https://code.claude.com/docs/zh-CN/plugins/loading.md#synced-plugins)同步到终端会话中

580* 启用 [You should know mod](https://code.claude.com/docs/zh-CN/interactive-mode.md#you-should-know-suggestions)580* 启用 [You should know mod](https://code.claude.com/docs/zh-CN/interactive-mode.md#you-should-know-suggestions)

581* 使用 [advisor 工具](https://code.claude.com/docs/zh-CN/advisor.md#requirements)581* 使用 [advisor 工具](https://code.claude.com/docs/zh-CN/advisor.md#requirements)

errors.md +5 −5

Details

830* 在 [Desktop app](https://code.claude.com/docs/zh-CN/desktop.md) 的 Code 选项卡中,会话限制卡提供 **Auto-continue when limits reset** 复选框。周限制卡没有。选中后,Desktop app 会在重置后重试中断的轮次,并在卡上显示重试时间。Desktop 复选框和 CLI 中 `/config` 中的 **Continue automatically at usage limit** 设置是分开的,因此需要分别关闭每一个。830* 在 [Desktop app](https://code.claude.com/docs/zh-CN/desktop.md) 的 Code 选项卡中,会话限制卡提供 **Auto-continue when limits reset** 复选框。周限制卡没有。选中后,Desktop app 会在重置后重试中断的轮次,并在卡上显示重试时间。Desktop 复选框和 CLI 中 `/config` 中的 **Continue automatically at usage limit** 设置是分开的,因此需要分别关闭每一个。

831* 对于 Opus 或 Sonnet 限制,运行 `/model` 并切换到该系列之外的模型以继续工作。每个模型都有自己的提示缓存,因此下一个请求会重新读取整个对话,没有缓存命中;请参阅 [Switching models](https://code.claude.com/docs/zh-CN/prompt-caching.md#switching-models)831* 对于 Opus 或 Sonnet 限制,运行 `/model` 并切换到该系列之外的模型以继续工作。每个模型都有自己的提示缓存,因此下一个请求会重新读取整个对话,没有缓存命中;请参阅 [Switching models](https://code.claude.com/docs/zh-CN/prompt-caching.md#switching-models)

832* 运行 `/usage` 查看您的套餐限制以及何时重置832* 运行 `/usage` 查看您的套餐限制以及何时重置

833* 运行 `/usage-credits` 在 Pro 和 Max 上购买额外用量,或在 Team 和 Enterprise 上向您的管理员请求。有关如何计费的信息,请参阅 [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。833* 运行 `/usage-credits` 在 Pro、Max 和 Ultra 上购买额外用量,或在 Team 和 Enterprise 上向您的管理员请求。有关如何计费的信息,请参阅 [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。

834* 要升级您的套餐以获得更高的基础限制,请参阅 [claude.com/pricing](https://claude.com/pricing)834* 要升级您的套餐以获得更高的基础限制,请参阅 [claude.com/pricing](https://claude.com/pricing)

835 835 

836在窗口用完之前,Claude Code 可以警告您已使用了大部分额度,显示类似 `You've used 85% of your session limit · resets 3:45pm` 的消息。要持续监视您的剩余额度,请将 `rate_limits` 字段添加到 [custom status line](https://code.claude.com/docs/zh-CN/statusline.md#rate-limit-usage),或在 Desktop app 中单击模型选择器旁边的 [usage ring](https://code.claude.com/docs/zh-CN/desktop.md#check-usage)。836在窗口用完之前,Claude Code 可以警告您已使用了大部分额度,显示类似 `You've used 85% of your session limit · resets 3:45pm` 的消息。要持续监视您的剩余额度,请将 `rate_limits` 字段添加到 [custom status line](https://code.claude.com/docs/zh-CN/statusline.md#rate-limit-usage),或在 Desktop app 中单击模型选择器旁边的 [usage ring](https://code.claude.com/docs/zh-CN/desktop.md#check-usage)。


852**要做什么:**852**要做什么:**

853 853 

854* 运行 `/model` 并选择不带 `[1m]` 后缀的变体以回退到标准上下文窗口854* 运行 `/model` 并选择不带 `[1m]` 后缀的变体以回退到标准上下文窗口

855* 在消息命名 `/usage-credits` 的地方,运行它以在 Pro 和 Max 上为 1M 变体启用按量计费,或在 Team 和 Enterprise 上向您的管理员请求使用额度。启用使用额度后,重启 Claude Code 或启动新会话,按消息所说的进行。在此之前,会话保持在标准上下文限制。855* 在消息命名 `/usage-credits` 的地方,运行它以在 Pro、Max 和 Ultra 上为 1M 变体启用按量计费,或在 Team 和 Enterprise 上向您的管理员请求使用额度。启用使用额度后,重启 Claude Code 或启动新会话,按消息所说的进行。在此之前,会话保持在标准上下文限制。

856* 如果在 `/model` 后错误仍然存在,1M 模型 ID 可能在其他地方设置。有关要按优先级检查的配置位置,请参阅 [Setting your model](https://code.claude.com/docs/zh-CN/model-config.md#setting-your-model)。856* 如果在 `/model` 后错误仍然存在,1M 模型 ID 可能在其他地方设置。有关要按优先级检查的配置位置,请参阅 [Setting your model](https://code.claude.com/docs/zh-CN/model-config.md#setting-your-model)。

857* 要从模型选择器中完全删除 1M 变体,请设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](https://code.claude.com/docs/zh-CN/env-vars)857* 要从模型选择器中完全删除 1M 变体,请设置 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](https://code.claude.com/docs/zh-CN/env-vars)

858 858 


933 933 

934**要做什么:**934**要做什么:**

935 935 

936* 在 Pro 和 Max 上,在 claude.ai 的 [**Settings > Usage**](https://claude.ai/settings/usage) 中增加您的月度支出限制,或运行 `/usage-credits`936* 在 Pro、Max 和 Ultra 上,在 claude.ai 的 [**Settings > Usage**](https://claude.ai/settings/usage) 中增加您的月度支出限制,或运行 `/usage-credits`

937* 在 Team 和 Enterprise 上,如果您管理计费,在 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) 中增加限制,或要求管理员这样做。`/usage-credits` 会代您向管理员发送该请求937* 在 Team 和 Enterprise 上,如果您管理计费,在 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) 中增加限制,或要求管理员这样做。`/usage-credits` 会代您向管理员发送该请求

938* 对于频道的限制,要求组织所有者或频道的管理员在 claude.ai 上提高它。请参阅 Claude Tag 文档中的 [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits)938* 对于频道的限制,要求组织所有者或频道的管理员在 claude.ai 上提高它。请参阅 Claude Tag 文档中的 [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits)

939* 如果消息命名您的套餐窗口的重置时间,您可以改为等待它939* 如果消息命名您的套餐窗口的重置时间,您可以改为等待它


966 966 

967**要做什么:**967**要做什么:**

968 968 

969* 如果您有 Pro、Max、Team 或 Enterprise 套餐并看到这个,运行 `/status` 并检查 `API key` 行。环境中已批准的 `ANTHROPIC_API_KEY` 通过该密钥而不是您的订阅路由请求。在当前 shell 中取消设置它并从您的 shell 配置文件中删除它,然后重新启动 `claude`。如果您还没有使用您的订阅登录,运行 `/login`。969* 如果您有 Pro、Max、Ultra、Team 或 Enterprise 套餐并看到这个,运行 `/status` 并检查 `API key` 行。环境中已批准的 `ANTHROPIC_API_KEY` 通过该密钥而不是您的订阅路由请求。在当前 shell 中取消设置它并从您的 shell 配置文件中删除它,然后重新启动 `claude`。如果您还没有使用您的订阅登录,运行 `/login`。

970* 在 [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing) 添加额度,并考虑在那里启用自动充值,以便余额在达到零之前重新填充970* 在 [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing) 添加额度,并考虑在那里启用自动充值,以便余额在达到零之前重新填充

971* 在 Console 中设置每个工作区的支出上限,以防止单个项目耗尽组织余额。请参阅 [Manage costs effectively](https://code.claude.com/docs/zh-CN/costs.md)。971* 在 Console 中设置每个工作区的支出上限,以防止单个项目耗尽组织余额。请参阅 [Manage costs effectively](https://code.claude.com/docs/zh-CN/costs.md)。

972 972 


1120 1120 

1121`·` 之后的提示取决于您已保存的凭据:当您取消设置该密钥后有已存储的 `/login` 可以接替时,显示第一种形式;当该密钥是您唯一的凭据时,显示第二种形式。1121`·` 之后的提示取决于您已保存的凭据:当您取消设置该密钥后有已存储的 `/login` 可以接替时,显示第一种形式;当该密钥是您唯一的凭据时,显示第二种形式。

1122 1122 

1123环境变量优先于 `/login`,因此即使您拥有可用的 Pro 或 Max 订阅,在 shell 配置文件中导出或从 `.env` 文件加载的密钥仍会被使用。在非交互模式(`-p`)下,只要存在该密钥,就总会使用它。1123如果您在 shell 配置文件中导出了密钥,或从 `.env` 加载了密钥,即使您拥有可用的 Pro、Max 或 Ultra 订阅,Claude Code 也会使用该密钥而不是 `/login`。在非交互模式(`-p`)下,只要存在密钥就始终会使用它。

1124 1124 

1125**解决方法:**1125**解决方法:**

1126 1126 

fast-mode.md +5 −5

Details

20 20 

21* 使用 `/fast` 在 Claude Code CLI 中切换快速模式。[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)在选定的模型支持快速模式时提供**切换快速模式**命令。Claude Code 将该切换保存到您的 [`fastMode` 设置](#toggle-fast-mode)。21* 使用 `/fast` 在 Claude Code CLI 中切换快速模式。[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)在选定的模型支持快速模式时提供**切换快速模式**命令。Claude Code 将该切换保存到您的 [`fastMode` 设置](#toggle-fast-mode)。

22* 快速模式定价在 Opus 5.5 上为 $8/$40 MTok 输入/输出,在 Opus 5 和 Opus 4.8 上为 $10/$50 MTok 输入/输出。22* 快速模式定价在 Opus 5.5 上为 $8/$40 MTok 输入/输出,在 Opus 5 和 Opus 4.8 上为 $10/$50 MTok 输入/输出。

23* 可供订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户和 Claude 控制台使用。Team 和 Enterprise 组织需要所有者先启用它,Console 组织需要先配置访问权限才能在 Opus 5 或 Opus 4.8 上使用它。[要求](#requirements)对这两者进行了说明。23* 可供订阅套餐(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 用户和 Claude 控制台使用。Team 和 Enterprise 组织需要所有者先启用它,Console 组织需要先配置访问权限才能在 Opus 5 或 Opus 4.8 上使用它。[要求](#requirements)对这两者进行了说明。

24* 对于订阅计划(Pro/Max/Team/Enterprise)上的 Claude Code 用户,快速模式仅通过使用额度提供,不包含在订阅速率限制中。24* 对于订阅套餐(Pro/Max/Ultra/Team/Enterprise)上的 Claude Code 用户,快速模式仅通过使用额度提供,不包含在订阅速率限制中。

25 25 

26## 切换快速模式26## 切换快速模式

27 27 


86 86 

87您看到快速模式支出的位置取决于您如何登录,因此首先运行 [`/status`](https://code.claude.com/docs/zh-CN/commands) 来检查。如果它显示 `Login method` 行(例如 `Claude Max account`),则您使用 Claude 订阅登录。如果它显示 `API key` 行,则您的请求计费到 Claude Console 组织。87您看到快速模式支出的位置取决于您如何登录,因此首先运行 [`/status`](https://code.claude.com/docs/zh-CN/commands) 来检查。如果它显示 `Login method` 行(例如 `Claude Max account`),则您使用 Claude 订阅登录。如果它显示 `API key` 行,则您的请求计费到 Claude Console 组织。

88 88 

89* **Pro 和 Max**:您从使用额度中支付快速模式费用。转到 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage),其中 **Usage credits** 部分显示您本月在使用额度中花费了多少。该数字包括快速模式,但不单独列出。89* **Pro、Max 和 Ultra**:您从使用额度中支付快速模式费用。转到 claude.ai 上的 [**Settings > Usage**](https://claude.ai/settings/usage),其中 **Usage credits** 部分显示您本月在使用额度中花费了多少。该数字包括快速模式,但不单独列出。

90* **Team 和 Enterprise**:您的组织从其使用额度中支付您的快速模式使用费用。要查看您自己的使用额度支出,运行 [`/usage`](https://code.claude.com/docs/zh-CN/costs#check-your-usage-credits-spend)。有关您的组织在哪里看到该支出,请参阅 [Claude for Teams and Enterprise](https://code.claude.com/docs/zh-CN/costs.md#claude-for-teams-and-enterprise)。90* **Team 和 Enterprise**:您的组织从其使用额度中支付您的快速模式使用费用。要查看您自己的使用额度支出,运行 [`/usage`](https://code.claude.com/docs/zh-CN/costs#check-your-usage-credits-spend)。有关您的组织在哪里看到该支出,请参阅 [Claude for Teams and Enterprise](https://code.claude.com/docs/zh-CN/costs.md#claude-for-teams-and-enterprise)。

91* **Claude Console**:您的组织使用其 API 使用的其余部分支付快速模式费用。在 Console [Usage](https://platform.claude.com/usage) 和 [Cost](https://platform.claude.com/cost) 页面上,在 **Group by** 菜单中选择 **Speed (Research Preview)** 以将快速模式与标准速度使用分开。只有当选定的日期范围包括快速模式使用时,您才会看到该选项。91* **Claude Console**:您的组织使用其 API 使用的其余部分支付快速模式费用。在 Console [Usage](https://platform.claude.com/usage) 和 [Cost](https://platform.claude.com/cost) 页面上,在 **Group by** 菜单中选择 **Speed (Research Preview)** 以将快速模式与标准速度使用分开。只有当选定的日期范围包括快速模式使用时,您才会看到该选项。

92 92 


120快速模式需要以下所有条件:120快速模式需要以下所有条件:

121 121 

122* **仅限 Anthropic API 或订阅**:快速模式可通过 Anthropic 控制台 API 和使用使用额度的 Claude 订阅套餐获得。它在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上不可用。控制台组织还必须[配置快速模式访问权限](#enable-fast-mode-for-your-organization),才能在 Opus 5 或 Opus 4.8 上使用快速模式。122* **仅限 Anthropic API 或订阅**:快速模式可通过 Anthropic 控制台 API 和使用使用额度的 Claude 订阅套餐获得。它在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上不可用。控制台组织还必须[配置快速模式访问权限](#enable-fast-mode-for-your-organization),才能在 Opus 5 或 Opus 4.8 上使用快速模式。

123* **为订阅计划启用使用额度**:在 Pro、Max、Team 或 Enterprise 计划上,您的账户必须[启用使用额度](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription),这允许在您的计划包含的使用量之外进行计费。在启用之前,`/fast` 显示"Fast mode requires usage credits"。您启用它们的方式取决于您的计划:123* **为订阅套餐启用使用额度**:在 Pro、Max、Ultra、Team 或 Enterprise 套餐上,您的账户必须[启用使用额度](https://code.claude.com/docs/zh-CN/costs.md#add-usage-credits-to-your-subscription),这允许在您的套餐包含的使用量之外进行计费。在启用之前,`/fast` 显示"Fast mode requires usage credits"。要启用它们,请按照适用于您套餐的步骤操作:

124 * 在 Pro 和 Max 上,在 claude.ai 上的[**Settings > Usage**](https://claude.ai/settings/usage)的**Usage credits**部分中启用它们,或运行 `/usage-credits` 来打开该页面。124 * 在 Pro、Max 和 Ultra 上,在 claude.ai 上的[**Settings > Usage**](https://claude.ai/settings/usage)的**Usage credits**部分中启用它们,或运行 `/usage-credits` 来打开该页面。

125 * 在 Team 和 Enterprise 上,具有计费访问权限的成员在[**Organization settings > Usage**](https://claude.ai/admin-settings/usage)处为组织启用它们,没有访问权限的成员运行 `/usage-credits` 向组织的管理员发送请求。125 * 在 Team 和 Enterprise 上,具有计费访问权限的成员在[**Organization settings > Usage**](https://claude.ai/admin-settings/usage)处为组织启用它们,没有访问权限的成员运行 `/usage-credits` 向组织的管理员发送请求。

126 126 

127> [!NOTE]127> [!NOTE]

Details

14 14 

15您的身份验证方式决定了 Claude Code 可以访问哪些功能。有关您的提供商上缺少的内容的单一列表,请参阅[按提供商汇总](#summary-by-provider)选项卡。要在表格中找到您的列:15您的身份验证方式决定了 Claude Code 可以访问哪些功能。有关您的提供商上缺少的内容的单一列表,请参阅[按提供商汇总](#summary-by-provider)选项卡。要在表格中找到您的列:

16 16 

17* **Claude 订阅**:您使用 claude.ai 账户登录 Pro、Max、Team 或 Enterprise 计划17* **Claude 订阅**:您使用 claude.ai 账户登录 Pro、Max、Ultra、Team 或 Enterprise 套餐

18* **Anthropic Console**:您使用 Anthropic API 密钥进行身份验证,或者[在没有 API 密钥的情况下登录 Console 账户](https://code.claude.com/docs/zh-CN/authentication.md#sign-in-without-an-api-key)18* **Anthropic Console**:您使用 Anthropic API 密钥进行身份验证,或者[在没有 API 密钥的情况下登录 Console 账户](https://code.claude.com/docs/zh-CN/authentication.md#sign-in-without-an-api-key)

19* **Amazon Bedrock**:您从 Amazon Bedrock 模型目录中使用 Claude 模型并设置 `CLAUDE_CODE_USE_BEDROCK`。[Mantle 端点](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#use-the-mantle-endpoint)(`CLAUDE_CODE_USE_MANTLE`)由此列涵盖19* **Amazon Bedrock**:您从 Amazon Bedrock 模型目录中使用 Claude 模型并设置 `CLAUDE_CODE_USE_BEDROCK`。[Mantle 端点](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#use-the-mantle-endpoint)(`CLAUDE_CODE_USE_MANTLE`)由此列涵盖

20* **Claude Platform on AWS**:您通过 AWS Marketplace 购买了 Claude,但调用 Anthropic API,并设置 `CLAUDE_CODE_USE_ANTHROPIC_AWS`20* **Claude Platform on AWS**:您通过 AWS Marketplace 购买了 Claude,但调用 Anthropic API,并设置 `CLAUDE_CODE_USE_ANTHROPIC_AWS`


46这些需要使用 claude.ai 账户登录,无法通过 Anthropic Console API 密钥或第三方提供商访问:46这些需要使用 claude.ai 账户登录,无法通过 Anthropic Console API 密钥或第三方提供商访问:

47 47 

48* [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)和移动设备上的 Claude Code48* [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)和移动设备上的 Claude Code

49* [Slack 中的 Claude Code](https://code.claude.com/docs/zh-CN/slack.md):Pro 和 Max 计划49* [Slack 中的 Claude Code](https://code.claude.com/docs/zh-CN/slack.md):Pro、Max 和 Ultra 套餐

50* [Claude Code Desktop](https://code.claude.com/docs/zh-CN/desktop.md)50* [Claude Code Desktop](https://code.claude.com/docs/zh-CN/desktop.md)

51* [云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(`/schedule`)51* [云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(`/schedule`)

52* [Ultrareview](https://code.claude.com/docs/zh-CN/ultrareview.md)52* [Ultrareview](https://code.claude.com/docs/zh-CN/ultrareview.md)

53* [Code Review](https://code.claude.com/docs/zh-CN/code-review.md):Team 和 Enterprise 计划53* [Code Review](https://code.claude.com/docs/zh-CN/code-review.md):Team 和 Enterprise 计划

54* [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)54* [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)

55* [Chrome 扩展](https://code.claude.com/docs/zh-CN/chrome.md)55* [Chrome 扩展](https://code.claude.com/docs/zh-CN/chrome.md)

56* [Computer use](https://code.claude.com/docs/zh-CN/computer-use.md):Pro 和 Max 计划56* [Computer use](https://code.claude.com/docs/zh-CN/computer-use.md):Pro、Max 和 Ultra 套餐

57* [Artifacts](https://code.claude.com/docs/zh-CN/artifacts.md):Pro、Max、Team 和 Enterprise 计划57* [Artifacts](https://code.claude.com/docs/zh-CN/artifacts.md):Pro、Max、Ultra、Team 和 Enterprise 套餐

58* [Voice dictation](https://code.claude.com/docs/zh-CN/voice-dictation.md)58* [Voice dictation](https://code.claude.com/docs/zh-CN/voice-dictation.md)

59 59 

60Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app)。[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 还可以在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。它还可以使用 Anthropic Console API 密钥在 [Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api) 上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。60Desktop 是部分例外:[网关路由可以在应用中或由管理员配置](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app)。[Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 还可以在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或自托管 LLM 网关上运行 Code 选项卡。它还可以使用 Anthropic Console API 密钥在 [Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api) 上运行 Code 选项卡。有关这些功能的按计划可用性,请参阅[按订阅计划的可用性](#availability-by-subscription-plan)。


229 229 

230每个选项卡列出了该提供商上不可用或部分支持的内容,以及存在替代方案的地方。未列出的所有内容的工作方式与 Claude 订阅上相同,除了上面注明的[提供商特定的差异](#features-available-on-every-provider)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,错误报告和遥测到 Anthropic 默认处于关闭状态。请参阅[按 API 提供商的默认行为](https://code.claude.com/docs/zh-CN/data-usage.md#default-behaviors-by-api-provider)了解哪些流量仍然到达 Anthropic 以及如何选择退出。230每个选项卡列出了该提供商上不可用或部分支持的内容,以及存在替代方案的地方。未列出的所有内容的工作方式与 Claude 订阅上相同,除了上面注明的[提供商特定的差异](#features-available-on-every-provider)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,错误报告和遥测到 Anthropic 默认处于关闭状态。请参阅[按 API 提供商的默认行为](https://code.claude.com/docs/zh-CN/data-usage.md#default-behaviors-by-api-provider)了解哪些流量仍然到达 Anthropic 以及如何选择退出。

231 231 

232**Amazon Bedrock**232> [tab] Amazon Bedrock

233 233>

234**不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior)、[fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。234> **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior)、[fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

235 235>

236**部分支持:**236> **部分支持:**

237 237>

238* [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)238> * [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

239* [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型239> * [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型

240* [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>240> * [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

241* [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 AWS 协议约束241> * [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 AWS 协议约束

242 242>

243**替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。对于网络查询,使用带有特定 URL 的 [WebFetch tool](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior)。243> **替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。对于网络查询,使用带有特定 URL 的 [WebFetch tool](https://code.claude.com/docs/zh-CN/tools-reference.md#webfetch-tool-behavior)。

244 

245**Claude Platform on AWS**

246 

247**不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

248 

249**Amazon Bedrock 不可用的地方可用:** [web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior)。

250 

251**部分支持:**

252 

253* [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

254 

255**替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。

256 

257**Google Cloud's Agent Platform**

258 

259**不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

260 

261**部分支持:**

262 

263* [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264* [Web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior):Opus 4、Sonnet 4、Haiku 4.5 及更高版本的模型

265* [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型

266* [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

267* [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 Google Cloud 协议约束

268 

269**替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。

270 

271**Microsoft Foundry**

272 

273**不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

274 

275**部分支持:**

276 

277* [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

278* [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型

279* [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

280* [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 Azure 协议约束

281 

282**替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md)。

283 

284**Anthropic Console**

285 244 

286**不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription)。245> [tab] Claude Platform on AWS

246>

247> **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

248>

249> **Amazon Bedrock 不可用的地方可用:** [web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior)。

250>

251> **部分支持:**

252>

253> * [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

254>

255> **替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。

287 256 

288[按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,除了使用 Claude Opus 5 或 Claude Opus 4.8 的 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md) 需要[预配置访问](https://code.claude.com/docs/zh-CN/fast-mode.md#enable-fast-mode-for-your-organization)。在 claude.ai Team 或 Enterprise 组织中配置的 [Server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 不会作用于使用 Console API 密钥进行身份验证的会话。有关如何覆盖这些会话,请参阅[平台可用性](https://code.claude.com/docs/zh-CN/server-managed-settings.md#platform-availability)。257> [tab] Google Cloud's Agent Platform

258>

259> **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

260>

261> **部分支持:**

262>

263> * [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):通过[托管设置](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [Web search](https://code.claude.com/docs/zh-CN/tools-reference.md#websearch-tool-behavior):Opus 4、Sonnet 4、Haiku 4.5 及更高版本的模型

265> * [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型

266> * [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

267> * [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 Google Cloud 协议约束

268>

269> **替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)。

289 270 

290**部分支持:**271> [tab] Microsoft Foundry

272>

273> **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription),加上 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md)、[Advisor](https://code.claude.com/docs/zh-CN/advisor.md)、[Channels](https://code.claude.com/docs/zh-CN/channels.md)、[GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md)、[analytics dashboard](https://code.claude.com/docs/zh-CN/analytics.md)、[server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 和 [`/design-sync` 和 `/import` 命令](https://code.claude.com/docs/zh-CN/commands#all-commands)。

274>

275> **部分支持:**

276>

277> * [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):仅通过 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

278> * [Auto mode](https://code.claude.com/docs/zh-CN/auto-mode-config.md):仅 Sonnet 5 或更高版本、Opus 4.7 或更高版本、Haiku 5.5 以及 Fable 模型

279> * [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md):仅在此机器上的您的会话之间 <sup>[5](#fn5)</sup>

280> * [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md):受您的 Azure 协议约束

281>

282> **替代方案:** 对于调度,使用 [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 而不是 `/schedule`。对于云会话,使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md)。

291 283 

292* [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):通过[结合 Claude API 使用的 Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/claude-api)284> [tab] Anthropic Console

285>

286> **不可用:** 所有[需要 Claude 订阅的功能](#features-that-require-a-claude-subscription)。

287>

288> [按提供商变化的 CLI 功能](#cli-capabilities-that-vary-by-provider)中的所有内容都可用,除了使用 Claude Opus 5 或 Claude Opus 4.8 的 [fast mode](https://code.claude.com/docs/zh-CN/fast-mode.md) 需要[预配置访问](https://code.claude.com/docs/zh-CN/fast-mode.md#enable-fast-mode-for-your-organization)。在 claude.ai Team 或 Enterprise 组织中配置的 [Server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 不会作用于使用 Console API 密钥进行身份验证的会话。有关如何覆盖这些会话,请参阅[平台可用性](https://code.claude.com/docs/zh-CN/server-managed-settings.md#platform-availability)。

289>

290> **部分支持:**

291>

292> * [Desktop](https://code.claude.com/docs/zh-CN/desktop.md):通过[结合 Claude API 使用的 Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/claude-api)

293 293 

294## 按订阅计划的可用性294## 按订阅计划的可用性

295 295 


297 297 

298在已应用 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md)的 Enterprise 组织中,此表中的部分功能会被关闭。298在已应用 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md)的 Enterprise 组织中,此表中的部分功能会被关闭。

299 299 

300| 功能 | Pro | Max | Team | Enterprise |300| 功能 | Pro | Max | Ultra | Team | Enterprise |

301| :- | :- | :- | :- | :- |301| :- | :- | :- | :- | :- | :- |

302| [网络上的 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | ✓ | ✓ | ✓ | ✓ <sup>[6](#fn6)</sup> |302| [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | ✓ | ✓ | ✓ | ✓ | ✓ <sup>[6](#fn6)</sup> |

303| [云端定时任务](https://code.claude.com/docs/zh-CN/routines.md) | ✓ | ✓ | ✓ | ✓ |303| [云端定时任务](https://code.claude.com/docs/zh-CN/routines.md) | ✓ | ✓ | ✓ | ✓ | ✓ |

304| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | ✓ | ✓ | Admin-enabled | Admin-enabled |304| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | ✓ | ✓ | ✓ | Admin-enabled | Admin-enabled |

305| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | ✓ | ✓ | Admin-enabled | Admin-enabled |305| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | ✓ | ✓ | ✓ | Admin-enabled | Admin-enabled |

306| [Computer use](https://code.claude.com/docs/zh-CN/computer-use.md) | ✓ | ✓ | ✗ | ✗ |306| [Computer use](https://code.claude.com/docs/zh-CN/computer-use.md) | ✓ | ✓ | ✓ | ✗ | ✗ |

307| Dispatch ([Desktop](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |307| Dispatch ([Desktop](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)) | ✓ | ✓ | ✓ | ✗ | ✗ |

308| [Code Review](https://code.claude.com/docs/zh-CN/code-review.md) | ✗ | ✗ | ✓ | ✓ |308| [Code Review](https://code.claude.com/docs/zh-CN/code-review.md) | ✗ | ✗ | ✗ | ✓ | ✓ |

309| [Artifacts](https://code.claude.com/docs/zh-CN/artifacts.md) | ✓ | ✓ | ✓ | ✓ |309| [Artifacts](https://code.claude.com/docs/zh-CN/artifacts.md) | ✓ | ✓ | ✓ | ✓ | ✓ |

310| [分析仪表板和贡献指标](https://code.claude.com/docs/zh-CN/analytics.md) | ✗ | ✗ | ✓ | ✓ |310| [分析仪表板和贡献指标](https://code.claude.com/docs/zh-CN/analytics.md) | ✗ | ✗ | ✗ | ✓ | ✓ |

311| [Enterprise Analytics API](https://code.claude.com/docs/zh-CN/analytics.md#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |311| [Enterprise Analytics API](https://code.claude.com/docs/zh-CN/analytics.md#access-data-programmatically) | ✗ | ✗ | ✗ | ✗ | ✓ |

312| [Server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) | ✗ | ✗ | ✓ | ✓ |312| [Server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) | ✗ | ✗ | ✗ | ✓ | ✓ |

313| [SSO](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) | ✗ | ✗ | ✓ | ✓ |313| [SSO](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) | ✗ | ✗ | ✗ | ✓ | ✓ |

314| SCIM | ✗ | ✗ | ✗ | ✓ |314| SCIM | ✗ | ✗ | ✗ | ✗ | ✓ |

315| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |315| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✗ | ✓ |

316| [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md) | ✗ | ✗ | ✗ | ✓ <sup>[7](#fn7)</sup> |316| [Zero Data Retention](https://code.claude.com/docs/zh-CN/zero-data-retention.md) | ✗ | ✗ | ✗ | ✗ | ✓ <sup>[7](#fn7)</sup> |

317 317 

318<sup>6</sup> 在 Enterprise 上,需要高级座位或 Chat + Claude Code 座位。请参阅[网络上的 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。\318<sup>6</sup> 在 Enterprise 上,需要高级座位或 Chat + Claude Code 座位。请参阅[网络上的 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)。\

319 319 


321 321 

322有关定价和完整的计划比较,请参阅 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan)和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。322有关定价和完整的计划比较,请参阅 [Team 计划](https://support.claude.com/en/articles/9266767-what-is-the-team-plan)和 [Enterprise 计划](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)。

323 323 

324### Ultra 套餐

325 

326Ultra 是 Max 20x 套餐的新名称,Max 是 Max 5x 的新名称。要查看您当前使用的套餐,请在 claude.ai 上查看您的订阅。

327 

328在 Claude Code 中,Max 和 Ultra 具有相同的功能,详见[可用性表](#availability-by-subscription-plan)中的 Max 和 Ultra 列。有关用量限制和定价,请参阅 [Claude 定价页面](https://claude.com/pricing)。

329 

324## 模型可用性330## 模型可用性

325 331 

326有关每个提供商和地区可用的 Claude 模型和上下文窗口大小,请参阅[模型配置](https://code.claude.com/docs/zh-CN/model-config.md)和[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。Vision、PDF 输入和扩展思考是模型功能而不是 Claude Code 功能,在提供该模型的每个提供商上都有效。[Prompt caching](https://code.claude.com/docs/zh-CN/prompt-caching.md) 在大多数提供商上的工作方式相同;在 Amazon Bedrock 上,支持因模型而异。332有关每个提供商和地区可用的 Claude 模型和上下文窗口大小,请参阅[模型配置](https://code.claude.com/docs/zh-CN/model-config.md)和[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。Vision、PDF 输入和扩展思考是模型功能而不是 Claude Code 功能,在提供该模型的每个提供商上都有效。[Prompt caching](https://code.claude.com/docs/zh-CN/prompt-caching.md) 在大多数提供商上的工作方式相同;在 Amazon Bedrock 上,支持因模型而异。

features-overview.md +193 −193

Details

72 72 

73某些功能可能看起来相似。有关选择它们之间的更深入演练,请参阅博客上的 [Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more)。以下是如何区分它们。73某些功能可能看起来相似。有关选择它们之间的更深入演练,请参阅博客上的 [Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more)。以下是如何区分它们。

74 74 

75**Skill vs Subagent**75> [tab] Skill vs Subagent

76 76>

77Skills 和 subagents 解决不同的问题:77> Skills 和 subagents 解决不同的问题:

78 78>

79* **Skills** 是可重用的内容,您可以将其加载到任何上下文中79> * **Skills** 是可重用的内容,您可以将其加载到任何上下文中

80* **Subagents** 是与您的主对话分开运行的隔离工作者80> * **Subagents** 是与您的主对话分开运行的隔离工作者

81 81>

82| 方面 | Skill | Subagent |82> | 方面 | Skill | Subagent |

83| - | - | - |83> | - | - | - |

84| **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |84> | **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |

85| **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |85> | **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |

86| **[上下文窗口](https://code.claude.com/docs/zh-CN/context-window.md)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |86> | **[上下文窗口](https://code.claude.com/docs/zh-CN/context-window.md)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |

87| **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |87> | **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |

88 88>

89**Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。89> **Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。

90 90>

91**当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。91> **当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。

92 92>

93**它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](https://code.claude.com/docs/zh-CN/skills.md)。93> **它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](https://code.claude.com/docs/zh-CN/skills.md)。

94 

95**CLAUDE.md vs Skill**

96 

97两者都存储说明,但它们的加载方式和用途不同。

98 

99| 方面 | CLAUDE.md | Skill |

100| - | - | - |

101| **加载** | 每个会话,自动 | 按需 |

102| **可以包含文件** | 是,使用 `@path` 导入 | 是,使用 `@path` 导入 |

103| **可以触发工作流** | 否 | 是,使用 `/<name>` |

104| **最适合** | "始终执行 X" 规则 | 参考材料、可调用的工作流 |

105 

106**如果 Claude 应该始终知道它,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构、"永远不要执行 X" 规则。

107 

108**如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。

109 

110**经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](https://code.claude.com/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。

111 

112**CLAUDE.md vs Output style**

113 

114两者都给 Claude 常设说明。CLAUDE.md 包含 Claude 应该知道的内容,output style 设置 Claude 如何响应。

115 

116| 方面 | CLAUDE.md | Output style |

117| - | - | - |

118| **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |

119| **切换** | 始终加载 | 一次一个活跃;[随时切换风格](https://code.claude.com/docs/zh-CN/output-styles.md#change-your-output-style) |

120| **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |

121 

122**如果它对项目为真,无论您使用什么风格,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构。

123 

124**如果它关于响应本身,您可能想再次关闭它,请使用 output style**:长度、格式、Claude 解释多少,或不同的角色,如写作助手。Claude Code 包括 [内置风格](https://code.claude.com/docs/zh-CN/output-styles.md#built-in-output-styles),您可以编写自己的。

125 

126**它们结合。** CLAUDE.md 保持加载,无论您选择什么风格。Claude 遵循两者作为说明,所以都不是强制执行的。对于必须每次都发生的任何事情,使用 [hook](https://code.claude.com/docs/zh-CN/hooks-guide.md)。

127 

128**CLAUDE.md vs Rules vs Skills**

129 

130所有三者都存储说明,但它们的加载方式不同:

131 

132| 方面 | CLAUDE.md | `.claude/rules/` | Skill |

133| - | - | - | - |

134| **加载** | 每个会话 | 每个会话,或当打开匹配的文件时 | 按需,当调用或相关时 |

135| **范围** | 整个项目 | 可以限定到文件路径 | 特定于任务 |

136| **最适合** | 核心约定和构建命令 | 特定于语言或目录的指南 | 参考材料、可重复的工作流 |

137 

138**对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。

139 

140**使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](https://code.claude.com/docs/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。

141 

142**对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。

143 

144**Subagent vs Dynamic workflow**

145 

146两者都在您的主对话之外进行工作。使用 subagents,Claude 逐轮决定接下来运行什么。在工作流中,脚本决定:

147 

148* **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要

149* **[Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果

150 

151**当您需要一个快速、专注的工作者时,使用子代理**:研究一个问题、验证一个声明、审查一个文件。子代理完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时[命名](https://code.claude.com/docs/zh-CN/sub-agents.md#subagent-names)的子代理也可以 [相互发送消息](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup)。

152 

153当一个工作[超出少数 subagents 的范围](https://code.claude.com/docs/zh-CN/workflows.md#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](https://code.claude.com/docs/zh-CN/workflows.md#ask-for-a-workflow-in-your-prompt)。

154 

155**要将一个发现从您的一个会话传递到另一个会话**,要求第一个会话的 Claude 发送它。Claude 使用 [cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md) 传递它。[并行运行代理](https://code.claude.com/docs/zh-CN/agents.md) 比较了运行多个 Claude 的其他方式,包括您交接并稍后检查的会话。

156 

157**MCP vs Skill**

158 

159MCP 将 Claude 连接到外部服务。Skills 扩展 Claude 的知识,包括如何有效地使用这些服务。

160 

161| 方面 | MCP | Skill |

162| - | - | - |

163| **它是什么** | 连接到外部服务的协议 | 知识、工作流和参考材料 |

164| **提供** | 工具和数据访问 | 知识、工作流、参考材料 |

165| **示例** | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流、API 风格指南 |

166 

167这些解决不同的问题,可以很好地协同工作:

168 

169**MCP** 给予 Claude 与外部系统交互的目的构建的工具,连接和身份验证由服务器处理。

170 

171**Skills** 给予 Claude 关于如何有效使用这些工具的知识,以及您可以使用 `/<name>` 触发的工作流。Skill 可能包括您团队的数据库架构和查询模式,或带有您团队消息格式规则的 `/post-to-slack` 工作流。

172 

173**Hook vs Skill**

174 94 

175Claude Code 在生命周期事件上运行 hook;它将 skill 加载到上下文中供 Claude 应用。95> [tab] CLAUDE.md vs Skill

96>

97> 两者都存储说明,但它们的加载方式和用途不同。

98>

99> | 方面 | CLAUDE.md | Skill |

100> | - | - | - |

101> | **加载** | 每个会话,自动 | 按需 |

102> | **可以包含文件** | 是,使用 `@path` 导入 | 是,使用 `@path` 导入 |

103> | **可以触发工作流** | 否 | 是,使用 `/<name>` |

104> | **最适合** | "始终执行 X" 规则 | 参考材料、可调用的工作流 |

105>

106> **如果 Claude 应该始终知道它,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构、"永远不要执行 X" 规则。

107>

108> **如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。

109>

110> **经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](https://code.claude.com/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。

176 111 

177| 方面 | Hook | Skill |112> [tab] CLAUDE.md vs Output style

178| - | - | - |113>

179| **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |114> 两者都给 Claude 常设说明。CLAUDE.md 包含 Claude 应该知道的内容,output style 设置 Claude 如何响应。

180| **由以下触发** | [生命周期事件](https://code.claude.com/docs/zh-CN/hooks.md#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |115>

181| **确定性** | 在其事件上触发,无需 Claude 决定 | Claude 解释说明;结果可能会有所不同 |116> | 方面 | CLAUDE.md | Output style |

182| **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |117> | - | - | - |

183| **最适合** | 编辑后运行 linting、阻止不安全的命令、记录日志、发送通知 | 需要推理的工作流、参考材料、多步骤任务 |118> | **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |

119> | **切换** | 始终加载 | 一次一个活跃;[随时切换风格](https://code.claude.com/docs/zh-CN/output-styles.md#change-your-output-style) |

120> | **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |

121>

122> **如果它对项目为真,无论您使用什么风格,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构。

123>

124> **如果它关于响应本身,您可能想再次关闭它,请使用 output style**:长度、格式、Claude 解释多少,或不同的角色,如写作助手。Claude Code 包括 [内置风格](https://code.claude.com/docs/zh-CN/output-styles.md#built-in-output-styles),您可以编写自己的。

125>

126> **它们结合。** CLAUDE.md 保持加载,无论您选择什么风格。Claude 遵循两者作为说明,所以都不是强制执行的。对于必须每次都发生的任何事情,使用 [hook](https://code.claude.com/docs/zh-CN/hooks-guide.md)。

184 127 

185**当操作必须每次都以相同方式发生且不需要 Claude 思考时,使用 hook**。例如:保存时格式化、拒绝 `rm -rf /`、在会话结束时发布 Slack 消息。128> [tab] CLAUDE.md vs Rules vs Skills

129>

130> 所有三者都存储说明,但它们的加载方式不同:

131>

132> | 方面 | CLAUDE.md | `.claude/rules/` | Skill |

133> | - | - | - | - |

134> | **加载** | 每个会话 | 每个会话,或当打开匹配的文件时 | 按需,当调用或相关时 |

135> | **范围** | 整个项目 | 可以限定到文件路径 | 特定于任务 |

136> | **最适合** | 核心约定和构建命令 | 特定于语言或目录的指南 | 参考材料、可重复的工作流 |

137>

138> **对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。

139>

140> **使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](https://code.claude.com/docs/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。

141>

142> **对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。

186 143 

187**当 Claude 应该决定如何应用步骤或内容是知识而不是脚本时,使用 skill**。例如:`/release` 清单、您的 API 风格指南、调试剧本。144> [tab] Subagent vs Dynamic workflow

145>

146> 两者都在您的主对话之外进行工作。使用 subagents,Claude 逐轮决定接下来运行什么。在工作流中,脚本决定:

147>

148> * **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要

149> * **[Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果

150>

151> **当您需要一个快速、专注的工作者时,使用子代理**:研究一个问题、验证一个声明、审查一个文件。子代理完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时[命名](https://code.claude.com/docs/zh-CN/sub-agents.md#subagent-names)的子代理也可以 [相互发送消息](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup)。

152>

153> 当一个工作[超出少数 subagents 的范围](https://code.claude.com/docs/zh-CN/workflows.md#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](https://code.claude.com/docs/zh-CN/workflows.md#ask-for-a-workflow-in-your-prompt)。

154>

155> **要将一个发现从您的一个会话传递到另一个会话**,要求第一个会话的 Claude 发送它。Claude 使用 [cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md) 传递它。[并行运行代理](https://code.claude.com/docs/zh-CN/agents.md) 比较了运行多个 Claude 的其他方式,包括您交接并稍后检查的会话。

188 156 

189**将护栏放在 hooks 中。** CLAUDE.md 或 skill 中的"永远不要编辑 `.env`"之类的说明是请求,而不是保证。阻止编辑的 `PreToolUse` hook 是强制执行。如果规则必须每次都成立,将其作为 hook 而不是提示说明。157> [tab] MCP vs Skill

158>

159> MCP 将 Claude 连接到外部服务。Skills 扩展 Claude 的知识,包括如何有效地使用这些服务。

160>

161> | 方面 | MCP | Skill |

162> | - | - | - |

163> | **它是什么** | 连接到外部服务的协议 | 知识、工作流和参考材料 |

164> | **提供** | 工具和数据访问 | 知识、工作流、参考材料 |

165> | **示例** | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流、API 风格指南 |

166>

167> 这些解决不同的问题,可以很好地协同工作:

168>

169> **MCP** 给予 Claude 与外部系统交互的目的构建的工具,连接和身份验证由服务器处理。

170>

171> **Skills** 给予 Claude 关于如何有效使用这些工具的知识,以及您可以使用 `/<name>` 触发的工作流。Skill 可能包括您团队的数据库架构和查询模式,或带有您团队消息格式规则的 `/post-to-slack` 工作流。

190 172 

191**Hook 输出进入上下文。** 运行您的 linter 的 `PostToolUse` hook 将结果作为 Claude 读取的文本反馈;`/fix-lint` skill 告诉 Claude 如何解决它们。173> [tab] Hook vs Skill

174>

175> Claude Code 在生命周期事件上运行 hook;它将 skill 加载到上下文中供 Claude 应用。

176>

177> | 方面 | Hook | Skill |

178> | - | - | - |

179> | **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |

180> | **由以下触发** | [生命周期事件](https://code.claude.com/docs/zh-CN/hooks.md#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |

181> | **确定性** | 在其事件上触发,无需 Claude 决定 | Claude 解释说明;结果可能会有所不同 |

182> | **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |

183> | **最适合** | 编辑后运行 linting、阻止不安全的命令、记录日志、发送通知 | 需要推理的工作流、参考材料、多步骤任务 |

184>

185> **当操作必须每次都以相同方式发生且不需要 Claude 思考时,使用 hook**。例如:保存时格式化、拒绝 `rm -rf /`、在会话结束时发布 Slack 消息。

186>

187> **当 Claude 应该决定如何应用步骤或内容是知识而不是脚本时,使用 skill**。例如:`/release` 清单、您的 API 风格指南、调试剧本。

188>

189> **将护栏放在 hooks 中。** CLAUDE.md 或 skill 中的"永远不要编辑 `.env`"之类的说明是请求,而不是保证。阻止编辑的 `PreToolUse` hook 是强制执行。如果规则必须每次都成立,将其作为 hook 而不是提示说明。

190>

191> **Hook 输出进入上下文。** 运行您的 linter 的 `PostToolUse` hook 将结果作为 Claude 读取的文本反馈;`/fix-lint` skill 告诉 Claude 如何解决它们。

192 192 

193### 了解功能如何分层193### 了解功能如何分层

194 194 


238 238 

239![上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。MCP 工具名称在启动时加载,完整架构延迟到使用。Skills 在启动时加载描述,在调用时加载完整内容。Subagents 获得隔离的上下文。Hooks 外部运行。](https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max\&auto=format\&n=ikqp3_70mqIahteV\&q=85\&s=aab139e750494a237ae2e0c8f9139b0a)239![上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。MCP 工具名称在启动时加载,完整架构延迟到使用。Skills 在启动时加载描述,在调用时加载完整内容。Subagents 获得隔离的上下文。Hooks 外部运行。](https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max\&auto=format\&n=ikqp3_70mqIahteV\&q=85\&s=aab139e750494a237ae2e0c8f9139b0a)

240 240 

241**CLAUDE.md**241> [tab] CLAUDE.md

242 

243**何时:** 会话开始

244 

245**加载内容:** 在会话开始时加载的每个 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。

246 

247**继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](https://code.claude.com/docs/zh-CN/memory.md#how-claude-md-files-load)。如果嵌套的 CLAUDE.md 超出其[单文件大小限制](https://code.claude.com/docs/zh-CN/memory.md#claude-ignores-the-end-of-my-subdirectory-claude-md),Claude 只会收到该文件的开头部分。

248 

249> [!TIP]

250>242>

251> 保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。要获取 [已检入 CLAUDE.md 的修剪建议](https://code.claude.com/docs/zh-CN/memory.md#my-claude-md-is-too-large),请运行 `/doctor`。243> **何时:** 会话开始

252 

253**Skills**

254 

255Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](https://code.claude.com/docs/zh-CN/commands.md),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。

256 

257**何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。

258 

259**加载内容:** 对于模型可调用的 skills,Claude 在每个请求中看到名称和描述。当您使用 `/<name>` 调用 skill 或 Claude 自动加载它时,完整内容加载到您的对话中。

260 

261**Claude 如何选择 skill:** Claude 将您的任务与 skill 描述相匹配,以决定哪些相关。如果描述模糊或重叠,Claude 可能加载错误的 skill 或错过会有帮助的 skill。要告诉 Claude 使用特定的 skill,请使用 `/<name>` 调用它。

262 

263**上下文成本:** 低,直到使用。仅用户 skills 在调用前成本为零。

264 

265**在子代理中:** 子代理的 `skills` 字段中列出的 skill 的完整内容会[在启动时加载到其上下文中](https://code.claude.com/docs/zh-CN/sub-agents.md#preload-skills-into-subagents),而不是按需加载。子代理仍然可以通过 Skill 工具发现和调用未列出的项目、用户和插件 skill。

266 

267> [!TIP]

268>244>

269> 对于有副作用的 skill,使用 `disable-model-invocation: true`。这节省上下文并确保它们仅在您指名时运行。245> **加载内容:** 在会话开始时加载的每个 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。

270 

271**MCP 服务器**

272 

273**何时:** 会话开始。

274 

275**加载内容:** 来自连接的服务器的工具名称和服务器说明。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。

276 

277**上下文成本:** [工具搜索](https://code.claude.com/docs/zh-CN/mcp.md#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。

278 

279> [!TIP]

280>246>

281> 运行 `/mcp` 查看每个服务器的连接状态。运行 `/context all` 查看每个加载的 MCP 工具使用多少令牌。Claude Code [自动重新连接到远程服务器](https://code.claude.com/docs/zh-CN/mcp.md#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。247> **继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](https://code.claude.com/docs/zh-CN/memory.md#how-claude-md-files-load)。如果嵌套的 CLAUDE.md 超出其[单文件大小限制](https://code.claude.com/docs/zh-CN/memory.md#claude-ignores-the-end-of-my-subdirectory-claude-md),Claude 只会收到该文件的开头部分。

282 

283**Code intelligence**

284 

285**何时:** 文件编辑后,以及当 Claude 导航代码时按需。

286 

287**加载内容:** 每次文件编辑后的类型错误和警告。当 Claude 查找符号时的定义、引用和类型信息。

288 

289**上下文成本:** 低。符号查找通常替代广泛的文件读取,因此净上下文使用可能会下降。

290 

291> [!TIP]

292>248>

293> LSP 工具在您为您的语言安装 [code intelligence 插件](https://code.claude.com/docs/zh-CN/plugins/code-intelligence.md) 之前处于非活动状态。249> > [!TIP]

294 250> >

295**Subagents**251> > 保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。要获取 [已检入 CLAUDE.md 的修剪建议](https://code.claude.com/docs/zh-CN/memory.md#my-claude-md-is-too-large),请运行 `/doctor`。

296 

297**何时:** 按需,当您或 Claude 为任务生成一个时。

298 

299**加载内容:** 新鲜、隔离的上下文,包含:

300 

301* Agent 自己的系统提示词,而不是 Claude Code 系统提示词

302* Agent 的 `skills:` 字段中列出的 skill 的完整内容

303* CLAUDE.md 和 git 状态。内置的 Explore 和 Plan Agent [启动时两者都不包含](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup),而定义中设置了 [`omitClaudeMd`](https://code.claude.com/docs/zh-CN/sub-agents#supported-frontmatter-fields) 的 Agent 启动时不包含用户、项目和本地 CLAUDE.md 文件。

304* 主 Agent 在提示词中传递的任何上下文

305 

306对于 [fork](https://code.claude.com/docs/zh-CN/sub-agents.md#fork-the-current-conversation),Claude Code 改为加载父对话到目前为止的内容、系统提示和工具。

307 

308**上下文成本:** 与主会话隔离。

309 252 

310> [!TIP]253> [tab] Skills

311>254>

312> 对于不需要您完整对话上下文的工作,使用 subagents。它们的隔离防止膨胀您的主会话。255> Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](https://code.claude.com/docs/zh-CN/commands.md),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。

313 256>

314**Hooks**257> **何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。

258>

259> **加载内容:** 对于模型可调用的 skills,Claude 在每个请求中看到名称和描述。当您使用 `/<name>` 调用 skill 或 Claude 自动加载它时,完整内容加载到您的对话中。

260>

261> **Claude 如何选择 skill:** Claude 将您的任务与 skill 描述相匹配,以决定哪些相关。如果描述模糊或重叠,Claude 可能加载错误的 skill 或错过会有帮助的 skill。要告诉 Claude 使用特定的 skill,请使用 `/<name>` 调用它。

262>

263> **上下文成本:** 低,直到使用。仅用户 skills 在调用前成本为零。

264>

265> **在子代理中:** 子代理的 `skills` 字段中列出的 skill 的完整内容会[在启动时加载到其上下文中](https://code.claude.com/docs/zh-CN/sub-agents.md#preload-skills-into-subagents),而不是按需加载。子代理仍然可以通过 Skill 工具发现和调用未列出的项目、用户和插件 skill。

266>

267> > [!TIP]

268> >

269> > 对于有副作用的 skill,使用 `disable-model-invocation: true`。这节省上下文并确保它们仅在您指名时运行。

315 270 

316**何时:** 触发时。Claude Code 在特定的生命周期事件上运行 hooks,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](https://code.claude.com/docs/zh-CN/hooks.md)。271> [tab] MCP 服务器

272>

273> **何时:** 会话开始。

274>

275> **加载内容:** 来自连接的服务器的工具名称和服务器说明。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。

276>

277> **上下文成本:** [工具搜索](https://code.claude.com/docs/zh-CN/mcp.md#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。

278>

279> > [!TIP]

280> >

281> > 运行 `/mcp` 查看每个服务器的连接状态。运行 `/context all` 查看每个加载的 MCP 工具使用多少令牌。Claude Code [自动重新连接到远程服务器](https://code.claude.com/docs/zh-CN/mcp.md#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。

317 282 

318**加载内容:** 默认情况下无。Hooks 在主对话外执行。283> [tab] Code intelligence

284>

285> **何时:** 文件编辑后,以及当 Claude 导航代码时按需。

286>

287> **加载内容:** 每次文件编辑后的类型错误和警告。当 Claude 查找符号时的定义、引用和类型信息。

288>

289> **上下文成本:** 低。符号查找通常替代广泛的文件读取,因此净上下文使用可能会下降。

290>

291> > [!TIP]

292> >

293> > LSP 工具在您为您的语言安装 [code intelligence 插件](https://code.claude.com/docs/zh-CN/plugins/code-intelligence.md) 之前处于非活动状态。

319 294 

320**上下文成本:** 零,除非 hook 返回作为消息添加到您的对话中的输出。295> [tab] Subagents

296>

297> **何时:** 按需,当您或 Claude 为任务生成一个时。

298>

299> **加载内容:** 新鲜、隔离的上下文,包含:

300>

301> * Agent 自己的系统提示词,而不是 Claude Code 系统提示词

302> * Agent 的 `skills:` 字段中列出的 skill 的完整内容

303> * CLAUDE.md 和 git 状态。内置的 Explore 和 Plan Agent [启动时两者都不包含](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup),而定义中设置了 [`omitClaudeMd`](https://code.claude.com/docs/zh-CN/sub-agents#supported-frontmatter-fields) 的 Agent 启动时不包含用户、项目和本地 CLAUDE.md 文件。

304> * 主 Agent 在提示词中传递的任何上下文

305>

306> 对于 [fork](https://code.claude.com/docs/zh-CN/sub-agents.md#fork-the-current-conversation),Claude Code 改为加载父对话到目前为止的内容、系统提示和工具。

307>

308> **上下文成本:** 与主会话隔离。

309>

310> > [!TIP]

311> >

312> > 对于不需要您完整对话上下文的工作,使用 subagents。它们的隔离防止膨胀您的主会话。

321 313 

322> [!TIP]314> [tab] Hooks

315>

316> **何时:** 触发时。Claude Code 在特定的生命周期事件上运行 hooks,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](https://code.claude.com/docs/zh-CN/hooks.md)。

317>

318> **加载内容:** 默认情况下无。Hooks 在主对话外执行。

319>

320> **上下文成本:** 零,除非 hook 返回作为消息添加到您的对话中的输出。

323>321>

324> Hooks 非常适合不需要影响 Claude 上下文的副作用(linting、logging)。322> > [!TIP]

323> >

324> > Hooks 非常适合不需要影响 Claude 上下文的副作用(linting、logging)。

325 325 

326## 了解更多326## 了解更多

327 327 

328每个功能都有自己的指南,包含设置说明、示例和配置选项。328每个功能都有自己的指南,包含设置说明、示例和配置选项。

329 329 

330> **[CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md)**330> [card] [CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md)

331>331>

332> 存储项目上下文、约定和说明332> 存储项目上下文、约定和说明

333 333 

334> **[Skills](https://code.claude.com/docs/zh-CN/skills.md)**334> [card] [Skills](https://code.claude.com/docs/zh-CN/skills.md)

335>335>

336> 给予 Claude 领域专业知识和可重用的工作流336> 给予 Claude 领域专业知识和可重用的工作流

337 337 

338> **[Subagents](https://code.claude.com/docs/zh-CN/sub-agents.md)**338> [card] [Subagents](https://code.claude.com/docs/zh-CN/sub-agents.md)

339>339>

340> 将工作卸载到隔离的上下文340> 将工作卸载到隔离的上下文

341 341 

342> **[Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)**342> [card] [Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)

343>343>

344> 从一个脚本运行许多 subagents344> 从一个脚本运行许多 subagents

345 345 

346> **[Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)**346> [card] [Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)

347>347>

348> 让 Claude 向您的其他会话发送消息348> 让 Claude 向您的其他会话发送消息

349 349 

350> **[MCP](https://code.claude.com/docs/zh-CN/mcp.md)**350> [card] [MCP](https://code.claude.com/docs/zh-CN/mcp.md)

351>351>

352> 将 Claude 连接到外部服务352> 将 Claude 连接到外部服务

353 353 

354> **[Hooks](https://code.claude.com/docs/zh-CN/hooks-guide.md)**354> [card] [Hooks](https://code.claude.com/docs/zh-CN/hooks-guide.md)

355>355>

356> 使用 hooks 自动化操作356> 使用 hooks 自动化操作

357 357 

358> **[Plugins](https://code.claude.com/docs/zh-CN/plugins/overview.md)**358> [card] [Plugins](https://code.claude.com/docs/zh-CN/plugins/overview.md)

359>359>

360> 捆绑和共享功能集360> 捆绑和共享功能集

361 361 

362> **[Marketplaces](https://code.claude.com/docs/zh-CN/plugins/create-marketplace.md)**362> [card] [Marketplaces](https://code.claude.com/docs/zh-CN/plugins/create-marketplace.md)

363>363>

364> 托管和分发 plugin 集合364> 托管和分发 plugin 集合

Details

74根据您的身份验证方式,向仓库添加以下密钥之一。请参阅 GitHub 的[在 GitHub Actions 中使用密钥](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)指南。74根据您的身份验证方式,向仓库添加以下密钥之一。请参阅 GitHub 的[在 GitHub Actions 中使用密钥](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)指南。

75 75 

76* `ANTHROPIC_API_KEY`:来自 [Claude Console](https://platform.claude.com) 的 Claude API 密钥76* `ANTHROPIC_API_KEY`:来自 [Claude Console](https://platform.claude.com) 的 Claude API 密钥

77* `CLAUDE_CODE_OAUTH_TOKEN`:使用您的 Claude 订阅进行身份验证的 OAuth 令牌,适用于 Pro、Max、Team 和 Enterprise 套餐。在本地运行 `claude setup-token` 即可生成。请参阅[生成长期令牌](https://code.claude.com/docs/zh-CN/authentication.md#generate-a-long-lived-token)77* `CLAUDE_CODE_OAUTH_TOKEN`:使用您的 Claude 订阅进行身份验证的 OAuth 令牌,适用于 Pro、Max、Ultra、Team 和 Enterprise 套餐。在本地运行 `claude setup-token` 即可生成。请参阅[生成长期令牌](https://code.claude.com/docs/zh-CN/authentication.md#generate-a-long-lived-token)

78 78 

79在工作流文件中,将密钥传递给对应的输入:API 密钥使用 `anthropic_api_key`,OAuth 令牌使用 `claude_code_oauth_token`。79在工作流文件中,将密钥传递给对应的输入:API 密钥使用 `anthropic_api_key`,OAuth 令牌使用 `claude_code_oauth_token`。

80 80 

Details

59 59 

60配置您的云以信任 GitHub 向工作流颁发的 OIDC 令牌,以便每个工作流运行都获得短期的云凭证。每个选项卡中的项目总结了要创建的内容,每个选项卡都链接到云供应商自己的控制台级步骤指南。60配置您的云以信任 GitHub 向工作流颁发的 OIDC 令牌,以便每个工作流运行都获得短期的云凭证。每个选项卡中的项目总结了要创建的内容,每个选项卡都链接到云供应商自己的控制台级步骤指南。

61 61 

62**Amazon Bedrock**62> [tab] Amazon Bedrock

63 63>

64在您的 AWS 账户中创建信任配置,遵循 [AWS 创建 OIDC 身份提供商指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html):64> 在您的 AWS 账户中创建信任配置,遵循 [AWS 创建 OIDC 身份提供商指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html):

65 65>

66* 添加一个 GitHub OIDC 身份提供商,提供商 URL 为 `https://token.actions.githubusercontent.com`,受众为 `sts.amazonaws.com`66> * 添加一个 GitHub OIDC 身份提供商,提供商 URL 为 `https://token.actions.githubusercontent.com`,受众为 `sts.amazonaws.com`

67* 创建一个由该提供商作为 Web 身份信任的 IAM 角色,并附加来自 [IAM 配置](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#iam-configuration) 的作用域调用策略,该策略授予 `bedrock:InvokeModel`、`bedrock:InvokeModelWithResponseStream`、`bedrock:ListInferenceProfiles` 和 `bedrock:GetInferenceProfile`,以及两个 `aws-marketplace` 订阅操作67> * 创建一个由该提供商作为 Web 身份信任的 IAM 角色,并附加来自 [IAM 配置](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#iam-configuration) 的作用域调用策略,该策略授予 `bedrock:InvokeModel`、`bedrock:InvokeModelWithResponseStream`、`bedrock:ListInferenceProfiles` 和 `bedrock:GetInferenceProfile`,以及两个 `aws-marketplace` 订阅操作

68* 使用主题条件(例如 `repo:your-org/your-repo:*`)将角色的信任策略限制在您的存储库。有关声明格式,请参阅 [GitHub 的 OIDC 加固指南](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)68> * 使用主题条件(例如 `repo:your-org/your-repo:*`)将角色的信任策略限制在您的存储库。有关声明格式,请参阅 [GitHub 的 OIDC 加固指南](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)

69 69>

70记下角色的 ARN。您将在下一步中将其添加为密钥。70> 记下角色的 ARN。您将在下一步中将其添加为密钥。

71 

72**Google Cloud 的 Agent Platform**

73 

74在您的 Google Cloud 项目中创建联合资源,遵循 [Workload Identity Federation 文档](https://cloud.google.com/iam/docs/workload-identity-federation):

75 

76* 启用三个 API:IAM Credentials、Security Token Service (STS) 和 Agent Platform API,其服务名称为 `aiplatform.googleapis.com`

77* 创建一个 Workload Identity Pool,其中包含一个 GitHub OIDC 提供商,其颁发者为 `https://token.actions.githubusercontent.com`,并添加一个属性条件,将池限制在您的存储库

78* 创建一个仅具有 `Vertex AI User` 角色(即 `roles/aiplatform.user`)的专用服务账户,并允许池模拟它

79 

80记下提供商的完整资源名称和服务账户的电子邮件地址。您将在下一步中将它们添加为密钥。

81 

82**Microsoft Foundry**

83 

84创建一个 Microsoft Entra 应用程序,其中包含您的存储库的联合凭证,遵循 [Microsoft 的 GitHub Actions 身份验证指南](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):

85 71 

86* 注册一个 Microsoft Entra 应用程序,并添加一个联合身份凭证,该凭证信任 GitHub 向您的存储库颁发的令牌。用户分配的托管身份可以代替应用程序。两者都有您在下面记下的客户端 ID72> [tab] Google Cloud 的 Agent Platform

87* 在您的 Foundry 资源上为应用程序分配 `Azure AI User` 角色。有关更窄的自定义角色,请参阅 [Azure RBAC 配置](https://code.claude.com/docs/zh-CN/microsoft-foundry.md#azure-rbac-configuration)73>

74> 在您的 Google Cloud 项目中创建联合资源,遵循 [Workload Identity Federation 文档](https://cloud.google.com/iam/docs/workload-identity-federation):

75>

76> * 启用三个 API:IAM Credentials、Security Token Service (STS) 和 Agent Platform API,其服务名称为 `aiplatform.googleapis.com`

77> * 创建一个 Workload Identity Pool,其中包含一个 GitHub OIDC 提供商,其颁发者为 `https://token.actions.githubusercontent.com`,并添加一个属性条件,将池限制在您的存储库

78> * 创建一个仅具有 `Vertex AI User` 角色(即 `roles/aiplatform.user`)的专用服务账户,并允许池模拟它

79>

80> 记下提供商的完整资源名称和服务账户的电子邮件地址。您将在下一步中将它们添加为密钥。

88 81 

89记下应用程序的客户端 ID、您的租户 ID 和您的订阅 ID。您将在下一步中将它们添加为密钥。82> [tab] Microsoft Foundry

83>

84> 创建一个 Microsoft Entra 应用程序,其中包含您的存储库的联合凭证,遵循 [Microsoft 的 GitHub Actions 身份验证指南](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):

85>

86> * 注册一个 Microsoft Entra 应用程序,并添加一个联合身份凭证,该凭证信任 GitHub 向您的存储库颁发的令牌。用户分配的托管身份可以代替应用程序。两者都有您在下面记下的客户端 ID

87> * 在您的 Foundry 资源上为应用程序分配 `Azure AI User` 角色。有关更窄的自定义角色,请参阅 [Azure RBAC 配置](https://code.claude.com/docs/zh-CN/microsoft-foundry.md#azure-rbac-configuration)

88>

89> 记下应用程序的客户端 ID、您的租户 ID 和您的订阅 ID。您将在下一步中将它们添加为密钥。

90 90 

91**3. 添加存储库密钥**91**3. 添加存储库密钥**

92 92 


116>116>

117> 在公共存储库上,来自任何用户的包含触发短语的评论会启动此工作流。凭证步骤在 Claude Code GitHub Action 检查评论者的写入访问权限之前运行,因此该操作仅在工作流生成应用令牌并登录到您的云提供商后才拒绝未授权用户,这会留下审计日志条目并消耗 Actions 分钟。为了避免这些运行,请添加一个步骤,在凭证步骤之前验证评论者的写入访问权限。117> 在公共存储库上,来自任何用户的包含触发短语的评论会启动此工作流。凭证步骤在 Claude Code GitHub Action 检查评论者的写入访问权限之前运行,因此该操作仅在工作流生成应用令牌并登录到您的云提供商后才拒绝未授权用户,这会留下审计日志条目并消耗 Actions 分钟。为了避免这些运行,请添加一个步骤,在凭证步骤之前验证评论者的写入访问权限。

118 118 

119**Amazon Bedrock**119> [tab] Amazon Bedrock

120 120>

121将 `aws-region` 值替换为您自己的值。凭证步骤将其导出为 `AWS_REGION` 供作业的其余部分使用。121> 将 `aws-region` 值替换为您自己的值。凭证步骤将其导出为 `AWS_REGION` 供作业的其余部分使用。

122 122>

123```yaml theme={null}123> ```yaml theme={null}

124name: Claude PR Action124> name: Claude PR Action

125 125>

126permissions:126> permissions:

127 contents: write127> contents: write

128 pull-requests: write128> pull-requests: write

129 issues: write129> issues: write

130 id-token: write130> id-token: write

131 131>

132on:132> on:

133 issue_comment:133> issue_comment:

134 types: [created]134> types: [created]

135 pull_request_review_comment:135> pull_request_review_comment:

136 types: [created]136> types: [created]

137 issues:137> issues:

138 types: [opened]138> types: [opened]

139 139>

140jobs:140> jobs:

141 claude-pr:141> claude-pr:

142 if: |142> if: |

143 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||143> (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

144 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||144> (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

145 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))145> (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

146 runs-on: ubuntu-latest146> runs-on: ubuntu-latest

147 steps:147> steps:

148 - name: Checkout repository148> - name: Checkout repository

149 uses: actions/checkout@v6149> uses: actions/checkout@v6

150 150>

151 - name: Generate GitHub App token151> - name: Generate GitHub App token

152 id: app-token152> id: app-token

153 uses: actions/create-github-app-token@v2153> uses: actions/create-github-app-token@v2

154 with:154> with:

155 app-id: ${{ secrets.APP_ID }}155> app-id: ${{ secrets.APP_ID }}

156 private-key: ${{ secrets.APP_PRIVATE_KEY }}156> private-key: ${{ secrets.APP_PRIVATE_KEY }}

157 157>

158 - name: Configure AWS Credentials (OIDC)158> - name: Configure AWS Credentials (OIDC)

159 uses: aws-actions/configure-aws-credentials@v4159> uses: aws-actions/configure-aws-credentials@v4

160 with:160> with:

161 role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}161> role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}

162 aws-region: us-west-2162> aws-region: us-west-2

163 163>

164 - uses: anthropics/claude-code-action@v1164> - uses: anthropics/claude-code-action@v1

165 with:165> with:

166 github_token: ${{ steps.app-token.outputs.token }}166> github_token: ${{ steps.app-token.outputs.token }}

167 use_bedrock: "true"167> use_bedrock: "true"

168 claude_args: '--model us.anthropic.claude-sonnet-4-6'168> claude_args: '--model us.anthropic.claude-sonnet-4-6'

169```169> ```

170 170>

171> [!TIP]171> > [!TIP]

172>172> >

173> Bedrock 模型 ID 包含跨区域推理配置文件前缀,例如 `us.`。使用您授予模型访问权限的区域组的前缀。173> > Bedrock 模型 ID 包含跨区域推理配置文件前缀,例如 `us.`。使用您授予模型访问权限的区域组的前缀。

174 174 

175**Google Cloud 的 Agent Platform**175> [tab] Google Cloud 的 Agent Platform

176 176>

177将 `CLOUD_ML_REGION` 值替换为您自己的值。您无需硬编码项目 ID,因为工作流从 `auth` 步骤的输出中读取它。177> 将 `CLOUD_ML_REGION` 值替换为您自己的值。您无需硬编码项目 ID,因为工作流从 `auth` 步骤的输出中读取它。

178 178>

179```yaml theme={null}179> ```yaml theme={null}

180name: Claude PR Action180> name: Claude PR Action

181 181>

182permissions:182> permissions:

183 contents: write183> contents: write

184 pull-requests: write184> pull-requests: write

185 issues: write185> issues: write

186 id-token: write186> id-token: write

187 187>

188on:188> on:

189 issue_comment:189> issue_comment:

190 types: [created]190> types: [created]

191 pull_request_review_comment:191> pull_request_review_comment:

192 types: [created]192> types: [created]

193 issues:193> issues:

194 types: [opened]194> types: [opened]

195 195>

196jobs:196> jobs:

197 claude-pr:197> claude-pr:

198 if: |198> if: |

199 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||199> (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

200 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||200> (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

201 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))201> (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

202 runs-on: ubuntu-latest202> runs-on: ubuntu-latest

203 steps:203> steps:

204 - name: Checkout repository204> - name: Checkout repository

205 uses: actions/checkout@v6205> uses: actions/checkout@v6

206 206>

207 - name: Generate GitHub App token207> - name: Generate GitHub App token

208 id: app-token208> id: app-token

209 uses: actions/create-github-app-token@v2209> uses: actions/create-github-app-token@v2

210 with:210> with:

211 app-id: ${{ secrets.APP_ID }}211> app-id: ${{ secrets.APP_ID }}

212 private-key: ${{ secrets.APP_PRIVATE_KEY }}212> private-key: ${{ secrets.APP_PRIVATE_KEY }}

213 213>

214 - name: Authenticate to Google Cloud214> - name: Authenticate to Google Cloud

215 id: auth215> id: auth

216 uses: google-github-actions/auth@v2216> uses: google-github-actions/auth@v2

217 with:217> with:

218 workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}218> workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}

219 service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}219> service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

220 220>

221 - uses: anthropics/claude-code-action@v1221> - uses: anthropics/claude-code-action@v1

222 with:222> with:

223 github_token: ${{ steps.app-token.outputs.token }}223> github_token: ${{ steps.app-token.outputs.token }}

224 use_vertex: "true"224> use_vertex: "true"

225 claude_args: '--model claude-sonnet-5'225> claude_args: '--model claude-sonnet-5'

226 env:226> env:

227 ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}227> ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}

228 CLOUD_ML_REGION: us-east5228> CLOUD_ML_REGION: us-east5

229```229> ```

230 230 

231**Microsoft Foundry**231> [tab] Microsoft Foundry

232 232>

233将 `your-resource-name` 替换为您的 Foundry 资源名称。Claude Code 从它构建端点 URL。`azure/login` 步骤使用工作流的 OIDC 令牌登录,Claude Code 通过 Azure [默认凭证链](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) 获取凭证。233> 将 `your-resource-name` 替换为您的 Foundry 资源名称。Claude Code 从它构建端点 URL。`azure/login` 步骤使用工作流的 OIDC 令牌登录,Claude Code 通过 Azure [默认凭证链](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) 获取凭证。

234 234>

235```yaml theme={null}235> ```yaml theme={null}

236name: Claude PR Action236> name: Claude PR Action

237 237>

238permissions:238> permissions:

239 contents: write239> contents: write

240 pull-requests: write240> pull-requests: write

241 issues: write241> issues: write

242 id-token: write242> id-token: write

243 243>

244on:244> on:

245 issue_comment:245> issue_comment:

246 types: [created]246> types: [created]

247 pull_request_review_comment:247> pull_request_review_comment:

248 types: [created]248> types: [created]

249 issues:249> issues:

250 types: [opened]250> types: [opened]

251 251>

252jobs:252> jobs:

253 claude-pr:253> claude-pr:

254 if: |254> if: |

255 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||255> (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

256 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||256> (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

257 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))257> (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

258 runs-on: ubuntu-latest258> runs-on: ubuntu-latest

259 steps:259> steps:

260 - name: Checkout repository260> - name: Checkout repository

261 uses: actions/checkout@v6261> uses: actions/checkout@v6

262 262>

263 - name: Generate GitHub App token263> - name: Generate GitHub App token

264 id: app-token264> id: app-token

265 uses: actions/create-github-app-token@v2265> uses: actions/create-github-app-token@v2

266 with:266> with:

267 app-id: ${{ secrets.APP_ID }}267> app-id: ${{ secrets.APP_ID }}

268 private-key: ${{ secrets.APP_PRIVATE_KEY }}268> private-key: ${{ secrets.APP_PRIVATE_KEY }}

269 269>

270 - name: Authenticate to Azure270> - name: Authenticate to Azure

271 uses: azure/login@v2271> uses: azure/login@v2

272 with:272> with:

273 client-id: ${{ secrets.AZURE_CLIENT_ID }}273> client-id: ${{ secrets.AZURE_CLIENT_ID }}

274 tenant-id: ${{ secrets.AZURE_TENANT_ID }}274> tenant-id: ${{ secrets.AZURE_TENANT_ID }}

275 subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}275> subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

276 276>

277 - uses: anthropics/claude-code-action@v1277> - uses: anthropics/claude-code-action@v1

278 with:278> with:

279 github_token: ${{ steps.app-token.outputs.token }}279> github_token: ${{ steps.app-token.outputs.token }}

280 use_foundry: "true"280> use_foundry: "true"

281 claude_args: '--model claude-sonnet-5'281> claude_args: '--model claude-sonnet-5'

282 env:282> env:

283 ANTHROPIC_FOUNDRY_RESOURCE: your-resource-name283> ANTHROPIC_FOUNDRY_RESOURCE: your-resource-name

284```284> ```

285 285>

286> [!TIP]286> > [!TIP]

287>287> >

288> 使用与您的 Foundry 资源中的 Claude 部署相匹配的模型 ID。有关模型配置和版本固定,请参阅 [Microsoft Foundry 上的 Claude Code](https://code.claude.com/docs/zh-CN/microsoft-foundry.md)。288> > 使用与您的 Foundry 资源中的 Claude 部署相匹配的模型 ID。有关模型配置和版本固定,请参阅 [Microsoft Foundry 上的 Claude Code](https://code.claude.com/docs/zh-CN/microsoft-foundry.md)。

289 289 

290对于任何提供商,您可以通过将 `--max-turns` 添加到 `claude_args` 来限制运行长度和成本。请参阅 [管理成本](https://code.claude.com/docs/zh-CN/github-actions.md#manage-costs)。290对于任何提供商,您可以通过将 `--max-turns` 添加到 `claude_args` 来限制运行长度和成本。请参阅 [管理成本](https://code.claude.com/docs/zh-CN/github-actions.md#manage-costs)。

291 291 

gitlab-ci-cd.md +52 −52

Details

158 158 

159对于企业环境,您可以在自己的云基础设施上完全运行 Claude Code,并获得相同的开发者体验。159对于企业环境,您可以在自己的云基础设施上完全运行 Claude Code,并获得相同的开发者体验。

160 160 

161**Amazon Bedrock**161> [tab] Amazon Bedrock

162 162>

163### 前置条件163> ### 前置条件

164 164>

165在使用 Amazon Bedrock 设置 Claude Code 之前,您需要:165> 在使用 Amazon Bedrock 设置 Claude Code 之前,您需要:

166 166>

1671. 一个 AWS 账户,具有对所需 Claude 模型的 Amazon Bedrock 访问权限167> 1. 一个 AWS 账户,具有对所需 Claude 模型的 Amazon Bedrock 访问权限

1682. 在 AWS IAM 中配置为 OIDC 身份提供商的 GitLab168> 2. 在 AWS IAM 中配置为 OIDC 身份提供商的 GitLab

1693. 一个具有 Amazon Bedrock 权限的 IAM 角色和限制为您的 GitLab 项目/引用的信任策略169> 3. 一个具有 Amazon Bedrock 权限的 IAM 角色和限制为您的 GitLab 项目/引用的信任策略

1704. 用于角色假设的 GitLab CI/CD 变量:170> 4. 用于角色假设的 GitLab CI/CD 变量:

171 * `AWS_ROLE_TO_ASSUME`(角色 ARN)171> * `AWS_ROLE_TO_ASSUME`(角色 ARN)

172 * `AWS_REGION`(Amazon Bedrock 区域)172> * `AWS_REGION`(Amazon Bedrock 区域)

173 173>

174### 设置说明174> ### 设置说明

175 175>

176配置 AWS 以允许 GitLab CI 作业通过 OIDC 假设 IAM 角色(无静态密钥)。176> 配置 AWS 以允许 GitLab CI 作业通过 OIDC 假设 IAM 角色(无静态密钥)。

177 177>

178**必需的设置:**178> **必需的设置:**

179 179>

1801. 启用 Amazon Bedrock 并请求访问您的目标 Claude 模型180> 1. 启用 Amazon Bedrock 并请求访问您的目标 Claude 模型

1812. 为 GitLab 创建 IAM OIDC 提供商(如果尚未存在)181> 2. 为 GitLab 创建 IAM OIDC 提供商(如果尚未存在)

1823. 创建由 GitLab OIDC 提供商信任的 IAM 角色,限制为您的项目和受保护的引用182> 3. 创建由 GitLab OIDC 提供商信任的 IAM 角色,限制为您的项目和受保护的引用

1834. 为 Amazon Bedrock 调用 API 附加最小权限183> 4. 为 Amazon Bedrock 调用 API 附加最小权限

184 184>

185使用 [Amazon Bedrock 作业示例](#configuration-examples) 在运行时将作业的 OIDC 令牌交换为临时 AWS 凭证。185> 使用 [Amazon Bedrock 作业示例](#configuration-examples) 在运行时将作业的 OIDC 令牌交换为临时 AWS 凭证。

186 

187**Google Cloud's Agent Platform**

188 

189### 前置条件

190 

191在使用 Google Cloud's Agent Platform 设置 Claude Code 之前,您需要:

192 

1931. 一个 Google Cloud 项目,具有:

194 * 启用的 Google Cloud's Agent Platform API

195 * 配置为信任 GitLab OIDC 的工作负载身份联合

1962. 一个仅具有所需 Google Cloud's Agent Platform 角色的专用服务账户

1973. GitLab CI/CD 变量:

198 * `GCP_WORKLOAD_IDENTITY_PROVIDER`(提供商资源名称,不包括 `//iam.googleapis.com/` 前缀,例如 `projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider`)

199 * `GCP_SERVICE_ACCOUNT`(服务账户电子邮件)

200 * `GCP_PROJECT_ID`(Google Cloud 项目 ID)

201 

202### 设置说明

203 

204配置 Google Cloud 以允许 GitLab CI 作业通过工作负载身份联合模拟服务账户。

205 

206**必需的设置:**

207 

2081. 启用 IAM Credentials API、STS API 和 Google Cloud's Agent Platform API

2092. 为 GitLab OIDC 创建工作负载身份池和提供商

2103. 创建具有 Google Cloud's Agent Platform 角色的专用服务账户

2114. 授予 WIF 主体权限以模拟服务账户

212 186 

213使用 [Agent Platform 作业示例](#configuration-examples) 进行身份验证,无需存储密钥。187> [tab] Google Cloud's Agent Platform

188>

189> ### 前置条件

190>

191> 在使用 Google Cloud's Agent Platform 设置 Claude Code 之前,您需要:

192>

193> 1. 一个 Google Cloud 项目,具有:

194> * 启用的 Google Cloud's Agent Platform API

195> * 配置为信任 GitLab OIDC 的工作负载身份联合

196> 2. 一个仅具有所需 Google Cloud's Agent Platform 角色的专用服务账户

197> 3. GitLab CI/CD 变量:

198> * `GCP_WORKLOAD_IDENTITY_PROVIDER`(提供商资源名称,不包括 `//iam.googleapis.com/` 前缀,例如 `projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider`)

199> * `GCP_SERVICE_ACCOUNT`(服务账户电子邮件)

200> * `GCP_PROJECT_ID`(Google Cloud 项目 ID)

201>

202> ### 设置说明

203>

204> 配置 Google Cloud 以允许 GitLab CI 作业通过工作负载身份联合模拟服务账户。

205>

206> **必需的设置:**

207>

208> 1. 启用 IAM Credentials API、STS API 和 Google Cloud's Agent Platform API

209> 2. 为 GitLab OIDC 创建工作负载身份池和提供商

210> 3. 创建具有 Google Cloud's Agent Platform 角色的专用服务账户

211> 4. 授予 WIF 主体权限以模拟服务账户

212>

213> 使用 [Agent Platform 作业示例](#configuration-examples) 进行身份验证,无需存储密钥。

214 214 

215## 配置示例215## 配置示例

216 216 

glossary.md +5 −2

Details

54 54 

55### Auto mode55### Auto mode

56 56 

57一种[权限模式](#permission-mode),其中单独的分类器模型审查操作而不是您,因此 Claude Code 可以在不询问您的情况下运行大多数操作。Claude Code 仍然会在您的显式 ask 规则匹配的操作之前询问您。在 Claude Code v2.1.283 或更高版本中,auto mode 是交互式终端和 VS Code 会话的[内置起始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#which-mode-a-session-starts-in),在早期版本中仅在 Pro、Max 和 Team 计划上可用。分类器阻止范围升级、不受信任的基础设施和[提示注入](#prompt-injection)。工具结果从它看到的内容中被剥离,因此文件或网页中的恶意内容无法直接操纵它。57一种[权限模式](#permission-mode),其中单独的分类器模型审查操作而不是您,因此 Claude Code 可以在不询问您的情况下运行大多数操作。Claude Code 仍然会在您的显式 ask 规则匹配的操作之前询问您。分类器阻止范围升级、不受信任的基础设施和[提示词注入](#prompt-injection)。工具结果从它看到的内容中被剥离,因此文件或网页中的恶意内容无法直接操纵它。

58 

59* **Claude Code v2.1.283 或更高版本**:自动模式是交互式终端和 VS Code 会话的[内置起始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#which-mode-a-session-starts-in)

60* **早期版本**:自动模式仅在 Pro、Max、Ultra 和 Team 计划上是内置起始权限模式

58 61 

59了解更多:[使用 auto mode 消除提示](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)62了解更多:[使用 auto mode 消除提示](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode)

60 63 


140 143 

141### Dispatch144### Dispatch

142 145 

143一个电话启动的任务路由器,当您从 Claude 移动应用发送编码任务时,在 Desktop 应用中生成 Claude Code 会话。您的提示自动路由到正确的工具。在 Pro 和 Max 计划上可用。146一个电话启动的任务路由器,当您从 Claude 移动应用发送编码任务时,在 Desktop 应用中生成 Claude Code 会话。您的提示自动路由到正确的工具。在 Pro、Max 和 Ultra 计划上可用。

144 147 

145了解更多:[来自 Dispatch 的会话](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)148了解更多:[来自 Dispatch 的会话](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch)

146 149 

hooks.md +411 −411

Details

68 68 

69要了解事件、匹配器和处理程序如何组合在一起,请考虑这个 `PreToolUse` hook,它阻止破坏性 shell 命令。69要了解事件、匹配器和处理程序如何组合在一起,请考虑这个 `PreToolUse` hook,它阻止破坏性 shell 命令。

70 70 

71**macOS/Linux**71> [tab] macOS/Linux

72 72>

73`matcher` 缩小到 Bash 工具调用,`if` 条件进一步缩小到匹配 `rm *` 的 Bash 子命令,因此 `block-rm.sh` 仅在两个过滤器都匹配时生成:73> `matcher` 缩小到 Bash 工具调用,`if` 条件进一步缩小到匹配 `rm *` 的 Bash 子命令,因此 `block-rm.sh` 仅在两个过滤器都匹配时生成:

74 74>

75```json theme={null}75> ```json theme={null}

76{76> {

77 "hooks": {77> "hooks": {

78 "PreToolUse": [78> "PreToolUse": [

79 {79> {

80 "matcher": "Bash",80> "matcher": "Bash",

81 "hooks": [81> "hooks": [

82 {82> {

83 "type": "command",83> "type": "command",

84 "if": "Bash(rm *)",84> "if": "Bash(rm *)",

85 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",85> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",

86 "args": []86> "args": []

87 }87> }

88 ]88> ]

89 }89> }

90 ]90> ]

91 }91> }

92}92> }

93```93> ```

94 94>

95该脚本从 stdin 读取 JSON 输入,提取命令,如果包含 `rm -rf`,则返回 `permissionDecision` 为 `"deny"`。将其保存到项目中的 `.claude/hooks/block-rm.sh`,并使用 `chmod +x .claude/hooks/block-rm.sh` 使其可执行,以便 Claude Code 可以运行它:95> 该脚本从 stdin 读取 JSON 输入,提取命令,如果包含 `rm -rf`,则返回 `permissionDecision` 为 `"deny"`。将其保存到项目中的 `.claude/hooks/block-rm.sh`,并使用 `chmod +x .claude/hooks/block-rm.sh` 使其可执行,以便 Claude Code 可以运行它:

96 96>

97```bash theme={null}97> ```bash theme={null}

98#!/bin/bash98> #!/bin/bash

99# .claude/hooks/block-rm.sh99> # .claude/hooks/block-rm.sh

100COMMAND=$(jq -r '.tool_input.command')100> COMMAND=$(jq -r '.tool_input.command')

101 101>

102if echo "$COMMAND" | grep -q 'rm -rf'; then102> if echo "$COMMAND" | grep -q 'rm -rf'; then

103 jq -n '{103> jq -n '{

104 hookSpecificOutput: {104> hookSpecificOutput: {

105 hookEventName: "PreToolUse",105> hookEventName: "PreToolUse",

106 permissionDecision: "deny",106> permissionDecision: "deny",

107 permissionDecisionReason: "Destructive command blocked by hook"107> permissionDecisionReason: "Destructive command blocked by hook"

108 }108> }

109 }'109> }'

110else110> else

111 exit 0 # no decision; normal permission flow applies111> exit 0 # no decision; normal permission flow applies

112fi112> fi

113```113> ```

114 114>

115此脚本与本页面上解析 JSON 输入的其他 Bash 示例一样,使用 `jq`,因此在尝试它们之前,请安装 `jq` 并确保它在您的 `PATH` 上。115> 此脚本与本页面上解析 JSON 输入的其他 Bash 示例一样,使用 `jq`,因此在尝试它们之前,请安装 `jq` 并确保它在您的 `PATH` 上。

116 

117**Windows (PowerShell)**

118 

119匹配器 `Bash|PowerShell` 涵盖 [PowerShell 工具](#powershell)以及 Bash。单个 `if` 规则仅匹配一个工具的调用,因此每个工具都有自己的处理程序:第一个缩小到匹配 `rm *` 的 Bash 子命令,第二个缩小到匹配 `Remove-Item *` 的 PowerShell 命令。两者都通过 `powershell.exe` 运行相同的脚本:

120 

121```json theme={null}

122{

123 "hooks": {

124 "PreToolUse": [

125 {

126 "matcher": "Bash|PowerShell",

127 "hooks": [

128 {

129 "type": "command",

130 "if": "Bash(rm *)",

131 "command": "powershell.exe",

132 "args": [

133 "-NoProfile",

134 "-ExecutionPolicy",

135 "Bypass",

136 "-File",

137 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

138 ]

139 },

140 {

141 "type": "command",

142 "if": "PowerShell(Remove-Item *)",

143 "command": "powershell.exe",

144 "args": [

145 "-NoProfile",

146 "-ExecutionPolicy",

147 "Bypass",

148 "-File",

149 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

150 ]

151 }

152 ]

153 }

154 ]

155 }

156}

157```

158 

159`-NoProfile` 标志跳过加载您的 PowerShell 配置文件,以便 hook 快速启动,`-ExecutionPolicy Bypass` 让 PowerShell 运行本地脚本文件。

160 

161该脚本从 stdin 读取 JSON 输入,提取命令,如果包含 `rm -rf` 或 `Remove-Item` 后跟 `-Recurse`,则返回 `permissionDecision` 为 `"deny"`。将其保存到项目中的 `.claude/hooks/block-rm.ps1`:

162 

163```powershell theme={null}

164# .claude/hooks/block-rm.ps1

165$callInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

166$command = $callInput.tool_input.command

167 116 

168if ($command -match 'rm -rf|Remove-Item.*-Recurse') {117> [tab] Windows (PowerShell)

169 @{118>

170 hookSpecificOutput = @{119> 匹配器 `Bash|PowerShell` 涵盖 [PowerShell 工具](#powershell)以及 Bash。单个 `if` 规则仅匹配一个工具的调用,因此每个工具都有自己的处理程序:第一个缩小到匹配 `rm *` 的 Bash 子命令,第二个缩小到匹配 `Remove-Item *` 的 PowerShell 命令。两者都通过 `powershell.exe` 运行相同的脚本:

171 hookEventName = "PreToolUse"120>

172 permissionDecision = "deny"121> ```json theme={null}

173 permissionDecisionReason = "Destructive command blocked by hook"122> {

174 }123> "hooks": {

175 } | ConvertTo-Json124> "PreToolUse": [

176} else {125> {

177 exit 0 # no decision; normal permission flow applies126> "matcher": "Bash|PowerShell",

178}127> "hooks": [

179```128> {

129> "type": "command",

130> "if": "Bash(rm *)",

131> "command": "powershell.exe",

132> "args": [

133> "-NoProfile",

134> "-ExecutionPolicy",

135> "Bypass",

136> "-File",

137> "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

138> ]

139> },

140> {

141> "type": "command",

142> "if": "PowerShell(Remove-Item *)",

143> "command": "powershell.exe",

144> "args": [

145> "-NoProfile",

146> "-ExecutionPolicy",

147> "Bypass",

148> "-File",

149> "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

150> ]

151> }

152> ]

153> }

154> ]

155> }

156> }

157> ```

158>

159> `-NoProfile` 标志跳过加载您的 PowerShell 配置文件,以便 hook 快速启动,`-ExecutionPolicy Bypass` 让 PowerShell 运行本地脚本文件。

160>

161> 该脚本从 stdin 读取 JSON 输入,提取命令,如果包含 `rm -rf` 或 `Remove-Item` 后跟 `-Recurse`,则返回 `permissionDecision` 为 `"deny"`。将其保存到项目中的 `.claude/hooks/block-rm.ps1`:

162>

163> ```powershell theme={null}

164> # .claude/hooks/block-rm.ps1

165> $callInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

166> $command = $callInput.tool_input.command

167>

168> if ($command -match 'rm -rf|Remove-Item.*-Recurse') {

169> @{

170> hookSpecificOutput = @{

171> hookEventName = "PreToolUse"

172> permissionDecision = "deny"

173> permissionDecisionReason = "Destructive command blocked by hook"

174> }

175> } | ConvertTo-Json

176> } else {

177> exit 0 # no decision; normal permission flow applies

178> }

179> ```

180 180 

181现在假设 Claude Code 决定针对 macOS/Linux 配置运行 `Bash "rm -rf /tmp/build"`。以下是发生的情况:181现在假设 Claude Code 决定针对 macOS/Linux 配置运行 `Bash "rm -rf /tmp/build"`。以下是发生的情况:

182 182 


601 601 

602对于任何引用路径占位符的 hook,优先使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,用双引号包装每个占位符。602对于任何引用路径占位符的 hook,优先使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,用双引号包装每个占位符。

603 603 

604**项目脚本**604> [tab] 项目脚本

605 605>

606此示例使用 `${CLAUDE_PROJECT_DIR}` 在任何 `Write` 或 `Edit` 工具调用后从项目的 `.claude/hooks/` 目录运行样式检查器:606> 此示例使用 `${CLAUDE_PROJECT_DIR}` 在任何 `Write` 或 `Edit` 工具调用后从项目的 `.claude/hooks/` 目录运行样式检查器:

607 607>

608```json theme={null}608> ```json theme={null}

609{609> {

610 "hooks": {610> "hooks": {

611 "PostToolUse": [611> "PostToolUse": [

612 {612> {

613 "matcher": "Write|Edit",613> "matcher": "Write|Edit",

614 "hooks": [614> "hooks": [

615 {615> {

616 "type": "command",616> "type": "command",

617 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh",617> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh",

618 "args": []618> "args": []

619 }619> }

620 ]620> ]

621 }621> }

622 ]622> ]

623 }623> }

624}624> }

625```625> ```

626 626 

627**插件脚本**627> [tab] 插件脚本

628 628>

629在 `hooks/hooks.json` 中定义插件 hooks,带有可选的顶级 `description` 字段。启用插件时,其 hooks 与您的用户和项目 hooks 合并。629> 在 `hooks/hooks.json` 中定义插件 hooks,带有可选的顶级 `description` 字段。启用插件时,其 hooks 与您的用户和项目 hooks 合并。

630 630>

631此示例运行与插件捆绑的格式化脚本:631> 此示例运行与插件捆绑的格式化脚本:

632 632>

633```json theme={null}633> ```json theme={null}

634{634> {

635 "description": "Automatic code formatting",635> "description": "Automatic code formatting",

636 "hooks": {636> "hooks": {

637 "PostToolUse": [637> "PostToolUse": [

638 {638> {

639 "matcher": "Write|Edit",639> "matcher": "Write|Edit",

640 "hooks": [640> "hooks": [

641 {641> {

642 "type": "command",642> "type": "command",

643 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",643> "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",

644 "args": [],644> "args": [],

645 "timeout": 30645> "timeout": 30

646 }646> }

647 ]647> ]

648 }648> }

649 ]649> ]

650 }650> }

651}651> }

652```652> ```

653 653>

654有关创建插件 hooks 的详细信息,请参阅 [插件组件参考](https://code.claude.com/docs/zh-CN/plugins/components.md#hooks)。654> 有关创建插件 hooks 的详细信息,请参阅 [插件组件参考](https://code.claude.com/docs/zh-CN/plugins/components.md#hooks)。

655 655 

656### Skills 和代理中的 Hooks656### Skills 和代理中的 Hooks

657 657 


1180 1180 

1181以下是每种模式的实际示例:1181以下是每种模式的实际示例:

1182 1182 

1183**顶级 decision**1183> [tab] 顶级 decision

1184 1184>

1185`decision` 的唯一值是 `"block"`。要允许操作继续,请从您的 JSON 中省略 `decision`,或退出 0 且不输出任何 JSON:1185> `decision` 的唯一值是 `"block"`。要允许操作继续,请从您的 JSON 中省略 `decision`,或退出 0 且不输出任何 JSON:

1186 1186>

1187```json theme={null}1187> ```json theme={null}

1188{1188> {

1189 "decision": "block",1189> "decision": "block",

1190 "reason": "Test suite must pass before proceeding"1190> "reason": "Test suite must pass before proceeding"

1191}1191> }

1192```1192> ```

1193 1193 

1194**PreToolUse**1194> [tab] PreToolUse

1195 1195>

1196使用 `hookSpecificOutput` 进行更丰富的控制:允许、拒绝或升级给用户。您也可以在工具运行前修改工具输入,或为 Claude 注入额外上下文。请参阅 [PreToolUse 决策控制](#pretooluse-decision-control)了解完整的选项集。1196> 使用 `hookSpecificOutput` 进行更丰富的控制:允许、拒绝或升级给用户。您也可以在工具运行前修改工具输入,或为 Claude 注入额外上下文。请参阅 [PreToolUse 决策控制](#pretooluse-decision-control)了解完整的选项集。

1197 1197>

1198```json theme={null}1198> ```json theme={null}

1199{1199> {

1200 "hookSpecificOutput": {1200> "hookSpecificOutput": {

1201 "hookEventName": "PreToolUse",1201> "hookEventName": "PreToolUse",

1202 "permissionDecision": "deny",1202> "permissionDecision": "deny",

1203 "permissionDecisionReason": "Database writes are not allowed"1203> "permissionDecisionReason": "Database writes are not allowed"

1204 }1204> }

1205}1205> }

1206```1206> ```

1207 1207 

1208**PermissionRequest**1208> [tab] PermissionRequest

1209 1209>

1210使用 `hookSpecificOutput` 代表用户允许或拒绝权限请求。允许时,您也可以修改工具的输入或应用权限规则,使用户不会再次被询问。请参阅 [PermissionRequest 决策控制](#permissionrequest-decision-control)了解完整的选项集。1210> 使用 `hookSpecificOutput` 代表用户允许或拒绝权限请求。允许时,您也可以修改工具的输入或应用权限规则,使用户不会再次被询问。请参阅 [PermissionRequest 决策控制](#permissionrequest-decision-control)了解完整的选项集。

1211 1211>

1212```json theme={null}1212> ```json theme={null}

1213{1213> {

1214 "hookSpecificOutput": {1214> "hookSpecificOutput": {

1215 "hookEventName": "PermissionRequest",1215> "hookEventName": "PermissionRequest",

1216 "decision": {1216> "decision": {

1217 "behavior": "allow",1217> "behavior": "allow",

1218 "updatedInput": {1218> "updatedInput": {

1219 "command": "npm run lint"1219> "command": "npm run lint"

1220 }1220> }

1221 }1221> }

1222 }1222> }

1223}1223> }

1224```1224> ```

1225 1225 

1226有关扩展示例,包括 Bash 命令验证、提示词过滤和自动批准脚本,请参阅指南中的[您可以自动化什么](https://code.claude.com/docs/zh-CN/hooks-guide.md#what-you-can-automate)和 [Bash 命令验证器参考实现](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py)。1226有关扩展示例,包括 Bash 命令验证、提示词过滤和自动批准脚本,请参阅指南中的[您可以自动化什么](https://code.claude.com/docs/zh-CN/hooks-guide.md#what-you-can-automate)和 [Bash 命令验证器参考实现](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py)。

1227 1227 


1656 1656 

1657此示例从 Claude 的回复中去除 markdown 格式,以进行纯文本显示。该脚本从 stdin 读取每一批,从 `delta` 中移除粗体标记和行内代码反引号,并将结果作为 `displayContent` 返回。1657此示例从 Claude 的回复中去除 markdown 格式,以进行纯文本显示。该脚本从 stdin 读取每一批,从 `delta` 中移除粗体标记和行内代码反引号,并将结果作为 `displayContent` 返回。

1658 1658 

1659**macOS/Linux**1659> [tab] macOS/Linux

1660 1660>

1661在您的设置文件中为该事件注册一个命令 hook:1661> 在您的设置文件中为该事件注册一个命令 hook:

1662 1662>

1663```json theme={null}1663> ```json theme={null}

1664{1664> {

1665 "hooks": {1665> "hooks": {

1666 "MessageDisplay": [1666> "MessageDisplay": [

1667 {1667> {

1668 "hooks": [1668> "hooks": [

1669 {1669> {

1670 "type": "command",1670> "type": "command",

1671 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/plain-display.sh",1671> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/plain-display.sh",

1672 "args": []1672> "args": []

1673 }1673> }

1674 ]1674> ]

1675 }1675> }

1676 ]1676> ]

1677 }1677> }

1678}1678> }

1679```1679> ```

1680 1680>

1681将此脚本保存到项目中的 `.claude/hooks/plain-display.sh`,并使用 `chmod +x` 使其可执行:1681> 将此脚本保存到项目中的 `.claude/hooks/plain-display.sh`,并使用 `chmod +x` 使其可执行:

1682 1682>

1683```bash theme={null}1683> ```bash theme={null}

1684#!/bin/bash1684> #!/bin/bash

1685jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'1685> jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'

1686```1686> ```

1687 

1688**Windows (PowerShell)**

1689 

1690注册一个通过 PowerShell 运行脚本的命令 hook:

1691 

1692```json theme={null}

1693{

1694 "hooks": {

1695 "MessageDisplay": [

1696 {

1697 "hooks": [

1698 {

1699 "type": "command",

1700 "command": "powershell.exe",

1701 "args": [

1702 "-NoProfile",

1703 "-ExecutionPolicy",

1704 "Bypass",

1705 "-File",

1706 "${CLAUDE_PROJECT_DIR}/.claude/hooks/plain-display.ps1"

1707 ]

1708 }

1709 ]

1710 }

1711 ]

1712 }

1713}

1714```

1715 

1716`-NoProfile` 标志会跳过加载您的 PowerShell 配置文件,使 hook 快速启动;`-ExecutionPolicy Bypass` 则允许 PowerShell 运行本地脚本文件。

1717 

1718将此脚本保存到项目中的 `.claude/hooks/plain-display.ps1`:

1719 1687 

1720```powershell theme={null}1688> [tab] Windows (PowerShell)

1721$batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1689>

1722$text = $batch.delta -replace '\*\*', '' -replace '`', ''1690> 注册一个通过 PowerShell 运行脚本的命令 hook:

1723@{1691>

1724 hookSpecificOutput = @{1692> ```json theme={null}

1725 hookEventName = "MessageDisplay"1693> {

1726 displayContent = $text1694> "hooks": {

1727 }1695> "MessageDisplay": [

1728} | ConvertTo-Json1696> {

1729```1697> "hooks": [

1698> {

1699> "type": "command",

1700> "command": "powershell.exe",

1701> "args": [

1702> "-NoProfile",

1703> "-ExecutionPolicy",

1704> "Bypass",

1705> "-File",

1706> "${CLAUDE_PROJECT_DIR}/.claude/hooks/plain-display.ps1"

1707> ]

1708> }

1709> ]

1710> }

1711> ]

1712> }

1713> }

1714> ```

1715>

1716> `-NoProfile` 标志会跳过加载您的 PowerShell 配置文件,使 hook 快速启动;`-ExecutionPolicy Bypass` 则允许 PowerShell 运行本地脚本文件。

1717>

1718> 将此脚本保存到项目中的 `.claude/hooks/plain-display.ps1`:

1719>

1720> ```powershell theme={null}

1721> $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json

1722> $text = $batch.delta -replace '\*\*', '' -replace '`', ''

1723> @{

1724> hookSpecificOutput = @{

1725> hookEventName = "MessageDisplay"

1726> displayContent = $text

1727> }

1728> } | ConvertTo-Json

1729> ```

1730 1730 

1731不含 markdown 的批次会原样通过。如果脚本失败(例如因为缺少 `jq`),Claude Code 会显示原始文本,并且只在[调试输出](#debug-hooks)中记录该失败,而不会在会话中显示。1731不含 markdown 的批次会原样通过。如果脚本失败(例如因为缺少 `jq`),Claude Code 会显示原始文本,并且只在[调试输出](#debug-hooks)中记录该失败,而不会在会话中显示。

1732 1732 


3356 3356 

3357将匹配器写为精确名称、以 `|` 分隔的列表(例如 `claude-opus-4-6|claude-opus-5`),或正则表达式(例如 `.*opus.*`)。此示例使用精确名称匹配器,同时检查 hook 输入中的 `to_model`,因此它会通过以代码 2 退出来拒绝切换到 Opus 4.6,并允许切换到任何其他目标:3357将匹配器写为精确名称、以 `|` 分隔的列表(例如 `claude-opus-4-6|claude-opus-5`),或正则表达式(例如 `.*opus.*`)。此示例使用精确名称匹配器,同时检查 hook 输入中的 `to_model`,因此它会通过以代码 2 退出来拒绝切换到 Opus 4.6,并允许切换到任何其他目标:

3358 3358 

3359**macOS/Linux**3359> [tab] macOS/Linux

3360 3360>

3361该命令使用 `jq` 检查 `to_model`:3361> 该命令使用 `jq` 检查 `to_model`:

3362 3362>

3363```json theme={null}3363> ```json theme={null}

3364{3364> {

3365 "hooks": {3365> "hooks": {

3366 "PreModelSwitch": [3366> "PreModelSwitch": [

3367 {3367> {

3368 "matcher": "claude-opus-4-6",3368> "matcher": "claude-opus-4-6",

3369 "hooks": [3369> "hooks": [

3370 {3370> {

3371 "type": "command",3371> "type": "command",

3372 "command": "jq -e '.to_model | test(\"opus-4-6\")' > /dev/null && { echo 'Opus 4.6 is retired for this project. Use a newer model.' >&2; exit 2; }; exit 0"3372> "command": "jq -e '.to_model | test(\"opus-4-6\")' > /dev/null && { echo 'Opus 4.6 is retired for this project. Use a newer model.' >&2; exit 2; }; exit 0"

3373 }3373> }

3374 ]3374> ]

3375 }3375> }

3376 ]3376> ]

3377 }3377> }

3378}3378> }

3379```3379> ```

3380 3380 

3381**Windows (PowerShell)**3381> [tab] Windows (PowerShell)

3382 3382>

3383注册一个通过 PowerShell 运行脚本的命令 hook:3383> 注册一个通过 PowerShell 运行脚本的命令 hook:

3384 3384>

3385```json theme={null}3385> ```json theme={null}

3386{3386> {

3387 "hooks": {3387> "hooks": {

3388 "PreModelSwitch": [3388> "PreModelSwitch": [

3389 {3389> {

3390 "matcher": "claude-opus-4-6",3390> "matcher": "claude-opus-4-6",

3391 "hooks": [3391> "hooks": [

3392 {3392> {

3393 "type": "command",3393> "type": "command",

3394 "command": "powershell.exe",3394> "command": "powershell.exe",

3395 "args": [3395> "args": [

3396 "-NoProfile",3396> "-NoProfile",

3397 "-ExecutionPolicy",3397> "-ExecutionPolicy",

3398 "Bypass",3398> "Bypass",

3399 "-File",3399> "-File",

3400 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-opus-46.ps1"3400> "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-opus-46.ps1"

3401 ]3401> ]

3402 }3402> }

3403 ]3403> ]

3404 }3404> }

3405 ]3405> ]

3406 }3406> }

3407}3407> }

3408```3408> ```

3409 3409>

3410将此脚本保存到项目中的 `.claude/hooks/block-opus-46.ps1`:3410> 将此脚本保存到项目中的 `.claude/hooks/block-opus-46.ps1`:

3411 3411>

3412```powershell theme={null}3412> ```powershell theme={null}

3413$hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3413> $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

3414if ($hookInput.to_model -match 'opus-4-6') {3414> if ($hookInput.to_model -match 'opus-4-6') {

3415 [Console]::Error.WriteLine('Opus 4.6 is retired for this project. Use a newer model.')3415> [Console]::Error.WriteLine('Opus 4.6 is retired for this project. Use a newer model.')

3416 exit 23416> exit 2

3417}3417> }

3418exit 03418> exit 0

3419```3419> ```

3420 3420 

3421要确认该 hook 是否正常工作,请在运行其他模型的会话中运行 `/model claude-opus-4-6`。Claude Code 会保留当前模型,并报告 PreModelSwitch hook 阻止了切换,以您的消息作为原因。3421要确认该 hook 是否正常工作,请在运行其他模型的会话中运行 `/model claude-opus-4-6`。Claude Code 会保留当前模型,并报告 PreModelSwitch hook 阻止了切换,以您的消息作为原因。

3422 3422 


3703 3703 

3704此示例代替用户回答一个反复出现的问题。名为 `issue-tracker` 的 MCP 服务器在表单中询问项目键,hook 会填入 `DOCS`。当 `project_key` 是表单的唯一字段时,脚本会接受。对于其他任何请求,它不打印任何内容,因此会出现对话框。3704此示例代替用户回答一个反复出现的问题。名为 `issue-tracker` 的 MCP 服务器在表单中询问项目键,hook 会填入 `DOCS`。当 `project_key` 是表单的唯一字段时,脚本会接受。对于其他任何请求,它不打印任何内容,因此会出现对话框。

3705 3705 

3706**macOS/Linux**3706> [tab] macOS/Linux

3707 3707>

3708在设置文件中为该事件注册一个命令 hook,以服务器名称作为匹配器:3708> 在设置文件中为该事件注册一个命令 hook,以服务器名称作为匹配器:

3709 3709>

3710```json theme={null}3710> ```json theme={null}

3711{3711> {

3712 "hooks": {3712> "hooks": {

3713 "Elicitation": [3713> "Elicitation": [

3714 {3714> {

3715 "matcher": "issue-tracker",3715> "matcher": "issue-tracker",

3716 "hooks": [3716> "hooks": [

3717 {3717> {

3718 "type": "command",3718> "type": "command",

3719 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.sh",3719> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.sh",

3720 "args": []3720> "args": []

3721 }3721> }

3722 ]3722> ]

3723 }3723> }

3724 ]3724> ]

3725 }3725> }

3726}3726> }

3727```3727> ```

3728 3728>

3729将此脚本保存到项目中的 `.claude/hooks/answer-project-key.sh`,并使用 `chmod +x` 使其可执行:3729> 将此脚本保存到项目中的 `.claude/hooks/answer-project-key.sh`,并使用 `chmod +x` 使其可执行:

3730 3730>

3731```bash theme={null}3731> ```bash theme={null}

3732#!/bin/bash3732> #!/bin/bash

3733input=$(cat)3733> input=$(cat)

3734fields=$(jq -c '.requested_schema.properties // {} | keys' <<<"$input")3734> fields=$(jq -c '.requested_schema.properties // {} | keys' <<<"$input")

3735 3735>

3736if [ "$fields" = '["project_key"]' ]; then3736> if [ "$fields" = '["project_key"]' ]; then

3737 jq -n '{hookSpecificOutput: {hookEventName: "Elicitation", action: "accept", content: {project_key: "DOCS"}}}'3737> jq -n '{hookSpecificOutput: {hookEventName: "Elicitation", action: "accept", content: {project_key: "DOCS"}}}'

3738fi3738> fi

3739```3739> ```

3740 

3741**Windows (PowerShell)**

3742 

3743注册一个通过 PowerShell 运行脚本的命令 hook,以服务器名称作为匹配器:

3744 

3745```json theme={null}

3746{

3747 "hooks": {

3748 "Elicitation": [

3749 {

3750 "matcher": "issue-tracker",

3751 "hooks": [

3752 {

3753 "type": "command",

3754 "command": "powershell.exe",

3755 "args": [

3756 "-NoProfile",

3757 "-ExecutionPolicy",

3758 "Bypass",

3759 "-File",

3760 "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.ps1"

3761 ]

3762 }

3763 ]

3764 }

3765 ]

3766 }

3767}

3768```

3769 

3770将此脚本保存到项目中的 `.claude/hooks/answer-project-key.ps1`:

3771 

3772```powershell theme={null}

3773$request = [Console]::In.ReadToEnd() | ConvertFrom-Json

3774$fields = @($request.requested_schema.properties.PSObject.Properties.Name)

3775 3740 

3776if ($fields.Count -eq 1 -and $fields[0] -eq 'project_key') {3741> [tab] Windows (PowerShell)

3777 @{3742>

3778 hookSpecificOutput = @{3743> 注册一个通过 PowerShell 运行脚本的命令 hook,以服务器名称作为匹配器:

3779 hookEventName = "Elicitation"3744>

3780 action = "accept"3745> ```json theme={null}

3781 content = @{ project_key = "DOCS" }3746> {

3782 }3747> "hooks": {

3783 } | ConvertTo-Json -Depth 33748> "Elicitation": [

3784}3749> {

3785```3750> "matcher": "issue-tracker",

3751> "hooks": [

3752> {

3753> "type": "command",

3754> "command": "powershell.exe",

3755> "args": [

3756> "-NoProfile",

3757> "-ExecutionPolicy",

3758> "Bypass",

3759> "-File",

3760> "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.ps1"

3761> ]

3762> }

3763> ]

3764> }

3765> ]

3766> }

3767> }

3768> ```

3769>

3770> 将此脚本保存到项目中的 `.claude/hooks/answer-project-key.ps1`:

3771>

3772> ```powershell theme={null}

3773> $request = [Console]::In.ReadToEnd() | ConvertFrom-Json

3774> $fields = @($request.requested_schema.properties.PSObject.Properties.Name)

3775>

3776> if ($fields.Count -eq 1 -and $fields[0] -eq 'project_key') {

3777> @{

3778> hookSpecificOutput = @{

3779> hookEventName = "Elicitation"

3780> action = "accept"

3781> content = @{ project_key = "DOCS" }

3782> }

3783> } | ConvertTo-Json -Depth 3

3784> }

3785> ```

3786 3786 

3787要确认该 hook 是否正常工作,请使用 `claude --debug` 启动 Claude Code,并给 Claude 一个会让服务器询问项目键的任务。不会出现对话框,并且[调试日志](#debug-hooks)中会有一行以 `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}` 结尾。3787要确认该 hook 是否正常工作,请使用 `claude --debug` 启动 Claude Code,并给 Claude 一个会让服务器询问项目键的任务。不会出现对话框,并且[调试日志](#debug-hooks)中会有一行以 `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}` 结尾。

3788 3788 

hooks-guide.md +144 −144

Details

89 89 

90下面的每个选项卡都使用该平台的原生通知命令。将以下内容添加到 `~/.claude/settings.json`:90下面的每个选项卡都使用该平台的原生通知命令。将以下内容添加到 `~/.claude/settings.json`:

91 91 

92**macOS**92> [tab] macOS

93 

94```json theme={null}

95{

96 "hooks": {

97 "Notification": [

98 {

99 "matcher": "",

100 "hooks": [

101 {

102 "type": "command",

103 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"

104 }

105 ]

106 }

107 ]

108 }

109}

110```

111 

112> **如果没有出现通知**

113>

114> `osascript` 通过内置的“脚本编辑器”应用发送通知。如果“脚本编辑器”没有通知权限,该命令会静默失败,并且 macOS 不会提示您授予权限。

115>93>

116> 在终端中运行一次以下命令,使“脚本编辑器”出现在通知设置中:94> ```json theme={null}

117>95> {

118> ```bash theme={null}96> "hooks": {

119> osascript -e 'display notification "test"'97> "Notification": [

98> {

99> "matcher": "",

100> "hooks": [

101> {

102> "type": "command",

103> "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"

104> }

105> ]

106> }

107> ]

108> }

109> }

120> ```110> ```

121>111>

122> 此时还不会显示任何内容。打开 **System Settings > Notifications**,在列表中找到 **Script Editor**,然后打开 **Allow Notifications**。再次运行该命令,确认测试通知出现。112> > [accordion] 如果没有出现通知

123 113> >

124**Linux**114> > `osascript` 通过内置的“脚本编辑器”应用发送通知。如果“脚本编辑器”没有通知权限,该命令会静默失败,并且 macOS 不会提示您授予权限。

125 115> >

126```json theme={null}116> > 在终端中运行一次以下命令,使“脚本编辑器”出现在通知设置中:

127{117> >

128 "hooks": {118> > ```bash theme={null}

129 "Notification": [119> > osascript -e 'display notification "test"'

130 {120> > ```

131 "matcher": "",121> >

132 "hooks": [122> > 此时还不会显示任何内容。打开 **System Settings > Notifications**,在列表中找到 **Script Editor**,然后打开 **Allow Notifications**。再次运行该命令,确认测试通知出现。

133 {123 

134 "type": "command",124> [tab] Linux

135 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"

136 }

137 ]

138 }

139 ]

140 }

141}

142```

143 

144> **如果没有出现通知**

145>

146> `notify-send` 需要桌面通知守护进程,而无头服务器、SSH 会话和大多数容器都没有该进程。请先直接测试该命令:

147>125>

148> ```bash theme={null}126> ```json theme={null}

149> notify-send 'Claude Code' 'test'127> {

128> "hooks": {

129> "Notification": [

130> {

131> "matcher": "",

132> "hooks": [

133> {

134> "type": "command",

135> "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"

136> }

137> ]

138> }

139> ]

140> }

141> }

150> ```142> ```

151>143>

152> 如果找不到该命令,请在 Debian 和 Ubuntu 上安装 `libnotify-bin` 软件包,或安装您所用发行版中的等效软件包。144> > [accordion] 如果没有出现通知

153 145> >

154**Windows (PowerShell)**146> > `notify-send` 需要桌面通知守护进程,而无头服务器、SSH 会话和大多数容器都没有该进程。请先直接测试该命令:

155 147> >

156```json theme={null}148> > ```bash theme={null}

157{149> > notify-send 'Claude Code' 'test'

158 "hooks": {150> > ```

159 "Notification": [151> >

160 {152> > 如果找不到该命令,请在 Debian 和 Ubuntu 上安装 `libnotify-bin` 软件包,或安装您所用发行版中的等效软件包。

161 "matcher": "",153 

162 "hooks": [154> [tab] Windows (PowerShell)

163 {

164 "type": "command",

165 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""

166 }

167 ]

168 }

169 ]

170 }

171}

172```

173 

174> **如果没有出现对话框**

175>155>

176> 此命令打开的是一个对话框,而不是屏幕角落的通知,因此该对话框可能会在终端窗口后面打开。请先在 PowerShell 中直接测试该命令。156> ```json theme={null}

157> {

158> "hooks": {

159> "Notification": [

160> {

161> "matcher": "",

162> "hooks": [

163> {

164> "type": "command",

165> "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""

166> }

167> ]

168> }

169> ]

170> }

171> }

172> ```

177>173>

178> 如果您在 WSL 中运行 Claude Code,则 `powershell.exe` 必须能够通过 Windows 互操作在您的 `PATH` 中使用。174> > [accordion] 如果没有出现对话框

175> >

176> > 此命令打开的是一个对话框,而不是屏幕角落的通知,因此该对话框可能会在终端窗口后面打开。请先在 PowerShell 中直接测试该命令。

177> >

178> > 如果您在 WSL 中运行 Claude Code,则 `powershell.exe` 必须能够通过 Windows 互操作在您的 `PATH` 中使用。

179 179 

180空的 `matcher` 会对所有通知类型触发。若只想在特定事件时触发,请将其设置为以下值之一:180空的 `matcher` 会对所有通知类型触发。若只想在特定事件时触发,请将其设置为以下值之一:

181 181 


705 705 

706下面的选项卡显示不同事件类型上的更多匹配器示例。706下面的选项卡显示不同事件类型上的更多匹配器示例。

707 707 

708**记录每个 Bash 命令**708> [tab] 记录每个 Bash 命令

709 709>

710仅匹配 `Bash` 工具调用并将每个命令记录到文件。`PostToolUse` 事件在命令完成后触发,因此 `tool_input.command` 包含运行的内容。hook 在 stdin 上接收事件数据作为 JSON,`jq -r '.tool_input.command'` 仅提取命令字符串,`>>` 将其附加到日志文件:710> 仅匹配 `Bash` 工具调用并将每个命令记录到文件。`PostToolUse` 事件在命令完成后触发,因此 `tool_input.command` 包含运行的内容。hook 在 stdin 上接收事件数据作为 JSON,`jq -r '.tool_input.command'` 仅提取命令字符串,`>>` 将其附加到日志文件:

711 711>

712```json theme={null}712> ```json theme={null}

713{713> {

714 "hooks": {714> "hooks": {

715 "PostToolUse": [715> "PostToolUse": [

716 {716> {

717 "matcher": "Bash",717> "matcher": "Bash",

718 "hooks": [718> "hooks": [

719 {719> {

720 "type": "command",720> "type": "command",

721 "command": "jq -r '.tool_input.command' >> ~/.claude/command-log.txt"721> "command": "jq -r '.tool_input.command' >> ~/.claude/command-log.txt"

722 }722> }

723 ]723> ]

724 }724> }

725 ]725> ]

726 }726> }

727}727> }

728```728> ```

729 

730**匹配 MCP 工具**

731 

732MCP 工具使用与内置工具不同的命名约定:`mcp__<server>__<tool>`,其中 `<server>` 是 MCP 服务器名称,`<tool>` 是它提供的工具。例如,`mcp__github__search_repositories` 或 `mcp__filesystem__read_file`。来自 [插件提供的 MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md#plugin-provided-mcp-servers) 的工具使用作用域服务器段,例如 `mcp__plugin_my-plugin_db__query`。使用正则表达式匹配器来针对来自特定服务器的所有工具,或使用 `mcp__.*__write.*` 之类的模式跨服务器匹配。有关完整的示例列表,请参阅参考中的 [匹配 MCP 工具](https://code.claude.com/docs/zh-CN/hooks.md#match-mcp-tools)。

733 

734下面的命令使用 `jq` 从 hook 的 JSON 输入中提取工具名称,并将其写入 stderr。将其写入 stderr 保持 stdout 清洁以用于 JSON 输出,并将消息发送到 [调试日志](https://code.claude.com/docs/zh-CN/hooks.md#debug-hooks):

735 

736```json theme={null}

737{

738 "hooks": {

739 "PreToolUse": [

740 {

741 "matcher": "mcp__github__.*",

742 "hooks": [

743 {

744 "type": "command",

745 "command": "echo \"GitHub tool called: $(jq -r '.tool_name')\" >&2"

746 }

747 ]

748 }

749 ]

750 }

751}

752```

753 

754**在会话结束时清理**

755 729 

756`SessionEnd` 事件支持会话结束原因的匹配器。此 hook 仅在 `clear` 原因时触发(当你运行 `/clear` 时),而不是在正常退出时:730> [tab] 匹配 MCP 工具

731>

732> MCP 工具使用与内置工具不同的命名约定:`mcp__<server>__<tool>`,其中 `<server>` 是 MCP 服务器名称,`<tool>` 是它提供的工具。例如,`mcp__github__search_repositories` 或 `mcp__filesystem__read_file`。来自 [插件提供的 MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md#plugin-provided-mcp-servers) 的工具使用作用域服务器段,例如 `mcp__plugin_my-plugin_db__query`。使用正则表达式匹配器来针对来自特定服务器的所有工具,或使用 `mcp__.*__write.*` 之类的模式跨服务器匹配。有关完整的示例列表,请参阅参考中的 [匹配 MCP 工具](https://code.claude.com/docs/zh-CN/hooks.md#match-mcp-tools)。

733>

734> 下面的命令使用 `jq` 从 hook 的 JSON 输入中提取工具名称,并将其写入 stderr。将其写入 stderr 保持 stdout 清洁以用于 JSON 输出,并将消息发送到 [调试日志](https://code.claude.com/docs/zh-CN/hooks.md#debug-hooks):

735>

736> ```json theme={null}

737> {

738> "hooks": {

739> "PreToolUse": [

740> {

741> "matcher": "mcp__github__.*",

742> "hooks": [

743> {

744> "type": "command",

745> "command": "echo \"GitHub tool called: $(jq -r '.tool_name')\" >&2"

746> }

747> ]

748> }

749> ]

750> }

751> }

752> ```

757 753 

758```json theme={null}754> [tab] 在会话结束时清理

759{755>

760 "hooks": {756> `SessionEnd` 事件支持会话结束原因的匹配器。此 hook 仅在 `clear` 原因时触发(当你运行 `/clear` 时),而不是在正常退出时:

761 "SessionEnd": [757>

762 {758> ```json theme={null}

763 "matcher": "clear",759> {

764 "hooks": [760> "hooks": {

765 {761> "SessionEnd": [

766 "type": "command",762> {

767 "command": "rm -f /tmp/claude-scratch-*.txt"763> "matcher": "clear",

768 }764> "hooks": [

769 ]765> {

770 }766> "type": "command",

771 ]767> "command": "rm -f /tmp/claude-scratch-*.txt"

772 }768> }

773}769> ]

774```770> }

771> ]

772> }

773> }

774> ```

775 775 

776#### 使用 `if` 字段按工具名称和参数过滤776#### 使用 `if` 字段按工具名称和参数过滤

777 777 

Details

163 163 

164选择一个权限模式来设置 Claude 可以在不询问您的情况下做什么。按 `Shift+Tab` 循环通过权限模式:164选择一个权限模式来设置 Claude 可以在不询问您的情况下做什么。按 `Shift+Tab` 循环通过权限模式:

165 165 

166* **Auto**:分类器在后台审查大多数操作,并阻止风险操作而不是询问您。在 Claude Code v2.1.283 或更高版本中,它是[交互式终端和 VS Code 会话的内置起始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#which-mode-a-session-starts-in),在早期版本中仅在 Pro、Max 和 Team 计划上可用166* **Auto**:分类器在后台审查大多数操作,并阻止风险操作而不是询问您。在 Claude Code v2.1.283 或更高版本中,它是交互式终端和 VS Code 会话的[内置起始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#which-mode-a-session-starts-in)。在早期版本中,它仅在 Pro、Max、Ultra 和 Team 计划上是内置起始权限模式。

167* **Manual**:Claude 在文件编辑和 shell 命令之前询问167* **Manual**:Claude 在文件编辑和 shell 命令之前询问

168* **Accept edits**:Claude 编辑文件并运行常见的文件系统命令(如 `mkdir` 和 `mv`)而不询问,仍然询问其他命令168* **Accept edits**:Claude 编辑文件并运行常见的文件系统命令(如 `mkdir` 和 `mv`)而不询问,仍然询问其他命令

169* **Plan**:Claude 探索并提出计划而不编辑您的源文件169* **Plan**:Claude 探索并提出计划而不编辑您的源文件


223 223 

224## 接下来是什么224## 接下来是什么

225 225 

226> **[使用功能扩展](https://code.claude.com/docs/zh-CN/features-overview.md)**226> [card] [使用功能扩展](https://code.claude.com/docs/zh-CN/features-overview.md)

227>227>

228> 添加 skills 和 MCP 连接228> 添加 skills 和 MCP 连接

229 229 

230> **[常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)**230> [card] [常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)

231>231>

232> 典型任务的分步指南232> 典型任务的分步指南

Details

537 537 

538Claude Code 从三个地方读取 [`spellcheck`](https://code.claude.com/docs/zh-CN/settings-reference#spellcheck) 设置,并在项目的 `.claude/settings.json` 和 `.claude/settings.local.json` 中忽略它。从您使用的任何一个地方打开它:538Claude Code 从三个地方读取 [`spellcheck`](https://code.claude.com/docs/zh-CN/settings-reference#spellcheck) 设置,并在项目的 `.claude/settings.json` 和 `.claude/settings.local.json` 中忽略它。从您使用的任何一个地方打开它:

539 539 

540**用户设置**540> [tab] 用户设置

541 541>

542将 `spellcheck` 添加到 `~/.claude/settings.json`。它适用于您打开的每个项目,就像您的其他[用户设置](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)一样:542> 将 `spellcheck` 添加到 `~/.claude/settings.json`。它适用于您打开的每个项目,就像您的其他[用户设置](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)一样:

543 543>

544```json theme={null}544> ```json theme={null}

545{545> {

546 "spellcheck": { "enabled": true }546> "spellcheck": { "enabled": true }

547}547> }

548```548> ```

549 

550**命令行**

551 

552将 `spellcheck` 保存在 JSON 文件中,例如 `spellcheck.json`:

553 

554```json theme={null}

555{

556 "spellcheck": { "enabled": true }

557}

558```

559 

560然后将文件传递给 `--settings`。它仅适用于该会话:

561 

562```bash theme={null}

563claude --settings spellcheck.json

564```

565 

566**托管设置**

567 549 

568将 `spellcheck` 添加到您的组织的[托管设置源](https://code.claude.com/docs/zh-CN/permissions.md#managed-settings)之一。它适用于接收这些设置的每个用户,他们无法关闭它:550> [tab] 命令行

551>

552> 将 `spellcheck` 保存在 JSON 文件中,例如 `spellcheck.json`:

553>

554> ```json theme={null}

555> {

556> "spellcheck": { "enabled": true }

557> }

558> ```

559>

560> 然后将文件传递给 `--settings`。它仅适用于该会话:

561>

562> ```bash theme={null}

563> claude --settings spellcheck.json

564> ```

569 565 

570```json theme={null}566> [tab] 托管设置

571{567>

572 "spellcheck": { "enabled": true }568> 将 `spellcheck` 添加到您的组织的[托管设置源](https://code.claude.com/docs/zh-CN/permissions.md#managed-settings)之一。它适用于接收这些设置的每个用户,他们无法关闭它:

573}569>

574```570> ```json theme={null}

571> {

572> "spellcheck": { "enabled": true }

573> }

574> ```

575 575 

576要检查拼写检查是否打开,请输入一个拼写错误的单词和一个空格。Claude Code 会为该单词加下划线。如果没有,请参阅[当 Claude Code 不加下划线时](#when-claude-code-underlines-nothing)。要再次关闭拼写检查,请在同一位置将 `enabled` 设置为 `false`,或删除 `spellcheck`。576要检查拼写检查是否打开,请输入一个拼写错误的单词和一个空格。Claude Code 会为该单词加下划线。如果没有,请参阅[当 Claude Code 不加下划线时](#when-claude-code-underlines-nothing)。要再次关闭拼写检查,请在同一位置将 `enabled` 设置为 `false`,或删除 `spellcheck`。

577 577 

jetbrains.md +1 −1

Details

41 41 

42如果 `claude` 安装在您的 IDE 找不到的位置,请在插件的 [Claude 命令设置](#general-settings)中设置完整路径。42如果 `claude` 安装在您的 IDE 找不到的位置,请在插件的 [Claude 命令设置](#general-settings)中设置完整路径。

43 43 

44Claude Code 适用于任何付费 Claude 订阅(Pro、Max、Team 或 Enterprise)或 Claude Console 账户,无需 API 密钥。首次运行 `claude` 时,系统会提示您[登录](https://code.claude.com/docs/zh-CN/authentication.md#log-in-to-claude-code)。44Claude Code 适用于任何付费 Claude 订阅(Pro、Max、Ultra、Team 或 Enterprise)或 Claude Console 账户,无需 API 密钥。首次运行 `claude` 时,系统会提示您[登录](https://code.claude.com/docs/zh-CN/authentication.md#log-in-to-claude-code)。

45 45 

46## 使用46## 使用

47 47 

Details

73 73 

74将值替换为您的网关团队给您的值:74将值替换为您的网关团队给您的值:

75 75 

76**Bash or Zsh**76> [tab] Bash or Zsh

77 77>

78```bash theme={null}78> ```bash theme={null}

79export ANTHROPIC_BASE_URL=https://llm-gateway.example.com79> export ANTHROPIC_BASE_URL=https://llm-gateway.example.com

80export ANTHROPIC_AUTH_TOKEN=sk-gateway-key80> export ANTHROPIC_AUTH_TOKEN=sk-gateway-key

81```81> ```

82 

83**PowerShell**

84 82 

85```powershell theme={null}83> [tab] PowerShell

86$env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"84>

87$env:ANTHROPIC_AUTH_TOKEN = "sk-gateway-key"85> ```powershell theme={null}

88```86> $env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"

87> $env:ANTHROPIC_AUTH_TOKEN = "sk-gateway-key"

88> ```

89 89 

90Shell 导出仅适用于该终端会话和从它启动的程序。从 dock 或开始菜单启动的编辑器不会看到它们。要使值在新终端中持续,请将相同的行添加到您的 shell 配置文件,例如 `~/.zshrc`、`~/.bashrc` 或您的 PowerShell `$PROFILE`。90Shell 导出仅适用于该终端会话和从它启动的程序。从 dock 或开始菜单启动的编辑器不会看到它们。要使值在新终端中持续,请将相同的行添加到您的 shell 配置文件,例如 `~/.zshrc`、`~/.bashrc` 或您的 PowerShell `$PROFILE`。

91 91 


119 119 

120使用在 shell 中导出的变量,向网关直接发送一个单令牌请求。这在您打开 Claude Code 之前确认 URL 和凭证有效,因此失败指向网关而不是您的配置。下面的命令读取 shell 变量,因此即使您也将值放在设置文件中,它们也需要[shell 导出](#set-as-shell-environment-variables)。120使用在 shell 中导出的变量,向网关直接发送一个单令牌请求。这在您打开 Claude Code 之前确认 URL 和凭证有效,因此失败指向网关而不是您的配置。下面的命令读取 shell 变量,因此即使您也将值放在设置文件中,它们也需要[shell 导出](#set-as-shell-environment-variables)。

121 121 

122**Bash or Zsh**122> [tab] Bash or Zsh

123 123>

124```bash theme={null}124> ```bash theme={null}

125curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \125> curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \

126 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \126> -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \

127 -H "anthropic-version: 2023-06-01" \127> -H "anthropic-version: 2023-06-01" \

128 -H "content-type: application/json" \128> -H "content-type: application/json" \

129 -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'129> -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

130```130> ```

131 131 

132**PowerShell**132> [tab] PowerShell

133 133>

134```powershell theme={null}134> ```powershell theme={null}

135Invoke-RestMethod -Method Post -Uri "$env:ANTHROPIC_BASE_URL/v1/messages" `135> Invoke-RestMethod -Method Post -Uri "$env:ANTHROPIC_BASE_URL/v1/messages" `

136 -Headers @{ "Authorization" = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `136> -Headers @{ "Authorization" = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `

137 -ContentType "application/json" `137> -ContentType "application/json" `

138 -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'138> -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

139```139> ```

140 140 

141如果您的网关期望 `x-api-key` 标头中的密钥,请在 Bash 命令中将 `Authorization` 标头替换为 `x-api-key: $ANTHROPIC_API_KEY`,或在 PowerShell 命令中将 `"Authorization"` 哈希表条目替换为 `"x-api-key" = "$env:ANTHROPIC_API_KEY"`。141如果您的网关期望 `x-api-key` 标头中的密钥,请在 Bash 命令中将 `Authorization` 标头替换为 `x-api-key: $ANTHROPIC_API_KEY`,或在 PowerShell 命令中将 `"Authorization"` 哈希表条目替换为 `"x-api-key" = "$env:ANTHROPIC_API_KEY"`。

142 142 


274 274 

275某些网关使用除凭证外的自定义标头来路由或标记请求,例如租户标识符或路由密钥。要发送一个,请设置 [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/zh-CN/env-vars),每行一个 `Name: Value` 对。下面的示例添加了一个名为 `X-Org-Route` 的路由标头:275某些网关使用除凭证外的自定义标头来路由或标记请求,例如租户标识符或路由密钥。要发送一个,请设置 [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/zh-CN/env-vars),每行一个 `Name: Value` 对。下面的示例添加了一个名为 `X-Org-Route` 的路由标头:

276 276 

277**Bash or Zsh**277> [tab] Bash or Zsh

278 278>

279```bash theme={null}279> ```bash theme={null}

280export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"280> export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"

281```281> ```

282 

283**PowerShell**

284 282 

285```powershell theme={null}283> [tab] PowerShell

286$env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"284>

287```285> ```powershell theme={null}

286> $env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"

287> ```

288 288 

289您也可以在设置文件的 `env` 块中设置 `ANTHROPIC_CUSTOM_HEADERS`。在那里使用 `\n` 在对之间,因为 JSON 字符串不能跨多行:289您也可以在设置文件的 `env` 块中设置 `ANTHROPIC_CUSTOM_HEADERS`。在那里使用 `\n` 在对之间,因为 JSON 字符串不能跨多行:

290 290 


318 318 

319助手是任何将当前凭证打印到 stdout 的 shell 命令。Claude Code 通过您的系统 shell 运行它,因此在 Windows 上它可以是可执行文件或 PowerShell 调用。使命令仅打印凭证,不打印其他内容。在 Claude Code v2.1.227 或更高版本上,与密钥一起打印的横幅或日志行会使[助手失败](https://code.claude.com/docs/zh-CN/errors.md#your-apikeyhelper-script-is-failing)。编写脚本,使其可执行,并从您的[设置文件](https://code.claude.com/docs/zh-CN/settings.md)中的 `apiKeyHelper` 引用它:319助手是任何将当前凭证打印到 stdout 的 shell 命令。Claude Code 通过您的系统 shell 运行它,因此在 Windows 上它可以是可执行文件或 PowerShell 调用。使命令仅打印凭证,不打印其他内容。在 Claude Code v2.1.227 或更高版本上,与密钥一起打印的横幅或日志行会使[助手失败](https://code.claude.com/docs/zh-CN/errors.md#your-apikeyhelper-script-is-failing)。编写脚本,使其可执行,并从您的[设置文件](https://code.claude.com/docs/zh-CN/settings.md)中的 `apiKeyHelper` 引用它:

320 320 

321**Bash or Zsh**321> [tab] Bash or Zsh

322 322>

323例如,从保管库读取的脚本:323> 例如,从保管库读取的脚本:

324 324>

325```bash theme={null}325> ```bash theme={null}

326#!/bin/bash326> #!/bin/bash

327vault kv get -field=api_key secret/llm-gateway/claude-code327> vault kv get -field=api_key secret/llm-gateway/claude-code

328```328> ```

329 329>

330在 `~/.claude/settings.json` 中引用其路径:330> 在 `~/.claude/settings.json` 中引用其路径:

331 331>

332```json theme={null}332> ```json theme={null}

333{333> {

334 "apiKeyHelper": "~/bin/get-gateway-key.sh"334> "apiKeyHelper": "~/bin/get-gateway-key.sh"

335}335> }

336```336> ```

337 

338**PowerShell**

339 

340例如,从保管库读取的脚本:

341 

342```powershell theme={null}

343vault kv get -field=api_key secret/llm-gateway/claude-code

344```

345 

346在 `%USERPROFILE%\.claude\settings.json` 中引用 PowerShell 调用,转义 JSON 字符串中的反斜杠:

347 337 

348```json theme={null}338> [tab] PowerShell

349{339>

350 "apiKeyHelper": "powershell -NoProfile -File C:\\scripts\\get-gateway-key.ps1"340> 例如,从保管库读取的脚本:

351}341>

352```342> ```powershell theme={null}

343> vault kv get -field=api_key secret/llm-gateway/claude-code

344> ```

345>

346> 在 `%USERPROFILE%\.claude\settings.json` 中引用 PowerShell 调用,转义 JSON 字符串中的反斜杠:

347>

348> ```json theme={null}

349> {

350> "apiKeyHelper": "powershell -NoProfile -File C:\\scripts\\get-gateway-key.ps1"

351> }

352> ```

353 353 

354Claude Code 默认缓存助手的输出五分钟,并在缓存生命周期过期后重新运行助手。要更改生命周期,请以毫秒为单位设置 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS`,例如 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` 表示 15 分钟。354Claude Code 默认缓存助手的输出五分钟,并在缓存生命周期过期后重新运行助手。要更改生命周期,请以毫秒为单位设置 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS`,例如 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` 表示 15 分钟。

355 355 


363 363 

364要关闭该流量,请在与网关变量相同的 shell 导出或设置文件 `env` 块中设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`:364要关闭该流量,请在与网关变量相同的 shell 导出或设置文件 `env` 块中设置 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`:

365 365 

366**Bash or Zsh**366> [tab] Bash or Zsh

367 367>

368```bash theme={null}368> ```bash theme={null}

369export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1369> export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

370```370> ```

371 

372**PowerShell**

373 371 

374```powershell theme={null}372> [tab] PowerShell

375$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"373>

376```374> ```powershell theme={null}

375> $env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"

376> ```

377 377 

378设置该变量具有以下效果和限制:378设置该变量具有以下效果和限制:

379 379 


398 398 

399当网关发出自己的凭证时,将 `AWS_BEARER_TOKEN_BEDROCK` 保留为未设置。如果您设置它,Claude Code 会将该 [Amazon Bedrock API 密钥](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#2-configure-aws-credentials)作为 `Authorization` 标头发送,而不是您的网关令牌,即使设置了 `CLAUDE_CODE_SKIP_BEDROCK_AUTH`。399当网关发出自己的凭证时,将 `AWS_BEARER_TOKEN_BEDROCK` 保留为未设置。如果您设置它,Claude Code 会将该 [Amazon Bedrock API 密钥](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#2-configure-aws-credentials)作为 `Authorization` 标头发送,而不是您的网关令牌,即使设置了 `CLAUDE_CODE_SKIP_BEDROCK_AUTH`。

400 400 

401**Bash or Zsh**401> [tab] Bash or Zsh

402 402>

403```bash theme={null}403> ```bash theme={null}

404export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock404> export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock

405export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1405> export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1

406export CLAUDE_CODE_USE_BEDROCK=1406> export CLAUDE_CODE_USE_BEDROCK=1

407```407> ```

408 

409**PowerShell**

410 408 

411```powershell theme={null}409> [tab] PowerShell

412$env:ANTHROPIC_BEDROCK_BASE_URL = "https://llm-gateway.example.com/bedrock"410>

413$env:CLAUDE_CODE_SKIP_BEDROCK_AUTH = "1"411> ```powershell theme={null}

414$env:CLAUDE_CODE_USE_BEDROCK = "1"412> $env:ANTHROPIC_BEDROCK_BASE_URL = "https://llm-gateway.example.com/bedrock"

415```413> $env:CLAUDE_CODE_SKIP_BEDROCK_AUTH = "1"

414> $env:CLAUDE_CODE_USE_BEDROCK = "1"

415> ```

416 416 

417#### Google Cloud 的 Agent Platform417#### Google Cloud 的 Agent Platform

418 418 

419将项目 ID 和区域替换为您自己的值。Claude Code 在它发送到网关的每个请求的路径中包含两者:419将项目 ID 和区域替换为您自己的值。Claude Code 在它发送到网关的每个请求的路径中包含两者:

420 420 

421**Bash or Zsh**421> [tab] Bash or Zsh

422 422>

423```bash theme={null}423> ```bash theme={null}

424export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex424> export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex

425export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id425> export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id

426export CLAUDE_CODE_SKIP_VERTEX_AUTH=1426> export CLAUDE_CODE_SKIP_VERTEX_AUTH=1

427export CLAUDE_CODE_USE_VERTEX=1427> export CLAUDE_CODE_USE_VERTEX=1

428export CLOUD_ML_REGION=us-east5428> export CLOUD_ML_REGION=us-east5

429```429> ```

430 430 

431**PowerShell**431> [tab] PowerShell

432 432>

433```powershell theme={null}433> ```powershell theme={null}

434$env:ANTHROPIC_VERTEX_BASE_URL = "https://llm-gateway.example.com/vertex"434> $env:ANTHROPIC_VERTEX_BASE_URL = "https://llm-gateway.example.com/vertex"

435$env:ANTHROPIC_VERTEX_PROJECT_ID = "your-gcp-project-id"435> $env:ANTHROPIC_VERTEX_PROJECT_ID = "your-gcp-project-id"

436$env:CLAUDE_CODE_SKIP_VERTEX_AUTH = "1"436> $env:CLAUDE_CODE_SKIP_VERTEX_AUTH = "1"

437$env:CLAUDE_CODE_USE_VERTEX = "1"437> $env:CLAUDE_CODE_USE_VERTEX = "1"

438$env:CLOUD_ML_REGION = "us-east5"438> $env:CLOUD_ML_REGION = "us-east5"

439```439> ```

440 440 

441该块涵盖路由和身份验证。来自 [Agent Platform 设置](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#4-configure-claude-code)的区域覆盖和模型固定也通过网关应用:441该块涵盖路由和身份验证。来自 [Agent Platform 设置](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#4-configure-claude-code)的区域覆盖和模型固定也通过网关应用:

442 442 


450 450 

451对于注入自己的 `Authorization` 标头的网关,设置 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` 并将两个凭据变量都保留为未设置。Claude Code 然后发送没有 Azure 凭据的请求,并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。451对于注入自己的 `Authorization` 标头的网关,设置 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` 并将两个凭据变量都保留为未设置。Claude Code 然后发送没有 Azure 凭据的请求,并保留您提供的 `Authorization` 标头,例如通过 `ANTHROPIC_CUSTOM_HEADERS`。

452 452 

453**Bash or Zsh**453> [tab] Bash or Zsh

454 454>

455```bash theme={null}455> ```bash theme={null}

456export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry456> export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry

457export ANTHROPIC_FOUNDRY_API_KEY=sk-gateway-key457> export ANTHROPIC_FOUNDRY_API_KEY=sk-gateway-key

458export CLAUDE_CODE_USE_FOUNDRY=1458> export CLAUDE_CODE_USE_FOUNDRY=1

459```459> ```

460 

461**PowerShell**

462 460 

463```powershell theme={null}461> [tab] PowerShell

464$env:ANTHROPIC_FOUNDRY_BASE_URL = "https://llm-gateway.example.com/foundry"462>

465$env:ANTHROPIC_FOUNDRY_API_KEY = "sk-gateway-key"463> ```powershell theme={null}

466$env:CLAUDE_CODE_USE_FOUNDRY = "1"464> $env:ANTHROPIC_FOUNDRY_BASE_URL = "https://llm-gateway.example.com/foundry"

467```465> $env:ANTHROPIC_FOUNDRY_API_KEY = "sk-gateway-key"

466> $env:CLAUDE_CODE_USE_FOUNDRY = "1"

467> ```

468 468 

469#### AWS 上的 Claude Platform469#### AWS 上的 Claude Platform

470 470 

471有关工作区 ID,请参阅 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)。471有关工作区 ID,请参阅 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)。

472 472 

473**Bash or Zsh**473> [tab] Bash or Zsh

474 474>

475```bash theme={null}475> ```bash theme={null}

476export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws476> export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws

477export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN477> export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN

478export CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1478> export CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1

479export CLAUDE_CODE_USE_ANTHROPIC_AWS=1479> export CLAUDE_CODE_USE_ANTHROPIC_AWS=1

480```480> ```

481 481 

482**PowerShell**482> [tab] PowerShell

483 483>

484```powershell theme={null}484> ```powershell theme={null}

485$env:ANTHROPIC_AWS_BASE_URL = "https://llm-gateway.example.com/anthropic-aws"485> $env:ANTHROPIC_AWS_BASE_URL = "https://llm-gateway.example.com/anthropic-aws"

486$env:ANTHROPIC_AWS_WORKSPACE_ID = "wrkspc_01ABCDEFGHIJKLMN"486> $env:ANTHROPIC_AWS_WORKSPACE_ID = "wrkspc_01ABCDEFGHIJKLMN"

487$env:CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH = "1"487> $env:CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH = "1"

488$env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"488> $env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"

489```489> ```

490 490 

491#### 确认提供商路由491#### 确认提供商路由

492 492 

Details

62* `<gateway-key>` 是任何让您现在调用网关的凭证:管理密钥、测试密钥或您自己的开发者密钥(如果您已经颁发了一个)。并非每个网关产品都有单独的管理凭证;如果您的没有,请先在[颁发开发者凭证](#issue-developer-credentials)中为自己颁发开发者密钥62* `<gateway-key>` 是任何让您现在调用网关的凭证:管理密钥、测试密钥或您自己的开发者密钥(如果您已经颁发了一个)。并非每个网关产品都有单独的管理凭证;如果您的没有,请先在[颁发开发者凭证](#issue-developer-credentials)中为自己颁发开发者密钥

63* `model` 是您的网关配置为路由的 Claude 模型名称。示例使用 `claude-sonnet-4-6`;替换为您配置的名称63* `model` 是您的网关配置为路由的 Claude 模型名称。示例使用 `claude-sonnet-4-6`;替换为您配置的名称

64 64 

65**Bash 或 Zsh**65> [tab] Bash 或 Zsh

66 66>

67```bash theme={null}67> ```bash theme={null}

68curl -X POST "https://llm-gateway.example.com/v1/messages" \68> curl -X POST "https://llm-gateway.example.com/v1/messages" \

69 -H "Authorization: Bearer <gateway-key>" \69> -H "Authorization: Bearer <gateway-key>" \

70 -H "anthropic-version: 2023-06-01" \70> -H "anthropic-version: 2023-06-01" \

71 -H "content-type: application/json" \71> -H "content-type: application/json" \

72 -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'72> -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

73```73> ```

74 74 

75**PowerShell**75> [tab] PowerShell

76 76>

77```powershell theme={null}77> ```powershell theme={null}

78Invoke-RestMethod -Method Post -Uri "https://llm-gateway.example.com/v1/messages" `78> Invoke-RestMethod -Method Post -Uri "https://llm-gateway.example.com/v1/messages" `

79 -Headers @{ "Authorization" = "Bearer <gateway-key>"; "anthropic-version" = "2023-06-01" } `79> -Headers @{ "Authorization" = "Bearer <gateway-key>"; "anthropic-version" = "2023-06-01" } `

80 -ContentType "application/json" `80> -ContentType "application/json" `

81 -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'81> -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

82```82> ```

83 83 

84**检查点**:带有 `content` 字段的 `200` 意味着网关以该模型名称到达了提供商。`404` 意味着该名称在网关处未路由;来自提供商的 `401` 意味着网关的提供商凭证错误。84**检查点**:带有 `content` 字段的 `200` 意味着网关以该模型名称到达了提供商。`404` 意味着该名称在网关处未路由;来自提供商的 `401` 意味着网关的提供商凭证错误。

85 85 


95 95 

96使用与[确认网关路由您的模型](#confirm-the-gateway-routes-your-models)相同的请求确认新颁发的密钥对网关有效,将 `<gateway-key>` 替换为新的 `<developer-key>`:96使用与[确认网关路由您的模型](#confirm-the-gateway-routes-your-models)相同的请求确认新颁发的密钥对网关有效,将 `<gateway-key>` 替换为新的 `<developer-key>`:

97 97 

98**Bash 或 Zsh**98> [tab] Bash 或 Zsh

99 99>

100```bash theme={null}100> ```bash theme={null}

101curl -X POST "https://llm-gateway.example.com/v1/messages" \101> curl -X POST "https://llm-gateway.example.com/v1/messages" \

102 -H "Authorization: Bearer <developer-key>" \102> -H "Authorization: Bearer <developer-key>" \

103 -H "anthropic-version: 2023-06-01" \103> -H "anthropic-version: 2023-06-01" \

104 -H "content-type: application/json" \104> -H "content-type: application/json" \

105 -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'105> -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

106```106> ```

107 107 

108**PowerShell**108> [tab] PowerShell

109 109>

110```powershell theme={null}110> ```powershell theme={null}

111Invoke-RestMethod -Method Post -Uri "https://llm-gateway.example.com/v1/messages" `111> Invoke-RestMethod -Method Post -Uri "https://llm-gateway.example.com/v1/messages" `

112 -Headers @{ "Authorization" = "Bearer <developer-key>"; "anthropic-version" = "2023-06-01" } `112> -Headers @{ "Authorization" = "Bearer <developer-key>"; "anthropic-version" = "2023-06-01" } `

113 -ContentType "application/json" `113> -ContentType "application/json" `

114 -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'114> -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

115```115> ```

116 116 

117**检查点**:带有 `content` 字段的 `200` 意味着开发者密钥到达网关,网关转发它。当[前一步](#confirm-the-gateway-routes-your-models)成功时,这里的 `401` 意味着开发者密钥错误或尚未在网关处生效。117**检查点**:带有 `content` 字段的 `200` 意味着开发者密钥到达网关,网关转发它。当[前一步](#confirm-the-gateway-routes-your-models)成功时,这里的 `401` 意味着开发者密钥错误或尚未在网关处生效。

118 118 


122 122 

123在分发任何内容之前,使用推出将交付的相同配置自己通过网关运行 Claude Code。直接在终端中键入这些,而不是在 `.env` 或设置文件中;它们仅在此终端会话中持续,因此关闭它会将您的机器返回到其正常配置。如果您的网关读取 `x-api-key` 标头,请使用 `ANTHROPIC_API_KEY` 而不是 `ANTHROPIC_AUTH_TOKEN`:123在分发任何内容之前,使用推出将交付的相同配置自己通过网关运行 Claude Code。直接在终端中键入这些,而不是在 `.env` 或设置文件中;它们仅在此终端会话中持续,因此关闭它会将您的机器返回到其正常配置。如果您的网关读取 `x-api-key` 标头,请使用 `ANTHROPIC_API_KEY` 而不是 `ANTHROPIC_AUTH_TOKEN`:

124 124 

125**Bash 或 Zsh**125> [tab] Bash 或 Zsh

126 126>

127```bash theme={null}127> ```bash theme={null}

128export ANTHROPIC_BASE_URL=https://llm-gateway.example.com128> export ANTHROPIC_BASE_URL=https://llm-gateway.example.com

129export ANTHROPIC_AUTH_TOKEN="<developer-key>"129> export ANTHROPIC_AUTH_TOKEN="<developer-key>"

130```130> ```

131 

132**PowerShell**

133 131 

134```powershell theme={null}132> [tab] PowerShell

135$env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"133>

136$env:ANTHROPIC_AUTH_TOKEN = "<developer-key>"134> ```powershell theme={null}

137```135> $env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"

136> $env:ANTHROPIC_AUTH_TOKEN = "<developer-key>"

137> ```

138 138 

139然后通过网关发送一次性提示:139然后通过网关发送一次性提示:

140 140 


224 224 

225从开发者机器而不是网关主机确认一切工作,以便测试涵盖开发者使用的网络路径。发送流式请求,它一次检查端点、流式传输传递和模型路由:225从开发者机器而不是网关主机确认一切工作,以便测试涵盖开发者使用的网络路径。发送流式请求,它一次检查端点、流式传输传递和模型路由:

226 226 

227**Bash 或 Zsh**227> [tab] Bash 或 Zsh

228 228>

229```bash theme={null}229> ```bash theme={null}

230curl -N -X POST "https://llm-gateway.example.com/v1/messages" \230> curl -N -X POST "https://llm-gateway.example.com/v1/messages" \

231 -H "Authorization: Bearer <developer-key>" \231> -H "Authorization: Bearer <developer-key>" \

232 -H "anthropic-version: 2023-06-01" \232> -H "anthropic-version: 2023-06-01" \

233 -H "content-type: application/json" \233> -H "content-type: application/json" \

234 -d '{"model": "claude-sonnet-4-6", "max_tokens": 16, "stream": true, "messages": [{"role": "user", "content": "count to 3"}]}'234> -d '{"model": "claude-sonnet-4-6", "max_tokens": 16, "stream": true, "messages": [{"role": "user", "content": "count to 3"}]}'

235```235> ```

236 236 

237**PowerShell**237> [tab] PowerShell

238 238>

239```powershell theme={null}239> ```powershell theme={null}

240$body = '{"model": "claude-sonnet-4-6", "max_tokens": 16, "stream": true, "messages": [{"role": "user", "content": "count to 3"}]}'240> $body = '{"model": "claude-sonnet-4-6", "max_tokens": 16, "stream": true, "messages": [{"role": "user", "content": "count to 3"}]}'

241$body | curl.exe -N -X POST "https://llm-gateway.example.com/v1/messages" `241> $body | curl.exe -N -X POST "https://llm-gateway.example.com/v1/messages" `

242 -H "Authorization: Bearer <developer-key>" `242> -H "Authorization: Bearer <developer-key>" `

243 -H "anthropic-version: 2023-06-01" `243> -H "anthropic-version: 2023-06-01" `

244 -H "content-type: application/json" `244> -H "content-type: application/json" `

245 --data-binary '@-'245> --data-binary '@-'

246```246> ```

247 247 

248您应该看到 `data:` 行逐步到达。整个响应在暂停后一次到达意味着网关正在缓冲,这会停滞 Claude Code;`404` 意味着模型名称未路由。每个模型名称重复。248您应该看到 `data:` 行逐步到达。整个响应在暂停后一次到达意味着网关正在缓冲,这会停滞 Claude Code;`404` 意味着模型名称未路由。每个模型名称重复。

249 249 

managed-mcp.md +5 −5

Details

403 403 

404下面的手风琴演示了如何针对其他允许列表和拒绝列表组合评估服务器。404下面的手风琴演示了如何针对其他允许列表和拒绝列表组合评估服务器。

405 405 

406> **仅 URL 允许列表**406> [accordion] 仅 URL 允许列表

407>407>

408> ```json theme={null}408> ```json theme={null}

409> {409> {


421> | `https://external.example.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配任何 URL 模式 |421> | `https://external.example.com/mcp` 处的 HTTP 服务器 | 阻止:不匹配任何 URL 模式 |

422> | 具有任何命令的 Stdio 服务器 | 阻止:没有名称或命令条目可匹配 |422> | 具有任何命令的 Stdio 服务器 | 阻止:没有名称或命令条目可匹配 |

423 423 

424> **仅命令允许列表**424> [accordion] 仅命令允许列表

425>425>

426> ```json theme={null}426> ```json theme={null}

427> {427> {


437> | 具有 `["node", "server.js"]` 的 Stdio 服务器 | 阻止:不匹配命令 |437> | 具有 `["node", "server.js"]` 的 Stdio 服务器 | 阻止:不匹配命令 |

438> | 名为 `my-api` 的 HTTP 服务器 | 阻止:没有名称条目可匹配 |438> | 名为 `my-api` 的 HTTP 服务器 | 阻止:没有名称条目可匹配 |

439 439 

440> **混合名称和命令允许列表**440> [accordion] 混合名称和命令允许列表

441>441>

442> ```json theme={null}442> ```json theme={null}

443> {443> {


456> | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |456> | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |

457> | 名为 `other-api` 的 HTTP 服务器 | 阻止:名称不匹配 |457> | 名为 `other-api` 的 HTTP 服务器 | 阻止:名称不匹配 |

458 458 

459> **仅名称允许列表**459> [accordion] 仅名称允许列表

460>460>

461> ```json theme={null}461> ```json theme={null}

462> {462> {


474> | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |474> | 名为 `github` 的 HTTP 服务器 | 允许:匹配名称 |

475> | 任何名为 `other` 的服务器 | 阻止:名称不匹配 |475> | 任何名为 `other` 的服务器 | 阻止:名称不匹配 |

476 476 

477> **带拒绝列表覆盖的允许列表**477> [accordion] 带拒绝列表覆盖的允许列表

478>478>

479> ```json theme={null}479> ```json theme={null}

480> {480> {

mcp.md +35 −35

Details

1039 1039 

1040这些选项卡涵盖两个命令:`claude mcp add` 将您的客户端 ID 和回调端口作为标志,`claude mcp add-json` 在 `oauth` 对象中获取它们。如果您注册了重定向 URI,请将回调端口设置为该 URI 中的端口。1040这些选项卡涵盖两个命令:`claude mcp add` 将您的客户端 ID 和回调端口作为标志,`claude mcp add-json` 在 `oauth` 对象中获取它们。如果您注册了重定向 URI,请将回调端口设置为该 URI 中的端口。

1041 1041 

1042**claude mcp add**1042> [tab] claude mcp add

1043 1043>

1044使用 `--client-id` 传递您的应用的客户端 ID。`--client-secret` 标志使用掩码输入提示输入密钥:1044> 使用 `--client-id` 传递您的应用的客户端 ID。`--client-secret` 标志使用掩码输入提示输入密钥:

1045 1045>

1046```bash theme={null}1046> ```bash theme={null}

1047claude mcp add --transport http \1047> claude mcp add --transport http \

1048 --client-id your-client-id --client-secret --callback-port 8080 \1048> --client-id your-client-id --client-secret --callback-port 8080 \

1049 my-server https://mcp.example.com/mcp1049> my-server https://mcp.example.com/mcp

1050```1050> ```

1051 

1052**claude mcp add-json**

1053 

1054在 JSON 配置中包含 `oauth` 对象,并将 `--client-secret` 作为单独的标志传递:

1055 

1056```bash theme={null}

1057claude mcp add-json my-server \

1058 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' \

1059 --client-secret

1060```

1061 

1062**claude mcp add-json (仅回调端口)**

1063 

1064要仅固定回调端口并让 Claude Code 自动注册客户端,请单独设置 `callbackPort`:

1065 

1066```bash theme={null}

1067claude mcp add-json my-server \

1068 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"callbackPort":8080}}'

1069```

1070 1051 

1071**CI / 环境变量**1052> [tab] claude mcp add-json

1053>

1054> 在 JSON 配置中包含 `oauth` 对象,并将 `--client-secret` 作为单独的标志传递:

1055>

1056> ```bash theme={null}

1057> claude mcp add-json my-server \

1058> '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' \

1059> --client-secret

1060> ```

1072 1061 

1073通过环境变量设置密钥以跳过交互式提示:1062> [tab] claude mcp add-json (仅回调端口)

1063>

1064> 要仅固定回调端口并让 Claude Code 自动注册客户端,请单独设置 `callbackPort`:

1065>

1066> ```bash theme={null}

1067> claude mcp add-json my-server \

1068> '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"callbackPort":8080}}'

1069> ```

1074 1070 

1075```bash theme={null}1071> [tab] CI / 环境变量

1076MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \1072>

1077 --client-id your-client-id --client-secret --callback-port 8080 \1073> 通过环境变量设置密钥以跳过交互式提示:

1078 my-server https://mcp.example.com/mcp1074>

1079```1075> ```bash theme={null}

1076> MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \

1077> --client-id your-client-id --client-secret --callback-port 8080 \

1078> my-server https://mcp.example.com/mcp

1079> ```

1080 1080 

1081**3. 在 Claude Code 中进行身份验证**1081**3. 在 Claude Code 中进行身份验证**

1082 1082 

Details

286 286 

287如果服务器不连接,请在会话内使用 `/mcp` 或从 shell 使用 `claude mcp list` 检查其状态,然后匹配下面的症状。`/mcp` 面板还允许您重新连接或进行身份验证而无需离开会话。287如果服务器不连接,请在会话内使用 `/mcp` 或从 shell 使用 `claude mcp list` 检查其状态,然后匹配下面的症状。`/mcp` 面板还允许您重新连接或进行身份验证而无需离开会话。

288 288 

289> **/mcp 显示未配置 MCP 服务器**289> [accordion] /mcp 显示未配置 MCP 服务器

290>290>

291> Claude Code 没有为当前目录找到任何服务器。最常见的原因:291> Claude Code 没有为当前目录找到任何服务器。最常见的原因:

292>292>


294> * 您在错误的路径编辑了配置文件。正确的文件是 `~/.claude.json` 和 `<project>/.mcp.json`。Claude Code 不读取 `~/.claude/.mcp.json`、`~/.claude/config/mcp.json`、`~/.claude/mcp.json` 或 `%APPDATA%\Claude\mcp.json` 等路径。对于用户范围的服务器,运行 `claude mcp add --scope user`,它会写入 `~/.claude.json` 中的 `mcpServers` 密钥;对于项目范围的服务器,编辑项目根目录中的 `.mcp.json`。294> * 您在错误的路径编辑了配置文件。正确的文件是 `~/.claude.json` 和 `<project>/.mcp.json`。Claude Code 不读取 `~/.claude/.mcp.json`、`~/.claude/config/mcp.json`、`~/.claude/mcp.json` 或 `%APPDATA%\Claude\mcp.json` 等路径。对于用户范围的服务器,运行 `claude mcp add --scope user`,它会写入 `~/.claude.json` 中的 `mcpServers` 密钥;对于项目范围的服务器,编辑项目根目录中的 `.mcp.json`。

295> * 您在 `.mcp.json` 中写入了格式错误的条目。Claude Code 跳过该条目并仍然加载其他条目。从 shell 运行 `claude mcp list` 并查找解析警告,该警告会命名有问题的字段。295> * 您在 `.mcp.json` 中写入了格式错误的条目。Claude Code 跳过该条目并仍然加载其他条目。从 shell 运行 `claude mcp list` 并查找解析警告,该警告会命名有问题的字段。

296 296 

297> **状态显示连接失败或连接错误**297> [accordion] 状态显示连接失败或连接错误

298>298>

299> 两种状态都意味着服务器没有启动或 URL 没有响应。对于拒绝您在 `headers.Authorization` 中配置的令牌的 HTTP 服务器,它们也可能出现;需要您尚未配置的令牌的服务器会显示 `! Needs authentication`,在[连接需要登录的服务器](#connect-a-server-that-requires-sign-in)中介绍。299> 两种状态都意味着服务器没有启动或 URL 没有响应。对于拒绝您在 `headers.Authorization` 中配置的令牌的 HTTP 服务器,它们也可能出现;需要您尚未配置的令牌的服务器会显示 `! Needs authentication`,在[连接需要登录的服务器](#connect-a-server-that-requires-sign-in)中介绍。

300>300>


334> 运行 `claude mcp get <name>` 并确认那里显示的命令与您刚刚运行的命令匹配。如果显示的命令与您键入的不同,您可能在服务器命令之前省略了 `--` 分隔符。删除服务器并使用 `--` 重新添加它。如果您手工编写了 `.mcp.json`,请检查其语法和位置。在 v2.1.285 之前,`claude mcp get` 对于保存时没有 `type` 字段的 stdio 条目(例如手工编写的 `.mcp.json` 条目)不打印 `Command` 行。在这些版本上,运行 `claude mcp list` 代替,它无论如何都会打印命令行。334> 运行 `claude mcp get <name>` 并确认那里显示的命令与您刚刚运行的命令匹配。如果显示的命令与您键入的不同,您可能在服务器命令之前省略了 `--` 分隔符。删除服务器并使用 `--` 重新添加它。如果您手工编写了 `.mcp.json`,请检查其语法和位置。在 v2.1.285 之前,`claude mcp get` 对于保存时没有 `type` 字段的 stdio 条目(例如手工编写的 `.mcp.json` 条目)不打印 `Command` 行。在这些版本上,运行 `claude mcp list` 代替,它无论如何都会打印命令行。

335> * 命令出错:消息命名缺少的内容,例如 Node.js 或浏览器。335> * 命令出错:消息命名缺少的内容,例如 Node.js 或浏览器。

336 336 

337> **连接在启动时超时**337> [accordion] 连接在启动时超时

338>338>

339> 服务器花费的时间超过了默认的 30 秒启动超时。stdio 服务器的第一次运行在 `npx` 下载包时可能很慢。使用 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-CN/env-vars) 环境变量(以毫秒为单位)增加限制:339> 服务器花费的时间超过了默认的 30 秒启动超时。stdio 服务器的第一次运行在 `npx` 下载包时可能很慢。使用 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-CN/env-vars) 环境变量(以毫秒为单位)增加限制:

340>340>


350>350>

351> 在 v2.1.299 之前,某些到已启动的 HTTP 服务器的连接会在启动时超时,与 `MCP_TIMEOUT` 无关。如果您使用的是这些版本之一,并且在提高限制后已启动的 HTTP 服务器仍然超时,请[更新 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#update-claude-code)。351> 在 v2.1.299 之前,某些到已启动的 HTTP 服务器的连接会在启动时超时,与 `MCP_TIMEOUT` 无关。如果您使用的是这些版本之一,并且在提高限制后已启动的 HTTP 服务器仍然超时,请[更新 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#update-claude-code)。

352 352 

353> **服务器已存在**353> [accordion] 服务器已存在

354>354>

355> 您已在同一范围内添加了具有该名称的服务器。要么先删除现有条目,要么选择不同的名称:355> 您已在同一范围内添加了具有该名称的服务器。要么先删除现有条目,要么选择不同的名称:

356>356>


360>360>

361> 如果名称存在于多个范围内,`remove` 报告 `exists in multiple scopes`。传递 `--scope` 以选择要删除的副本,例如 `claude mcp remove claude-code-docs --scope local`。361> 如果名称存在于多个范围内,`remove` 报告 `exists in multiple scopes`。传递 `--scope` 以选择要删除的副本,例如 `claude mcp remove claude-code-docs --scope local`。

362 362 

363> **服务器连接但没有工具出现**363> [accordion] 服务器连接但没有工具出现

364>364>

365> 在会话内运行 `/mcp` 并选择服务器以查看其工具列表。如果列表为空,服务器启动但没有注册任何工具,这通常意味着它缺少必需的环境变量,例如 API 密钥。365> 在会话内运行 `/mcp` 并选择服务器以查看其工具列表。如果列表为空,服务器启动但没有注册任何工具,这通常意味着它缺少必需的环境变量,例如 API 密钥。

366>366>


368>368>

369> 在 v2.1.302 之前,对于使用[协议修订版 2026-07-28](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes) 且在其响应中省略了 `resultType`、`ttlMs` 或 `cacheScope` 的服务器,`/mcp` 会显示状态 `tools fetch failed`。如果您使用的是这些版本之一,并且服务器显示该状态,请[更新 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#update-claude-code)。369> 在 v2.1.302 之前,对于使用[协议修订版 2026-07-28](https://code.claude.com/docs/zh-CN/mcp.md#mcp-client-runtimes) 且在其响应中省略了 `resultType`、`ttlMs` 或 `cacheScope` 的服务器,`/mcp` 会显示状态 `tools fetch failed`。如果您使用的是这些版本之一,并且服务器显示该状态,请[更新 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#update-claude-code)。

370 370 

371> **.mcp.json 的更改不生效**371> [accordion] .mcp.json 的更改不生效

372>372>

373> Claude Code 在会话启动时读取 `.mcp.json`。编辑文件后退出并重新启动会话。373> Claude Code 在会话启动时读取 `.mcp.json`。编辑文件后退出并重新启动会话。

374>374>


380> claude mcp reset-project-choices380> claude mcp reset-project-choices

381> ```381> ```

382 382 

383> **OAuth 登录失败或浏览器不打开**383> [accordion] OAuth 登录失败或浏览器不打开

384>384>

385> 运行 `/mcp`,选择服务器,然后再次选择 `Authenticate`。如果浏览器没有自动打开,复制终端中显示的 URL 并手动打开它。有关固定回调端口和预配置凭据,请参阅[使用远程 MCP 服务器进行身份验证](https://code.claude.com/docs/zh-CN/mcp.md#authenticate-with-remote-mcp-servers)。385> 运行 `/mcp`,选择服务器,然后再次选择 `Authenticate`。如果浏览器没有自动打开,复制终端中显示的 URL 并手动打开它。有关固定回调端口和预配置凭据,请参阅[使用远程 MCP 服务器进行身份验证](https://code.claude.com/docs/zh-CN/mcp.md#authenticate-with-remote-mcp-servers)。

386 386 

mobile.md +2 −2

Details

39| [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 云基础设施上的会话,默认由 Anthropic 托管 | 您的存储库在 GitHub 上,任务应在您放下手机后继续运行。请参阅[云快速入门](https://code.claude.com/docs/zh-CN/web-quickstart.md)进行设置。 |39| [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 云基础设施上的会话,默认由 Anthropic 托管 | 您的存储库在 GitHub 上,任务应在您放下手机后继续运行。请参阅[云快速入门](https://code.claude.com/docs/zh-CN/web-quickstart.md)进行设置。 |

40| [项目](https://code.claude.com/docs/zh-CN/claude-projects.md) | Claude 协调平行工作线程并报告回复的对话 | 您有一系列相关工作而不是一个任务,并且想要查看哪些线程已完成或需要您。 |40| [项目](https://code.claude.com/docs/zh-CN/claude-projects.md) | Claude 协调平行工作线程并报告回复的对话 | 您有一系列相关工作而不是一个任务,并且想要查看哪些线程已完成或需要您。 |

41| [远程控制](https://code.claude.com/docs/zh-CN/remote-control.md) | 在您的计算机上运行的 Claude Code 会话 | 工作需要您的本地文件系统、工具或 MCP 服务器。 |41| [远程控制](https://code.claude.com/docs/zh-CN/remote-control.md) | 在您的计算机上运行的 Claude Code 会话 | 工作需要您的本地文件系统、工具或 MCP 服务器。 |

42| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 您计算机上的桌面应用程序 | 您想消息传递一个任务,让 Dispatch 决定如何运行它。需要 Pro 或 Max 计划。 |42| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 您计算机上的桌面应用程序 | 您想消息传递一个任务,让 Dispatch 决定如何运行它。需要 Pro、Max 或 Ultra 计划。 |

43 43 

44如果您的计算机将关闭,请使用云会话或项目,它们在云中运行,并在您的笔记本电脑关闭后继续运行。远程控制和 Dispatch 驱动您自己的机器,因此它需要保持打开状态并运行 Claude Code 或桌面应用程序。如果您的机器在远程控制会话期间进入睡眠状态,Claude Code 会在机器重新上线时重新连接。44如果您的计算机将关闭,请使用云会话或项目,它们在云中运行,并在您的笔记本电脑关闭后继续运行。远程控制和 Dispatch 驱动您自己的机器,因此它需要保持打开状态并运行 Claude Code 或桌面应用程序。如果您的机器在远程控制会话期间进入睡眠状态,Claude Code 会在机器重新上线时重新连接。

45 45 


76 76 

77* **仅限本地命令**:仅在终端界面中运行的命令,例如 `/plugin` 和 `/resume`,无法从应用程序中工作。[远程控制限制](https://code.claude.com/docs/zh-CN/remote-control.md#limitations)列出了从移动设备工作的命令以及它们的行为如何不同。77* **仅限本地命令**:仅在终端界面中运行的命令,例如 `/plugin` 和 `/resume`,无法从应用程序中工作。[远程控制限制](https://code.claude.com/docs/zh-CN/remote-control.md#limitations)列出了从移动设备工作的命令以及它们的行为如何不同。

78* **权限模式**:云端会话提供接受编辑、Plan 和 Auto,Remote Control 会话提供 Manual、接受编辑、Plan 和 Auto。在任何一种情况下,您都无法从应用程序中选择 Bypass permissions。有关 Auto 何时可用,请参阅[切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)。78* **权限模式**:云端会话提供接受编辑、Plan 和 Auto,Remote Control 会话提供 Manual、接受编辑、Plan 和 Auto。在任何一种情况下,您都无法从应用程序中选择 Bypass permissions。有关 Auto 何时可用,请参阅[切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)。

79* **Dispatch 计划**:Dispatch 需要 Pro 或 Max 计划,在 Team 或 Enterprise 上不可用。79* **Dispatch 计划**:Dispatch 需要 Pro、Max 或 Ultra 计划,在 Team 或 Enterprise 上不可用。

80 80 

81## 相关资源81## 相关资源

82 82 

model-config.md +4 −4

Details

455 455 

456`default` 的行为取决于您的账户类型:456`default` 的行为取决于您的账户类型:

457 457 

458* **Pro、Max、Team、Enterprise 和 Anthropic API**:默认为 Opus 5.5458* **Pro、Max、Ultra、Team、Enterprise 和 Anthropic API**:默认为 Opus 5.5

459* **Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform**:默认为 Opus 5.5459* **Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform**:默认为 Opus 5.5

460* **Microsoft Foundry**:默认为 Sonnet 4.5460* **Microsoft Foundry**:默认为 Sonnet 4.5

461 461 

462在 v2.1.280 之前,`default` 在 Pro 和 Team Standard 上解析为 Sonnet 5,在 Max、Team Premium、Enterprise、Anthropic API、Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.219 开始解析为 Opus 5。在 v2.1.219 之前,`default` 在 Anthropic API、Max、Team Premium 和 Enterprise 按量付费上从 v2.1.154 开始解析为 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.207 开始解析为 Opus 4.8。在 v2.1.207 之前,`default` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud's Agent Platform 上解析为 Sonnet 4.5。462在 v2.1.280 之前,`default` 在 Pro 和 Team Standard 上解析为 Sonnet 5,在 Max、Ultra、Team Premium、Enterprise、Anthropic API、Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.219 开始解析为 Opus 5。在 v2.1.219 之前,`default` 在 Anthropic API、Max、Ultra、Team Premium 和 Enterprise 按量付费上从 v2.1.154 开始解析为 Opus 4.8,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上从 v2.1.207 开始解析为 Opus 4.8。在 v2.1.207 之前,`default` 在 Claude Platform on AWS 上解析为 Opus 4.7,在 Amazon Bedrock 和 Google Cloud's Agent Platform 上解析为 Sonnet 4.5。

463 463 

464当管理员设置了[组织默认模型](#organization-default-model)时,`default` 会解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。`default` 也可以解析为您使用 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 设置的模型,具体条件见其部分说明,或解析为[记录在您账户上的](#setting-your-model)模型。464当管理员设置了[组织默认模型](#organization-default-model)时,`default` 会解析为该模型,而不是上面的账户类型默认值。需要 Claude Code v2.1.196 或更高版本。`default` 也可以解析为您使用 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 设置的模型,具体条件见其部分说明,或解析为[记录在您账户上的](#setting-your-model)模型。

465 465 


758 758 

759Fable 5.1、Fable 5、Sonnet 5 及更高版本、Haiku 5.5 和 Opus 4.7 及更高版本默认运行 1M 窗口,无需 `[1m]` 后缀。这包括 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的会话,以及 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话。要改为以 200K 窗口运行它们,请参阅[关闭 1M 上下文](#turn-off-1m-context)。759Fable 5.1、Fable 5、Sonnet 5 及更高版本、Haiku 5.5 和 Opus 4.7 及更高版本默认运行 1M 窗口,无需 `[1m]` 后缀。这包括 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上的会话,以及 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话。要改为以 200K 窗口运行它们,请参阅[关闭 1M 上下文](#turn-off-1m-context)。

760 760 

761Opus 4.6 和 Sonnet 4.6 仅通过其 `[1m]` 变体达到 1M,对该变体的访问取决于您的套餐。在 Max、Team 和 Enterprise 套餐上,包括 Team Standard 和 Team Premium 席位,Opus 4.6 与 1M 上下文包含在您的订阅中。Sonnet 4.6 与 1M 上下文在每个订阅套餐上都需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。761Opus 4.6 和 Sonnet 4.6 仅通过其 `[1m]` 变体达到 1M,对该变体的访问取决于您的套餐。在 Max、Ultra、Team 和 Enterprise 套餐上,包括 Team Standard 和 Team Premium 席位,Opus 4.6 与 1M 上下文包含在您的订阅中。Sonnet 4.6 与 1M 上下文在每个订阅套餐上都需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max 和 Ultra。

762 762 

763| 套餐 | Opus 4.6 与 1M 上下文 | Sonnet 4.6 与 1M 上下文 |763| 套餐 | Opus 4.6 与 1M 上下文 | Sonnet 4.6 与 1M 上下文 |

764| - | - | - |764| - | - | - |

765| Max、Team 和 Enterprise | 包含在订阅中 | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |765| Max、Ultra、Team 和 Enterprise | 包含在订阅中 | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

766| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |766| Pro | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用额度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

767| API 和按量付费 | 完全访问 | 完全访问 |767| API 和按量付费 | 完全访问 | 完全访问 |

768 768 

overview.md +119 −119

Details

16 16 

17Claude Code 在多个平台上运行:终端、IDE 扩展、桌面应用和网络。从下面的标签页中选择一个来开始使用。大多数平台需要 [Claude 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_pricing) 或 [Anthropic 控制台](https://platform.claude.com/) 账户。终端 CLI、VS Code 和 JetBrains 也支持[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)。17Claude Code 在多个平台上运行:终端、IDE 扩展、桌面应用和网络。从下面的标签页中选择一个来开始使用。大多数平台需要 [Claude 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_pricing) 或 [Anthropic 控制台](https://platform.claude.com/) 账户。终端 CLI、VS Code 和 JetBrains 也支持[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)。

18 18 

19**Terminal**19> [tab] Terminal

20 20>

21功能完整的 CLI,用于直接在终端中使用 Claude Code。编辑文件、运行命令,并从命令行管理整个项目。21> 功能完整的 CLI,用于直接在终端中使用 Claude Code。编辑文件、运行命令,并从命令行管理整个项目。

22 22>

23要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。23> 要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。

24 24>

25**原生安装(推荐)**25> > [tab] 原生安装(推荐)

26 26> >

27**macOS、Linux、WSL:**27> > **macOS、Linux、WSL:**

28 28> >

29```bash theme={null}29> > ```bash theme={null}

30curl -fsSL https://claude.ai/install.sh | bash30> > curl -fsSL https://claude.ai/install.sh | bash

31```31> > ```

32 32> >

33在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。33> > 在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。

34 34> >

35**Windows PowerShell:**35> > **Windows PowerShell:**

36 36> >

37```powershell theme={null}37> > ```powershell theme={null}

38irm https://claude.ai/install.ps1 | iex38> > irm https://claude.ai/install.ps1 | iex

39```39> > ```

40 40> >

41**Windows CMD:**41> > **Windows CMD:**

42 42> >

43```batch theme={null}43> > ```batch theme={null}

44curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd44> > curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

45```45> > ```

46 46> >

47安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。47> > 安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。

48 48> >

49如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。49> > 如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。

50 50> >

51如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。51> > 如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。

52 52> >

53建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。53> > 建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。

54 54> >

55> [!NOTE]55> > > [!NOTE]

56> > >

57> > > 原生安装会在后台自动更新,以保持您使用最新版本。

58>

59> > [tab] Homebrew

60> >

61> > ```bash theme={null}

62> > brew install --cask claude-code

63> > ```

64> >

65> > Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

66> >

67> > > [!NOTE]

68> > >

69> > > Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。

70>

71> > [tab] WinGet

72> >

73> > ```powershell theme={null}

74> > winget install Anthropic.ClaudeCode

75> > ```

76> >

77> > > [!NOTE]

78> > >

79> > > WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。

80>

81> 您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。

82>

83> 然后在任何项目中启动 Claude Code。将 `your-project` 替换为你机器上项目目录的路径:

56>84>

57> 原生安装会在后台自动更新,以保持您使用最新版本。85> ```bash theme={null}

58 86> cd your-project

59**Homebrew**87> claude

60 88> ```

61```bash theme={null}

62brew install --cask claude-code

63```

64 

65Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

66 

67> [!NOTE]

68>89>

69> Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。90> 首次使用时,Claude Code 会提示您登录。如果您已设置 `ANTHROPIC_API_KEY` 环境变量,并在 Claude Code 询问是否使用该密钥时予以批准,Claude Code 将跳过登录提示。[继续快速入门 →](https://code.claude.com/docs/zh-CN/quickstart.md)

70 

71**WinGet**

72 

73```powershell theme={null}

74winget install Anthropic.ClaudeCode

75```

76 

77> [!NOTE]

78>91>

79> WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。92> > [!TIP]

80 93> >

81您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。94> > 查看[高级设置](https://code.claude.com/docs/zh-CN/setup.md)了解安装选项、手动更新或卸载说明。如果遇到问题,请访问[安装故障排除](https://code.claude.com/docs/zh-CN/troubleshoot-install.md)。

82 

83然后在任何项目中启动 Claude Code。将 `your-project` 替换为你机器上项目目录的路径:

84 

85```bash theme={null}

86cd your-project

87claude

88```

89 

90首次使用时,Claude Code 会提示您登录。如果您已设置 `ANTHROPIC_API_KEY` 环境变量,并在 Claude Code 询问是否使用该密钥时予以批准,Claude Code 将跳过登录提示。[继续快速入门 →](https://code.claude.com/docs/zh-CN/quickstart.md)

91 95 

92> [!TIP]96> [tab] VS Code

93>97>

94> 查看[高级设置](https://code.claude.com/docs/zh-CN/setup.md)了解安装选项、手动更新或卸载说明。如果遇到问题,请访问[安装故障排除](https://code.claude.com/docs/zh-CN/troubleshoot-install.md)。98> VS Code 扩展在编辑器中直接提供内联差异、@-提及、计划审查和对话历史。

95 99>

96**VS Code**100> * [为 VS Code 安装](vscode:extension/anthropic.claude-code)

97 101> * [为 Cursor 安装](cursor:extension/anthropic.claude-code)

98VS Code 扩展在编辑器中直接提供内联差异、@-提及、计划审查和对话历史。102>

99 103> 或在扩展视图中搜索"Claude Code"(Mac 上为 `Cmd+Shift+X`,Windows/Linux 上为 `Ctrl+Shift+X`)。安装后,打开命令面板(`Cmd+Shift+P` / `Ctrl+Shift+P`),输入"Claude Code",然后选择**在新标签页中打开**。

100* [为 VS Code 安装](vscode:extension/anthropic.claude-code)104>

101* [为 Cursor 安装](cursor:extension/anthropic.claude-code)105> [开始使用 VS Code →](https://code.claude.com/docs/zh-CN/vs-code.md#get-started)

102 

103或在扩展视图中搜索"Claude Code"(Mac 上为 `Cmd+Shift+X`,Windows/Linux 上为 `Ctrl+Shift+X`)。安装后,打开命令面板(`Cmd+Shift+P` / `Ctrl+Shift+P`),输入"Claude Code",然后选择**在新标签页中打开**。

104 

105[开始使用 VS Code →](https://code.claude.com/docs/zh-CN/vs-code.md#get-started)

106 

107**Desktop app**

108 

109一个独立应用,用于在 IDE 或终端之外运行 Claude Code。直观地查看差异、并行运行多个会话、安排定期任务,并启动云会话。

110 

111下载并安装:

112 

113* [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)(Intel 和 Apple Silicon)

114* [Windows](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)(x64)

115* [Windows ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)

116* 在 Ubuntu 或 Debian 上,该应用处于测试阶段,可通过 apt 安装,请按照 [Linux 安装说明](https://code.claude.com/docs/zh-CN/desktop-linux.md) 进行操作

117 

118安装后,启动 Claude,登录,然后点击**代码**标签开始编码。该应用包含 Claude Code,因此你无需单独安装 CLI。需要[付费订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_desktop_pricing)。

119 

120[了解更多关于桌面应用的信息 →](https://code.claude.com/docs/zh-CN/desktop-quickstart.md)

121 

122**Web**

123 

124在浏览器中运行 Claude Code,无需本地设置。启动长时间运行的任务,完成后再检查,处理你本地没有的仓库,或并行运行多个任务。对于较长的工作,创建一个[项目](https://code.claude.com/docs/zh-CN/claude-projects.md),让 Claude 为你协调并行会话。可在桌面浏览器和 [Claude iOS 和 Android 应用](https://code.claude.com/docs/zh-CN/mobile.md)中使用。

125 

126在 [claude.ai/code](https://claude.ai/code) 开始编码。

127 

128[开始在网络上使用 →](https://code.claude.com/docs/zh-CN/web-quickstart.md)

129 

130**JetBrains**

131 106 

132一个用于 IntelliJ IDEA、PyCharm、WebStorm 和其他 JetBrains IDE 的插件,具有交互式差异查看和选择上下文共享。107> [tab] Desktop app

108>

109> 一个独立应用,用于在 IDE 或终端之外运行 Claude Code。直观地查看差异、并行运行多个会话、安排定期任务,并启动云会话。

110>

111> 下载并安装:

112>

113> * [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)(Intel 和 Apple Silicon)

114> * [Windows](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)(x64)

115> * [Windows ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)

116> * 在 Ubuntu 或 Debian 上,该应用处于测试阶段,可通过 apt 安装,请按照 [Linux 安装说明](https://code.claude.com/docs/zh-CN/desktop-linux.md) 进行操作

117>

118> 安装后,启动 Claude,登录,然后点击**代码**标签开始编码。该应用包含 Claude Code,因此你无需单独安装 CLI。需要[付费订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_desktop_pricing)。

119>

120> [了解更多关于桌面应用的信息 →](https://code.claude.com/docs/zh-CN/desktop-quickstart.md)

133 121 

134从 JetBrains Marketplace 安装 [Claude Code 插件](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-),然后重启你的 IDE。该插件需要单独安装 Claude Code CLI;请参阅 [JetBrains 设置步骤](https://code.claude.com/docs/zh-CN/jetbrains.md#installation)。122> [tab] Web

123>

124> 在浏览器中运行 Claude Code,无需本地设置。启动长时间运行的任务,完成后再检查,处理你本地没有的仓库,或并行运行多个任务。对于较长的工作,创建一个[项目](https://code.claude.com/docs/zh-CN/claude-projects.md),让 Claude 为你协调并行会话。可在桌面浏览器和 [Claude iOS 和 Android 应用](https://code.claude.com/docs/zh-CN/mobile.md)中使用。

125>

126> 在 [claude.ai/code](https://claude.ai/code) 开始编码。

127>

128> [开始在网络上使用 →](https://code.claude.com/docs/zh-CN/web-quickstart.md)

135 129 

136[开始使用 JetBrains →](https://code.claude.com/docs/zh-CN/jetbrains.md)130> [tab] JetBrains

131>

132> 一个用于 IntelliJ IDEA、PyCharm、WebStorm 和其他 JetBrains IDE 的插件,具有交互式差异查看和选择上下文共享。

133>

134> 从 JetBrains Marketplace 安装 [Claude Code 插件](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-),然后重启你的 IDE。该插件需要单独安装 Claude Code CLI;请参阅 [JetBrains 设置步骤](https://code.claude.com/docs/zh-CN/jetbrains.md#installation)。

135>

136> [开始使用 JetBrains →](https://code.claude.com/docs/zh-CN/jetbrains.md)

137 137 

138## 你可以做什么138## 你可以做什么

139 139 

140以下是你可以使用 Claude Code 的一些方式:140以下是你可以使用 Claude Code 的一些方式:

141 141 

142> **自动化你一直在推迟的工作**142> [accordion] 自动化你一直在推迟的工作

143>143>

144> Claude Code 处理那些占用你一整天的繁琐任务:为未测试的代码编写测试、修复项目中的 lint 错误、解决合并冲突、更新依赖项和编写发布说明。144> Claude Code 处理那些占用你一整天的繁琐任务:为未测试的代码编写测试、修复项目中的 lint 错误、解决合并冲突、更新依赖项和编写发布说明。

145>145>


147> claude "write tests for the auth module, run them, and fix any failures"147> claude "write tests for the auth module, run them, and fix any failures"

148> ```148> ```

149 149 

150> **构建功能和修复错误**150> [accordion] 构建功能和修复错误

151>151>

152> 用简单的语言描述你想要的内容。Claude Code 规划方法、跨多个文件编写代码,并验证其工作。152> 用简单的语言描述你想要的内容。Claude Code 规划方法、跨多个文件编写代码,并验证其工作。

153>153>

154> 对于错误,粘贴错误消息或描述症状。Claude Code 通过你的代码库追踪问题、识别根本原因并实施修复。查看[常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)了解更多示例。154> 对于错误,粘贴错误消息或描述症状。Claude Code 通过你的代码库追踪问题、识别根本原因并实施修复。查看[常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)了解更多示例。

155 155 

156> **创建提交和拉取请求**156> [accordion] 创建提交和拉取请求

157>157>

158> Claude Code 直接与 git 配合工作。它暂存更改、编写提交消息、创建分支并打开拉取请求。158> Claude Code 直接与 git 配合工作。它暂存更改、编写提交消息、创建分支并打开拉取请求。

159>159>


163>163>

164> 在 CI 中,您可以使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md) 自动化代码审查和问题分类。164> 在 CI 中,您可以使用 [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) 或 [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md) 自动化代码审查和问题分类。

165 165 

166> **使用 MCP 连接您的工具**166> [accordion] 使用 MCP 连接您的工具

167>167>

168> [Model Context Protocol (MCP)](https://code.claude.com/docs/zh-CN/mcp.md) 是一个开放标准,用于将 AI 工具连接到外部数据源。使用 MCP,Claude Code 可以读取 Google Drive 中的设计文档、更新 Jira 中的工单、从 Slack 拉取数据,或使用您自己的自定义工具。[MCP 快速入门](https://code.claude.com/docs/zh-CN/mcp-quickstart.md)将端到端地连接您的第一个服务器。168> [Model Context Protocol (MCP)](https://code.claude.com/docs/zh-CN/mcp.md) 是一个开放标准,用于将 AI 工具连接到外部数据源。使用 MCP,Claude Code 可以读取 Google Drive 中的设计文档、更新 Jira 中的工单、从 Slack 拉取数据,或使用您自己的自定义工具。[MCP 快速入门](https://code.claude.com/docs/zh-CN/mcp-quickstart.md)将端到端地连接您的第一个服务器。

169 169 

170> **使用指令、skill 和 hook 进行自定义**170> [accordion] 使用指令、skill 和 hook 进行自定义

171>171>

172> [`CLAUDE.md`](https://code.claude.com/docs/zh-CN/memory) 是一个 markdown 文件,您可以将其添加到项目根目录,Claude Code 会在每个会话开始时读取它。使用它来设置编码标准、架构决策、首选库和审查清单。如果您的仓库已经有一个供其他编码 Agent 使用的 `AGENTS.md`,Claude Code [可以读取它](https://code.claude.com/docs/zh-CN/memory.md#agents-md)来代替 `CLAUDE.md`。Claude 还会在工作时构建[自动记忆](https://code.claude.com/docs/zh-CN/memory.md#auto-memory),跨会话保存所学内容,无需您编写任何内容。172> [`CLAUDE.md`](https://code.claude.com/docs/zh-CN/memory) 是一个 markdown 文件,您可以将其添加到项目根目录,Claude Code 会在每个会话开始时读取它。使用它来设置编码标准、架构决策、首选库和审查清单。如果您的仓库已经有一个供其他编码 Agent 使用的 `AGENTS.md`,Claude Code [可以读取它](https://code.claude.com/docs/zh-CN/memory.md#agents-md)来代替 `CLAUDE.md`。Claude 还会在工作时构建[自动记忆](https://code.claude.com/docs/zh-CN/memory.md#auto-memory),跨会话保存所学内容,无需您编写任何内容。

173>173>


175>175>

176> [Hooks](https://code.claude.com/docs/zh-CN/hooks.md) 让你在 Claude Code 操作之前或之后运行 shell 命令,如在每次文件编辑后自动格式化或在提交前运行 lint。176> [Hooks](https://code.claude.com/docs/zh-CN/hooks.md) 让你在 Claude Code 操作之前或之后运行 shell 命令,如在每次文件编辑后自动格式化或在提交前运行 lint。

177 177 

178> **运行代理团队并构建自定义代理**178> [accordion] 运行代理团队并构建自定义代理

179>179>

180> 生成[多个 Claude Code 代理](https://code.claude.com/docs/zh-CN/sub-agents.md),同时处理任务的不同部分。主导代理协调工作、分配子任务并合并结果。180> 生成[多个 Claude Code 代理](https://code.claude.com/docs/zh-CN/sub-agents.md),同时处理任务的不同部分。主导代理协调工作、分配子任务并合并结果。

181>181>

182> 要在并行中运行多个完整会话并从一个屏幕观看它们,请使用[后台代理](https://code.claude.com/docs/zh-CN/agent-view.md)。对于完全自定义的工作流,[Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/overview.md) 让你构建由 Claude Code 的工具和功能驱动的自己的代理,完全控制编排、工具访问和权限。182> 要在并行中运行多个完整会话并从一个屏幕观看它们,请使用[后台代理](https://code.claude.com/docs/zh-CN/agent-view.md)。对于完全自定义的工作流,[Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/overview.md) 让你构建由 Claude Code 的工具和功能驱动的自己的代理,完全控制编排、工具访问和权限。

183 183 

184> **使用 CLI 进行管道、脚本和自动化**184> [accordion] 使用 CLI 进行管道、脚本和自动化

185>185>

186> Claude Code 是可组合的,遵循 Unix 哲学。将日志管道传入其中、在 CI 中运行它,或将其与其他工具链接:186> Claude Code 是可组合的,遵循 Unix 哲学。将日志管道传入其中、在 CI 中运行它,或将其与其他工具链接:

187>187>


198>198>

199> 查看 [CLI 参考](https://code.claude.com/docs/zh-CN/cli-reference.md)了解完整的命令和标志集。199> 查看 [CLI 参考](https://code.claude.com/docs/zh-CN/cli-reference.md)了解完整的命令和标志集。

200 200 

201> **安排定期任务**201> [accordion] 安排定期任务

202>202>

203> 按计划运行 Claude 以自动化重复的工作:早晨 PR 审查、夜间 CI 失败分析、每周依赖项审计或在 PR 合并后同步文档。203> 按计划运行 Claude 以自动化重复的工作:早晨 PR 审查、夜间 CI 失败分析、每周依赖项审计或在 PR 合并后同步文档。

204>204>


206> * [Desktop 定时任务](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md)在您的机器上运行,可直接访问您的本地文件和工具206> * [Desktop 定时任务](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md)在您的机器上运行,可直接访问您的本地文件和工具

207> * [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 在 CLI 会话中重复提示词以进行快速轮询207> * [`/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks) 在 CLI 会话中重复提示词以进行快速轮询

208 208 

209> **从任何地方工作**209> [accordion] 从任何地方工作

210>210>

211> 会话不受限于单一使用入口。当您的上下文改变时,在它们之间移动工作:211> 会话不受限于单一使用入口。当您的上下文改变时,在它们之间移动工作:

212>212>

permission-modes.md +140 −135

Details

8 8 

9权限模式设置 Claude 在会话中可以在不先询问您的情况下执行哪些操作。在 Manual 模式下,Claude Code 会在大多数编辑文件、运行 shell 命令或访问网络的操作前停止并询问您。在[自动模式](#eliminate-prompts-with-auto-mode)中,第二个模型(分类器)会审查操作而不是您;[分类器如何评估操作](#how-the-classifier-evaluates-actions)列出了它审查的操作以及哪些跳过它。9权限模式设置 Claude 在会话中可以在不先询问您的情况下执行哪些操作。在 Manual 模式下,Claude Code 会在大多数编辑文件、运行 shell 命令或访问网络的操作前停止并询问您。在[自动模式](#eliminate-prompts-with-auto-mode)中,第二个模型(分类器)会审查操作而不是您;[分类器如何评估操作](#how-the-classifier-evaluates-actions)列出了它审查的操作以及哪些跳过它。

10 10 

11在 Claude Code v2.1.283 或更高版本中,自动模式是交互式终端和 VS Code 会话的内置起始权限模式。在早期版本中,它仅在 Pro、Max 和 Team 计划上是内置的起始权限模式。[会话在哪个模式下启动](#which-mode-a-session-starts-in)涵盖了改变起始权限模式的表面和设置。您也可以随时更改正在运行的会话的权限模式。11在 Claude Code v2.1.283 或更高版本中,自动模式是交互式终端和 VS Code 会话的内置起始权限模式。在早期版本中,它仅在 Pro、Max、Ultra 和 Team 计划上是内置的起始权限模式。[会话在哪个模式下启动](#which-mode-a-session-starts-in)涵盖了改变起始权限模式的使用入口和设置。您也可以随时更改正在运行的会话的权限模式。

12 12 

13## 可用的模式13## 可用的模式

14 14 


80| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |80| 任何设置文件将 `disableAutoMode` 设置为 `"disable"` | `default` |

81| `claude -p` 或 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#permission-modes) | `default` |81| `claude -p` 或 [Agent SDK](https://code.claude.com/docs/zh-CN/agent-sdk/permissions.md#permission-modes) | `default` |

82| 您的组织已应用 [HIPAA 配置](#hipaa-configuration),且该会话[符合其适用条件](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect) | Claude Code v2.1.285 或更高版本中为 `default`;仍可切换到自动模式 |82| 您的组织已应用 [HIPAA 配置](#hipaa-configuration),且该会话[符合其适用条件](https://code.claude.com/docs/zh-CN/hipaa-setup.md#check-how-developers-sign-in-and-connect) | Claude Code v2.1.285 或更高版本中为 `default`;仍可切换到自动模式 |

83| 在终端或通过 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md) | Claude Code v2.1.283 或更高版本中为 `auto`;在较早的版本上,在 Pro、Max 或 Team 计划中为 `auto`(在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |83| 在终端或通过 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md) | Claude Code v2.1.283 或更高版本中为 `auto`;在较早的版本上,在 Pro、Max、Ultra 或 Team 计划中为 `auto`(在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中),否则为 `default` |

84 84 

85当标志、设置文件或内置默认值选择 `auto` 但自动模式对会话不可用时,Claude Code 以 Manual 启动会话。自动模式在会话不满足[可用性要求](#eliminate-prompts-with-auto-mode)时不可用,例如设置文件关闭它或不支持它的模型,或当 Anthropic 已在服务器端临时关闭它时。85当标志、设置文件或内置默认值选择 `auto` 但自动模式对会话不可用时,Claude Code 以 Manual 启动会话。自动模式在会话不满足[可用性要求](#eliminate-prompts-with-auto-mode)时不可用,例如设置文件关闭它或不支持它的模型,或当 Anthropic 已在服务器端临时关闭它时。

86 86 


89* 在终端中,一次,在会话顶部89* 在终端中,一次,在会话顶部

90* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它90* 在 VS Code 扩展中,作为新对话屏幕上的卡片,保留直到您关闭它

91 91 

92如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。在 Pro、Max 和 Team 计划上,以及在[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中,Claude Code 在终端或 VS Code 扩展中询问一次是否将设置更改为自动模式。如果您拒绝,您的设置保持原样。92如果您的 `~/.claude/settings.json` 将 `defaultMode` 设置为 `auto` 以外的值,且没有其他设置文件设置它,您的会话继续以该模式启动。

93 

94在 Pro、Max、Ultra 和 Team 计划上,以及在[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中,Claude Code 会询问一次是否将设置更改为自动模式。该询问出现在终端或 VS Code 扩展中,如果您拒绝,您的设置保持原样。

93 95 

94### 在 `claude -p` 和 Agent SDK 运行中被拒绝的工具调用96### 在 `claude -p` 和 Agent SDK 运行中被拒绝的工具调用

95 97 


102 104 

103以下示例展示了 CLI 和每个 SDK 的自动模式写法:105以下示例展示了 CLI 和每个 SDK 的自动模式写法:

104 106 

105**CLI**107> [tab] CLI

106 108>

107```bash theme={null}109> ```bash theme={null}

108claude -p "Run the test suite and fix any failures" --permission-mode auto110> claude -p "Run the test suite and fix any failures" --permission-mode auto

109```111> ```

110 

111**TypeScript**

112 

113```typescript theme={null}

114const options = {

115 permissionMode: "auto"

116};

117```

118 

119**Python**

120 112 

121```python theme={null}113> [tab] TypeScript

122from claude_agent_sdk import ClaudeAgentOptions114>

115> ```typescript theme={null}

116> const options = {

117> permissionMode: "auto"

118> };

119> ```

123 120 

124options = ClaudeAgentOptions(permission_mode="auto")121> [tab] Python

125```122>

123> ```python theme={null}

124> from claude_agent_sdk import ClaudeAgentOptions

125>

126> options = ClaudeAgentOptions(permission_mode="auto")

127> ```

126 128 

127在 v2.1.302 之前,如果这些运行不[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching),例如在[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)上或设置了 `DISABLE_TELEMETRY` 时,它们可能以自动模式启动。129在 v2.1.302 之前,如果这些运行不[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching),例如在[第三方提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)上或设置了 `DISABLE_TELEMETRY` 时,它们可能以自动模式启动。

128 130 


166 168 

167每个界面都有自己的控件用于在会话期间切换权限模式,以及自己的方式来选择新会话启动的权限模式。选择您的界面以查看其控件。169每个界面都有自己的控件用于在会话期间切换权限模式,以及自己的方式来选择新会话启动的权限模式。选择您的界面以查看其控件。

168 170 

169**CLI**171> [tab] CLI

170 172>

171**在会话期间**:按 `Shift+Tab` 循环权限模式。从 `auto` 开始,第一次按下会切换到 `default`,之后循环依次为 `default` → `acceptEdits` → `plan`。可选模式在 `plan` 之后插入。状态栏显示活动模式为灰色 `⏸ manual mode on`(对于 `default`),或为 `⏵⏵ accept edits on`、`⏸ plan mode on`、`⏵⏵ auto mode on`、`⏵⏵ don't ask on` 或 `⏵⏵ bypass permissions on`。173> **在会话期间**:按 `Shift+Tab` 循环权限模式。从 `auto` 开始,第一次按下会切换到 `default`,之后循环依次为 `default` → `acceptEdits` → `plan`。可选模式在 `plan` 之后插入。状态栏显示活动模式为灰色 `⏸ manual mode on`(对于 `default`),或为 `⏵⏵ accept edits on`、`⏸ plan mode on`、`⏵⏵ auto mode on`、`⏵⏵ don't ask on` 或 `⏵⏵ bypass permissions on`。

172 174>

173请观察此片段中状态栏的变化,该会话以自动模式启动。每次按下 `Shift+Tab`,状态栏都会从 `auto mode on` 依次变为 `manual mode on`、`accept edits on`、`plan mode on`,然后回到 `auto mode on`。175> 请观察此片段中状态栏的变化,该会话以自动模式启动。每次按下 `Shift+Tab`,状态栏都会从 `auto mode on` 依次变为 `manual mode on`、`accept edits on`、`plan mode on`,然后回到 `auto mode on`。

174 176>

175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/tA-x-5L2YsYSVdee/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=tA-x-5L2YsYSVdee&q=85&s=3927dd62d59b01efd81b3578f2a6f971" aria-label="每次按下 Shift+Tab,Claude Code 输入框下方的状态栏都会变化:auto mode on、manual mode on、accept edits on、plan mode on,然后再次变为 auto mode on。" />177> <video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/tA-x-5L2YsYSVdee/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=tA-x-5L2YsYSVdee&q=85&s=3927dd62d59b01efd81b3578f2a6f971" aria-label="每次按下 Shift+Tab,Claude Code 输入框下方的状态栏都会变化:auto mode on、manual mode on、accept edits on、plan mode on,然后再次变为 auto mode on。" />

176 178>

177并非每个模式都在默认循环中:179> 并非每个模式都在默认循环中:

178 180>

179* `auto`:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现;循环到它会在没有确认提示的情况下切换权限模式181> * `auto`:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现;循环到它会在没有确认提示的情况下切换权限模式

180* `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、`--allow-dangerously-skip-permissions` 或[用户、`--settings` 或托管设置](https://code.claude.com/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启动后出现。`--allow-` 变体将权限模式添加到循环中而不激活它182> * `bypassPermissions`:在您使用 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、`--allow-dangerously-skip-permissions` 或[用户、`--settings` 或托管设置](https://code.claude.com/docs/zh-CN/settings-reference#permissions-defaultmode)中的 `permissions.defaultMode: "bypassPermissions"` 启动后出现。`--allow-` 变体将权限模式添加到循环中而不激活它

181* `dontAsk`:永远不会在循环中出现;使用 `--permission-mode dontAsk` 设置它183> * `dontAsk`:永远不会在循环中出现;使用 `--permission-mode dontAsk` 设置它

182 184>

183启用的可选模式在 `plan` 之后插入,`bypassPermissions` 优先,`auto` 最后。如果您同时启用了两者,您将在循环到 `auto` 的途中循环通过 `bypassPermissions`。185> 启用的可选模式在 `plan` 之后插入,`bypassPermissions` 优先,`auto` 最后。如果您同时启用了两者,您将在循环到 `auto` 的途中循环通过 `bypassPermissions`。

184 186>

185**从 Bash 权限提示**:在 Manual 和 `acceptEdits` 权限模式下,当[自动模式](#eliminate-prompts-with-auto-mode)可用时,Claude Code 将**是的,并切换到自动模式**添加到 Bash 命令的权限提示。选择它以批准命令并将会话切换到自动模式。[PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)提示不提供该选项。需要 Claude Code v2.1.247 或更高版本。187> **从 Bash 权限提示**:在 Manual 和 `acceptEdits` 权限模式下,当[自动模式](#eliminate-prompts-with-auto-mode)可用时,Claude Code 将**是的,并切换到自动模式**添加到 Bash 命令的权限提示。选择它以批准命令并将会话切换到自动模式。[PowerShell 工具](https://code.claude.com/docs/zh-CN/tools-reference.md#powershell-tool)提示不提供该选项。需要 Claude Code v2.1.247 或更高版本。

186 188>

187Claude Code 不会将该选项添加到由您的[`ask` 规则](https://code.claude.com/docs/zh-CN/permissions#manage-permissions)之一或[hook](https://code.claude.com/docs/zh-CN/hooks.md#pretooluse-decision-control)强制的提示,因为自动模式仍然向您显示这些提示,所以切换不会移除它们。189> Claude Code 不会将该选项添加到由您的[`ask` 规则](https://code.claude.com/docs/zh-CN/permissions#manage-permissions)之一或[hook](https://code.claude.com/docs/zh-CN/hooks.md#pretooluse-decision-control)强制的提示,因为自动模式仍然向您显示这些提示,所以切换不会移除它们。

188 190>

189**在启动时**:将权限模式作为标志传递。191> **在启动时**:将权限模式作为标志传递。

190 192>

191```bash theme={null}193> ```bash theme={null}

192claude --permission-mode plan194> claude --permission-mode plan

193```195> ```

194 196>

195**作为默认值**:在您想要的范围设置 `permissions.defaultMode`,如[以不同的权限模式启动](#start-in-a-different-mode)中所述。197> **作为默认值**:在您想要的范围设置 `permissions.defaultMode`,如[以不同的权限模式启动](#start-in-a-different-mode)中所述。

196 198>

197相同的 `--permission-mode` 标志适用于 `-p` 用于[非交互式运行](https://code.claude.com/docs/zh-CN/headless.md)。199> 相同的 `--permission-mode` 标志适用于 `-p` 用于[非交互式运行](https://code.claude.com/docs/zh-CN/headless.md)。

198 

199**VS Code**

200 

201**在会话期间**:点击提示框底部的模式指示器。它为此页面上的模式使用这些标签:

202 

203| UI 标签 | 模式 |

204| :- | :- |

205| Manual | `default` |

206| Edit automatically | `acceptEdits` |

207| Plan | `plan` |

208| Auto | `auto` |

209| Bypass permissions | `bypassPermissions` |

210 

211**作为默认值**:要固定对话启动的权限模式,请在您的 VS Code 用户设置中将 `claudeCode.initialPermissionMode` 设置为 `default`、`manual`、`acceptEdits`、`plan` 或 `bypassPermissions`。该设置不接受 `auto`;要以 Auto 启动,请将其保留未设置并从模式指示器中选择**Auto**一次,如下面的第 2 项所述。扩展在以下第一个适用的中启动每个新对话:

212 

2131. `claudeCode.initialPermissionMode`

2142. 您从模式指示器最后选择的模式,如果它是 Manual、Edit automatically 或 Auto。选择 Plan 或 Bypass permissions 仅适用于该对话

2153. 来自[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)或 `~/.claude/settings.json` 的 `permissions.defaultMode`

2164. 您的计划、提供商和组织设置的[内置默认值](#which-mode-a-session-starts-in)

217 

218扩展永远不会从项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 读取起始权限模式。当 `claudeCode.claudeProcessWrapper` 被设置时,第 3 和 4 项不适用:这些对话以 Manual 启动,除非第 1 或第 2 项设置权限模式。

219 

220在 v2.1.283 之前,第 3 项仅在 Pro、Max 和 Team 计划上应用,在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中。

221 

222当[自动模式可用](#eliminate-prompts-with-auto-mode)时,Auto 出现在模式指示器中。

223 

224Bypass permissions 需要扩展设置中的**Allow dangerously skip permissions**切换。没有它,权限模式不会出现在指示器中,来自第 1 或第 3 项的 `bypassPermissions` 值以 Manual 启动对话。来自任何项的 Auto 同样在自动模式不可用时以 Manual 启动对话。

225 

226有关扩展特定的详细信息,请参阅 [VS Code 指南](https://code.claude.com/docs/zh-CN/vs-code.md)。

227 

228**JetBrains**

229 

230JetBrains 插件在 IDE 终端中运行 Claude Code,因此切换权限模式的工作方式与 CLI 中相同:按 `Shift+Tab` 循环,或在启动时传递 `--permission-mode`。

231 

232**Desktop**

233 

234**在会话期间**:在 Code 选项卡中,使用输入框下方那一行中的模式选择器。并非每个模式都出现在选择器中:

235 

236* **Auto**:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现

237* **Bypass permissions**:在 Pro 和 Max 计划上需要 Desktop 设置中的**Allow bypass permissions mode**切换;在 Team 和 Enterprise 计划上,组织策略控制它

238 

239Cowork 不使用这些模式。它有自己的权限模式,需单独启用;在为您的账户启用超出其默认值的模式之前,它根本不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。

240 

241有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](https://code.claude.com/docs/zh-CN/desktop.md#choose-a-permission-mode)。

242 

243**作为默认值**:在[设置](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将权限模式应用于新的本地会话。

244 

245您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。

246 

247有关 `defaultMode` 在设置文件中的位置,请参阅[以不同的权限模式启动](#start-in-a-different-mode)下的示例。

248 

249**Web and mobile**

250 200 

251在 [claude.ai/code](https://claude.ai/code) 上,使用输入框下方那一行中的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:201> [tab] VS Code

202>

203> **在会话期间**:点击提示框底部的模式指示器。它为此页面上的模式使用这些标签:

204>

205> | UI 标签 | 模式 |

206> | :- | :- |

207> | Manual | `default` |

208> | Edit automatically | `acceptEdits` |

209> | Plan | `plan` |

210> | Auto | `auto` |

211> | Bypass permissions | `bypassPermissions` |

212>

213> **作为默认值**:要固定对话启动的权限模式,请在您的 VS Code 用户设置中将 `claudeCode.initialPermissionMode` 设置为 `default`、`manual`、`acceptEdits`、`plan` 或 `bypassPermissions`。该设置不接受 `auto`;要以 Auto 启动,请将其保留未设置并从模式指示器中选择**Auto**一次,如下面的第 2 项所述。扩展在以下第一个适用的中启动每个新对话:

214>

215> 1. `claudeCode.initialPermissionMode`

216> 2. 您从模式指示器最后选择的模式,如果它是 Manual、Edit automatically 或 Auto。选择 Plan 或 Bypass permissions 仅适用于该对话

217> 3. 来自[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)或 `~/.claude/settings.json` 的 `permissions.defaultMode`

218> 4. 您的计划、提供商和组织设置的[内置默认值](#which-mode-a-session-starts-in)

219>

220> 扩展永远不会从项目的 `.claude/settings.json` 或 `.claude/settings.local.json` 读取起始权限模式。当 `claudeCode.claudeProcessWrapper` 被设置时,第 3 和 4 项不适用:这些对话以 Manual 启动,除非第 1 或第 2 项设置权限模式。

221>

222> 在 v2.1.283 之前,第 3 项仅在 Pro、Max、Ultra 和 Team 计划上应用,在[获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话中。

223>

224> 当[自动模式可用](#eliminate-prompts-with-auto-mode)时,Auto 出现在模式指示器中。

225>

226> Bypass permissions 需要扩展设置中的**Allow dangerously skip permissions**切换。没有它,权限模式不会出现在指示器中,来自第 1 或第 3 项的 `bypassPermissions` 值以 Manual 启动对话。来自任何项的 Auto 同样在自动模式不可用时以 Manual 启动对话。

227>

228> 有关扩展特定的详细信息,请参阅 [VS Code 指南](https://code.claude.com/docs/zh-CN/vs-code.md)。

252 229 

253* **[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。230> [tab] JetBrains

254* 您本地机器上的 **[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](https://code.claude.com/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。231>

255 * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。232> JetBrains 插件在 IDE 终端中运行 Claude Code,因此切换权限模式的工作方式与 CLI 中相同:按 `Shift+Tab` 循环,或在启动时传递 `--permission-mode`。

256 * 由[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)或 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。

257 233 

258对于 Remote Control,运行会话的本地机器必须使用您的 claude.ai 账户登录;不支持 API 密钥。您也可以在启动该本地会话时设置起始权限模式:234> [tab] Desktop

235>

236> **在会话期间**:在 Code 选项卡中,使用输入框下方那一行中的模式选择器。并非每个模式都出现在选择器中:

237>

238> * **Auto**:当[自动模式可用](#eliminate-prompts-with-auto-mode)时出现

239> * **Bypass permissions**:在 Pro、Max 和 Ultra 计划上需要 Desktop 设置中的**Allow bypass permissions mode**切换;在 Team 和 Enterprise 计划上,组织策略控制它

240>

241> Cowork 不使用这些模式。它有自己的权限模式,需单独启用;在为您的账户启用超出其默认值的模式之前,它根本不显示模式选择器。请参阅 [Cowork 文档](https://claude.com/docs/cowork/overview)。

242>

243> 有关 desktop 特定的详细信息,请参阅 Desktop 指南中的[选择权限模式](https://code.claude.com/docs/zh-CN/desktop.md#choose-a-permission-mode)。

244>

245> **作为默认值**:在[设置](https://code.claude.com/docs/zh-CN/settings.md#where-settings-live)中设置 `defaultMode`。桌面应用读取与 CLI 相同的设置文件,并将权限模式应用于新的本地会话。

246>

247> 您在模式选择器中选择的模式会按文件夹记住,并对该文件夹优先于 `defaultMode`。Plan 是例外:选择它仅适用于当前会话。

248>

249> 有关 `defaultMode` 在设置文件中的位置,请参阅[以不同的权限模式启动](#start-in-a-different-mode)下的示例。

259 250 

260```bash theme={null}251> [tab] Web and mobile

261claude remote-control --permission-mode acceptEdits252>

262```253> 在 [claude.ai/code](https://claude.ai/code) 上,使用输入框下方那一行中的模式下拉菜单。在移动应用中,点击输入框中的 **+** 按钮,然后点击 **Permission**。云端会话和 Remote Control 会话提供不同的权限模式:

254>

255> * **[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:Accept edits、Plan 和 Auto。Accept edits 对应于 `default` 模式:云端会话预先批准文件编辑,无论模式如何,因此下拉菜单显示 Accept edits 而不是 Manual。云端会话仍然遵守设置中的 `defaultMode: "acceptEdits"`。Auto 模式仅在您的组织允许且所选模型支持时出现。Bypass permissions 不可用。

256> * 您本地机器上的 **[Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 会话**:Manual、Accept edits、Plan 和 Auto(对于您自己启动的会话),您无法从应用中选择 Bypass permissions。要使用 Auto,会话必须满足自动模式的[可用性要求](#eliminate-prompts-with-auto-mode)。对于在您的计算机上运行的项目线程,请参阅[在您自己的计算机上运行线程](https://code.claude.com/docs/zh-CN/claude-projects.md#run-a-thread-on-your-own-computer)。

257> * 除了 Bypass permissions,下拉菜单显示本地会话所在的权限模式,包括从终端设置的模式。它在应用或终端中权限模式更改时更新。

258> * 由[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)或 [VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)托管的会话在权限模式更改时向 claude.ai 报告,与在终端中托管的会话相同。

259>

260> 对于 Remote Control,运行会话的本地机器必须使用您的 claude.ai 账户登录;不支持 API 密钥。您也可以在启动该本地会话时设置起始权限模式:

261>

262> ```bash theme={null}

263> claude remote-control --permission-mode acceptEdits

264> ```

263 265 

264## 使用 acceptEdits 模式自动批准文件编辑266## 使用 acceptEdits 模式自动批准文件编辑

265 267 


327 329 

328自动模式让 Claude 无需经过常规权限提示即可执行操作。一个独立的分类器模型会在操作运行前对其进行审查,阻止任何超出您请求范围、针对无法识别的基础设施,或看起来受 Claude 读取的恶意内容驱动的操作。显式的 [ask 规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)仍会强制弹出提示。330自动模式让 Claude 无需经过常规权限提示即可执行操作。一个独立的分类器模型会在操作运行前对其进行审查,阻止任何超出您请求范围、针对无法识别的基础设施,或看起来受 Claude 读取的恶意内容驱动的操作。显式的 [ask 规则](https://code.claude.com/docs/zh-CN/permissions.md#manage-permissions)仍会强制弹出提示。

329 331 

330在 Claude Code v2.1.283 或更高版本中,对于所有计划和提供商,自动模式都是交互式终端和 VS Code 会话的[内置初始权限模式](#which-mode-a-session-starts-in)。在更早的版本中,它仅在 Pro、Max 和 Team 计划中是内置初始权限模式。332在 Claude Code v2.1.283 或更高版本中,对于所有计划和提供商,自动模式都是交互式终端和 VS Code 会话的[内置初始权限模式](#which-mode-a-session-starts-in)。在更早的版本中,它仅在 Pro、Max、Ultra 和 Team 计划中是内置初始权限模式。

331 333 

332分类器还会在 Claude Code 投递之前审查 Claude 通过 [`SendMessage`](https://code.claude.com/docs/zh-CN/tools-reference) 发送给另一个 Agent 的每条消息,无论是纯文本还是结构化的 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 消息,这在自动模式和[分类器审查命令时的计划模式](#analyze-before-you-edit-with-plan-mode)中均适用;发送审查需要 Claude Code v2.1.222 或更高版本。334分类器还会在 Claude Code 投递之前审查 Claude 通过 [`SendMessage`](https://code.claude.com/docs/zh-CN/tools-reference) 发送给另一个 Agent 的每条消息,无论是纯文本还是结构化的 [agent team](https://code.claude.com/docs/zh-CN/agent-teams.md) 消息,这在自动模式和[分类器审查命令时的计划模式](#analyze-before-you-edit-with-plan-mode)中均适用;发送审查需要 Claude Code v2.1.222 或更高版本。

333 335 


367 369 

368在自动模式下,Claude Code 可以在会话的模型请求中请求服务器检查由[决策顺序](#how-the-classifier-evaluates-actions)送交审查的操作,以代替发送其自身的分类器请求。以下会话会请求服务器审查:370在自动模式下,Claude Code 可以在会话的模型请求中请求服务器检查由[决策顺序](#how-the-classifier-evaluates-actions)送交审查的操作,以代替发送其自身的分类器请求。以下会话会请求服务器审查:

369 371 

370* **直接连接到 Anthropic API**:在交互式终端会话以及 `-p`、Agent SDK、[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)和[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)会话中,无论您的计划或账户类型如何,随 Anthropic 逐步推出而生效。在交互式终端会话中,Pro、Max 和 Team 计划需要 Claude Code v2.1.271 或更高版本,Enterprise 计划和 Claude API 账户需要 v2.1.278 或更高版本。在 `-p`、Agent SDK、VS Code 扩展和桌面应用会话中,需要 Claude Code v2.1.281 或更高版本。从 v2.1.282 起,[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话(例如因为您关闭了遥测)在任何类型的会话中都会默认请求服务器审查。372* **直接连接到 Anthropic API**:在交互式终端会话以及 `-p`、Agent SDK、[VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)和[桌面应用](https://code.claude.com/docs/zh-CN/desktop.md)会话中,无论您的计划或账户类型如何,随 Anthropic 逐步推出而生效。请根据以下最低 Claude Code 版本核对您的会话类型:

373 * 在交互式终端会话中,Pro、Max、Ultra 和 Team 计划请求服务器审查需要 Claude Code v2.1.271 或更高版本。在 Enterprise 计划和 Claude API 账户上,这些会话需要 v2.1.278 或更高版本。

374 * 在 `-p`、Agent SDK、VS Code 扩展和桌面应用会话中,请求服务器审查需要 Claude Code v2.1.281 或更高版本

375 * 从 v2.1.282 起,[不获取功能标志](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)的会话(例如因为您关闭了遥测)在任何类型的会话中都会默认请求服务器审查

371* **云提供商,或 LLM 网关或代理**:在 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向 [LLM 网关或代理](https://code.claude.com/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认请求服务器审查需要 Claude Code v2.1.278 或更高版本。376* **云提供商,或 LLM 网关或代理**:在 [Claude Platform on AWS](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,以及每当您将 `ANTHROPIC_BASE_URL` 指向 [LLM 网关或代理](https://code.claude.com/docs/zh-CN/llm-gateway)时,无论您的计划如何。默认请求服务器审查需要 Claude Code v2.1.278 或更高版本。

372* **已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话**:需要 Claude Code v2.1.280 或更高版本377* **已登录的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway) 会话**:需要 Claude Code v2.1.280 或更高版本

373* **Anthropic 托管环境中的[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:无论您的计划如何,当您在选择了 **Cloud** 的情况下从网页、移动应用或桌面应用启动该会话时。由[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)启动的会话会随 Anthropic 逐步推出而请求服务器审查。378* **Anthropic 托管环境中的[云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**:无论您的计划如何,当您在选择了 **Cloud** 的情况下从网页、移动应用或桌面应用启动该会话时。由[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)启动的会话会随 Anthropic 逐步推出而请求服务器审查。


566 571 

567以下各节介绍 Claude Code 评估操作的顺序、分类器如何审查子代理的工作,以及分类器调用在成本和延迟方面带来的额外开销。572以下各节介绍 Claude Code 评估操作的顺序、分类器如何审查子代理的工作,以及分类器调用在成本和延迟方面带来的额外开销。

568 573 

569> **分类器如何评估操作**574> [accordion] 分类器如何评估操作

570>575>

571> 每个操作都会经过固定的决策顺序。第一个匹配的步骤生效:576> 每个操作都会经过固定的决策顺序。第一个匹配的步骤生效:

572>577>


608>613>

609> 一个独立的服务器端探测器会扫描传入的工具结果,并在 Claude 读取之前标记可疑内容。有关这些层如何协同工作的更多信息,请参阅[自动模式公告](https://claude.com/blog/auto-mode)和[工程深度解析](https://www.anthropic.com/engineering/claude-code-auto-mode)。614> 一个独立的服务器端探测器会扫描传入的工具结果,并在 Claude 读取之前标记可疑内容。有关这些层如何协同工作的更多信息,请参阅[自动模式公告](https://claude.com/blog/auto-mode)和[工程深度解析](https://www.anthropic.com/engineering/claude-code-auto-mode)。

610 615 

611> **自动模式如何处理子代理**616> [accordion] 自动模式如何处理子代理

612>617>

613> 分类器会在三个时间点检查[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md)的工作:618> 分类器会在三个时间点检查[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md)的工作:

614>619>


616> 2. 在子代理运行期间,它的每个操作都会经过与父会话相同的[决策顺序](#how-the-classifier-evaluates-actions),并使用相同的阻止和允许规则。子代理 frontmatter 中的任何 `permissionMode` 都会被忽略。621> 2. 在子代理运行期间,它的每个操作都会经过与父会话相同的[决策顺序](#how-the-classifier-evaluates-actions),并使用相同的阻止和允许规则。子代理 frontmatter 中的任何 `permissionMode` 都会被忽略。

617> 3. 当子代理完成时,分类器会在父级读取报告之前审查其工作和最终报告。当分类器标记了子代理的工作或报告,或者独立的 API 安全检查拒绝了该审查时,报告仍会被送达,但会在前面附加安全警告。当分类器无法进行审查时,报告送达时会附带一条说明,提醒您在据此采取行动之前先核实子代理的工作。622> 3. 当子代理完成时,分类器会在父级读取报告之前审查其工作和最终报告。当分类器标记了子代理的工作或报告,或者独立的 API 安全检查拒绝了该审查时,报告仍会被送达,但会在前面附加安全警告。当分类器无法进行审查时,报告送达时会附带一条说明,提醒您在据此采取行动之前先核实子代理的工作。

618 623 

619> **成本和延迟**624> [accordion] 成本和延迟

620>625>

621> Claude Code 的分类器请求可以在您通过 `/model` 选择的模型以外的模型上运行。请参阅[它们在哪个模型上运行](#default-classifier-model)。626> Claude Code 的分类器请求可以在您通过 `/model` 选择的模型以外的模型上运行。请参阅[它们在哪个模型上运行](#default-classifier-model)。

622>627>


964 969 

965要在 `bypassPermissions` 模式下不经提示运行针对[关键路径](#critical-paths)的 Bash `rm` 和 `rmdir` 命令,请在环境中设置 [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1`](https://code.claude.com/docs/zh-CN/env-vars#variables) 后启动 Claude Code。这需要 Claude Code v2.1.311 或更高版本。Claude Code 仅从启动环境读取该变量,并会[忽略设置文件 `env` 块中的该变量](https://code.claude.com/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)。例如,在[您的 shell](https://code.claude.com/docs/zh-CN/env-vars.md#set-variables-in-your-shell) 中设置该变量,然后从中启动 `claude`:970要在 `bypassPermissions` 模式下不经提示运行针对[关键路径](#critical-paths)的 Bash `rm` 和 `rmdir` 命令,请在环境中设置 [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1`](https://code.claude.com/docs/zh-CN/env-vars#variables) 后启动 Claude Code。这需要 Claude Code v2.1.311 或更高版本。Claude Code 仅从启动环境读取该变量,并会[忽略设置文件 `env` 块中的该变量](https://code.claude.com/docs/zh-CN/settings-reference#variables-claude-code-ignores-in-env)。例如,在[您的 shell](https://code.claude.com/docs/zh-CN/env-vars.md#set-variables-in-your-shell) 中设置该变量,然后从中启动 `claude`:

966 971 

967**macOS, Linux, WSL**972> [tab] macOS, Linux, WSL

968 973>

969```bash theme={null}974> ```bash theme={null}

970export CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1975> export CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

971claude --permission-mode bypassPermissions976> claude --permission-mode bypassPermissions

972```977> ```

973 

974**Windows PowerShell**

975 

976```powershell theme={null}

977$env:CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS = "1"

978claude --permission-mode bypassPermissions

979```

980 978 

981**Windows CMD**979> [tab] Windows PowerShell

980>

981> ```powershell theme={null}

982> $env:CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS = "1"

983> claude --permission-mode bypassPermissions

984> ```

982 985 

983```batch theme={null}986> [tab] Windows CMD

984set CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1987>

985claude --permission-mode bypassPermissions988> ```batch theme={null}

986```989> set CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

990> claude --permission-mode bypassPermissions

991> ```

987 992 

988> [!WARNING]993> [!WARNING]

989>994>

platforms.md +6 −6

Details

14 14 

15| 平台 | 最适合 | 您获得的功能 |15| 平台 | 最适合 | 您获得的功能 |

16| :- | :- | :- |16| :- | :- | :- |

17| [CLI](https://code.claude.com/docs/zh-CN/quickstart.md) | 终端工作流、脚本编写、远程服务器 | 完整功能集、[Agent SDK](https://code.claude.com/docs/zh-CN/headless.md)、[计算机使用](https://code.claude.com/docs/zh-CN/computer-use.md)在 macOS 上(Pro 和 Max)、第三方提供商 |17| [CLI](https://code.claude.com/docs/zh-CN/quickstart.md) | 终端工作流、脚本编写、远程服务器 | 完整功能集、[Agent SDK](https://code.claude.com/docs/zh-CN/headless.md)、[计算机使用](https://code.claude.com/docs/zh-CN/computer-use.md)在 macOS 上(Pro、Max 和 Ultra)、第三方提供商 |

18| [Desktop](https://code.claude.com/docs/zh-CN/desktop.md) | 视觉审查、并行会话、托管设置 | Diff 查看器、应用预览、Pro 和 Max 上的[计算机使用](https://code.claude.com/docs/zh-CN/desktop.md#let-claude-use-your-computer)和 [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) |18| [Desktop](https://code.claude.com/docs/zh-CN/desktop.md) | 视觉审查、并行会话、托管设置 | Diff 查看器、应用预览、Pro、Max 和 Ultra 上的[计算机使用](https://code.claude.com/docs/zh-CN/desktop.md#let-claude-use-your-computer)和 [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) |

19| [VS Code](https://code.claude.com/docs/zh-CN/vs-code.md) | 在 VS Code 内工作而无需切换到终端 | 内联 diff、集成终端、文件上下文 |19| [VS Code](https://code.claude.com/docs/zh-CN/vs-code.md) | 在 VS Code 内工作而无需切换到终端 | 内联 diff、集成终端、文件上下文 |

20| [JetBrains](https://code.claude.com/docs/zh-CN/jetbrains.md) | 在 IntelliJ、PyCharm、WebStorm 或其他 JetBrains IDE 内工作 | Diff 查看器、选择共享、终端会话 |20| [JetBrains](https://code.claude.com/docs/zh-CN/jetbrains.md) | 在 IntelliJ、PyCharm、WebStorm 或其他 JetBrains IDE 内工作 | Diff 查看器、选择共享、终端会话 |

21| [Web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 不需要太多操作的长时间运行任务,或应该在您离线时继续的工作 | 云、Anthropic 托管(默认);断开连接后继续运行 |21| [Web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md) | 不需要太多操作的长时间运行任务,或应该在您离线时继续的工作 | 云、Anthropic 托管(默认);断开连接后继续运行 |

22| [Mobile](https://code.claude.com/docs/zh-CN/mobile.md) | 在远离计算机时启动和监控任务 | 来自 iOS 和 Android 版 Claude 应用的云会话、用于本地会话的 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)、Pro 和 Max 上的 [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) 到 Desktop |22| [Mobile](https://code.claude.com/docs/zh-CN/mobile.md) | 在远离计算机时启动和监控任务 | 来自 iOS 和 Android 版 Claude 应用的云端会话、用于本地会话的 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md)、Pro、Max 和 Ultra 上的 [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) 到 Desktop |

23 23 

24CLI 是终端原生工作的最完整界面:脚本编写和 Agent SDK 仅限 CLI。第三方提供商也可在 [VS Code](https://code.claude.com/docs/zh-CN/vs-code.md#use-third-party-providers) 和 [JetBrains](https://code.claude.com/docs/zh-CN/feature-availability.md#features-available-on-every-provider) 中使用,后者在您的 IDE 终端中运行 CLI。企业 [Desktop](https://code.claude.com/docs/zh-CN/desktop.md) 部署支持 Google Cloud 的 Agent Platform,Desktop 支持[网关提供商](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app);对于 Amazon Bedrock 或 Microsoft Foundry,请使用 CLI 或 IDE 扩展,或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview),它在这些提供商上运行 Code 选项卡。Desktop 和 IDE 扩展为了视觉审查和更紧密的编辑器集成而放弃了一些仅限 CLI 的功能。Web 在云中运行,因此任务在您断开连接后继续进行。Mobile 是这些相同云会话的瘦客户端,或通过 Remote Control 进入本地会话,并可以使用 Dispatch 向 Desktop 发送任务。24CLI 是终端原生工作的最完整界面:脚本编写和 Agent SDK 仅限 CLI。第三方提供商也可在 [VS Code](https://code.claude.com/docs/zh-CN/vs-code.md#use-third-party-providers) 和 [JetBrains](https://code.claude.com/docs/zh-CN/feature-availability.md#features-available-on-every-provider) 中使用,后者在您的 IDE 终端中运行 CLI。企业 [Desktop](https://code.claude.com/docs/zh-CN/desktop.md) 部署支持 Google Cloud 的 Agent Platform,Desktop 支持[网关提供商](https://code.claude.com/docs/zh-CN/llm-gateway-connect.md#desktop-app);对于 Amazon Bedrock 或 Microsoft Foundry,请使用 CLI 或 IDE 扩展,或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview),它在这些提供商上运行 Code 选项卡。Desktop 和 IDE 扩展为了视觉审查和更紧密的编辑器集成而放弃了一些仅限 CLI 的功能。Web 在云中运行,因此任务在您断开连接后继续进行。Mobile 是这些相同云会话的瘦客户端,或通过 Remote Control 进入本地会话,并可以使用 Dispatch 向 Desktop 发送任务。

25 25 


35| [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) | 在 CI 管道中运行 Claude | 自动化 PR 审查、问题分类、计划维护 |35| [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md) | 在 CI 管道中运行 Claude | 自动化 PR 审查、问题分类、计划维护 |

36| [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md) | 与 GitHub Actions 相同,但用于 GitLab | GitLab 上的 CI 驱动自动化 |36| [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md) | 与 GitHub Actions 相同,但用于 GitLab | GitLab 上的 CI 驱动自动化 |

37| [Code Review](https://code.claude.com/docs/zh-CN/code-review.md) | 自动审查每个 PR | 在人工审查前捕获错误 |37| [Code Review](https://code.claude.com/docs/zh-CN/code-review.md) | 自动审查每个 PR | 在人工审查前捕获错误 |

38| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 以您自己的账户响应频道中的 `@Claude` 提及 | 在 Pro 和 Max 计划上,将团队聊天中的错误报告转换为 Pull Request |38| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 以您自己的账户响应频道中的 `@Claude` 提及 | 在 Pro、Max 和 Ultra 计划上,将团队聊天中的错误报告转换为 Pull Request |

39| [Claude Tag](https://claude.com/docs/claude-tag) | 以您组织的共享身份运行 `@Claude`,具有管理员配置的访问权限 | Team 和 Enterprise 计划上的共享团队访问,而不是按用户的 Slack 会话 |39| [Claude Tag](https://claude.com/docs/claude-tag) | 以您组织的共享身份运行 `@Claude`,具有管理员配置的访问权限 | Team 和 Enterprise 计划上的共享团队访问,而不是按用户的 Slack 会话 |

40 40 

41对于此处未列出的集成,[MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md)和[连接器](https://code.claude.com/docs/zh-CN/desktop.md#connect-external-tools)让您连接几乎任何东西:Linear、Notion、Google Drive 或您自己的内部 API。41对于此处未列出的集成,[MCP 服务器](https://code.claude.com/docs/zh-CN/mcp.md)和[连接器](https://code.claude.com/docs/zh-CN/desktop.md#connect-external-tools)让您连接几乎任何东西:Linear、Notion、Google Drive 或您自己的内部 API。


49| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |49| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |

50| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI、Desktop 或 VS Code) | 运行 [`claude remote-control` 或 `/remote-control`](https://code.claude.com/docs/zh-CN/remote-control#start-a-remote-control-session) | 从另一台设备控制进行中的工作 |50| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI、Desktop 或 VS Code) | 运行 [`claude remote-control` 或 `/remote-control`](https://code.claude.com/docs/zh-CN/remote-control#start-a-remote-control-session) | 从另一台设备控制进行中的工作 |

51| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](https://code.claude.com/docs/zh-CN/channels.md#quickstart) 或 [构建您自己的](https://code.claude.com/docs/zh-CN/channels-reference.md) | 对外部事件(如 CI 失败或聊天消息)做出反应 |51| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](https://code.claude.com/docs/zh-CN/channels.md#quickstart) 或 [构建您自己的](https://code.claude.com/docs/zh-CN/channels-reference.md) | 对外部事件(如 CI 失败或聊天消息)做出反应 |

52| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 在团队频道中提及 `@Claude` | Anthropic 云 | [安装 Slack 应用](https://code.claude.com/docs/zh-CN/slack.md#setting-up-claude-code-in-slack),启用 [Claude Code on the web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),在 Pro 和 Max 计划上 | 从团队聊天进行 PR 和审查 |52| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 在团队频道中提及 `@Claude` | Anthropic 云 | [安装 Slack 应用](https://code.claude.com/docs/zh-CN/slack.md#setting-up-claude-code-in-slack),启用 [Claude Code on the web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),在 Pro、Max 和 Ultra 计划上 | 从团队聊天进行 PR 和审查 |

53| [Self-hosted environments](https://code.claude.com/docs/zh-CN/self-hosted-environments) | 启动 [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)并选择您组织的环境 | 您组织的基础设施 | [部署运行器](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md),在 Team 和 Enterprise 计划上 | 必须在您的网络内运行的云会话 |53| [Self-hosted environments](https://code.claude.com/docs/zh-CN/self-hosted-environments) | 启动 [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)并选择您组织的环境 | 您组织的基础设施 | [部署运行器](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md),在 Team 和 Enterprise 计划上 | 必须在您的网络内运行的云会话 |

54| [Scheduled tasks](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 设置计划 | [CLI](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)、[Desktop](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md) 或 [云](https://code.claude.com/docs/zh-CN/routines.md) | 选择频率 | 定期自动化,如每日审查 |54| [Scheduled tasks](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 设置计划 | [CLI](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)、[Desktop](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md) 或 [云](https://code.claude.com/docs/zh-CN/routines.md) | 选择频率 | 定期自动化,如每日审查 |

55 55 


74* [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md):在 CI 管道中运行 Claude74* [GitHub Actions](https://code.claude.com/docs/zh-CN/github-actions.md):在 CI 管道中运行 Claude

75* [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md):GitLab 的相同功能75* [GitLab CI/CD](https://code.claude.com/docs/zh-CN/gitlab-ci-cd.md):GitLab 的相同功能

76* [Code Review](https://code.claude.com/docs/zh-CN/code-review.md):每个拉取请求上的自动审查76* [Code Review](https://code.claude.com/docs/zh-CN/code-review.md):每个拉取请求上的自动审查

77* [Slack](https://code.claude.com/docs/zh-CN/slack.md):从团队聊天发送任务,获取 PR 返回,适用于 Pro 和 Max 计划77* [Slack](https://code.claude.com/docs/zh-CN/slack.md):从团队聊天发送任务,获取 PR 返回,适用于 Pro、Max 和 Ultra 计划

78* [Claude Tag](https://claude.com/docs/claude-tag):在 Team 和 Enterprise 计划上以您组织的共享身份运行 `@Claude`78* [Claude Tag](https://claude.com/docs/claude-tag):在 Team 和 Enterprise 计划上以您组织的共享身份运行 `@Claude`

79 79 

80### 远程访问80### 远程访问

plugins/install.md +96 −96

Details

27 27 

28选择运行 Claude Code 的位置的选项卡。28选择运行 Claude Code 的位置的选项卡。

29 29 

30**Terminal**30> [tab] Terminal

31 31>

32在您的项目中使用 `claude` 启动 Claude Code,然后:32> 在您的项目中使用 `claude` 启动 Claude Code,然后:

33 33>

34**1. 使用安装命令打开插件的详细信息**34> **1. 使用安装命令打开插件的详细信息**

35 35>

36使用插件的名称和市场运行 `/plugin install`。在会话中,此命令不会立即安装:它在该插件的详细信息上打开 `/plugin` 面板,以便您可以查看它并首先选择范围。36> 使用插件的名称和市场运行 `/plugin install`。在会话中,此命令不会立即安装:它在该插件的详细信息上打开 `/plugin` 面板,以便您可以查看它并首先选择范围。

37 37>

38```text theme={null}38> ```text theme={null}

39/plugin install commit-commands@claude-plugins-official39> /plugin install commit-commands@claude-plugins-official

40```40> ```

41 41>

42要浏览,请运行不带插件名称的 `/plugin`:面板在 **Discover** 选项卡上打开,该选项卡列出您的市场中的插件,您可以输入搜索,然后在插件上按 **Enter** 打开其详细信息。42> 要浏览,请运行不带插件名称的 `/plugin`:面板在 **Discover** 选项卡上打开,该选项卡列出您的市场中的插件,您可以输入搜索,然后在插件上按 **Enter** 打开其详细信息。

43 43>

44**2. 查看插件添加的内容**44> **2. 查看插件添加的内容**

45 45>

46详细信息窗格显示插件的描述。它还可以显示:46> 详细信息窗格显示插件的描述。它还可以显示:

47 47>

48* **Will install**:插件添加的命令、agents、skills、hooks 和 MCP 及 LSP servers。48> * **Will install**:插件添加的命令、agents、skills、hooks 和 MCP 及 LSP servers。

49* **Last updated**:为 Anthropic 官方市场中的插件显示。49> * **Last updated**:为 Anthropic 官方市场中的插件显示。

50* **Context cost**:对于 Anthropic 官方市场中的插件,有两个令牌估计。**Every turn** 是插件添加到您发送的每条消息的内容,**When invoked** 是其 skills 和 agents 在 Claude 加载它们后添加的内容。当您通过命名其市场打开插件时(如第 1 步命令所做的那样)或从 **Marketplaces** 选项卡打开时,估计会出现。从 **Discover** 列表到达的详细信息窗格不显示它们。50> * **Context cost**:对于 Anthropic 官方市场中的插件,有两个令牌估计。**Every turn** 是插件添加到您发送的每条消息的内容,**When invoked** 是其 skills 和 agents 在 Claude 加载它们后添加的内容。当您通过命名其市场打开插件时(如第 1 步命令所做的那样)或从 **Marketplaces** 选项卡打开时,估计会出现。从 **Discover** 列表到达的详细信息窗格不显示它们。

51 51>

52来自本地或自定义市场的插件可以改为显示 `Components will be discovered at installation`。52> 来自本地或自定义市场的插件可以改为显示 `Components will be discovered at installation`。

53 53>

54插件可以运行 hooks 和 MCP servers,因此在安装前请阅读窗格。请参阅 [Plugin security and trust](https://code.claude.com/docs/zh-CN/plugins/security.md)。54> 插件可以运行 hooks 和 MCP servers,因此在安装前请阅读窗格。请参阅 [Plugin security and trust](https://code.claude.com/docs/zh-CN/plugins/security.md)。

55 55>

56**3. 选择范围**56> **3. 选择范围**

57 57>

58选择三个安装选项之一:58> 选择三个安装选项之一:

59 59>

60* **Install for you (user scope)**:您在此机器上的每个项目中获得该插件60> * **Install for you (user scope)**:您在此机器上的每个项目中获得该插件

61* **Install for all collaborators on this repository (project scope)**:为在此存储库中工作的每个人启用它61> * **Install for all collaborators on this repository (project scope)**:为在此存储库中工作的每个人启用它

62* **Install for you, in this repo only (local scope)**:您仅在此存储库中获得它62> * **Install for you, in this repo only (local scope)**:您仅在此存储库中获得它

63 63>

64[Choose an install scope](#choose-an-install-scope) 说明每个选项写入哪个设置文件,以及当同一插件在多个位置设置时哪个适用。64> [Choose an install scope](#choose-an-install-scope) 说明每个选项写入哪个设置文件,以及当同一插件在多个位置设置时哪个适用。

65 65>

66选择范围后,Claude Code 安装插件及其声明的任何依赖项,然后打印安装摘要。66> 选择范围后,Claude Code 安装插件及其声明的任何依赖项,然后打印安装摘要。

67 67>

68**4. 读取安装摘要**68> **4. 读取安装摘要**

69 69>

70摘要的最后一句告诉您插件在此会话中是否可用:70> 摘要的最后一句告诉您插件在此会话中是否可用:

71 71>

72* **已激活**:`Plugin is now active.` 无需重新加载。72> * **已激活**:`Plugin is now active.` 无需重新加载。

73* **已激活,但服务器需要设置**:`Plugin is now active.` 后跟 `Its bundled MCP server needs configuration before it can start`。在您设置其选项之前,插件的[捆绑 MCP 服务器](https://code.claude.com/docs/zh-CN/plugins/components.md#include-a-packaged-mcpb-server)无法启动。在 `/plugin` 的 **Installed** 选项卡上选择该插件,然后选择 **Configure** 以设置服务器的选项。73> * **已激活,但服务器需要设置**:`Plugin is now active.` 后跟 `Its bundled MCP server needs configuration before it can start`。在您设置其选项之前,插件的[捆绑 MCP 服务器](https://code.claude.com/docs/zh-CN/plugins/components.md#include-a-packaged-mcpb-server)无法启动。在 `/plugin` 的 **Installed** 选项卡上选择该插件,然后选择 **Configure** 以设置服务器的选项。

74* **需要重新加载**:`Run /reload-plugins to apply.` 面板会关闭,Claude Code 会为您运行该重新加载。如果重新加载会[使提示缓存失效](https://code.claude.com/docs/zh-CN/prompt-caching.md#enabling-or-disabling-a-plugin),它会发出警告,并改为让插件保持待处理状态。运行 `/reload-plugins --force` 可强制激活它,这会产生一次未缓存的请求。74> * **需要重新加载**:`Run /reload-plugins to apply.` 面板会关闭,Claude Code 会为您运行该重新加载。如果重新加载会[使提示缓存失效](https://code.claude.com/docs/zh-CN/prompt-caching.md#enabling-or-disabling-a-plugin),它会发出警告,并改为让插件保持待处理状态。运行 `/reload-plugins --force` 可强制激活它,这会产生一次未缓存的请求。

75* **加载失败**:`The plugin couldn't be loaded`。在 `/plugin` 中打开 **Errors** 选项卡查看原因,然后参阅[安装后:插件不工作](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-installed-but-not-working)。75> * **加载失败**:`The plugin couldn't be loaded`。在 `/plugin` 中打开 **Errors** 选项卡查看原因,然后参阅[安装后:插件不工作](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-installed-but-not-working)。

76 76>

77**5. 确认插件正常工作**77> **5. 确认插件正常工作**

78 78>

79输入 `/`,并在插件名称下查找其 skill,形式为 `/<plugin>:<skill>`。对于 `commit-commands`,会出现 `/commit-commands:commit`。另外还有两个地方会列出该插件:79> 输入 `/`,并在插件名称下查找其 skill,形式为 `/<plugin>:<skill>`。对于 `commit-commands`,会出现 `/commit-commands:commit`。另外还有两个地方会列出该插件:

80 80>

81* 在 `/plugin` 中打开 **Installed** 选项卡,该选项卡列出带有其范围的插件。81> * 在 `/plugin` 中打开 **Installed** 选项卡,该选项卡列出带有其范围的插件。

82* 在您的 shell 中,运行 `claude plugin list`,它打印相同的列表,带有 `Version`、`Scope` 和 `Status` 行。82> * 在您的 shell 中,运行 `claude plugin list`,它打印相同的列表,带有 `Version`、`Scope` 和 `Status` 行。

83 83>

84如果 `/commit-commands:commit` 没有出现,请参阅 [After install: plugin not working](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-installed-but-not-working)。84> 如果 `/commit-commands:commit` 没有出现,请参阅 [After install: plugin not working](https://code.claude.com/docs/zh-CN/plugins/troubleshooting.md#plugin-installed-but-not-working)。

85 85>

86从任何其他市场安装需要先执行一个额外步骤:[add the marketplace](#add-a-marketplace)。Claude Code 在您第一次启动交互式终端会话时为您添加 Anthropic 的官方市场,这就是为什么示例跳过该步骤。如果您在 [claude.com/marketplace](https://claude.com/marketplace) 上找到了插件,其 **Claude Code** 按钮会复制其 [shell form](#install-from-your-shell) 中的安装命令,`claude plugin install <name>@claude-plugins-official`。86> 从任何其他市场安装需要先执行一个额外步骤:[add the marketplace](#add-a-marketplace)。Claude Code 在您第一次启动交互式终端会话时为您添加 Anthropic 的官方市场,这就是为什么示例跳过该步骤。如果您在 [claude.com/marketplace](https://claude.com/marketplace) 上找到了插件,其 **Claude Code** 按钮会复制其 [shell form](#install-from-your-shell) 中的安装命令,`claude plugin install <name>@claude-plugins-official`。

87 

88**Desktop app**

89 

90在桌面应用的 **Code** 选项卡中的本地或 SSH 会话中:

91 

92**1. 打开插件浏览器**

93 

94单击提示框旁边的 **+** 按钮,然后选择 **Add plugins**。如果 **+** 菜单显示的是 **Plugins** 而不是 **Add plugins**,请选择 **Plugins**,然后选择 **Browse plugins**。插件浏览器打开,显示来自您的市场的插件。

95 

96**2. 选择插件**

97 

98找到 `commit-commands` 并选择它。

99 

100**3. 选择作用域**

101 

102选择 [作用域](#choose-an-install-scope):您的用户账户、此项目或仅本地。

103 

104要稍后启用、禁用或卸载插件,请参阅 [Install plugins in the desktop app](https://code.claude.com/docs/zh-CN/desktop.md#install-plugins)。

105 

106**VS Code**

107 

108在 VS Code 中的 Claude Code 面板中:

109 

110**1. 打开 Manage plugins**

111 

112在提示框中输入 `/plugins` 以打开 **Manage plugins**。

113 

114**2. 安装插件**

115 

116在 **Plugins** 选项卡上,搜索 `commit-commands` 并单击 **Install**。如果选项卡未列出任何插件,请先在 **Marketplaces** 选项卡上添加 `anthropics/claude-plugins-official`。

117 

118**3. 选择范围**

119 

120选择 [scope](#choose-an-install-scope):**Install for you**、**Install for this project** 或 **Install locally**。

121 

122您的更改应用于打开的会话,无需重新启动。请参阅 [Manage plugins in VS Code](https://code.claude.com/docs/zh-CN/vs-code.md#manage-plugins)。

123 87 

124**Cloud session**88> [tab] Desktop app

89>

90> 在桌面应用的 **Code** 选项卡中的本地或 SSH 会话中:

91>

92> **1. 打开插件浏览器**

93>

94> 单击提示框旁边的 **+** 按钮,然后选择 **Add plugins**。如果 **+** 菜单显示的是 **Plugins** 而不是 **Add plugins**,请选择 **Plugins**,然后选择 **Browse plugins**。插件浏览器打开,显示来自您的市场的插件。

95>

96> **2. 选择插件**

97>

98> 找到 `commit-commands` 并选择它。

99>

100> **3. 选择作用域**

101>

102> 选择 [作用域](#choose-an-install-scope):您的用户账户、此项目或仅本地。

103>

104> 要稍后启用、禁用或卸载插件,请参阅 [Install plugins in the desktop app](https://code.claude.com/docs/zh-CN/desktop.md#install-plugins)。

125 105 

126[cloud session](https://code.claude.com/docs/zh-CN/cloud-environments.md)(包括 [the browser at claude.ai/code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md))没有插件浏览器,不会加载您在自己的机器上安装的插件或您的存储库的 `.claude/settings.json` 打开的插件。对于您的组织通过托管设置分发的插件,请参阅 [Manage plugins for your organization](https://code.claude.com/docs/zh-CN/plugins/org.md)。106> [tab] VS Code

107>

108> 在 VS Code 中的 Claude Code 面板中:

109>

110> **1. 打开 Manage plugins**

111>

112> 在提示框中输入 `/plugins` 以打开 **Manage plugins**。

113>

114> **2. 安装插件**

115>

116> 在 **Plugins** 选项卡上,搜索 `commit-commands` 并单击 **Install**。如果选项卡未列出任何插件,请先在 **Marketplaces** 选项卡上添加 `anthropics/claude-plugins-official`。

117>

118> **3. 选择范围**

119>

120> 选择 [scope](#choose-an-install-scope):**Install for you**、**Install for this project** 或 **Install locally**。

121>

122> 您的更改应用于打开的会话,无需重新启动。请参阅 [Manage plugins in VS Code](https://code.claude.com/docs/zh-CN/vs-code.md#manage-plugins)。

127 123 

128请参阅 [which parts of your setup are also available in a cloud session](https://code.claude.com/docs/zh-CN/cloud-environments.md#what-carries-over-from-your-setup) 了解您设置的其余部分。124> [tab] Cloud session

125>

126> [cloud session](https://code.claude.com/docs/zh-CN/cloud-environments.md)(包括 [the browser at claude.ai/code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md))没有插件浏览器,不会加载您在自己的机器上安装的插件或您的存储库的 `.claude/settings.json` 打开的插件。对于您的组织通过托管设置分发的插件,请参阅 [Manage plugins for your organization](https://code.claude.com/docs/zh-CN/plugins/org.md)。

127>

128> 请参阅 [which parts of your setup are also available in a cloud session](https://code.claude.com/docs/zh-CN/cloud-environments.md#what-carries-over-from-your-setup) 了解您设置的其余部分。

129 129 

130### Choose an install scope130### Choose an install scope

131 131 

Details

116 116 

117### `/usage` 中的使用情况份额117### `/usage` 中的使用情况份额

118 118 

119在 Pro、Max、Team 或 Enterprise 计划上,`/usage` 分解将最近的使用情况归因于 skills、subagents、插件和 MCP 服务器,作为总数的份额。请参阅[使用 `/usage` 命令](https://code.claude.com/docs/zh-CN/costs#using-the-/usage-command)。119在 Pro、Max、Ultra、Team 或 Enterprise 计划上,`/usage` 分解将最近的使用情况归因于 skill、子代理、插件和 MCP 服务器,作为总数的份额。请参阅[使用 `/usage` 命令](https://code.claude.com/docs/zh-CN/costs#using-the-/usage-command)。

120 120 

121## 跨机队测量121## 跨机队测量

122 122 

Details

92 92 

93创建保存文件的两个目录:93创建保存文件的两个目录:

94 94 

95**Bash or Zsh**95> [tab] Bash or Zsh

96 96>

97```bash theme={null}97> ```bash theme={null}

98mkdir -p first-mod/.claude-plugin first-mod/hooks98> mkdir -p first-mod/.claude-plugin first-mod/hooks

99```99> ```

100 

101**PowerShell**

102 100 

103```powershell theme={null}101> [tab] PowerShell

104New-Item -ItemType Directory -Force first-mod\.claude-plugin, first-mod\hooks102>

105```103> ```powershell theme={null}

104> New-Item -ItemType Directory -Force first-mod\.claude-plugin, first-mod\hooks

105> ```

106 106 

107**2. 编写清单**107**2. 编写清单**

108 108 

Details

181 181 

182窗格和条带在 mod 填充之前都是空的。选择一个选项卡,查看每个站点是什么以及如何在其中绘制:182窗格和条带在 mod 填充之前都是空的。选择一个选项卡,查看每个站点是什么以及如何在其中绘制:

183 183 

184**Pane**184> [tab] Pane

185 185>

186窗格在宽幅全屏终端中是会话记录旁边的侧边栏,在其他情况下是输入框上方的带边框区域。打开多个窗格时,每个窗格都会获得一个显示其标题的选项卡。186> 窗格在宽幅全屏终端中是会话记录旁边的侧边栏,在其他情况下是输入框上方的带边框区域。打开多个窗格时,每个窗格都会获得一个显示其标题的选项卡。

187 187>

188当您的 mod 使用您选择的 `id` 调用 `$.ui.open` 时,窗格就会出现,如 `$.ui.open({ id: 'hello-tabs' })`。[在正确的时间打开窗格](#open-a-pane-at-the-right-time) 介绍了其他字段以及窗格何时会等待更宽的终端。188> 当您的 mod 使用您选择的 `id` 调用 `$.ui.open` 时,窗格就会出现,如 `$.ui.open({ id: 'hello-tabs' })`。[在正确的时间打开窗格](#open-a-pane-at-the-right-time) 介绍了其他字段以及窗格何时会等待更宽的终端。

189 189>

190要在您的窗格中绘制,请过滤 `{ component: 'Pane' }` 并检查 `e.requestId` 是否为您的 `id`。190> 要在您的窗格中绘制,请过滤 `{ component: 'Pane' }` 并检查 `e.requestId` 是否为您的 `id`。

191 

192**Band above the prompt**

193 

194条带是紧贴输入框上方的一条区域。它始终存在,并由所有 mod 共享。

195 

196您的 hook 返回一棵树以在条带中显示内容,或返回 `next(e)` 以不显示任何内容。一棵树会替换[在您之后](https://code.claude.com/docs/zh-CN/plugins/mods/events.md#the-order-mods-run-in)运行的 mod 在那里绘制的内容。要保留它们的内容,请将 `await next(e)` 的结果放在您树中某个 [`Box`](#build-a-tree-from-elements) 的子项中。

197 191 

198要在条带中绘制,请过滤 `{ component: 'AbovePrompt' }`。192> [tab] Band above the prompt

193>

194> 条带是紧贴输入框上方的一条区域。它始终存在,并由所有 mod 共享。

195>

196> 您的 hook 返回一棵树以在条带中显示内容,或返回 `next(e)` 以不显示任何内容。一棵树会替换[在您之后](https://code.claude.com/docs/zh-CN/plugins/mods/events.md#the-order-mods-run-in)运行的 mod 在那里绘制的内容。要保留它们的内容,请将 `await next(e)` 的结果放在您树中某个 [`Box`](#build-a-tree-from-elements) 的子项中。

197>

198> 要在条带中绘制,请过滤 `{ component: 'AbovePrompt' }`。

199 199 

200### 更改 Claude Code 已经绘制的内容200### 更改 Claude Code 已经绘制的内容

201 201 


214 214 

215在 Claude Code 已经绘制的站点上,您的 hook 可以更改某个细节、替换绘制内容,或保持不变。选择一个选项卡,查看每种方式应用于加载指示器的效果。这些示例读取由另一个 hook 计数的 `calls` 变量,如[教程 mod](https://code.claude.com/docs/zh-CN/plugins/mods/create.md#write-a-mod-yourself) 中所示。215在 Claude Code 已经绘制的站点上,您的 hook 可以更改某个细节、替换绘制内容,或保持不变。选择一个选项卡,查看每种方式应用于加载指示器的效果。这些示例读取由另一个 hook 计数的 `calls` 变量,如[教程 mod](https://code.claude.com/docs/zh-CN/plugins/mods/create.md#write-a-mod-yourself) 中所示。

216 216 

217**Change a detail**217> [tab] Change a detail

218 218>

219要保留 Claude Code 的绘制内容并更改其中一部分,请向 `next` 传递一个更改了 `props` 的事件副本。此 hook 更改加载指示器单词后面的文本:219> 要保留 Claude Code 的绘制内容并更改其中一部分,请向 `next` 传递一个更改了 `props` 的事件副本。此 hook 更改加载指示器单词后面的文本:

220 220>

221```javascript theme={null}221> ```javascript theme={null}

222on('ui.render', { component: 'Spinner' }, async ($, e, next) => {222> on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

223 // Keep Claude Code's spinner, and change the text after its word223> // Keep Claude Code's spinner, and change the text after its word

224 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })224> return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

225})225> })

226```226> ```

227 227>

228加载指示器保留其动画和单词,您的文本跟在单词后面:228> 加载指示器保留其动画和单词,您的文本跟在单词后面:

229 229>

230```text theme={null}230> ```text theme={null}

231Thinking · tool calls: 2…231> Thinking · tool calls: 2…

232```232> ```

233 

234**Replace the drawing**

235 

236要在站点的位置绘制您自己的内容,请返回一棵树,并且不要调用 `next`。此 hook 在加载指示器所在的位置绘制一行文本:

237 

238```javascript theme={null}

239on('ui.render', { component: 'Spinner' }, async ($, e) => {

240 const { Text } = $.ui.resolve(e)

241 // No call to next, so this line is drawn in the spinner's place

242 return Text({ children: ['Claude has made ' + calls + ' tool calls'] })

243})

244```

245 

246当 Claude 工作时,显示的是您的这一行,而不是 Claude Code 的加载指示器:

247 

248```text theme={null}

249Claude has made 2 tool calls

250```

251 

252**Leave it alone**

253 

254要让站点保持 Claude Code 绘制的样子,请返回 `next(e)`。hook 通常对某些事件这样做,而对其他事件不这样做。此 hook 在出现可计数的调用之前保持加载指示器不变:

255 

256```javascript theme={null}

257on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

258 // Nothing to show yet, so pass the event on unchanged

259 if (calls === 0) return next(e)

260 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

261})

262```

263 233 

264在第一次工具调用之前,加载指示器看起来与没有该 mod 时一样:234> [tab] Replace the drawing

235>

236> 要在站点的位置绘制您自己的内容,请返回一棵树,并且不要调用 `next`。此 hook 在加载指示器所在的位置绘制一行文本:

237>

238> ```javascript theme={null}

239> on('ui.render', { component: 'Spinner' }, async ($, e) => {

240> const { Text } = $.ui.resolve(e)

241> // No call to next, so this line is drawn in the spinner's place

242> return Text({ children: ['Claude has made ' + calls + ' tool calls'] })

243> })

244> ```

245>

246> 当 Claude 工作时,显示的是您的这一行,而不是 Claude Code 的加载指示器:

247>

248> ```text theme={null}

249> Claude has made 2 tool calls

250> ```

265 251 

266```text theme={null}252> [tab] Leave it alone

267Thinking…253>

268```254> 要让站点保持 Claude Code 绘制的样子,请返回 `next(e)`。hook 通常对某些事件这样做,而对其他事件不这样做。此 hook 在出现可计数的调用之前保持加载指示器不变:

255>

256> ```javascript theme={null}

257> on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

258> // Nothing to show yet, so pass the event on unchanged

259> if (calls === 0) return next(e)

260> return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

261> })

262> ```

263>

264> 在第一次工具调用之前,加载指示器看起来与没有该 mod 时一样:

265>

266> ```text theme={null}

267> Thinking…

268> ```

269 269 

270在这些站点上,`next(e)` 会返回对 Claude Code 绘制内容的引用 `{ type: 'engine', ref }`,除非在您之后运行的某个 mod 返回了它自己的树。要更改该绘制内容中的内容,请向 `next` 传递一个具有不同 props 的事件副本,就像 **Change a detail** 选项卡所做的那样。您可以原样返回该引用,也可以将其与您自己的元素一起放在一个 `Box` 中:270在这些站点上,`next(e)` 会返回对 Claude Code 绘制内容的引用 `{ type: 'engine', ref }`,除非在您之后运行的某个 mod 返回了它自己的树。要更改该绘制内容中的内容,请向 `next` 传递一个具有不同 props 的事件副本,就像 **Change a detail** 选项卡所做的那样。您可以原样返回该引用,也可以将其与您自己的元素一起放在一个 `Box` 中:

271 271 


357 357 

358选择一个选项卡以查看每个最常用的元素以及终端如何绘制它:358选择一个选项卡以查看每个最常用的元素以及终端如何绘制它:

359 359 

360**Text**360> [tab] Text

361 361>

362`Text` 绘制一个字符串,带有可选的样式,如 `bold` 和 `color`:362> `Text` 绘制一个字符串,带有可选的样式,如 `bold` 和 `color`:

363 363>

364```javascript theme={null}364> ```javascript theme={null}

365Text({ children: ['This is the first tab.'] })365> Text({ children: ['This is the first tab.'] })

366```366> ```

367 367>

368```text theme={null}368> ```text theme={null}

369This is the first tab.369> This is the first tab.

370```370> ```

371 

372**Box**

373 

374`Box` 排列其中的内容,在一行或一列中。这个把一个按钮和一行文本并排放在一起,相隔两列:

375 

376```javascript theme={null}

377Box({

378 flexDirection: 'row',

379 columnGap: 2,

380 children: [

381 Button({ key: 'more', label: 'Add one', onPress: addOne }),

382 Text({ children: ['Count: 0'] }),

383 ],

384})

385```

386 

387```text theme={null}

388[ Add one ] Count: 0

389```

390 

391**Button**

392 

393`Button` 是用户可以按下的控件。它运行您的 `onPress` 回调。使用 `plain: true` 时,它没有括号并显示其快捷键:

394 

395```javascript theme={null}

396Button({ key: 'more', label: 'Add one', onPress: addOne })

397Button({ key: 'tab-one', label: 'One', hotkey: '1', plain: true, onPress: showTabOne })

398```

399 

400```text theme={null}

401[ Add one ]

4021: One

403```

404 

405**Input**

406 

407`Input` 是一个文本字段。当用户按 Enter 时,它使用文本运行您的 `onSubmit` 回调:

408 371 

409```javascript theme={null}372> [tab] Box

410Input({373>

411 key: 'new-note',374> `Box` 排列其中的内容,在一行或一列中。这个把一个按钮和一行文本并排放在一起,相隔两列:

412 label: 'Note',375>

413 placeholder: 'Type a note and press Enter',376> ```javascript theme={null}

414 value: '',377> Box({

415 submitLabel: 'add',378> flexDirection: 'row',

416 onSubmit: addNote,379> columnGap: 2,

417})380> children: [

418```381> Button({ key: 'more', label: 'Add one', onPress: addOne }),

382> Text({ children: ['Count: 0'] }),

383> ],

384> })

385> ```

386>

387> ```text theme={null}

388> [ Add one ] Count: 0

389> ```

419 390 

420```text theme={null}391> [tab] Button

421Note: Type a note and press Enter392>

422```393> `Button` 是用户可以按下的控件。它运行您的 `onPress` 回调。使用 `plain: true` 时,它没有括号并显示其快捷键:

394>

395> ```javascript theme={null}

396> Button({ key: 'more', label: 'Add one', onPress: addOne })

397> Button({ key: 'tab-one', label: 'One', hotkey: '1', plain: true, onPress: showTabOne })

398> ```

399>

400> ```text theme={null}

401> [ Add one ]

402> 1: One

403> ```

423 404 

424将 `rows` 设为 2 或更大,即可获得[可容纳多行的字段](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md#input)。405> [tab] Input

406>

407> `Input` 是一个文本字段。当用户按 Enter 时,它使用文本运行您的 `onSubmit` 回调:

408>

409> ```javascript theme={null}

410> Input({

411> key: 'new-note',

412> label: 'Note',

413> placeholder: 'Type a note and press Enter',

414> value: '',

415> submitLabel: 'add',

416> onSubmit: addNote,

417> })

418> ```

419>

420> ```text theme={null}

421> Note: Type a note and press Enter

422> ```

423>

424> 将 `rows` 设为 2 或更大,即可获得[可容纳多行的字段](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md#input)。

425 425 

426[界面图库](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md)提供了大多数元素的示例和屏幕截图。此表列出了每个元素:426[界面图库](https://code.claude.com/docs/zh-CN/plugins/mods/gallery.md)提供了大多数元素的示例和屏幕截图。此表列出了每个元素:

427 427 

Details

132 132 

133**1. 确认您可以提交**133**1. 确认您可以提交**

134 134 

135提交需要付费的 claude.ai 计划。在 Pro 和 Max 上,您可以从自己的账户提交。在 Team 和 Enterprise 上,Owner 可以提交,在 Enterprise 上,Owner 还可以通过 **Organization settings > Roles** 下的自定义角色向其他成员授予 **Directory** 权限。请参阅 [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。135提交需要付费的 claude.ai 计划。在 Pro、Max 和 Ultra 上,您可以从自己的账户提交。在 Team 和 Enterprise 上,Owner 可以提交,在 Enterprise 上,Owner 还可以通过 **Organization settings > Roles** 下的自定义角色向其他成员授予 **Directory** 权限。请参阅 [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。

136 136 

137**2. 在本地验证插件**137**2. 在本地验证插件**

138 138 

Details

302 302 

303克隆市场和重新克隆一个以更新它,默认获得 120 秒。对于大型存储库或缓慢的连接,提高限制。该值以毫秒为单位:303克隆市场和重新克隆一个以更新它,默认获得 120 秒。对于大型存储库或缓慢的连接,提高限制。该值以毫秒为单位:

304 304 

305**Bash 或 Zsh**305> [tab] Bash 或 Zsh

306 306>

307```bash theme={null}307> ```bash theme={null}

308export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000308> export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000

309```309> ```

310 

311**PowerShell**

312 310 

313```powershell theme={null}311> [tab] PowerShell

314$env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"312>

315```313> ```powershell theme={null}

314> $env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"

315> ```

316 316 

317然后在同一 shell 中重试。317然后在同一 shell 中重试。

318 318 


328 328 

329设置此变量以跳过重新克隆尝试,并在检查无法到达主机时继续使用现有检出:329设置此变量以跳过重新克隆尝试,并在检查无法到达主机时继续使用现有检出:

330 330 

331**Bash 或 Zsh**331> [tab] Bash 或 Zsh

332 332>

333```bash theme={null}333> ```bash theme={null}

334export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1334> export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

335```335> ```

336 

337**PowerShell**

338 336 

339```powershell theme={null}337> [tab] PowerShell

340$env:CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE = "1"338>

341```339> ```powershell theme={null}

340> $env:CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE = "1"

341> ```

342 342 

343设置变量后,Claude Code 仅对已包含 `.claude-plugin/marketplace.json` 的检出跳过重新克隆。从未克隆或其克隆停止中途的市场仍然获得克隆尝试,因此请在在线时添加一次。343设置变量后,Claude Code 仅对已包含 `.claude-plugin/marketplace.json` 的检出跳过重新克隆。从未克隆或其克隆停止中途的市场仍然获得克隆尝试,因此请在在线时添加一次。

344 344 

quickstart.md +56 −56

Details

18 18 

19* 打开的终端或命令提示符19* 打开的终端或命令提示符

20* 一个可以使用的代码项目20* 一个可以使用的代码项目

21* 一个 [Claude 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq)(Pro、Max、Team 或 Enterprise)、[Claude Console](https://platform.claude.com/) 账户,或通过[支持的云提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)的访问权限21* 一个 [Claude 订阅](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq)(Pro、Max、Ultra、Team 或 Enterprise)、[Claude Console](https://platform.claude.com/) 账户,或通过[支持的云提供商](https://code.claude.com/docs/zh-CN/third-party-integrations.md)的访问权限

22 22 

23> [!NOTE]23> [!NOTE]

24>24>


31 31 

32要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。32要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。

33 33 

34**原生安装(推荐)**34> [tab] 原生安装(推荐)

35 

36**macOS、Linux、WSL:**

37 

38```bash theme={null}

39curl -fsSL https://claude.ai/install.sh | bash

40```

41 

42在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。

43 

44**Windows PowerShell:**

45 

46```powershell theme={null}

47irm https://claude.ai/install.ps1 | iex

48```

49 

50**Windows CMD:**

51 

52```batch theme={null}

53curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

54```

55 

56安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。

57 

58如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。

59 

60如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。

61 

62建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。

63 

64> [!NOTE]

65>35>

66> 原生安装会在后台自动更新,以保持您使用最新版本。36> **macOS、Linux、WSL:**

67 

68**Homebrew**

69 

70```bash theme={null}

71brew install --cask claude-code

72```

73 

74Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

75 

76> [!NOTE]

77>37>

78> Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。38> ```bash theme={null}

79 39> curl -fsSL https://claude.ai/install.sh | bash

80**WinGet**40> ```

41>

42> 在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。

43>

44> **Windows PowerShell:**

45>

46> ```powershell theme={null}

47> irm https://claude.ai/install.ps1 | iex

48> ```

49>

50> **Windows CMD:**

51>

52> ```batch theme={null}

53> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

54> ```

55>

56> 安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。

57>

58> 如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。

59>

60> 如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。

61>

62> 建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。

63>

64> > [!NOTE]

65> >

66> > 原生安装会在后台自动更新,以保持您使用最新版本。

81 67 

82```powershell theme={null}68> [tab] Homebrew

83winget install Anthropic.ClaudeCode69>

84```70> ```bash theme={null}

71> brew install --cask claude-code

72> ```

73>

74> Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

75>

76> > [!NOTE]

77> >

78> > Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。

85 79 

86> [!NOTE]80> [tab] WinGet

81>

82> ```powershell theme={null}

83> winget install Anthropic.ClaudeCode

84> ```

87>85>

88> WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。86> > [!NOTE]

87> >

88> > WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。

89 89 

90您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。90您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。

91 91 


112 112 

113您可以使用以下任一账户类型登录:113您可以使用以下任一账户类型登录:

114 114 

115* [Claude Pro、Max、Team 或 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login)(推荐)115* [Claude Pro、Max、Ultra、Team 或 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login)(推荐)

116* [Claude Console](https://platform.claude.com/)(使用预付额度的 API 访问)。首次登录时,系统会在 Console 中自动创建一个"Claude Code"工作区,用于集中跟踪费用。116* [Claude Console](https://platform.claude.com/)(使用预付额度的 API 访问)。首次登录时,系统会在 Console 中自动创建一个"Claude Code"工作区,用于集中跟踪费用。

117* [Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry](https://code.claude.com/docs/zh-CN/third-party-integrations.md)(企业云服务提供商)117* [Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry](https://code.claude.com/docs/zh-CN/third-party-integrations.md)(企业云服务提供商)

118* 自托管的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway)(如果您的组织部署了该网关):管理员会预先配置网关 URL,`/login` 将直接打开 **Cloud gateway** 界面,供您使用企业 SSO 登录118* 自托管的 [Claude apps gateway](https://code.claude.com/docs/zh-CN/claude-apps-gateway)(如果您的组织部署了该网关):管理员会预先配置网关 URL,`/login` 将直接打开 **Cloud gateway** 界面,供您使用企业 SSO 登录


271 271 

272有关更多信息,请参阅[最佳实践](https://code.claude.com/docs/zh-CN/best-practices.md)和[常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)。272有关更多信息,请参阅[最佳实践](https://code.claude.com/docs/zh-CN/best-practices.md)和[常见工作流](https://code.claude.com/docs/zh-CN/common-workflows.md)。

273 273 

274> **对您的请求要具体**274> [accordion] 对您的请求要具体

275>275>

276> 不要说:"修复错误"276> 不要说:"修复错误"

277>277>

278> 尝试:"修复登录错误,用户输入错误凭证后看到空白屏幕"278> 尝试:"修复登录错误,用户输入错误凭证后看到空白屏幕"

279 279 

280> **使用分步说明**280> [accordion] 使用分步说明

281>281>

282> 将复杂任务分解为步骤:282> 将复杂任务分解为步骤:

283>283>


287> 3. 构建允许用户查看和编辑其信息的网页287> 3. 构建允许用户查看和编辑其信息的网页

288> ```288> ```

289 289 

290> **让 Claude 先探索**290> [accordion] 让 Claude 先探索

291>291>

292> 在进行更改之前,让 Claude 理解您的代码:292> 在进行更改之前,让 Claude 理解您的代码:

293>293>


299> 构建一个仪表板,显示英国客户最常退货的产品299> 构建一个仪表板,显示英国客户最常退货的产品

300> ```300> ```

301 301 

302> **使用快捷方式节省时间**302> [accordion] 使用快捷方式节省时间

303>303>

304> * 输入 `/` 查看所有命令和 skills304> * 输入 `/` 查看所有命令和 skills

305> * 使用 Tab 进行命令补全305> * 使用 Tab 进行命令补全

remote-control.md +97 −97

Details

25 25 

26在使用 Remote Control 之前,请确认您的环境满足以下条件:26在使用 Remote Control 之前,请确认您的环境满足以下条件:

27 27 

28* **订阅**:在 Pro、Max、Team 和 Enterprise 计划中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。28* **订阅**:在 Pro、Max、Ultra、Team 和 Enterprise 套餐中可用。不支持 API 密钥。在 Team 和 Enterprise 上,Owner 必须首先在 [Claude Code 管理员设置](https://claude.ai/admin-settings/claude-code)中启用 Remote Control 切换。

29* **自定义角色**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您的角色必须同时授予您云端会话权限和 **Claude Code remote control** 权限。如果缺少其中任何一项,启动 Remote Control 时会显示 [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy)。请让 Owner 在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中检查您的角色并添加缺少的权限。29* **自定义角色**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,您的角色必须同时授予您云端会话权限和 **Claude Code remote control** 权限。如果缺少其中任何一项,启动 Remote Control 时会显示 [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy)。请让 Owner 在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中检查您的角色并添加缺少的权限。

30* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。如果没有符合条件的登录,`claude remote-control` 会以错误退出,而 `claude --remote-control` 仍会启动交互式会话,并在启动后不久显示 Remote Control 失败通知。30* **身份验证**:运行 `claude` 并使用 `/login` 通过 claude.ai 登录(如果您还没有登录)。如果没有符合条件的登录,`claude remote-control` 会以错误退出,而 `claude --remote-control` 仍会启动交互式会话,并在启动后不久显示 Remote Control 失败通知。

31* **API 端点**:在以下任何配置中都不可用:31* **API 端点**:在以下任何配置中都不可用:


41 41 

42您可以从 CLI、[Claude Desktop 应用](https://code.claude.com/docs/zh-CN/desktop.md)或 VS Code 扩展启动 Remote Control 会话。CLI 提供三种调用模式;Desktop 应用和 VS Code 使用 `/remote-control` 命令。42您可以从 CLI、[Claude Desktop 应用](https://code.claude.com/docs/zh-CN/desktop.md)或 VS Code 扩展启动 Remote Control 会话。CLI 提供三种调用模式;Desktop 应用和 VS Code 使用 `/remote-control` 命令。

43 43 

44**服务器模式**44> [tab] 服务器模式

45 45>

46在项目目录中运行:46> 在项目目录中运行:

47 47>

48```bash theme={null}48> ```bash theme={null}

49claude remote-control49> claude remote-control

50```50> ```

51 51>

52在您接受 Remote Control 的一次性确认之前,`claude remote-control` 会先说明其作用,并在启动服务器前询问 `Enable Remote Control? (y/n)`。回答 `y` 即可接受并启动服务器。如果您拒绝,Claude Code 会退出而不启动服务器,并在您下次运行该命令时再次询问。52> 在您接受 Remote Control 的一次性确认之前,`claude remote-control` 会先说明其作用,并在启动服务器前询问 `Enable Remote Control? (y/n)`。回答 `y` 即可接受并启动服务器。如果您拒绝,Claude Code 会退出而不启动服务器,并在您下次运行该命令时再次询问。

53 53>

54在服务器模式下,该进程会在终端中持续运行,等待远程连接。它会显示一个会话 URL,您可以用它[从另一台设备连接](#connect-from-another-device),还可以按空格键显示二维码,以便从手机快速访问。远程会话处于活动状态时,终端会显示连接状态和工具活动。54> 在服务器模式下,该进程会在终端中持续运行,等待远程连接。它会显示一个会话 URL,您可以用它[从另一台设备连接](#connect-from-another-device),还可以按空格键显示二维码,以便从手机快速访问。远程会话处于活动状态时,终端会显示连接状态和工具活动。

55 55>

56在 `remote-control` 之后传入以下任意标志:56> 在 `remote-control` 之后传入以下任意标志:

57 57>

58| 标志 | 描述 |58> | 标志 | 描述 |

59| - | - |59> | - | - |

60| `--name "My Project"` | 设置自定义会话标题,该标题会显示在 claude.ai/code 的会话列表中。 |60> | `--name "My Project"` | 设置自定义会话标题,该标题会显示在 claude.ai/code 的会话列表中。 |

61| `--remote-control-session-name-prefix <prefix>` | 未设置显式名称时,自动生成的会话名称所用的前缀。默认为您机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 可达到相同效果。 |61> | `--remote-control-session-name-prefix <prefix>` | 未设置显式名称时,自动生成的会话名称所用的前缀。默认为您机器的主机名,生成类似 `myhost-graceful-unicorn` 的名称。设置 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 可达到相同效果。 |

62| `-c`, `--continue` | 恢复此目录中上一个服务器启动时使用的会话,而不是创建新会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 组合使用。需要 Claude Code v2.1.200 或更高版本。 |62> | `-c`, `--continue` | 恢复此目录中上一个服务器启动时使用的会话,而不是创建新会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 组合使用。需要 Claude Code v2.1.200 或更高版本。 |

63| `--session-id <id>` | 按 ID 恢复某个会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 组合使用。需要 Claude Code v2.1.200 或更高版本。 |63> | `--session-id <id>` | 按 ID 恢复某个会话。请参阅[停止服务器后恢复会话](#resume-sessions-after-stopping-the-server)。不能与 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 组合使用。需要 Claude Code v2.1.200 或更高版本。 |

64| `--spawn <mode>` | 服务器创建会话的方式。 • `same-dir`(未保存模式时的默认值):所有会话共享当前工作目录,因此编辑相同文件时可能会发生冲突。 • `worktree`:每个按需创建的会话都有自己的 [git worktree](https://code.claude.com/docs/zh-CN/worktrees.md)。需要 git 仓库或 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-CN/hooks#worktreecreate)。 • `session`:单会话模式。仅服务一个会话并拒绝其他连接。只能在启动时设置。 在运行时按 `w` 可在 `same-dir` 和 `worktree` 之间切换。您切换到的模式会成为[此项目的默认模式](#set-the-default-spawn-mode-for-a-project)。 |64> | `--spawn <mode>` | 服务器创建会话的方式。 • `same-dir`(未保存模式时的默认值):所有会话共享当前工作目录,因此编辑相同文件时可能会发生冲突。 • `worktree`:每个按需创建的会话都有自己的 [git worktree](https://code.claude.com/docs/zh-CN/worktrees.md)。需要 git 仓库或 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-CN/hooks#worktreecreate)。 • `session`:单会话模式。仅服务一个会话并拒绝其他连接。只能在启动时设置。 在运行时按 `w` 可在 `same-dir` 和 `worktree` 之间切换。您切换到的模式会成为[此项目的默认模式](#set-the-default-spawn-mode-for-a-project)。 |

65| `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |65> | `--capacity <N>` | 最大并发会话数。默认为 32。不能与 `--spawn=session` 一起使用。 |

66| `--[no-]create-session-in-dir` | 服务器启动时在当前目录中预先创建一个会话,以便您可以立即开始输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需创建的会话则获得独立的 worktree。默认开启。如果您传入 `--no-create-session-in-dir` 以不带任何会话启动,Claude Code 会在您停止服务器时归档服务器的会话,因此将没有可[恢复](#resume-sessions-after-stopping-the-server)的会话。 |66> | `--[no-]create-session-in-dir` | 服务器启动时在当前目录中预先创建一个会话,以便您可以立即开始输入。在 `worktree` 模式下,此会话保留在当前目录中,而按需创建的会话则获得独立的 worktree。默认开启。如果您传入 `--no-create-session-in-dir` 以不带任何会话启动,Claude Code 会在您停止服务器时归档服务器的会话,因此将没有可[恢复](#resume-sessions-after-stopping-the-server)的会话。 |

67| `--permission-mode <mode>` | 为服务器的会话设置初始[权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md),例如 `acceptEdits`。接受 `manual` 作为 `default` 的别名;无法识别的模式会使服务器在启动时停止并列出有效模式。 |67> | `--permission-mode <mode>` | 为服务器的会话设置初始[权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md),例如 `acceptEdits`。接受 `manual` 作为 `default` 的别名;无法识别的模式会使服务器在启动时停止并列出有效模式。 |

68| `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](https://code.claude.com/docs/zh-CN/chrome.md),以便您在另一台设备上工作时 Claude 可以使用您机器上的 Chrome。如果不带任一标志,服务器预先创建的会话以及您自己从 claude.ai/code 或 Claude 应用启动的任何会话都会以关闭 Chrome 的状态开始,即使您已[默认启用 Chrome](https://code.claude.com/docs/zh-CN/chrome.md#enable-chrome-by-default)。服务器为您的某个[项目](https://code.claude.com/docs/zh-CN/claude-projects.md)线程启动的会话则遵循该设置,但 `bypassPermissions` 模式除外。需要 Claude Code v2.1.273 或更高版本。 |68> | `--chrome` / `--no-chrome` | 在服务器创建的会话中打开或关闭 [Chrome 集成](https://code.claude.com/docs/zh-CN/chrome.md),以便您在另一台设备上工作时 Claude 可以使用您机器上的 Chrome。如果不带任一标志,服务器预先创建的会话以及您自己从 claude.ai/code 或 Claude 应用启动的任何会话都会以关闭 Chrome 的状态开始,即使您已[默认启用 Chrome](https://code.claude.com/docs/zh-CN/chrome.md#enable-chrome-by-default)。服务器为您的某个[项目](https://code.claude.com/docs/zh-CN/claude-projects.md)线程启动的会话则遵循该设置,但 `bypassPermissions` 模式除外。需要 Claude Code v2.1.273 或更高版本。 |

69| `-d`, `--debug[=<filter>]` | 为服务器开启调试日志,可选择按类别过滤。只能以 `=` 形式传入过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |69> | `-d`, `--debug[=<filter>]` | 为服务器开启调试日志,可选择按类别过滤。只能以 `=` 形式传入过滤器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更高版本。 |

70| `--debug-file <path>` | 将调试日志写入指定文件。 |70> | `--debug-file <path>` | 将调试日志写入指定文件。 |

71| `--verbose` | 显示详细的连接和会话日志。 |71> | `--verbose` | 显示详细的连接和会话日志。 |

72| `--sandbox`, `--no-sandbox` | 已在 v2.1.300 中移除。如果您传入任一标志,服务器会[报错退出](https://code.claude.com/docs/zh-CN/errors.md#sandbox-is-not-supported-by-claude-remote-control),而不是启动。 |72> | `--sandbox`, `--no-sandbox` | 已在 v2.1.300 中移除。如果您传入任一标志,服务器会[报错退出](https://code.claude.com/docs/zh-CN/errors.md#sandbox-is-not-supported-by-claude-remote-control),而不是启动。 |

73 73>

74如果您在 `remote-control` 之前传入全局 `claude` 标志,或者包装脚本添加了此类标志,Claude Code 不会将该标志传递给服务器创建的会话。只有在确知丢弃该标志不会改变这些会话的能力时,Claude Code 才会放行该标志,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code 会[拒绝启动](https://code.claude.com/docs/zh-CN/errors.md#not-carried-over-to-the-sessions-remote-control-starts)并指出需要移除的标志。74> 如果您在 `remote-control` 之前传入全局 `claude` 标志,或者包装脚本添加了此类标志,Claude Code 不会将该标志传递给服务器创建的会话。只有在确知丢弃该标志不会改变这些会话的能力时,Claude Code 才会放行该标志,例如 `--verbose` 或 `--model`。对于任何其他标志,例如 `--settings`,Claude Code 会[拒绝启动](https://code.claude.com/docs/zh-CN/errors.md#not-carried-over-to-the-sessions-remote-control-starts)并指出需要移除的标志。

75 75>

76要对服务器启动的会话进行沙箱隔离,请在设置文件中开启[沙箱隔离](https://code.claude.com/docs/zh-CN/sandboxing.md)。76> 要对服务器启动的会话进行沙箱隔离,请在设置文件中开启[沙箱隔离](https://code.claude.com/docs/zh-CN/sandboxing.md)。

77 77>

78要在终端中打印 `remote-control` 的标志,请运行 `claude remote-control --help`。在 v2.1.302 之前,如果没有符合条件的登录,该命令会返回[故障排除](#troubleshooting)中列出的某个错误。78> 要在终端中打印 `remote-control` 的标志,请运行 `claude remote-control --help`。在 v2.1.302 之前,如果没有符合条件的登录,该命令会返回[故障排除](#troubleshooting)中列出的某个错误。

79 

80**交互式会话**

81 

82要启动启用了 Remote Control 的普通交互式 Claude Code 会话,请使用 `--remote-control` 标志(或 `--rc`):

83 

84```bash theme={null}

85claude --remote-control

86```

87 

88可以选择为会话传入一个名称:

89 

90```bash theme={null}

91claude --remote-control "My Project"

92```

93 

94这会在终端中为您提供一个完整的交互式会话,您还可以从 claude.ai 或 Claude 应用控制它。与 `claude remote-control`(服务器模式)不同,您可以在本地输入消息,同时该会话也可供远程使用。

95 

96**从现有会话**

97 

98如果您已经在 Claude Code 会话中,并希望远程继续该会话,请使用 `/remote-control`(或 `/rc`)命令:

99 

100```text theme={null}

101/remote-control

102```

103 

104传入名称作为参数以设置自定义会话标题:

105 

106```text theme={null}

107/remote-control My Project

108```

109 

110这会启动一个 Remote Control 会话,并沿用您当前的对话历史。

111 

112在您接受 Remote Control 的一次性确认之前,`/remote-control` 连接前会出现一个对话框。选择 **Enable Remote Control** 即可接受并连接。如果您选择 **Never mind** 或按 Esc,Claude Code 不会连接,并会在您下次运行 `/remote-control` 时再次询问。

113 

114此命令不支持 `--verbose` 标志。

115 

116**VS Code**

117 

118在 [Claude Code VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)中,在输入框中输入 `/remote-control` 或 `/rc`。

119 

120```text theme={null}

121/remote-control

122```

123 

124Remote Control 开启期间,Claude Code 会在输入框底部显示 **Remote Control** 指示器。会话连接后,点击该指示器即可直接进入会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 还会在对话中发布会话 URL。要断开连接,请再次运行 `/remote-control`。

125 

126与 CLI 不同,VS Code 命令不接受名称参数,也不显示二维码。会话标题来自您的对话历史或第一条提示词。

127 

128**Desktop 应用**

129 79 

130在 [Claude Desktop 应用](https://code.claude.com/docs/zh-CN/desktop.md) Code 标签页的本地会话中,在输入框中输入 `/remote-control` 或 `/rc`。80> [tab] 交互式会话

81>

82> 要启动启用了 Remote Control 的普通交互式 Claude Code 会话,请使用 `--remote-control` 标志(或 `--rc`):

83>

84> ```bash theme={null}

85> claude --remote-control

86> ```

87>

88> 可以选择为会话传入一个名称:

89>

90> ```bash theme={null}

91> claude --remote-control "My Project"

92> ```

93>

94> 这会在终端中为您提供一个完整的交互式会话,您还可以从 claude.ai 或 Claude 应用控制它。与 `claude remote-control`(服务器模式)不同,您可以在本地输入消息,同时该会话也可供远程使用。

131 95 

132```text theme={null}96> [tab] 从现有会话

133/remote-control97>

134```98> 如果您已经在 Claude Code 会话中,并希望远程继续该会话,请使用 `/remote-control`(或 `/rc`)命令:

99>

100> ```text theme={null}

101> /remote-control

102> ```

103>

104> 传入名称作为参数以设置自定义会话标题:

105>

106> ```text theme={null}

107> /remote-control My Project

108> ```

109>

110> 这会启动一个 Remote Control 会话,并沿用您当前的对话历史。

111>

112> 在您接受 Remote Control 的一次性确认之前,`/remote-control` 连接前会出现一个对话框。选择 **Enable Remote Control** 即可接受并连接。如果您选择 **Never mind** 或按 Esc,Claude Code 不会连接,并会在您下次运行 `/remote-control` 时再次询问。

113>

114> 此命令不支持 `--verbose` 标志。

135 115 

136会话连接后,在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。要断开连接,请再次运行 `/remote-control`。116> [tab] VS Code

117>

118> 在 [Claude Code VS Code 扩展](https://code.claude.com/docs/zh-CN/vs-code.md)中,在输入框中输入 `/remote-control` 或 `/rc`。

119>

120> ```text theme={null}

121> /remote-control

122> ```

123>

124> Remote Control 开启期间,Claude Code 会在输入框底部显示 **Remote Control** 指示器。会话连接后,点击该指示器即可直接进入会话,或在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。Claude Code 还会在对话中发布会话 URL。要断开连接,请再次运行 `/remote-control`。

125>

126> 与 CLI 不同,VS Code 命令不接受名称参数,也不显示二维码。会话标题来自您的对话历史或第一条提示词。

137 127 

138如果要改为默认为每个会话开启 Remote Control,请参阅[为所有会话启用 Remote Control](#enable-remote-control-for-all-sessions)。128> [tab] Desktop 应用

129>

130> 在 [Claude Desktop 应用](https://code.claude.com/docs/zh-CN/desktop.md) Code 标签页的本地会话中,在输入框中输入 `/remote-control` 或 `/rc`。

131>

132> ```text theme={null}

133> /remote-control

134> ```

135>

136> 会话连接后,在 [claude.ai/code](https://claude.ai/code) 的会话列表中找到它。要断开连接,请再次运行 `/remote-control`。

137>

138> 如果要改为默认为每个会话开启 Remote Control,请参阅[为所有会话启用 Remote Control](#enable-remote-control-for-all-sessions)。

139 139 

140### 检查连接状态140### 检查连接状态

141 141 


250>250>

251> 受信任的设备目前处于测试阶段。功能和特性可能会随着体验的完善而演变。251> 受信任的设备目前处于测试阶段。功能和特性可能会随着体验的完善而演变。

252>252>

253> 受信任的设备在 Pro、Max、Team 和 Enterprise 计划中可用,默认处于关闭状态。在 Team 和 Enterprise 计划中,所有者为组织启用它。在 Pro 和 Max 计划中,您可以在设置中的 Cowork 或 Account 页面上自行启用**需要受信任的设备**。253> 受信任的设备在 Pro、Max、Ultra、Team 和 Enterprise 计划中可用,默认处于关闭状态。在 Team 和 Enterprise 计划中,所有者为组织启用它。在 Pro、Max 和 Ultra 计划中,您可以在设置中的 Cowork 或 Account 页面上自行启用**需要受信任的设备**。

254 254 

255受信任的设备要求您的组织的每个成员,或在 Pro 或 Max 计划上仅您自己,在从 claude.ai、Claude 移动应用或 Claude Desktop 查看或控制 Remote Control 会话之前验证其设备。它将 Remote Control 访问权限与已知设备和最近的身份验证绑定,而不仅仅是已登录的账户。255受信任的设备要求您在从 claude.ai、Claude 移动应用或 Claude Desktop 查看或控制 Remote Control 会话之前拥有经过验证的设备。该要求适用于您组织的每个成员,或在 Pro、Max 或 Ultra 计划上仅适用于您自己。它将 Remote Control 访问权限与已知设备和最近的身份验证绑定,而不仅仅是已登录的账户。

256 256 

257当设置打开时,与 Remote Control 会话交互需要以下两项:257当设置打开时,与 Remote Control 会话交互需要以下两项:

258 258 


310| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |310| [Dispatch](https://code.claude.com/docs/zh-CN/desktop.md#sessions-from-dispatch) | 从 Claude 移动应用发送任务消息 | 您的机器(Desktop) | [将移动应用与 Desktop 配对](https://support.claude.com/en/articles/13947068) | 在您离开时委派工作,最少设置 |

311| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI、Desktop 或 VS Code) | 运行 [`claude remote-control` 或 `/remote-control`](https://code.claude.com/docs/zh-CN/remote-control#start-a-remote-control-session) | 从另一台设备控制进行中的工作 |311| [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) | 从 [claude.ai/code](https://claude.ai/code) 或 Claude 移动应用驱动正在运行的会话 | 您的机器(CLI、Desktop 或 VS Code) | 运行 [`claude remote-control` 或 `/remote-control`](https://code.claude.com/docs/zh-CN/remote-control#start-a-remote-control-session) | 从另一台设备控制进行中的工作 |

312| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](https://code.claude.com/docs/zh-CN/channels.md#quickstart) 或 [构建您自己的](https://code.claude.com/docs/zh-CN/channels-reference.md) | 对外部事件(如 CI 失败或聊天消息)做出反应 |312| [Channels](https://code.claude.com/docs/zh-CN/channels.md) | 从聊天应用(如 Telegram 或 Discord)或您自己的服务器推送事件 | 您的机器(CLI) | [安装频道插件](https://code.claude.com/docs/zh-CN/channels.md#quickstart) 或 [构建您自己的](https://code.claude.com/docs/zh-CN/channels-reference.md) | 对外部事件(如 CI 失败或聊天消息)做出反应 |

313| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 在团队频道中提及 `@Claude` | Anthropic 云 | [安装 Slack 应用](https://code.claude.com/docs/zh-CN/slack.md#setting-up-claude-code-in-slack),启用 [Claude Code on the web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),在 Pro 和 Max 计划上 | 从团队聊天进行 PR 和审查 |313| [Slack](https://code.claude.com/docs/zh-CN/slack.md) | 在团队频道中提及 `@Claude` | Anthropic 云 | [安装 Slack 应用](https://code.claude.com/docs/zh-CN/slack.md#setting-up-claude-code-in-slack),启用 [Claude Code on the web](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md),在 Pro、Max 和 Ultra 计划上 | 从团队聊天进行 PR 和审查 |

314| [Self-hosted environments](https://code.claude.com/docs/zh-CN/self-hosted-environments) | 启动 [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)并选择您组织的环境 | 您组织的基础设施 | [部署运行器](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md),在 Team 和 Enterprise 计划上 | 必须在您的网络内运行的云会话 |314| [Self-hosted environments](https://code.claude.com/docs/zh-CN/self-hosted-environments) | 启动 [云会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)并选择您组织的环境 | 您组织的基础设施 | [部署运行器](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md),在 Team 和 Enterprise 计划上 | 必须在您的网络内运行的云会话 |

315| [Scheduled tasks](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 设置计划 | [CLI](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)、[Desktop](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md) 或 [云](https://code.claude.com/docs/zh-CN/routines.md) | 选择频率 | 定期自动化,如每日审查 |315| [Scheduled tasks](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 设置计划 | [CLI](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)、[Desktop](https://code.claude.com/docs/zh-CN/desktop-scheduled-tasks.md) 或 [云](https://code.claude.com/docs/zh-CN/routines.md) | 选择频率 | 定期自动化,如每日审查 |

316 316 


444设置了[环境变量](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)来关闭功能标志评估,完整消息命名了 Claude Code 找到的变量。在 2.1.154 之前的版本上,相同的配置会产生"Remote Control is not yet enabled for your account"。要做什么取决于消息命名的变量:444设置了[环境变量](https://code.claude.com/docs/zh-CN/env-vars.md#features-that-need-feature-flag-fetching)来关闭功能标志评估,完整消息命名了 Claude Code 找到的变量。在 2.1.154 之前的版本上,相同的配置会产生"Remote Control is not yet enabled for your account"。要做什么取决于消息命名的变量:

445 445 

446* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`**:在设置它的任何地方取消设置变量,在您的 shell 环境或[`settings.json` 文件](https://code.claude.com/docs/zh-CN/settings-reference#all-settings)的 `env` 块中。446* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`**:在设置它的任何地方取消设置变量,在您的 shell 环境或[`settings.json` 文件](https://code.claude.com/docs/zh-CN/settings-reference#all-settings)的 `env` 块中。

447* **`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`**:在 Pro、Max、Team 或 Enterprise 计划上,且 `DISABLE_GROWTHBOOK` 未设置,这些变量会保留 Remote Control 可用,除非您的组织需要[可信设备](#trusted-devices)。如果需要,在设置它的任何地方取消设置变量以使用 Remote Control。在 v2.1.154 到 v2.1.282 上,设置任一变量都会看到此消息,因此请将 Claude Code 更新到满足[这些变量的要求](#requirements)的版本。447* **`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`**:在 Pro、Max、Ultra、Team 或 Enterprise 套餐上,且 `DISABLE_GROWTHBOOK` 未设置,这些变量会保留 Remote Control 可用,除非您的组织需要[可信设备](#trusted-devices)。如果需要,在设置它的任何地方取消设置变量以使用 Remote Control。在 v2.1.154 到 v2.1.282 上,设置任一变量都会看到此消息,因此请将 Claude Code 更新到满足[这些变量的要求](#requirements)的版本。

448 448 

449### "Remote Control is only available when using Claude via api.anthropic.com"449### "Remote Control is only available when using Claude via api.anthropic.com"

450 450 


457策略阻止了 Remote Control。按顺序检查这些原因:457策略阻止了 Remote Control。按顺序检查这些原因:

458 458 

459* **错误提到 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)在此设备上禁用了 Remote Control,独立于组织范围的切换和您的登录方式。459* **错误提到 `disableRemoteControl`**:您的 IT 管理员已通过[托管设置](https://code.claude.com/docs/zh-CN/managed-settings.md)在此设备上禁用了 Remote Control,独立于组织范围的切换和您的登录方式。

460* **您的 claude.ai 计划是 Pro 或 Max**:Claude Code 仍然以来自较早登录的 Team 或 Enterprise 组织身份登录,因此它检查该组织的 Remote Control 策略。运行 `/status` 以查看您的登录使用的计划和组织。运行 `claude auth logout` 然后 `claude auth login` 以在您当前的计划下重新登录。460* **您的 claude.ai 套餐是 Pro、Max 或 Ultra**:Claude Code 仍然以来自较早登录的 Team 或 Enterprise 组织身份登录,因此它检查该组织的 Remote Control 策略。运行 `/status` 以查看您的登录使用的套餐和组织。运行 `claude auth logout` 然后 `claude auth login` 以在您当前的套餐下重新登录。

461* **消息未说联系您的组织管理员**:您的组织应用了 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md),该配置会关闭 Remote Control。要确认这一点,请运行 `/status` 并在 `Organization configuration` 行中查找 `HIPAA`。所有者会在[管理设置](https://claude.ai/admin-settings/claude-code)中看到 **Remote Control** 切换呈灰显状态,且无法将其打开。如果您对该配置有疑问,请询问所有者,所有者可以联系您组织的 Anthropic 客户团队。在 v2.1.267 之前,此情况显示"Remote Control isn't available for your organization due to its compliance policy"。461* **消息未说联系您的组织管理员**:您的组织应用了 [HIPAA 配置](https://code.claude.com/docs/zh-CN/hipaa-setup.md),该配置会关闭 Remote Control。要确认这一点,请运行 `/status` 并在 `Organization configuration` 行中查找 `HIPAA`。所有者会在[管理设置](https://claude.ai/admin-settings/claude-code)中看到 **Remote Control** 切换呈灰显状态,且无法将其打开。如果您对该配置有疑问,请询问所有者,所有者可以联系您组织的 Anthropic 客户团队。在 v2.1.267 之前,此情况显示"Remote Control isn't available for your organization due to its compliance policy"。

462* **Remote Control 对组织中的其他人有效,但对您无效**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,则原因可能在于您的角色。Remote Control 同时需要云端会话权限和 **Claude Code remote control** 权限。请让所有者检查您的角色是否同时包含这两项权限,并在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中添加缺少的权限。462* **Remote Control 对组织中的其他人有效,但对您无效**:如果您的 Enterprise 组织使用[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,则原因可能在于您的角色。Remote Control 同时需要云端会话权限和 **Claude Code remote control** 权限。请让所有者检查您的角色是否同时包含这两项权限,并在 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles) 中添加缺少的权限。

463* **否则,所有者尚未为您的组织启用它**:Remote Control 在 Team 和 Enterprise 计划上默认关闭。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。463* **否则,所有者尚未为您的组织启用它**:Remote Control 在 Team 和 Enterprise 计划上默认关闭。所有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 通过打开 **Remote Control** 切换来启用它。此切换是服务器端组织设置。

routines.md +11 −11

Details

25* 仅有 API 触发器的任务会在您调用其端点时运行。25* 仅有 API 触发器的任务会在您调用其端点时运行。

26* 仅有 GitHub 触发器的任务会在发生匹配的仓库事件时运行。26* 仅有 GitHub 触发器的任务会在发生匹配的仓库事件时运行。

27 27 

28定时任务适用于 Pro、Max、Team 和 Enterprise 套餐。您可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理它们,也可以在 CLI 中使用 `/schedule`。旧名称 Routine [仍会出现](#where-the-name-routines-still-appears)。28定时任务适用于 Pro、Max、Ultra、Team 和 Enterprise 套餐。您可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理它们,也可以在 CLI 中使用 `/schedule`。旧名称 Routine [仍会出现](#where-the-name-routines-still-appears)。

29 29 

30> [!NOTE]30> [!NOTE]

31>31>


85 85 

86在 **Trigger** 行中,选择任务的启动方式。要组合多个触发器,请点击该行末尾的 **+**。86在 **Trigger** 行中,选择任务的启动方式。要组合多个触发器,请点击该行末尾的 **+**。

87 87 

88**Schedule**88> [tab] Schedule

89 89>

90为定期运行选择一个预设频率。有关时区处理、延迟启动、自定义 cron 间隔和一次性运行,请参阅[添加计划触发器](#add-a-schedule-trigger)。90> 为定期运行选择一个预设频率。有关时区处理、延迟启动、自定义 cron 间隔和一次性运行,请参阅[添加计划触发器](#add-a-schedule-trigger)。

91 

92**GitHub event**

93 

94选择仓库、要响应的事件以及可选的筛选条件。有关支持的事件和筛选字段的完整列表,请参阅[添加 GitHub 触发器](#add-a-github-trigger)。

95 91 

96**API**92> [tab] GitHub event

93>

94> 选择仓库、要响应的事件以及可选的筛选条件。有关支持的事件和筛选字段的完整列表,请参阅[添加 GitHub 触发器](#add-a-github-trigger)。

97 95 

98在此处选择 **API**。当您点击 **Create** 时,**API token** 对话框会显示一次令牌,因此请在关闭对话框之前复制它。要复制 URL 或生成新令牌,请参阅[添加 API 触发器](#add-an-api-trigger)。96> [tab] API

97>

98> 在此处选择 **API**。当您点击 **Create** 时,**API token** 对话框会显示一次令牌,因此请在关闭对话框之前复制它。要复制 URL 或生成新令牌,请参阅[添加 API 触发器](#add-an-api-trigger)。

99 99 

100**4. 选择仓库**100**4. 选择仓库**

101 101 


502* Owner 为您的 Team 或 Enterprise 组织[关闭了定时任务](#routines-are-disabled-by-your-organizations-policy)。在 v2.1.227 之前,这种情况下命令仍会显示,而当 Claude 尝试创建或运行任务时,claude.ai 会拒绝该任务502* Owner 为您的 Team 或 Enterprise 组织[关闭了定时任务](#routines-are-disabled-by-your-organizations-policy)。在 v2.1.227 之前,这种情况下命令仍会显示,而当 Claude 尝试创建或运行任务时,claude.ai 会拒绝该任务

503* 您的 Enterprise 组织通过[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,而您的所有角色都不包含 **Remote sessions** 下的定时任务权限。请联系 Owner 将该权限添加到您的某个角色中503* 您的 Enterprise 组织通过[自定义角色](https://support.claude.com/en/articles/13930452)管理您的访问权限,而您的所有角色都不包含 **Remote sessions** 下的定时任务权限。请联系 Owner 将该权限添加到您的某个角色中

504 504 

505如果原因在于您的 CLI 登录方式或您处于云端会话中,您仍可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理定时任务。您需要在该处使用 Pro、Max、Team 或 Enterprise 账户。如果您的组织关闭了定时任务或云端会话,或者您的角色中缺少相应权限,您也无法在 Web 端创建定时任务。505如果原因在于您的 CLI 登录方式或您处于云端会话中,您仍可以在 [claude.ai/code/routines](https://claude.ai/code/routines) 创建和管理定时任务。您需要在该处使用 Pro、Max、Ultra、Team 或 Enterprise 账户。如果您的组织关闭了定时任务或云端会话,或者您的角色中缺少相应权限,您也无法在 Web 端创建定时任务。

506 506 

507### "Routines are disabled by your organization's policy"507### "Routines are disabled by your organization's policy"

508 508 

sandboxing.md +12 −12

Details

119 119 

120使用您的发行版的包管理器安装它们:120使用您的发行版的包管理器安装它们:

121 121 

122**Ubuntu/Debian**122> [tab] Ubuntu/Debian

123 123>

124```bash theme={null}124> ```bash theme={null}

125sudo apt-get install bubblewrap socat125> sudo apt-get install bubblewrap socat

126```126> ```

127 

128**Fedora**

129 127 

130```bash theme={null}128> [tab] Fedora

131sudo dnf install bubblewrap socat129>

132```130> ```bash theme={null}

131> sudo dnf install bubblewrap socat

132> ```

133 133 

134当缺少依赖时,`/sandbox` 中的 Dependencies 选项卡会列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 过滤器中的哪些。如果在安装并重启 Claude Code 后没有看到该选项卡,则说明所有依赖都已就绪。134当缺少依赖时,`/sandbox` 中的 Dependencies 选项卡会列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 过滤器中的哪些。如果在安装并重启 Claude Code 后没有看到该选项卡,则说明所有依赖都已就绪。

135 135 


137 137 

138当缺少必需的依赖时,在安装之前 Dependencies 选项卡是唯一显示的选项卡。当仅缺少可选的 seccomp 过滤器时,Dependencies 选项卡会与其他选项卡一起显示。依赖检查在启动时运行,因此安装软件包后请重启 Claude Code,以便 `/sandbox` 检测到它们。138当缺少必需的依赖时,在安装之前 Dependencies 选项卡是唯一显示的选项卡。当仅缺少可选的 seccomp 过滤器时,Dependencies 选项卡会与其他选项卡一起显示。依赖检查在启动时运行,因此安装软件包后请重启 Claude Code,以便 `/sandbox` 检测到它们。

139 139 

140> **Ubuntu 24.04 及更高版本:允许 bubblewrap 创建用户命名空间**140> [accordion] Ubuntu 24.04 及更高版本:允许 bubblewrap 创建用户命名空间

141>141>

142> 在 Ubuntu 24.04 及更高版本上,默认的 AppArmor 策略会阻止 bubblewrap 创建其隔离所需的用户命名空间。142> 在 Ubuntu 24.04 及更高版本上,默认的 AppArmor 策略会阻止 bubblewrap 创建其隔离所需的用户命名空间。

143>143>


161> sudo systemctl reload apparmor161> sudo systemctl reload apparmor

162> ```162> ```

163 163 

164> **WSL2 注意事项**164> [accordion] WSL2 注意事项

165>165>

166> 在 PowerShell 中使用 `wsl -l -v` 检查您的 WSL 版本。如果看到 `Sandboxing requires WSL2`,则说明您的发行版运行的是 WSL1。请将其升级到 WSL2,或在不使用沙箱隔离的情况下运行 Claude Code。166> 在 PowerShell 中使用 `wsl -l -v` 检查您的 WSL 版本。如果看到 `Sandboxing requires WSL2`,则说明您的发行版运行的是 WSL1。请将其升级到 WSL2,或在不使用沙箱隔离的情况下运行 Claude Code。

167>167>

security.md +1 −1

Details

53* 对用户会话数据的受限访问53* 对用户会话数据的受限访问

54* 用户对数据训练偏好的控制。消费者用户可以随时更改其 [隐私设置](https://claude.ai/settings/privacy)。54* 用户对数据训练偏好的控制。消费者用户可以随时更改其 [隐私设置](https://claude.ai/settings/privacy)。

55 55 

56有关完整详情,请查看我们的 [Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms)(适用于 Team、Enterprise 和 API 用户)或 [Consumer Terms](https://www.anthropic.com/legal/consumer-terms)(适用于 Free、Pro 和 Max 用户)以及 [Privacy Policy](https://www.anthropic.com/legal/privacy)。56有关完整详情,请查看我们的 [Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms)(适用于 Team、Enterprise 和 API 用户)或 [Consumer Terms](https://www.anthropic.com/legal/consumer-terms)(适用于 Free、Pro、Max 和 Ultra 用户)以及 [Privacy Policy](https://www.anthropic.com/legal/privacy)。

57 57 

58### 其他保护措施58### 其他保护措施

59 59 

Details

14 14 

15在自托管环境中,这些相同的会话在您的网络内执行。除了[可用性和限制](#availability-and-limitations)中的差异以及部署页面的[已知问题](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#known-issues-and-limitations)之外,开发者体验完全相同。15在自托管环境中,这些相同的会话在您的网络内执行。除了[可用性和限制](#availability-and-limitations)中的差异以及部署页面的[已知问题](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md#known-issues-and-limitations)之外,开发者体验完全相同。

16 16 

17如果您的团队不使用云会话,这里没有什么需要配置的:终端或 IDE 中的会话始终在开发者自己的机器上运行。如果您想在自己的常开机器上运行 Claude Code 并从其他设备驱动它,请使用[远程控制](https://code.claude.com/docs/zh-CN/remote-control.md),它也可在 Pro 和 Max 计划上使用。当您准备好设置时,直接转到[快速入门](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md);如果您想先审查安全态势,请从[部署到生产](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md)开始。本页的其余部分解释自托管的工作原理以及何时选择它。17* 如果您的团队不使用云端会话,这里没有什么需要配置的:终端或 IDE 中的会话始终在开发者自己的机器上运行

18* 如需在自己的常开机器上运行 Claude Code 并从其他设备驱动它,请使用 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md),它也可在 Pro、Max 和 Ultra 计划上使用

19* 当您准备好设置时,直接转到[快速入门](https://code.claude.com/docs/zh-CN/self-hosted-environments-quickstart.md);如需先审查安全态势,请从[部署到生产](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy.md)开始

20 

21要了解自托管的工作原理以及何时选择它,请阅读[自托管环境的工作原理](#how-self-hosted-environments-work)和[为什么选择自托管](#why-self-host)。

18 22 

19## 自托管环境如何工作23## 自托管环境如何工作

20 24 

Details

531 531 

532使用 [`--confine-repo-settings enforce`](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment) 启动这些 runner。它会拒绝那些已提交设置被其标记的仓库上的会话,因此请先在默认的 `warn` 模式下运行,并清理其记录的问题。532使用 [`--confine-repo-settings enforce`](https://code.claude.com/docs/zh-CN/self-hosted-environments-deploy#harden-your-deployment) 启动这些 runner。它会拒绝那些已提交设置被其标记的仓库上的会话,因此请先在默认的 `warn` 模式下运行,并清理其记录的问题。

533 533 

534**Amazon Bedrock**534> [tab] Amazon Bedrock

535 535>

536将区域替换为您自己的区域:536> 将区域替换为您自己的区域:

537 537>

538```bash theme={null}538> ```bash theme={null}

539export CLAUDE_CODE_USE_BEDROCK=1539> export CLAUDE_CODE_USE_BEDROCK=1

540export AWS_REGION=us-east-1540> export AWS_REGION=us-east-1

541```541> ```

542 542>

543有关 Claude Code 如何解析区域,请参阅[配置 Claude Code](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#3-configure-claude-code)。有关 Claude Code 针对您的区域使用哪个推理配置文件前缀,请参阅[跨区域推理配置文件前缀](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#cross-region-inference-profile-prefixes)。543> 有关 Claude Code 如何解析区域,请参阅[配置 Claude Code](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#3-configure-claude-code)。有关 Claude Code 针对您的区域使用哪个推理配置文件前缀,请参阅[跨区域推理配置文件前缀](https://code.claude.com/docs/zh-CN/amazon-bedrock.md#cross-region-inference-profile-prefixes)。

544 

545**Google Cloud's Agent Platform**

546 

547将区域和项目 ID 替换为您自己的值:

548 

549```bash theme={null}

550export CLAUDE_CODE_USE_VERTEX=1

551export CLOUD_ML_REGION=global

552export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-ID

553```

554 544 

555要选择区域,请参阅[区域配置](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#region-configuration)。545> [tab] Google Cloud's Agent Platform

546>

547> 将区域和项目 ID 替换为您自己的值:

548>

549> ```bash theme={null}

550> export CLAUDE_CODE_USE_VERTEX=1

551> export CLOUD_ML_REGION=global

552> export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-ID

553> ```

554>

555> 要选择区域,请参阅[区域配置](https://code.claude.com/docs/zh-CN/google-vertex-ai.md#region-configuration)。

556 556 

557**4. 检查变量是否已传递到会话**557**4. 检查变量是否已传递到会话**

558 558 

Details

90 90 

91这些检查可以直接对应到标准 JWT 库。以下示例分别在 Node.js 中使用 [`jose`](https://www.npmjs.com/package/jose)(它负责 JWKS 的获取、缓存和 `kid` 选择),以及在 Python 中使用 [`PyJWT`](https://pyjwt.readthedocs.io/) 及其内置的 JWKS 客户端,实现了完整的检查流程。91这些检查可以直接对应到标准 JWT 库。以下示例分别在 Node.js 中使用 [`jose`](https://www.npmjs.com/package/jose)(它负责 JWKS 的获取、缓存和 `kid` 选择),以及在 Python 中使用 [`PyJWT`](https://pyjwt.readthedocs.io/) 及其内置的 JWKS 客户端,实现了完整的检查流程。

92 92 

93**Node.js (jose)**93> [tab] Node.js (jose)

94 94>

95```typescript theme={null}95> ```typescript theme={null}

96import { createRemoteJWKSet, jwtVerify } from "jose";96> import { createRemoteJWKSet, jwtVerify } from "jose";

97 97>

98const JWKS = createRemoteJWKSet(98> const JWKS = createRemoteJWKSet(

99 new URL("https://api.anthropic.com/v1/code/.well-known/jwks.json")99> new URL("https://api.anthropic.com/v1/code/.well-known/jwks.json")

100);100> );

101 101>

102const PREFIX = "sk-ant-cc-";102> const PREFIX = "sk-ant-cc-";

103const EXPECTED_POOL_ID = "ccpool_...";103> const EXPECTED_POOL_ID = "ccpool_...";

104 104>

105export async function verifySessionToken(raw: string) {105> export async function verifySessionToken(raw: string) {

106 if (!raw.startsWith(PREFIX)) {106> if (!raw.startsWith(PREFIX)) {

107 throw new Error("not a self-hosted runner session token");107> throw new Error("not a self-hosted runner session token");

108 }108> }

109 const jwt = raw.slice(PREFIX.length);109> const jwt = raw.slice(PREFIX.length);

110 110>

111 const { payload } = await jwtVerify(jwt, JWKS, {111> const { payload } = await jwtVerify(jwt, JWKS, {

112 issuer: "ccr",112> issuer: "ccr",

113 audience: EXPECTED_POOL_ID,113> audience: EXPECTED_POOL_ID,

114 algorithms: ["ES256"],114> algorithms: ["ES256"],

115 });115> });

116 116>

117 if (payload["ccr:role"] !== "session_worker") {117> if (payload["ccr:role"] !== "session_worker") {

118 throw new Error("token is not a session_worker token");118> throw new Error("token is not a session_worker token");

119 }119> }

120 120>

121 const act = payload.act as { email?: string; sub?: string };121> const act = payload.act as { email?: string; sub?: string };

122 return {122> return {

123 sessionId: payload["ccr:session_id"] as string,123> sessionId: payload["ccr:session_id"] as string,

124 poolId: payload["ccr:pool_id"] as string,124> poolId: payload["ccr:pool_id"] as string,

125 orgId: payload["ccr:org_id"] as string,125> orgId: payload["ccr:org_id"] as string,

126 creatorEmail: act?.email,126> creatorEmail: act?.email,

127 creatorSub: act?.sub,127> creatorSub: act?.sub,

128 };128> };

129}129> }

130```130> ```

131 131 

132**Python (PyJWT)**132> [tab] Python (PyJWT)

133 133>

134```python theme={null}134> ```python theme={null}

135import jwt135> import jwt

136from jwt import PyJWKClient136> from jwt import PyJWKClient

137 137>

138JWKS_URL = "https://api.anthropic.com/v1/code/.well-known/jwks.json"138> JWKS_URL = "https://api.anthropic.com/v1/code/.well-known/jwks.json"

139PREFIX = "sk-ant-cc-"139> PREFIX = "sk-ant-cc-"

140EXPECTED_POOL_ID = "ccpool_..."140> EXPECTED_POOL_ID = "ccpool_..."

141 141>

142jwks = PyJWKClient(JWKS_URL)142> jwks = PyJWKClient(JWKS_URL)

143 143>

144 144>

145def verify_session_token(raw: str) -> dict:145> def verify_session_token(raw: str) -> dict:

146 if not raw.startswith(PREFIX):146> if not raw.startswith(PREFIX):

147 raise ValueError("not a self-hosted runner session token")147> raise ValueError("not a self-hosted runner session token")

148 token = raw.removeprefix(PREFIX)148> token = raw.removeprefix(PREFIX)

149 149>

150 signing_key = jwks.get_signing_key_from_jwt(token)150> signing_key = jwks.get_signing_key_from_jwt(token)

151 payload = jwt.decode(151> payload = jwt.decode(

152 token,152> token,

153 signing_key.key,153> signing_key.key,

154 algorithms=["ES256"],154> algorithms=["ES256"],

155 issuer="ccr",155> issuer="ccr",

156 audience=EXPECTED_POOL_ID,156> audience=EXPECTED_POOL_ID,

157 )157> )

158 158>

159 if payload.get("ccr:role") != "session_worker":159> if payload.get("ccr:role") != "session_worker":

160 raise ValueError("token is not a session_worker token")160> raise ValueError("token is not a session_worker token")

161 161>

162 act = payload.get("act") or {}162> act = payload.get("act") or {}

163 return {163> return {

164 "session_id": payload["ccr:session_id"],164> "session_id": payload["ccr:session_id"],

165 "pool_id": payload["ccr:pool_id"],165> "pool_id": payload["ccr:pool_id"],

166 "org_id": payload["ccr:org_id"],166> "org_id": payload["ccr:org_id"],

167 "creator_email": act.get("email"),167> "creator_email": act.get("email"),

168 "creator_sub": act.get("sub"),168> "creator_sub": act.get("sub"),

169 }169> }

170```170> ```

171 171 

172### 在会话内验证令牌172### 在会话内验证令牌

173 173 

sessions.md +1 −1

Details

95 95 

96如果您在恢复会话时看到 "Resume this conversation?" 对话框,其中的估算值是仅保存的对话本身就会占用的 5 小时用量限制的份额。该估算不计入您已经使用的用量。96如果您在恢复会话时看到 "Resume this conversation?" 对话框,其中的估算值是仅保存的对话本身就会占用的 5 小时用量限制的份额。该估算不计入您已经使用的用量。

97 97 

98在 Pro 和 Max 计划中,当您[在长时间中断后](https://code.claude.com/docs/zh-CN/prompt-caching.md#resuming-a-session)或在不同的模型上恢复较长的对话时,可能会出现该对话框。估算的用量在您选择 **Resume** 后发送第一条消息时产生,而不是在您选择它时产生。请根据您的下一个任务是否仍需要保存的对话来选择:98在 Pro、Max 和 Ultra 计划中,当您[在长时间中断后](https://code.claude.com/docs/zh-CN/prompt-caching.md#resuming-a-session)或在不同的模型上恢复较长的对话时,可能会出现该对话框。估算的用量在您选择 **Resume** 后发送第一条消息时产生,而不是在您选择它时产生。请根据您的下一个任务是否仍需要保存的对话来选择:

99 99 

100* **Resume**:继续在保存的对话中工作。100* **Resume**:继续在保存的对话中工作。

101* **Start a new conversation**:切换到不需要保存的对话的工作。要稍后重新打开它,请在输入框中运行 [`/resume`](#use-the-session-picker)。该估算不适用于您在新对话中的第一条消息。如果该选项表明 Claude 可以查找此对话,您仍然可以在新对话中引用之前的工作。101* **Start a new conversation**:切换到不需要保存的对话的工作。要稍后重新打开它,请在输入框中运行 [`/resume`](#use-the-session-picker)。该估算不适用于您在新对话中的第一条消息。如果该选项表明 Claude 可以查找此对话,您仍然可以在新对话中引用之前的工作。

settings-example.md +325 −325

Details

20 20 

21一个开发者的个人设置。它选择一个模型和工作量级别,调整终端,并预先批准一个只读命令和一个文件读取。未列出的所有内容都保持其默认值。这样的文件放在 `~/.claude/settings.json` 中,它适用于你打开的每个项目。21一个开发者的个人设置。它选择一个模型和工作量级别,调整终端,并预先批准一个只读命令和一个文件读取。未列出的所有内容都保持其默认值。这样的文件放在 `~/.claude/settings.json` 中,它适用于你打开的每个项目。

22 22 

23**Copyable settings file**23> [tab] Copyable settings file

24 24>

25将其保存为 `~/.claude/settings.json`。这是有效的 JSON,没有注释,因此你可以按原样粘贴它并删除你不想要的键。25> 将其保存为 `~/.claude/settings.json`。这是有效的 JSON,没有注释,因此你可以按原样粘贴它并删除你不想要的键。

26 26>

27```json ~/.claude/settings.json theme={null}27> ```json ~/.claude/settings.json theme={null}

28{28> {

29 "model": "claude-sonnet-5",29> "model": "claude-sonnet-5",

30 "modelSettings": {30> "modelSettings": {

31 "claude-sonnet-5": { "effortLevel": "xhigh" }31> "claude-sonnet-5": { "effortLevel": "xhigh" }

32 },32> },

33 "editorMode": "vim",33> "editorMode": "vim",

34 "theme": "light-daltonized",34> "theme": "light-daltonized",

35 "statusLine": {35> "statusLine": {

36 "type": "command",36> "type": "command",

37 "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",37> "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",

38 "padding": 238> "padding": 2

39 },39> },

40 "spinnerTipsEnabled": false,40> "spinnerTipsEnabled": false,

41 "preferredNotifChannel": "terminal_bell",41> "preferredNotifChannel": "terminal_bell",

42 "permissions": {42> "permissions": {

43 "allow": [43> "allow": [

44 "Bash(git diff *)",44> "Bash(git diff *)",

45 "Read(~/.zshrc)"45> "Read(~/.zshrc)"

46 ]46> ]

47 },47> },

48 "autoUpdatesChannel": "stable",48> "autoUpdatesChannel": "stable",

49 "cleanupPeriodDays": 2049> "cleanupPeriodDays": 20

50}50> }

51```51> ```

52 52 

53**What each key does**53> [tab] What each key does

54 54>

55同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。55> 同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。

56 56>

57```jsonc ~/.claude/settings.json theme={null}57> ```jsonc ~/.claude/settings.json theme={null}

58{58> {

59 // 在 Sonnet 5 上启动每个会话59> // 在 Sonnet 5 上启动每个会话

60 "model": "claude-sonnet-5",60> "model": "claude-sonnet-5",

61 // 在 Sonnet 5 上运行高于其默认高级别;/effort 为每个模型保存一个级别,--effort 为单个会话设置一个级别61> // 在 Sonnet 5 上运行高于其默认高级别;/effort 为每个模型保存一个级别,--effort 为单个会话设置一个级别

62 "modelSettings": {62> "modelSettings": {

63 "claude-sonnet-5": { "effortLevel": "xhigh" }63> "claude-sonnet-5": { "effortLevel": "xhigh" }

64 },64> },

65 // 提示中的 Vim 快捷键65> // 提示中的 Vim 快捷键

66 "editorMode": "vim",66> "editorMode": "vim",

67 // 色盲友好的浅色主题67> // 色盲友好的浅色主题

68 "theme": "light-daltonized",68> "theme": "light-daltonized",

69 // 提示下方的状态行:模型名称和使用的上下文69> // 提示下方的状态行:模型名称和使用的上下文

70 "statusLine": {70> "statusLine": {

71 "type": "command",71> "type": "command",

72 "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",72> "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",

73 "padding": 273> "padding": 2

74 },74> },

75 // 隐藏在加载器下旋转的提示75> // 隐藏在加载器下旋转的提示

76 "spinnerTipsEnabled": false,76> "spinnerTipsEnabled": false,

77 // 为通知(例如完成的任务或等待的权限提示)响铃终端铃声77> // 为通知(例如完成的任务或等待的权限提示)响铃终端铃声

78 "preferredNotifChannel": "terminal_bell",78> "preferredNotifChannel": "terminal_bell",

79 // 让 Claude Code 运行 git diff 并读取你的 .zshrc,无需询问79> // 让 Claude Code 运行 git diff 并读取你的 .zshrc,无需询问

80 "permissions": {80> "permissions": {

81 "allow": [81> "allow": [

82 "Bash(git diff *)",82> "Bash(git diff *)",

83 "Read(~/.zshrc)"83> "Read(~/.zshrc)"

84 ]84> ]

85 },85> },

86 // 从稳定频道获取更新86> // 从稳定频道获取更新

87 "autoUpdatesChannel": "stable",87> "autoUpdatesChannel": "stable",

88 // 删除超过 20 天的会话记录和其他本地会话数据88> // 删除超过 20 天的会话记录和其他本地会话数据

89 "cleanupPeriodDays": 2089> "cleanupPeriodDays": 20

90}90> }

91```91> ```

92 92 

93## 团队的共享设置93## 团队的共享设置

94 94 


100* **hook 是仓库中的脚本。** 此文件的 hook 运行 `.claude/hooks/block-rm.sh`;[How a hook resolves](https://code.claude.com/docs/zh-CN/hooks.md#how-a-hook-resolves) 介绍了如何编写它。100* **hook 是仓库中的脚本。** 此文件的 hook 运行 `.claude/hooks/block-rm.sh`;[How a hook resolves](https://code.claude.com/docs/zh-CN/hooks.md#how-a-hook-resolves) 介绍了如何编写它。

101* **规则匹配按写入的命令和路径。** `Bash(git push *)` 不匹配 [`git -C . push`](https://code.claude.com/docs/zh-CN/permissions#bash-rule-limits)。`Read(./.env)` 单独停止文件工具和命名文件的命令,例如 `cat .env`,但不停止 [`grep -r` 在目录上运行](https://code.claude.com/docs/zh-CN/permissions#read-and-edit);此文件中的 `sandbox` 块关闭了该间隙,因为 sandbox [添加你的 `Read` deny 路径](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-filesystem-denyread) 到每个沙箱命令无法读取的内容。101* **规则匹配按写入的命令和路径。** `Bash(git push *)` 不匹配 [`git -C . push`](https://code.claude.com/docs/zh-CN/permissions#bash-rule-limits)。`Read(./.env)` 单独停止文件工具和命名文件的命令,例如 `cat .env`,但不停止 [`grep -r` 在目录上运行](https://code.claude.com/docs/zh-CN/permissions#read-and-edit);此文件中的 `sandbox` 块关闭了该间隙,因为 sandbox [添加你的 `Read` deny 路径](https://code.claude.com/docs/zh-CN/settings-reference#sandbox-filesystem-denyread) 到每个沙箱命令无法读取的内容。

102 102 

103**Copyable settings file**103> [tab] Copyable settings file

104 104>

105将其保存为仓库顶部的 `.claude/settings.json` 并提交。这是有效的 JSON,没有注释,因此你可以按原样粘贴它并删除你不想要的键。105> 将其保存为仓库顶部的 `.claude/settings.json` 并提交。这是有效的 JSON,没有注释,因此你可以按原样粘贴它并删除你不想要的键。

106 106>

107```json .claude/settings.json theme={null}107> ```json .claude/settings.json theme={null}

108{108> {

109 "permissions": {109> "permissions": {

110 "allow": [110> "allow": [

111 "Bash(npm run *)"111> "Bash(npm run *)"

112 ],112> ],

113 "ask": [113> "ask": [

114 "Bash(git push *)"114> "Bash(git push *)"

115 ],115> ],

116 "deny": [116> "deny": [

117 "Read(./.env)",117> "Read(./.env)",

118 "Read(./.env.*)",118> "Read(./.env.*)",

119 "Read(./secrets/**)"119> "Read(./secrets/**)"

120 ]120> ]

121 },121> },

122 "hooks": {122> "hooks": {

123 "PreToolUse": [123> "PreToolUse": [

124 {124> {

125 "matcher": "Bash",125> "matcher": "Bash",

126 "hooks": [126> "hooks": [

127 {127> {

128 "type": "command",128> "type": "command",

129 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"129> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"

130 }130> }

131 ]131> ]

132 }132> }

133 ]133> ]

134 },134> },

135 "extraKnownMarketplaces": {135> "extraKnownMarketplaces": {

136 "acme-tools": {136> "acme-tools": {

137 "source": {137> "source": {

138 "source": "github",138> "source": "github",

139 "repo": "acme-corp/claude-plugins"139> "repo": "acme-corp/claude-plugins"

140 }140> }

141 }141> }

142 },142> },

143 "enabledPlugins": {143> "enabledPlugins": {

144 "code-formatter@acme-tools": true144> "code-formatter@acme-tools": true

145 },145> },

146 "sandbox": {146> "sandbox": {

147 "enabled": true,147> "enabled": true,

148 "filesystem": {148> "filesystem": {

149 "allowWrite": [149> "allowWrite": [

150 "/tmp/build"150> "/tmp/build"

151 ]151> ]

152 },152> },

153 "network": {153> "network": {

154 "allowedDomains": [154> "allowedDomains": [

155 "registry.npmjs.org",155> "registry.npmjs.org",

156 "*.example.com"156> "*.example.com"

157 ]157> ]

158 }158> }

159 },159> },

160 "plansDirectory": "./plans"160> "plansDirectory": "./plans"

161}161> }

162```162> ```

163 163 

164**What each key does**164> [tab] What each key does

165 165>

166同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。166> 同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。

167 167>

168```jsonc .claude/settings.json theme={null}168> ```jsonc .claude/settings.json theme={null}

169{169> {

170 "permissions": {170> "permissions": {

171 // 无需询问即可运行 npm 脚本171> // 无需询问即可运行 npm 脚本

172 "allow": [172> "allow": [

173 "Bash(npm run *)"173> "Bash(npm run *)"

174 ],174> ],

175 // 在 git push 命令前确认175> // 在 git push 命令前确认

176 "ask": [176> "ask": [

177 "Bash(git push *)"177> "Bash(git push *)"

178 ],178> ],

179 // 拒绝文件工具和文件读取命令读取 env 文件和 secrets 文件夹179> // 拒绝文件工具和文件读取命令读取 env 文件和 secrets 文件夹

180 "deny": [180> "deny": [

181 "Read(./.env)",181> "Read(./.env)",

182 "Read(./.env.*)",182> "Read(./.env.*)",

183 "Read(./secrets/**)"183> "Read(./secrets/**)"

184 ]184> ]

185 },185> },

186 // 在每个 Bash 命令之前,运行仓库中可以阻止它的脚本186> // 在每个 Bash 命令之前,运行仓库中可以阻止它的脚本

187 "hooks": {187> "hooks": {

188 "PreToolUse": [188> "PreToolUse": [

189 {189> {

190 "matcher": "Bash",190> "matcher": "Bash",

191 "hooks": [191> "hooks": [

192 {192> {

193 "type": "command",193> "type": "command",

194 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"194> "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"

195 }195> }

196 ]196> ]

197 }197> }

198 ]198> ]

199 },199> },

200 // 在每个克隆上注册团队的插件市场200> // 在每个克隆上注册团队的插件市场

201 "extraKnownMarketplaces": {201> "extraKnownMarketplaces": {

202 "acme-tools": {202> "acme-tools": {

203 "source": {203> "source": {

204 "source": "github",204> "source": "github",

205 "repo": "acme-corp/claude-plugins"205> "repo": "acme-corp/claude-plugins"

206 }206> }

207 }207> }

208 },208> },

209 // 启用该市场中的一个插件;来自外部源(例如 GitHub 仓库)的插件仍然需要每个人安装一次209> // 启用该市场中的一个插件;来自外部源(例如 GitHub 仓库)的插件仍然需要每个人安装一次

210 "enabledPlugins": {210> "enabledPlugins": {

211 "code-formatter@acme-tools": true211> "code-formatter@acme-tools": true

212 },212> },

213 // 沙箱命令:可写的构建目录;npm 和 example.com 预先允许213> // 沙箱命令:可写的构建目录;npm 和 example.com 预先允许

214 "sandbox": {214> "sandbox": {

215 "enabled": true,215> "enabled": true,

216 "filesystem": {216> "filesystem": {

217 "allowWrite": [217> "allowWrite": [

218 "/tmp/build"218> "/tmp/build"

219 ]219> ]

220 },220> },

221 "network": {221> "network": {

222 "allowedDomains": [222> "allowedDomains": [

223 "registry.npmjs.org",223> "registry.npmjs.org",

224 "*.example.com"224> "*.example.com"

225 ]225> ]

226 }226> }

227 },227> },

228 // 将计划文件保存在仓库内228> // 将计划文件保存在仓库内

229 "plansDirectory": "./plans"229> "plansDirectory": "./plans"

230}230> }

231```231> ```

232 232 

233## 组织的托管设置233## 组织的托管设置

234 234 


247 247 

248管理员将这样的文件部署为 `managed-settings.json`,或通过 MDM 或 [server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 部署相同的 JSON。一个部署的文件适用于它到达的每台机器或帐户。要为一个组提供不同的值,请将不同的文件或配置文件部署到该组,因为 [server-managed settings 还不支持按组策略](https://code.claude.com/docs/zh-CN/server-managed-settings.md#current-limitations)。248管理员将这样的文件部署为 `managed-settings.json`,或通过 MDM 或 [server-managed settings](https://code.claude.com/docs/zh-CN/server-managed-settings.md) 部署相同的 JSON。一个部署的文件适用于它到达的每台机器或帐户。要为一个组提供不同的值,请将不同的文件或配置文件部署到该组,因为 [server-managed settings 还不支持按组策略](https://code.claude.com/docs/zh-CN/server-managed-settings.md#current-limitations)。

249 249 

250**Copyable settings file**250> [tab] Copyable settings file

251 251>

252将其部署为 `managed-settings.json`,或通过 MDM 或 claude.ai 控制台部署相同的 JSON。这是有效的 JSON,没有注释;将示例组织 UUID、服务器 URL 和市场替换为你自己的,并删除你不想要的键。252> 将其部署为 `managed-settings.json`,或通过 MDM 或 claude.ai 控制台部署相同的 JSON。这是有效的 JSON,没有注释;将示例组织 UUID、服务器 URL 和市场替换为你自己的,并删除你不想要的键。

253 253>

254```json managed-settings.json theme={null}254> ```json managed-settings.json theme={null}

255{255> {

256 "forceLoginMethod": "claudeai",256> "forceLoginMethod": "claudeai",

257 "forceLoginOrgUUID": [257> "forceLoginOrgUUID": [

258 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"258> "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

259 ],259> ],

260 "availableModels": [260> "availableModels": [

261 "opus",261> "opus",

262 "sonnet"262> "sonnet"

263 ],263> ],

264 "enforceAvailableModels": true,264> "enforceAvailableModels": true,

265 "permissions": {265> "permissions": {

266 "deny": [266> "deny": [

267 "Bash(curl *)",267> "Bash(curl *)",

268 "Read(./.env)",268> "Read(./.env)",

269 "Read(./secrets/**)"269> "Read(./secrets/**)"

270 ],270> ],

271 "disableBypassPermissionsMode": "disable"271> "disableBypassPermissionsMode": "disable"

272 },272> },

273 "allowManagedPermissionRulesOnly": true,273> "allowManagedPermissionRulesOnly": true,

274 "allowedMcpServers": [274> "allowedMcpServers": [

275 {275> {

276 "serverUrl": "https://api.githubcopilot.com/*"276> "serverUrl": "https://api.githubcopilot.com/*"

277 }277> }

278 ],278> ],

279 "allowManagedMcpServersOnly": true,279> "allowManagedMcpServersOnly": true,

280 "strictKnownMarketplaces": [280> "strictKnownMarketplaces": [

281 {281> {

282 "source": "github",282> "source": "github",

283 "repo": "acme-corp/approved-plugins"283> "repo": "acme-corp/approved-plugins"

284 }284> }

285 ],285> ],

286 "sandbox": {286> "sandbox": {

287 "enabled": true,287> "enabled": true,

288 "failIfUnavailable": true,288> "failIfUnavailable": true,

289 "allowUnsandboxedCommands": false,289> "allowUnsandboxedCommands": false,

290 "network": {290> "network": {

291 "allowedDomains": [291> "allowedDomains": [

292 "registry.npmjs.org",292> "registry.npmjs.org",

293 "github.com"293> "github.com"

294 ],294> ],

295 "allowManagedDomainsOnly": true295> "allowManagedDomainsOnly": true

296 }296> }

297 },297> },

298 "requiredMinimumVersion": "2.1.150",298> "requiredMinimumVersion": "2.1.150",

299 "cleanupPeriodDays": 7,299> "cleanupPeriodDays": 7,

300 "companyAnnouncements": [300> "companyAnnouncements": [

301 "Welcome to Acme Corp! Review our code guidelines at docs.example.com"301> "Welcome to Acme Corp! Review our code guidelines at docs.example.com"

302 ]302> ]

303}303> }

304```304> ```

305 305 

306**What each key does**306> [tab] What each key does

307 307>

308同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。308> 同一个文件,每个键上方都有注释。在这里阅读;从另一个选项卡复制,因为 Claude Code 不接受设置文件中的注释。

309 309>

310```jsonc managed-settings.json theme={null}310> ```jsonc managed-settings.json theme={null}

311{311> {

312 // 仅 claude.ai 登录,且仅在此组织中312> // 仅 claude.ai 登录,且仅在此组织中

313 "forceLoginMethod": "claudeai",313> "forceLoginMethod": "claudeai",

314 "forceLoginOrgUUID": [314> "forceLoginOrgUUID": [

315 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"315> "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

316 ],316> ],

317 // 仅 Opus 和 Sonnet 模型;使用 enforceAvailableModels,默认选项也遵守列表317> // 仅 Opus 和 Sonnet 模型;使用 enforceAvailableModels,默认选项也遵守列表

318 "availableModels": [318> "availableModels": [

319 "opus",319> "opus",

320 "sonnet"320> "sonnet"

321 ],321> ],

322 "enforceAvailableModels": true,322> "enforceAvailableModels": true,

323 "permissions": {323> "permissions": {

324 // 在每台机器上拒绝 curl 命令和读取项目的 .env 文件和 secrets 文件夹324> // 在每台机器上拒绝 curl 命令和读取项目的 .env 文件和 secrets 文件夹

325 "deny": [325> "deny": [

326 "Bash(curl *)",326> "Bash(curl *)",

327 "Read(./.env)",327> "Read(./.env)",

328 "Read(./secrets/**)"328> "Read(./secrets/**)"

329 ],329> ],

330 // 从每个会话中删除绕过权限模式330> // 从每个会话中删除绕过权限模式

331 "disableBypassPermissionsMode": "disable"331> "disableBypassPermissionsMode": "disable"

332 },332> },

333 // 忽略来自用户、项目和本地设置的权限规则333> // 忽略来自用户、项目和本地设置的权限规则

334 "allowManagedPermissionRulesOnly": true,334> "allowManagedPermissionRulesOnly": true,

335 // 仅 GitHub MCP 服务器,通过 URL 而不是名称匹配,因为用户可以335> // 仅 GitHub MCP 服务器,通过 URL 而不是名称匹配,因为用户可以

336 // 将任何服务器命名为 "github"。不匹配的用户添加的服务器不会加载,包括336> // 将任何服务器命名为 "github"。不匹配的用户添加的服务器不会加载,包括

337 // 当列表仅有 URL 条目时的每个 stdio 服务器。下面的 allowManagedMcpServersOnly337> // 当列表仅有 URL 条目时的每个 stdio 服务器。下面的 allowManagedMcpServersOnly

338 // 键使此托管列表成为唯一适用的允许列表338> // 键使此托管列表成为唯一适用的允许列表

339 "allowedMcpServers": [339> "allowedMcpServers": [

340 {340> {

341 "serverUrl": "https://api.githubcopilot.com/*"341> "serverUrl": "https://api.githubcopilot.com/*"

342 }342> }

343 ],343> ],

344 "allowManagedMcpServersOnly": true,344> "allowManagedMcpServersOnly": true,

345 // 插件只能来自此市场345> // 插件只能来自此市场

346 "strictKnownMarketplaces": [346> "strictKnownMarketplaces": [

347 {347> {

348 "source": "github",348> "source": "github",

349 "repo": "acme-corp/approved-plugins"349> "repo": "acme-corp/approved-plugins"

350 }350> }

351 ],351> ],

352 // 对 Claude 运行的每个命令进行沙箱处理,如果无法设置沙箱则拒绝启动,352> // 对 Claude 运行的每个命令进行沙箱处理,如果无法设置沙箱则拒绝启动,

353 // 并且永远不要让被阻止的命令在沙箱外重试;网络353> // 并且永远不要让被阻止的命令在沙箱外重试;网络

354 // 限制为 npm 和 GitHub,用户无法添加域354> // 限制为 npm 和 GitHub,用户无法添加域

355 "sandbox": {355> "sandbox": {

356 "enabled": true,356> "enabled": true,

357 "failIfUnavailable": true,357> "failIfUnavailable": true,

358 "allowUnsandboxedCommands": false,358> "allowUnsandboxedCommands": false,

359 "network": {359> "network": {

360 "allowedDomains": [360> "allowedDomains": [

361 "registry.npmjs.org",361> "registry.npmjs.org",

362 "github.com"362> "github.com"

363 ],363> ],

364 "allowManagedDomainsOnly": true364> "allowManagedDomainsOnly": true

365 }365> }

366 },366> },

367 // 拒绝在 2.1.150 之前的版本上启动367> // 拒绝在 2.1.150 之前的版本上启动

368 "requiredMinimumVersion": "2.1.150",368> "requiredMinimumVersion": "2.1.150",

369 // 7 天后删除会话记录和其他本地会话数据369> // 7 天后删除会话记录和其他本地会话数据

370 "cleanupPeriodDays": 7,370> "cleanupPeriodDays": 7,

371 // 每个用户在启动时看到的消息371> // 每个用户在启动时看到的消息

372 "companyAnnouncements": [372> "companyAnnouncements": [

373 "Welcome to Acme Corp! Review our code guidelines at docs.example.com"373> "Welcome to Acme Corp! Review our code guidelines at docs.example.com"

374 ]374> ]

375}375> }

376```376> ```

Details

3865* **类型**:Boolean3865* **类型**:Boolean

3866 * `true`:Claude Code 为您的组织允许频道3866 * `true`:Claude Code 为您的组织允许频道

3867 * `false`:与未设置相同;频道是否被阻止取决于您的计划,如默认值所述3867 * `false`:与未设置相同;频道是否被阻止取决于您的计划,如默认值所述

3868* **默认值**:未设置;在 Team 和 Enterprise 计划以及具有托管设置的 Console 账户上阻止频道,在 Pro 和 Max 计划以及没有托管设置的 Console 账户上允许频道3868* **默认值**:未设置;在 Team 和 Enterprise 计划以及具有托管设置的 Console 账户上阻止频道,在 Pro、Max 和 Ultra 计划以及没有托管设置的 Console 账户上允许频道

3869 3869 

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

3871{3871{

setup.md +251 −251

Details

35 35 

36要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。36要安装 Claude Code,请打开终端并运行适用于您的系统的命令。如果您之前没有使用过终端,[终端指南](https://code.claude.com/docs/zh-CN/terminal-guide)会展示如何打开终端并粘贴命令。

37 37 

38**原生安装(推荐)**38> [tab] 原生安装(推荐)

39 

40**macOS、Linux、WSL:**

41 

42```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

43curl -fsSL https://claude.ai/install.sh | bash

44```

45 

46在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。

47 

48**Windows PowerShell:**

49 

50```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

51irm https://claude.ai/install.ps1 | iex

52```

53 

54**Windows CMD:**

55 

56```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

57curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

58```

59 

60安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。

61 

62如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。

63 

64如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。

65 

66建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。

67 

68> [!NOTE]

69>39>

70> 原生安装会在后台自动更新,以保持您使用最新版本。40> **macOS、Linux、WSL:**

71 

72**Homebrew**

73 

74```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

75brew install --cask claude-code

76```

77 

78Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

79 

80> [!NOTE]

81>41>

82> Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。42> ```bash theme={null}

83 43> curl -fsSL https://claude.ai/install.sh | bash

84**WinGet**44> ```

45>

46> 在 Windows 上,当您在 PowerShell 中时,您的提示符显示 `PS C:\`;当您在 CMD 中时,提示符显示 `C:\`(没有 `PS`)。

47>

48> **Windows PowerShell:**

49>

50> ```powershell theme={null}

51> irm https://claude.ai/install.ps1 | iex

52> ```

53>

54> **Windows CMD:**

55>

56> ```batch theme={null}

57> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

58> ```

59>

60> 安装命令在下载 Claude Code 期间不会显示进度。安装程序完成后,打开一个新的终端窗口并运行 `claude --version`。正常的安装会打印一个版本号。如果您的 shell 显示找不到 `claude` 或无法识别,说明安装目录还不在您的 PATH 中:请参阅[修复您的 PATH](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#command-not-found-claude-after-installation)。

61>

62> 如果您看到 `The token '&&' is not a valid statement separator`,说明您在 PowerShell 中,而不是 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,说明您在 CMD 中,而不是 PowerShell。

63>

64> 如果安装命令失败并显示 `syntax error near unexpected token '<'`、`403` 或其他任何错误,请参阅[排查安装问题](https://code.claude.com/docs/zh-CN/troubleshoot-install.md#find-your-error)以匹配错误并获得修复方案和替代安装方法。

65>

66> 建议在原生 Windows 上安装 [Git for Windows](https://git-scm.com/downloads/win),以便 Claude Code 可以使用 Bash 工具。如果未安装 Git for Windows,Claude Code 将使用 PowerShell 作为 shell 工具。WSL 设置不需要 Git for Windows。

67>

68> > [!NOTE]

69> >

70> > 原生安装会在后台自动更新,以保持您使用最新版本。

85 71 

86```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}72> [tab] Homebrew

87winget install Anthropic.ClaudeCode73>

88```74> ```bash theme={null}

75> brew install --cask claude-code

76> ```

77>

78> Homebrew 提供两个 casks。`claude-code` 跟踪稳定发布渠道,通常比最新版本晚约一周,并跳过有重大回归的版本。`claude-code@latest` 跟踪最新渠道,在新版本发布时立即接收。

79>

80> > [!NOTE]

81> >

82> > Homebrew 安装不会自动更新。运行 `brew upgrade claude-code` 或 `brew upgrade claude-code@latest`(取决于您安装的 cask)以获取最新功能和安全修复。

89 83 

90> [!NOTE]84> [tab] WinGet

85>

86> ```powershell theme={null}

87> winget install Anthropic.ClaudeCode

88> ```

91>89>

92> WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。90> > [!NOTE]

91> >

92> > WinGet 安装不会自动更新。定期运行 `winget upgrade Anthropic.ClaudeCode` 以获取最新功能和安全修复。

93 93 

94您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。94您也可以在 Debian、Fedora、RHEL 和 Alpine 上使用 [apt、dnf 或 apk](https://code.claude.com/docs/zh-CN/setup.md#install-with-linux-package-managers) 进行安装。

95 95 


188 188 

189## 身份验证189## 身份验证

190 190 

191Claude Code 需要 Pro、Max、Team、Enterprise 或 Console 账户。免费的 claude.ai 计划不包括 Claude Code 访问权限。您也可以通过第三方 API 提供商(如 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md))使用 Claude Code。191Claude Code 需要 Pro、Max、Ultra、Team、Enterprise 或 Console 账户。免费的 claude.ai 计划不包括 Claude Code 访问权限。您也可以通过第三方 API 提供商(如 [Amazon Bedrock](https://code.claude.com/docs/zh-CN/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-CN/google-vertex-ai.md) 或 [Microsoft Foundry](https://code.claude.com/docs/zh-CN/microsoft-foundry.md))使用 Claude Code。

192 192 

193安装后,通过运行 `claude` 并按照浏览器提示登录。如果设置了 `ANTHROPIC_API_KEY` 环境变量,并且在 Claude Code 询问是否使用该密钥时您批准了它,Claude Code 将跳过登录提示。有关所有账户类型和团队设置选项,请参阅[身份验证](https://code.claude.com/docs/zh-CN/authentication.md)。193安装后,通过运行 `claude` 并按照浏览器提示登录。如果设置了 `ANTHROPIC_API_KEY` 环境变量,并且在 Claude Code 询问是否使用该密钥时您批准了它,Claude Code 将跳过登录提示。有关所有账户类型和团队设置选项,请参阅[身份验证](https://code.claude.com/docs/zh-CN/authentication.md)。

194 194 


300 300 

301要安装最新版本(默认):301要安装最新版本(默认):

302 302 

303**macOS、Linux、WSL**303> [tab] macOS、Linux、WSL

304 304>

305```bash theme={null}305> ```bash theme={null}

306curl -fsSL https://claude.ai/install.sh | bash306> curl -fsSL https://claude.ai/install.sh | bash

307```307> ```

308 

309**Windows PowerShell**

310 

311```powershell theme={null}

312irm https://claude.ai/install.ps1 | iex

313```

314 308 

315**Windows CMD**309> [tab] Windows PowerShell

310>

311> ```powershell theme={null}

312> irm https://claude.ai/install.ps1 | iex

313> ```

316 314 

317```batch theme={null}315> [tab] Windows CMD

318curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd316>

319```317> ```batch theme={null}

318> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

319> ```

320 320 

321要安装稳定版本:321要安装稳定版本:

322 322 

323**macOS、Linux、WSL**323> [tab] macOS、Linux、WSL

324 324>

325```bash theme={null}325> ```bash theme={null}

326curl -fsSL https://claude.ai/install.sh | bash -s stable326> curl -fsSL https://claude.ai/install.sh | bash -s stable

327```327> ```

328 

329**Windows PowerShell**

330 

331```powershell theme={null}

332& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable

333```

334 328 

335**Windows CMD**329> [tab] Windows PowerShell

330>

331> ```powershell theme={null}

332> & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable

333> ```

336 334 

337```batch theme={null}335> [tab] Windows CMD

338curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd336>

339```337> ```batch theme={null}

338> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd

339> ```

340 340 

341要安装特定版本号:341要安装特定版本号:

342 342 

343**macOS、Linux、WSL**343> [tab] macOS、Linux、WSL

344 344>

345```bash theme={null}345> ```bash theme={null}

346curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89346> curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89

347```347> ```

348 

349**Windows PowerShell**

350 

351```powershell theme={null}

352& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89

353```

354 348 

355**Windows CMD**349> [tab] Windows PowerShell

350>

351> ```powershell theme={null}

352> & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89

353> ```

356 354 

357```batch theme={null}355> [tab] Windows CMD

358curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd356>

359```357> ```batch theme={null}

358> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd

359> ```

360 360 

361要确认安装了哪个版本,请运行 `claude --version`:该命令打印您传递的确切版本,例如 `2.1.89 (Claude Code)`。361要确认安装了哪个版本,请运行 `claude --version`:该命令打印您传递的确切版本,例如 `2.1.89 (Claude Code)`。

362 362 


366 366 

367所有存储库都使用 [Claude Code 发布签名密钥](#binary-integrity-and-code-signing)进行签名。在信任密钥之前,请按照每个选项卡中的说明验证它。367所有存储库都使用 [Claude Code 发布签名密钥](#binary-integrity-and-code-signing)进行签名。在信任密钥之前,请按照每个选项卡中的说明验证它。

368 368 

369**apt**369> [tab] apt

370 370>

371适用于 Debian 和 Ubuntu。以下安装命令使用 `curl` 下载签名密钥,并使用 `gpg` 验证它,新安装的 Debian 和 Ubuntu 可能不包含这两个命令。如果任一命令报告 `command not found`,请先安装两者:371> 适用于 Debian 和 Ubuntu。以下安装命令使用 `curl` 下载签名密钥,并使用 `gpg` 验证它,新安装的 Debian 和 Ubuntu 可能不包含这两个命令。如果任一命令报告 `command not found`,请先安装两者:

372 372>

373```bash theme={null}373> ```bash theme={null}

374sudo apt install curl gnupg374> sudo apt install curl gnupg

375```375> ```

376 376>

377下载签名密钥:377> 下载签名密钥:

378 378>

379```bash theme={null}379> ```bash theme={null}

380sudo install -d -m 0755 /etc/apt/keyrings380> sudo install -d -m 0755 /etc/apt/keyrings

381sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \381> sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \

382 -o /etc/apt/keyrings/claude-code.asc382> -o /etc/apt/keyrings/claude-code.asc

383```383> ```

384 384>

385如果此下载失败,`apt update` 稍后会失败并显示 `NO_PUBKEY BAA929FF1A7ECACE`。在继续之前,确认密钥已下载并属于 Anthropic:385> 如果此下载失败,`apt update` 稍后会失败并显示 `NO_PUBKEY BAA929FF1A7ECACE`。在继续之前,确认密钥已下载并属于 Anthropic:

386 386>

387```bash theme={null}387> ```bash theme={null}

388gpg --show-keys /etc/apt/keyrings/claude-code.asc388> gpg --show-keys /etc/apt/keyrings/claude-code.asc

389```389> ```

390 390>

391gpg 打印的指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容:确认您的网络可以到达 `downloads.claude.ai`,然后重新运行下载命令。391> gpg 打印的指纹应该是 `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`。如果 gpg 报告文件无法打开或不包含有效的 OpenPGP 数据,则下载失败或返回了错误的内容:确认您的网络可以到达 `downloads.claude.ai`,然后重新运行下载命令。

392 392>

393在 `stable` 渠道上注册存储库并安装:393> 在 `stable` 渠道上注册存储库并安装:

394 394>

395```bash theme={null}395> ```bash theme={null}

396echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \396> echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \

397 | sudo tee /etc/apt/sources.list.d/claude-code.list397> | sudo tee /etc/apt/sources.list.d/claude-code.list

398sudo apt update398> sudo apt update

399sudo apt install claude-code399> sudo apt install claude-code

400```400> ```

401 401>

402要改用 `latest` 渠道,URL 路径和套件名称都会改变。使用此 `deb` 行:402> 要改用 `latest` 渠道,URL 路径和套件名称都会改变。使用此 `deb` 行:

403 403>

404```bash theme={null}404> ```bash theme={null}

405echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \405> echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \

406 | sudo tee /etc/apt/sources.list.d/claude-code.list406> | sudo tee /etc/apt/sources.list.d/claude-code.list

407```407> ```

408 408>

409要稍后升级,请运行 `sudo apt update && sudo apt upgrade claude-code`。409> 要稍后升级,请运行 `sudo apt update && sudo apt upgrade claude-code`。

410 

411**dnf**

412 

413适用于 Fedora 和 RHEL。以下命令配置 `stable` 渠道:

414 

415```bash theme={null}

416sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'

417[claude-code]

418name=Claude Code

419baseurl=https://downloads.claude.ai/claude-code/rpm/stable

420enabled=1

421gpgcheck=1

422gpgkey=https://downloads.claude.ai/keys/claude-code.asc

423EOF

424sudo dnf install claude-code

425```

426 

427要改用 `latest` 渠道,将 `baseurl` 设置为 `latest` 存储库:

428 

429```ini theme={null}

430baseurl=https://downloads.claude.ai/claude-code/rpm/latest

431```

432 

433dnf 在首次安装时下载密钥并提示您确认指纹。在接受之前验证它与 `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` 匹配。

434 

435要稍后升级,请运行 `sudo dnf upgrade claude-code`。

436 

437**apk**

438 

439适用于 Alpine Linux。以下命令配置 `stable` 渠道:

440 

441```sh theme={null}

442wget -O /etc/apk/keys/claude-code.rsa.pub \

443 https://downloads.claude.ai/keys/claude-code.rsa.pub

444echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

445apk add claude-code

446```

447 

448要切换到 `latest` 渠道,删除 `stable` 存储库行并添加 `latest` 存储库:

449 

450```sh theme={null}

451sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories

452echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories

453```

454 410 

455使用 `sha256sum /etc/apk/keys/claude-code.rsa.pub` 验证下载的密钥,应该报告 `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`。411> [tab] dnf

412>

413> 适用于 Fedora 和 RHEL。以下命令配置 `stable` 渠道:

414>

415> ```bash theme={null}

416> sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'

417> [claude-code]

418> name=Claude Code

419> baseurl=https://downloads.claude.ai/claude-code/rpm/stable

420> enabled=1

421> gpgcheck=1

422> gpgkey=https://downloads.claude.ai/keys/claude-code.asc

423> EOF

424> sudo dnf install claude-code

425> ```

426>

427> 要改用 `latest` 渠道,将 `baseurl` 设置为 `latest` 存储库:

428>

429> ```ini theme={null}

430> baseurl=https://downloads.claude.ai/claude-code/rpm/latest

431> ```

432>

433> dnf 在首次安装时下载密钥并提示您确认指纹。在接受之前验证它与 `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` 匹配。

434>

435> 要稍后升级,请运行 `sudo dnf upgrade claude-code`。

456 436 

457要稍后升级,请运行 `apk update && apk upgrade claude-code`。437> [tab] apk

438>

439> 适用于 Alpine Linux。以下命令配置 `stable` 渠道:

440>

441> ```sh theme={null}

442> wget -O /etc/apk/keys/claude-code.rsa.pub \

443> https://downloads.claude.ai/keys/claude-code.rsa.pub

444> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

445> apk add claude-code

446> ```

447>

448> 要切换到 `latest` 渠道,删除 `stable` 存储库行并添加 `latest` 存储库:

449>

450> ```sh theme={null}

451> sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories

452> echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories

453> ```

454>

455> 使用 `sha256sum /etc/apk/keys/claude-code.rsa.pub` 验证下载的密钥,应该报告 `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`。

456>

457> 要稍后升级,请运行 `apk update && apk upgrade claude-code`。

458 458 

459### 使用 npm 安装459### 使用 npm 安装

460 460 


546 546 

547将二进制文件的 SHA256 校验和与 `manifest.json` 中 `platforms.<platform>.checksum` 下列出的值进行比较。以下命令假设当前目录中有 `claude` 二进制文件。要验证已安装的原生二进制文件,请针对 `~/.local/share/claude/versions/VERSION` 运行命令,将 VERSION 替换为您在第 2 步中设置的发布。547将二进制文件的 SHA256 校验和与 `manifest.json` 中 `platforms.<platform>.checksum` 下列出的值进行比较。以下命令假设当前目录中有 `claude` 二进制文件。要验证已安装的原生二进制文件,请针对 `~/.local/share/claude/versions/VERSION` 运行命令,将 VERSION 替换为您在第 2 步中设置的发布。

548 548 

549**Linux**549> [tab] Linux

550 550>

551```bash theme={null}551> ```bash theme={null}

552sha256sum claude552> sha256sum claude

553```553> ```

554 

555**macOS**

556 

557```bash theme={null}

558shasum -a 256 claude

559```

560 554 

561**Windows PowerShell**555> [tab] macOS

556>

557> ```bash theme={null}

558> shasum -a 256 claude

559> ```

562 560 

563```powershell theme={null}561> [tab] Windows PowerShell

564(Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower()562>

565```563> ```powershell theme={null}

564> (Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower()

565> ```

566 566 

567> [!NOTE]567> [!NOTE]

568>568>


584 584 

585删除 Claude Code 二进制文件和版本文件:585删除 Claude Code 二进制文件和版本文件:

586 586 

587**macOS、Linux、WSL**587> [tab] macOS、Linux、WSL

588 588>

589```bash theme={null}589> ```bash theme={null}

590rm -f ~/.local/bin/claude590> rm -f ~/.local/bin/claude

591rm -rf ~/.local/share/claude591> rm -rf ~/.local/share/claude

592```592> ```

593 

594**Windows PowerShell**

595 593 

596```powershell theme={null}594> [tab] Windows PowerShell

597Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force595>

598Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force596> ```powershell theme={null}

599```597> Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force

598> Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force

599> ```

600 600 

601### 使用 Homebrew 卸载601### 使用 Homebrew 卸载

602 602 


624 624 

625删除包和存储库配置:625删除包和存储库配置:

626 626 

627**apt**627> [tab] apt

628 628>

629```bash theme={null}629> ```bash theme={null}

630sudo apt remove claude-code630> sudo apt remove claude-code

631sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc631> sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc

632```632> ```

633 

634**dnf**

635 

636```bash theme={null}

637sudo dnf remove claude-code

638sudo rm /etc/yum.repos.d/claude-code.repo

639```

640 633 

641**apk**634> [tab] dnf

635>

636> ```bash theme={null}

637> sudo dnf remove claude-code

638> sudo rm /etc/yum.repos.d/claude-code.repo

639> ```

642 640 

643```sh theme={null}641> [tab] apk

644apk del claude-code642>

645sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories643> ```sh theme={null}

646rm /etc/apk/keys/claude-code.rsa.pub644> apk del claude-code

647```645> sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories

646> rm /etc/apk/keys/claude-code.rsa.pub

647> ```

648 648 

649### 使用 npm 卸载649### 使用 npm 卸载

650 650 


664 664 

665要删除 Claude Code 设置和缓存数据:665要删除 Claude Code 设置和缓存数据:

666 666 

667**macOS、Linux、WSL**667> [tab] macOS、Linux、WSL

668 668>

669```bash theme={null}669> ```bash theme={null}

670# 删除用户设置和状态670> # 删除用户设置和状态

671rm -rf ~/.claude671> rm -rf ~/.claude

672rm ~/.claude.json672> rm ~/.claude.json

673 673>

674# 删除特定于项目的设置(从您的项目目录运行)674> # 删除特定于项目的设置(从您的项目目录运行)

675rm -rf .claude675> rm -rf .claude

676rm -f .mcp.json676> rm -f .mcp.json

677```677> ```

678 

679**Windows PowerShell**

680 

681```powershell theme={null}

682# 删除用户设置和状态

683Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force

684Remove-Item -Path "$env:USERPROFILE\.claude.json" -Force

685 678 

686# 删除特定于项目的设置(从您的项目目录运行)679> [tab] Windows PowerShell

687Remove-Item -Path ".claude" -Recurse -Force680>

688Remove-Item -Path ".mcp.json" -Force681> ```powershell theme={null}

689```682> # 删除用户设置和状态

683> Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force

684> Remove-Item -Path "$env:USERPROFILE\.claude.json" -Force

685>

686> # 删除特定于项目的设置(从您的项目目录运行)

687> Remove-Item -Path ".claude" -Recurse -Force

688> Remove-Item -Path ".mcp.json" -Force

689> ```

skills.md +1 −1

Details

42* **扩展**:未使用的 skill、MCP 服务器和插件与其上下文成本的对比,以及缓慢的 [hook](https://code.claude.com/docs/zh-CN/hooks.md)42* **扩展**:未使用的 skill、MCP 服务器和插件与其上下文成本的对比,以及缓慢的 [hook](https://code.claude.com/docs/zh-CN/hooks.md)

43* **`CLAUDE.md` 文件**:与已签入文件重复的本地 `CLAUDE.md` 文件、已签入的 [Claude 可以从代码库推导出的 `CLAUDE.md` 内容](https://code.claude.com/docs/zh-CN/memory#my-claude-md-is-too-large),以及其余始终加载的指导内容,Claude 会提议将其迁移到按需加载的 skill 和嵌套 `CLAUDE.md` 文件中43* **`CLAUDE.md` 文件**:与已签入文件重复的本地 `CLAUDE.md` 文件、已签入的 [Claude 可以从代码库推导出的 `CLAUDE.md` 内容](https://code.claude.com/docs/zh-CN/memory#my-claude-md-is-too-large),以及其余始终加载的指导内容,Claude 会提议将其迁移到按需加载的 skill 和嵌套 `CLAUDE.md` 文件中

44* **权限**:提议将[自动模式](https://code.claude.com/docs/zh-CN/permissions.md#permission-modes)设为您的默认权限模式,并[预先批准](https://code.claude.com/docs/zh-CN/permissions.md)您经常拒绝的只读命令44* **权限**:提议将[自动模式](https://code.claude.com/docs/zh-CN/permissions.md#permission-modes)设为您的默认权限模式,并[预先批准](https://code.claude.com/docs/zh-CN/permissions.md)您经常拒绝的只读命令

45* **用量**:在 Pro、Max、Team 或 Enterprise 套餐上,检查 [`/usage` 建议的更改](https://code.claude.com/docs/zh-CN/costs#plan-usage-breakdown)以降低您的套餐用量,基于过去 7 天的数据衡量。Claude 会提议它自己可以进行的更改,并将其余部分作为建议报告,例如供您运行的命令。用量检查需要 Claude Code v2.1.305 或更高版本,并且在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时,`/doctor` 会跳过该检查。45* **用量**:在 Pro、Max、Ultra、Team 或 Enterprise 套餐上,检查 [`/usage` 建议的更改](https://code.claude.com/docs/zh-CN/costs#plan-usage-breakdown)以降低您的套餐用量,基于过去 7 天的数据衡量。Claude 会提议它自己可以进行的更改,并将其余部分作为建议报告,例如供您运行的命令。用量检查需要 Claude Code v2.1.305 或更高版本,并且在 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 已连接时,`/doctor` 会跳过该检查。

46 46 

47如需在不启动会话的情况下进行只读安装诊断,请改为在终端中运行 `claude doctor`。47如需在不启动会话的情况下进行只读安装诊断,请改为在终端中运行 `claude doctor`。

48 48 

slack.md +11 −11

Details

4 4 

5# Slack 中的 Claude Code5# Slack 中的 Claude Code

6 6 

7> 从 Slack 委派编码任务。此早期版本仅在未连接到 Claude Tag 的工作区中回应来自 Pro 和 Max 账户的频道提及。7> 从 Slack 委派编码任务。此早期版本仅在未连接到 Claude Tag 的工作区中回应来自 Pro、Max 和 Ultra 账户的提及。

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> 本页面记录了早期的 Slack 中的 Claude Code,它在每个会话中以单个用户的账户运行。它仅回应来自 Pro 和 Max 账户的频道 @提及,并且仅在尚未有任何组织将其连接到 [Claude Tag](https://claude.com/product/tag) 的 Slack 工作区中回应。Claude Tag 以您组织的共享身份运行 @Claude,具有管理员配置的访问权限。11> 此早期版本的 Slack 中的 Claude Code 仅回应来自 Pro、Max 和 Ultra 账户的频道 @提及,并且仅在尚未有任何组织将其连接到 [Claude Tag](https://claude.com/product/tag) 的 Slack 工作区中回应。每个会话都以单个用户的账户运行。Claude Tag 以您组织的共享身份运行 @Claude,具有管理员配置的访问权限。

12>12>

13> * **Pro 和 Max 计划:** Claude Tag 在个人计划上不可用,因此在未连接到 Claude Tag 的工作区中,本页面仍然是设置路径。13> * **Pro、Max 和 Ultra 计划:** Claude Tag 在个人计划上不可用,因此请在未连接到 Claude Tag 的工作区中[设置此版本](#setting-up-claude-code-in-slack)。

14> * **Team 和 Enterprise 计划:** 您现有的 Slack 应用和 @Claude 用户名保持不变。为新工作区[设置 Claude Tag](https://claude.com/docs/claude-tag/overview);要迁移已经使用此版本的工作区,请参阅[从早期 Claude in Slack 迁移](https://claude.com/docs/claude-tag/admins/migrate-from-earlier)。14> * **Team 和 Enterprise 计划:** 您现有的 Slack 应用和 @Claude 用户名保持不变。为新工作区[设置 Claude Tag](https://claude.com/docs/claude-tag/overview);要迁移已经使用此版本的工作区,请参阅[从早期 Claude in Slack 迁移](https://claude.com/docs/claude-tag/admins/migrate-from-earlier)。

15> * **收到通知而非回答:** 请查阅 @Claude 回复的[设置通知](#this-workspace-isnt-set-up-for-claude-tag-yet)或[停用通知](#the-legacy-claude-in-slack-bot-is-retired)。15> * **收到通知而非回答:** 请查阅 @Claude 回复的[设置通知](#this-workspace-isnt-set-up-for-claude-tag-yet)或[停用通知](#the-legacy-claude-in-slack-bot-is-retired)。

16 16 


31 31 

32| 要求 | 详情 |32| 要求 | 详情 |

33| :- | :- |33| :- | :- |

34| Claude 计划 | Pro 或 Max |34| Claude 计划 | Pro、Max 或 Ultra |

35| Slack 工作区 | 未被任何组织连接到 [Claude Tag](https://claude.com/docs/claude-tag/overview)。如果 @Claude 回复了[停用通知](#the-legacy-claude-in-slack-bot-is-retired),则说明该工作区已被连接 |35| Slack 工作区 | 未被任何组织连接到 [Claude Tag](https://claude.com/docs/claude-tag/overview)。如果 @Claude 回复了[停用通知](#the-legacy-claude-in-slack-bot-is-retired),则说明该工作区已被连接 |

36| 云端会话 | [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)已为您的账户启用 |36| 云端会话 | [云端会话](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)已为您的账户启用 |

37| GitHub 账户 | 在 [claude.ai/code](https://claude.ai/code) 连接,至少有一个仓库已通过身份验证 |37| GitHub 账户 | 在 [claude.ai/code](https://claude.ai/code) 连接,至少有一个仓库已通过身份验证 |


178当以下两个条件同时满足时,@Claude 会在话题中回复此通知,而不是给出答案:178当以下两个条件同时满足时,@Claude 会在话题中回复此通知,而不是给出答案:

179 179 

180* 没有任何组织将您的 Slack 工作区连接到 [Claude Tag](https://claude.com/docs/claude-tag/overview)。180* 没有任何组织将您的 Slack 工作区连接到 [Claude Tag](https://claude.com/docs/claude-tag/overview)。

181* 您在 Slack 中关联的 Claude 账户不属于 Pro 或 Max 计划。181* 您在 Slack 中关联的 Claude 账户不属于 Pro、Max 或 Ultra 计划。

182 182 

183Claude Tag 适用于 Team 和 Enterprise 计划。要连接工作区,请先使用通知中提到的 `@Claude connect` 命令,然后按照[设置 Claude Tag](https://claude.com/docs/claude-tag/overview) 进行操作。183Claude Tag 适用于 Team 和 Enterprise 计划。要连接工作区,请先使用通知中提到的 `@Claude connect` 命令,然后按照[设置 Claude Tag](https://claude.com/docs/claude-tag/overview) 进行操作。

184 184 

185### "The legacy Claude in Slack bot is retired"185### "The legacy Claude in Slack bot is retired"

186 186 

187该通知以 `The legacy Claude in Slack bot is retired effective October 5, 2026 and no longer responds in channels.` 开头。这表示您的 Slack 工作区已连接到某个 Claude 组织,但在该组织的 Claude Tag 设置中,频道、工作区或组织默认值仍选择了早期版本。此通知与您自己的计划无关,因此 Pro 和 Max 账户也会收到。187该通知以 `The legacy Claude in Slack bot is retired effective October 5, 2026 and no longer responds in channels.` 开头。您的 Slack 工作区已连接到某个 Claude 组织。在该组织的 Claude Tag 设置中,频道、工作区或组织默认值仍选择了早期版本。此通知与您自己的计划无关,因此 Pro、Max 和 Ultra 账户也会收到。

188 188 

189如果您是该组织的所有者,请打开 [Claude 管理设置](https://claude.ai/admin-settings/claude-tag),并为该频道启用 Claude Tag。要修复所有继承该设置的频道,请改为在工作区或组织默认值上更改该设置。有关完整的迁移步骤,请参阅[从早期版本的 Claude in Slack 迁移](https://claude.com/docs/claude-tag/admins/migrate-from-earlier)。如果您不是所有者,请将此条目发送给所有者。189如果您是该组织的所有者,请打开 [Claude 管理设置](https://claude.ai/admin-settings/claude-tag),并为该频道启用 Claude Tag。要修复所有继承该设置的频道,请改为在工作区或组织默认值上更改该设置。有关完整的迁移步骤,请参阅[从早期版本的 Claude in Slack 迁移](https://claude.com/docs/claude-tag/admins/migrate-from-earlier)。如果您不是所有者,请将此条目发送给所有者。

190 190 


235 235 

236## 相关资源236## 相关资源

237 237 

238> **[云端 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)**238> [card] [云端 Claude Code](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md)

239>239>

240> 了解有关云端会话的更多信息240> 了解有关云端会话的更多信息

241 241 

242> **[Claude for Slack](https://claude.com/claude-and-slack)**242> [card] [Claude for Slack](https://claude.com/claude-and-slack)

243>243>

244> Claude for Slack 常规文档244> Claude for Slack 常规文档

245 245 

246> **[Claude Tag](https://claude.com/docs/claude-tag/overview)**246> [card] [Claude Tag](https://claude.com/docs/claude-tag/overview)

247>247>

248> Slack 中由组织管理的 @Claude,具有管理员配置的访问权限248> Slack 中由组织管理的 @Claude,具有管理员配置的访问权限

249 249 

250> **[Slack 应用程序市场](https://slack.com/marketplace/A08SF47R6P4)**250> [card] [Slack 应用程序市场](https://slack.com/marketplace/A08SF47R6P4)

251>251>

252> 从 Slack 市场安装 Claude 应用程序252> 从 Slack 市场安装 Claude 应用程序

253 253 

254> **[Claude 帮助中心](https://support.claude.com)**254> [card] [Claude 帮助中心](https://support.claude.com)

255>255>

256> 获取额外支持256> 获取额外支持

statusline.md +4 −4

Details

212| `worktree.original_cwd` | Claude 进入 worktree 之前所在的目录 |212| `worktree.original_cwd` | Claude 进入 worktree 之前所在的目录 |

213| `worktree.original_branch` | 进入 worktree 之前检出的 Git 分支。对于基于 hook 的 worktree 不存在 |213| `worktree.original_branch` | 进入 worktree 之前检出的 Git 分支。对于基于 hook 的 worktree 不存在 |

214 214 

215> **完整 JSON schema**215> [accordion] 完整 JSON schema

216>216>

217> 您的状态栏命令通过 stdin 接收以下 JSON 结构:217> 您的状态栏命令通过 stdin 接收以下 JSON 结构:

218>218>


341> * `agent`:仅在使用 `--agent` 标志运行或配置了 Agent 设置时出现341> * `agent`:仅在使用 `--agent` 标志运行或配置了 Agent 设置时出现

342> * `pr`:仅在为当前分支找到已打开的 PR 或 GitLab merge request 时出现,并在其合并或关闭后移除。`pr.review_state` 和 `pr.kind` 可能单独缺失342> * `pr`:仅在为当前分支找到已打开的 PR 或 GitLab merge request 时出现,并在其合并或关闭后移除。`pr.review_state` 和 `pr.kind` 可能单独缺失

343> * `worktree`:仅在会话处于 [worktree 会话](https://code.claude.com/docs/zh-CN/worktrees.md)时出现。存在时,对于基于 hook 的 worktree,`branch` 和 `original_branch` 也可能不存在343> * `worktree`:仅在会话处于 [worktree 会话](https://code.claude.com/docs/zh-CN/worktrees.md)时出现。存在时,对于基于 hook 的 worktree,`branch` 和 `original_branch` 也可能不存在

344> * `rate_limits`:仅对 claude.ai Pro 和 Max 订阅用户,或在为您设置了支出限额的 Claude apps 网关后方时出现,并且仅在会话中第一次 API 响应之后出现。每个窗口(`five_hour`、`seven_day`、`spend_limit`)都可能单独缺失,并且一旦某个窗口的 `resets_at` 时间已过,Claude Code 就会移除该窗口。使用 `jq -r '.rate_limits.five_hour.used_percentage // empty'` 可以妥善处理字段缺失的情况。344> * `rate_limits`:仅对 claude.ai Pro、Max 和 Ultra 订阅用户,或在为您设置了支出限额的 Claude apps 网关后方时出现。即便如此,它也仅在会话中第一次 API 响应之后出现。每个窗口(`five_hour`、`seven_day`、`spend_limit`)都可能单独缺失,并且一旦某个窗口的 `resets_at` 时间已过,Claude Code 就会移除该窗口。使用 `jq -r '.rate_limits.five_hour.used_percentage // empty'` 可以妥善处理字段缺失的情况。

345> * `prompt_cache`:在主对话的第一次 API 响应之后出现。请参阅[提示缓存字段](#prompt-cache-fields)345> * `prompt_cache`:在主对话的第一次 API 响应之后出现。请参阅[提示缓存字段](#prompt-cache-fields)

346>346>

347> **可能为 `null` 的字段**:347> **可能为 `null` 的字段**:


819 819 

820### 速率限制使用情况820### 速率限制使用情况

821 821 

822在状态栏中显示 claude.ai 订阅速率限制使用情况,或您相对于 Claude 应用网关支出限制的支出。对于订阅者,`rate_limits` 对象包含一个滚动的 `five_hour` 窗口和一个每周的 `seven_day` 窗口。每个窗口提供 `used_percentage`(从 0 到 100)和 `resets_at`(窗口重置时的 Unix 纪元秒数)。在网关后面时,请读取 `spend_limit` 对象,详见[支出限制字段](#spend-limit-fields)。822在状态栏中显示 claude.ai 订阅速率限制使用情况,或您相对于 Claude 应用网关支出限制的支出。对于订阅者,`rate_limits` 对象可以包含一个滚动的 `five_hour` 窗口和一个每周的 `seven_day` 窗口。每个窗口提供 `used_percentage`(从 0 到 100)和 `resets_at`(窗口重置时的 Unix 纪元秒数)。在网关后面时,请读取 `spend_limit` 对象,详见[支出限制字段](#spend-limit-fields)。

823 823 

824`rate_limits` 对象仅对 claude.ai Pro 和 Max 订阅者或具有支出限制的 Claude 应用网关后面的用户出现,并且仅在第一次 API 响应后出现。每个脚本都会优雅地处理缺失的字段,并且在网关后面时打印 `spend: $314.12 / $500`,或在美元字段缺失时打印 `spend: 63%`:824`rate_limits` 对象仅对 claude.ai Pro、Max 和 Ultra 订阅者或具有支出限制的 Claude 应用网关后面的用户出现,并且仅在第一次 API 响应后出现。每个脚本都会优雅地处理缺失的字段,并且在网关后面时打印 `spend: $314.12 / $500`,或在美元字段缺失时打印 `spend: 63%`:

825 825 

826```bash Bash theme={null}826```bash Bash theme={null}

827#!/bin/bash827#!/bin/bash

sub-agents.md +77 −77

Details

32 32 

33Explore 和 Plan 启动时不加载您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。其他内置子代理和[自定义子代理](#configure-subagents)都会加载两者,除非您在自定义子代理的定义中设置 [`omitClaudeMd`](#supported-frontmatter-fields),使其启动时不加载用户、项目和本地 CLAUDE.md 文件。有关到达子代理的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。33Explore 和 Plan 启动时不加载您的 CLAUDE.md 文件和 git 状态快照,以保持研究快速且成本低廉。其他内置子代理和[自定义子代理](#configure-subagents)都会加载两者,除非您在自定义子代理的定义中设置 [`omitClaudeMd`](#supported-frontmatter-fields),使其启动时不加载用户、项目和本地 CLAUDE.md 文件。有关到达子代理的内容的完整分解,请参阅[启动时加载的内容](#what-loads-at-startup)。

34 34 

35**Explore**35> [tab] Explore

36 36>

37一个快速的、只读的代理,针对搜索和分析代码库进行了优化。37> 一个快速的、只读的代理,针对搜索和分析代码库进行了优化。

38 38>

39* **Model**: 主对话的模型。当主对话运行 Fable 时,Explore 的模型取决于您的连接方式:39> * **Model**: 主对话的模型。当主对话运行 Fable 时,Explore 的模型取决于您的连接方式:

40 * 使用 Claude 订阅、Anthropic Console 账户,或通过 `ANTHROPIC_BASE_URL` 访问的 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)时,Explore 在 [`opus` 别名](https://code.claude.com/docs/zh-CN/model-config#model-aliases)解析到的 Opus 模型上运行。40> * 使用 Claude 订阅、Anthropic Console 账户,或通过 `ANTHROPIC_BASE_URL` 访问的 [LLM 网关](https://code.claude.com/docs/zh-CN/llm-gateway)时,Explore 在 [`opus` 别名](https://code.claude.com/docs/zh-CN/model-config#model-aliases)解析到的 Opus 模型上运行。

41 * 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[AWS 上的 Claude Platform](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 或 [Claude apps 网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway)上,Explore 保持使用主对话的模型。41> * 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[AWS 上的 Claude Platform](https://code.claude.com/docs/zh-CN/claude-platform-on-aws.md) 或 [Claude apps 网关](https://code.claude.com/docs/zh-CN/claude-apps-gateway)上,Explore 保持使用主对话的模型。

42* **Tools**: 只读工具;拒绝访问 Write 和 Edit42> * **Tools**: 只读工具;拒绝访问 Write 和 Edit

43* **Purpose**: 文件发现、代码搜索、代码库探索43> * **Purpose**: 文件发现、代码搜索、代码库探索

44 44>

45名为 `Explore` 的[用户或项目子代理](#choose-the-subagent-scope)会覆盖内置的子代理,并保持其自己的 `model` 字段,因此可以定义一个带有 `model: haiku` 的子代理,在较低成本的模型上运行探索。要将同一个模型强制应用于每个子代理(包括 Explore),请参阅[在一个模型上运行每个子代理](#run-every-subagent-on-one-model)。45> 名为 `Explore` 的[用户或项目子代理](#choose-the-subagent-scope)会覆盖内置的子代理,并保持其自己的 `model` 字段,因此可以定义一个带有 `model: haiku` 的子代理,在较低成本的模型上运行探索。要将同一个模型强制应用于每个子代理(包括 Explore),请参阅[在一个模型上运行每个子代理](#run-every-subagent-on-one-model)。

46 46>

47当 Claude 需要搜索或理解代码库而不进行更改时,它会委托给 Explore。这样可以将探索结果保持在主对话上下文之外。47> 当 Claude 需要搜索或理解代码库而不进行更改时,它会委托给 Explore。这样可以将探索结果保持在主对话上下文之外。

48 48>

49调用 Explore 时,Claude 指定一个彻底程度级别:**quick** 用于有针对性的查找,**medium** 用于平衡的探索,或 **very thorough** 用于全面分析。49> 调用 Explore 时,Claude 指定一个彻底程度级别:**quick** 用于有针对性的查找,**medium** 用于平衡的探索,或 **very thorough** 用于全面分析。

50 

51**Plan**

52 

53一个研究代理,在 [plan mode](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode) 期间使用,以在呈现计划之前收集上下文。

54 

55* **Model**: 从主对话继承,除非您设置 `CLAUDE_CODE_SUBAGENT_MODEL` 并[强制将其应用于每个 subagent](#run-every-subagent-on-one-model)

56* **Tools**: 只读工具;拒绝访问 Write 和 Edit

57* **Purpose**: 用于规划的代码库研究

58 

59当您处于 plan mode 并且 Claude 需要理解您的代码库时,它会将研究委托给 Plan subagent,以便探索输出保持在单独的上下文窗口中,而主对话保持只读。

60 

61**General-purpose**

62 

63一个能够处理复杂、多步骤任务的代理,需要探索和操作。

64 

65* **Model**: 如果您设置了 [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) 模型且没有其他方式分配模型,则使用该模型,否则使用主对话的模型;[选择模型](#choose-a-model) 说明了完整的顺序,[在一个模型上运行每个 subagent](#run-every-subagent-on-one-model) 展示了如何使变量覆盖这些来源

66* **Tools**: 所有[可用于 subagents 的工具](#available-tools)

67* **Purpose**: 复杂研究、多步骤操作、代码修改

68 

69当任务需要探索和修改、复杂推理来解释结果或多个依赖步骤时,Claude 会委托给 general-purpose。

70 50 

71**Other**51> [tab] Plan

52>

53> 一个研究代理,在 [plan mode](https://code.claude.com/docs/zh-CN/permission-modes.md#analyze-before-you-edit-with-plan-mode) 期间使用,以在呈现计划之前收集上下文。

54>

55> * **Model**: 从主对话继承,除非您设置 `CLAUDE_CODE_SUBAGENT_MODEL` 并[强制将其应用于每个 subagent](#run-every-subagent-on-one-model)

56> * **Tools**: 只读工具;拒绝访问 Write 和 Edit

57> * **Purpose**: 用于规划的代码库研究

58>

59> 当您处于 plan mode 并且 Claude 需要理解您的代码库时,它会将研究委托给 Plan subagent,以便探索输出保持在单独的上下文窗口中,而主对话保持只读。

72 60 

73Claude Code 包括用于特定任务的其他辅助代理。这些通常会自动调用,因此您不需要直接使用它们。61> [tab] General-purpose

62>

63> 一个能够处理复杂、多步骤任务的代理,需要探索和操作。

64>

65> * **Model**: 如果您设置了 [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) 模型且没有其他方式分配模型,则使用该模型,否则使用主对话的模型;[选择模型](#choose-a-model) 说明了完整的顺序,[在一个模型上运行每个 subagent](#run-every-subagent-on-one-model) 展示了如何使变量覆盖这些来源

66> * **Tools**: 所有[可用于 subagents 的工具](#available-tools)

67> * **Purpose**: 复杂研究、多步骤操作、代码修改

68>

69> 当任务需要探索和修改、复杂推理来解释结果或多个依赖步骤时,Claude 会委托给 general-purpose。

74 70 

75| Agent | Model | Claude 何时使用它 |71> [tab] Other

76| :- | :- | :- |72>

77| claude | 没有自己的;当 Claude 将其生成为 subagent 时遵循[模型顺序](#choose-a-model) | 当任务不适合更专业的代理时。一个具有所有[可用于 subagents 的工具](#available-tools)的通用代理。也是调度的[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)的默认代理;[它启动的权限模式](https://code.claude.com/docs/zh-CN/agent-view.md#permission-mode-model-and-effort)取决于会话的启动方式 |73> Claude Code 包括用于特定任务的其他辅助代理。这些通常会自动调用,因此您不需要直接使用它们。

78| statusline-setup | Sonnet | 当您运行 `/statusline` 来配置您的状态行时 |74>

79| claude-code-guide | Haiku | 当您提出关于 Claude Code 功能的问题时 |75> | Agent | Model | Claude 何时使用它 |

76> | :- | :- | :- |

77> | claude | 没有自己的;当 Claude 将其生成为 subagent 时遵循[模型顺序](#choose-a-model) | 当任务不适合更专业的代理时。一个具有所有[可用于 subagents 的工具](#available-tools)的通用代理。也是调度的[后台会话](https://code.claude.com/docs/zh-CN/agent-view.md)的默认代理;[它启动的权限模式](https://code.claude.com/docs/zh-CN/agent-view.md#permission-mode-model-and-effort)取决于会话的启动方式 |

78> | statusline-setup | Sonnet | 当您运行 `/statusline` 来配置您的状态行时 |

79> | claude-code-guide | Haiku | 当您提出关于 Claude Code 功能的问题时 |

80 80 

81内置 subagents 在交互式会话中默认被注册。要限制它们:81内置 subagents 在交互式会话中默认被注册。要限制它们:

82 82 


179 179 

180**CLI 定义的子代理**在启动 Claude Code 时以 JSON 形式传入。它们仅在该会话中存在,不会保存到磁盘,因此适用于快速测试或自动化脚本。您可以在一次 `--agents` 调用中定义多个子代理:180**CLI 定义的子代理**在启动 Claude Code 时以 JSON 形式传入。它们仅在该会话中存在,不会保存到磁盘,因此适用于快速测试或自动化脚本。您可以在一次 `--agents` 调用中定义多个子代理:

181 181 

182**macOS, Linux, WSL**182> [tab] macOS, Linux, WSL

183 183>

184```bash theme={null}184> ```bash theme={null}

185claude --agents '{185> claude --agents '{

186 "code-reviewer": {186> "code-reviewer": {

187 "description": "Expert code reviewer. Use proactively after code changes.",187> "description": "Expert code reviewer. Use proactively after code changes.",

188 "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",188> "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",

189 "tools": ["Read", "Grep", "Glob", "Bash"],189> "tools": ["Read", "Grep", "Glob", "Bash"],

190 "model": "sonnet"190> "model": "sonnet"

191 },191> },

192 "debugger": {192> "debugger": {

193 "description": "Debugging specialist for errors and test failures.",193> "description": "Debugging specialist for errors and test failures.",

194 "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."194> "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."

195 }195> }

196}'196> }'

197```197> ```

198 198 

199**Windows PowerShell**199> [tab] Windows PowerShell

200 200>

201```powershell theme={null}201> ```powershell theme={null}

202claude --agents @'202> claude --agents @'

203{203> {

204 "code-reviewer": {204> "code-reviewer": {

205 "description": "Expert code reviewer. Use proactively after code changes.",205> "description": "Expert code reviewer. Use proactively after code changes.",

206 "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",206> "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",

207 "tools": ["Read", "Grep", "Glob", "Bash"],207> "tools": ["Read", "Grep", "Glob", "Bash"],

208 "model": "sonnet"208> "model": "sonnet"

209 },209> },

210 "debugger": {210> "debugger": {

211 "description": "Debugging specialist for errors and test failures.",211> "description": "Debugging specialist for errors and test failures.",

212 "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."212> "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."

213 }213> }

214}214> }

215'@215> '@

216```216> ```

217 217 

218在[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下,`--agents` 也接受一个包含相同对象的 JSON 文件路径,适用于定义过大而无法在命令行中传入的情况。例如,`claude -p --agents ./agents.json "Review my changes"` 会从该文件读取定义。在交互式会话中,Claude Code 会拒绝文件路径。文件形式需要 Claude Code v2.1.281 或更高版本。218在[非交互模式](https://code.claude.com/docs/zh-CN/headless.md)下,`--agents` 也接受一个包含相同对象的 JSON 文件路径,适用于定义过大而无法在命令行中传入的情况。例如,`claude -p --agents ./agents.json "Review my changes"` 会从该文件读取定义。在交互式会话中,Claude Code 会拒绝文件路径。文件形式需要 Claude Code v2.1.281 或更高版本。

219 219 

terminal-config.md +16 −16

Details

48 48 

49某些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 用于换行或 Option+P 用于切换模型。在 macOS 上,大多数终端默认不会将 Option 作为修饰符发送,因此这些快捷键在启用之前不会起作用。终端设置通常标记为"Use Option as Meta Key";Meta 是现在标记为 Option 或 Alt 的键的历史 Unix 名称。49某些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 用于换行或 Option+P 用于切换模型。在 macOS 上,大多数终端默认不会将 Option 作为修饰符发送,因此这些快捷键在启用之前不会起作用。终端设置通常标记为"Use Option as Meta Key";Meta 是现在标记为 Option 或 Alt 的键的历史 Unix 名称。

50 50 

51**Apple Terminal**51> [tab] Apple Terminal

52 52>

53打开"设置"→"配置文件"→"键盘"并勾选"Use Option as Meta Key"。53> 打开"设置"→"配置文件"→"键盘"并勾选"Use Option as Meta Key"。

54 54>

55如果您接受了 Claude Code 的首次运行终端设置提示,这已经完成。该提示为您运行 `/terminal-setup`,它启用 Option 作为 Meta 并在您的 Apple Terminal 配置文件中关闭可听见的铃声。55> 如果您接受了 Claude Code 的首次运行终端设置提示,这已经完成。该提示为您运行 `/terminal-setup`,它启用 Option 作为 Meta 并在您的 Apple Terminal 配置文件中关闭可听见的铃声。

56 56>

57在[屏幕阅读器模式](https://code.claude.com/docs/zh-CN/accessibility.md)中,`/terminal-setup` 保持铃声设置不变,以便终端铃声保持可听见。如果较早的运行关闭了铃声,请在"设置"→"描述文件"→"高级"→"可听见的铃声"下将其重新打开。57> 在[屏幕阅读器模式](https://code.claude.com/docs/zh-CN/accessibility.md)中,`/terminal-setup` 保持铃声设置不变,以便终端铃声保持可听见。如果较早的运行关闭了铃声,请在"设置"→"描述文件"→"高级"→"可听见的铃声"下将其重新打开。

58 

59**iTerm2**

60 

61打开"设置"→"描述文件"→"键"→"常规"并将"Left Option key"和"Right Option key"设置为"Esc+"。

62 

63在 iTerm2 中运行 `/terminal-setup` 会在"设置"→"常规"→"选择"下启用"Applications in terminal may access clipboard",以便 `/copy` 命令可以写入您的系统剪贴板。该命令即使在 tmux 内运行时也能检测到 iTerm2。重启 iTerm2 以使更改生效。

64 58 

65**VS Code**59> [tab] iTerm2

60>

61> 打开"设置"→"描述文件"→"键"→"常规"并将"Left Option key"和"Right Option key"设置为"Esc+"。

62>

63> 在 iTerm2 中运行 `/terminal-setup` 会在"设置"→"常规"→"选择"下启用"Applications in terminal may access clipboard",以便 `/copy` 命令可以写入您的系统剪贴板。该命令即使在 tmux 内运行时也能检测到 iTerm2。重启 iTerm2 以使更改生效。

66 64 

67将 `"terminal.integrated.macOptionIsMeta": true` 添加到您的 VS Code 设置中。65> [tab] VS Code

66>

67> 将 `"terminal.integrated.macOptionIsMeta": true` 添加到您的 VS Code 设置中。

68 68 

69对于 Ghostty、Kitty 和其他终端,请在终端的配置文件中查找 Option-as-Alt 或 Option-as-Meta 设置。69对于 Ghostty、Kitty 和其他终端,请在终端的配置文件中查找 Option-as-Alt 或 Option-as-Meta 设置。

70 70 


188 188 

189以下参考涵盖了可在 `overrides` 中设置的 token。`/theme` 中的交互式编辑器会显示相同的 token 并提供实时预览,此外还有一些单一用途的强调色(例如引导界面颜色),此处未列出。189以下参考涵盖了可在 `overrides` 中设置的 token。`/theme` 中的交互式编辑器会显示相同的 token 并提供实时预览,此外还有一些单一用途的强调色(例如引导界面颜色),此处未列出。

190 190 

191> **颜色 token 参考**191> [accordion] 颜色 token 参考

192>192>

193> 以下示例组合了下面几个分组中的 token:品牌强调色、计划模式边框、diff 背景以及消息背景。193> 以下示例组合了下面几个分组中的 token:品牌强调色、计划模式边框、diff 背景以及消息背景。

194>194>

Details

19| 工具 | 描述 | 需要权限 |19| 工具 | 描述 | 需要权限 |

20| :- | :- | :- |20| :- | :- | :- |

21| `Agent` | 生成一个[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md),具有自己的上下文窗口来处理任务。启用[代理团队](https://code.claude.com/docs/zh-CN/agent-teams.md)后,携带 `name` 的调用可以启动一个[队友](https://code.claude.com/docs/zh-CN/agent-teams.md#how-claude-starts-agent-teams)。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |21| `Agent` | 生成一个[子代理](https://code.claude.com/docs/zh-CN/sub-agents.md),具有自己的上下文窗口来处理任务。启用[代理团队](https://code.claude.com/docs/zh-CN/agent-teams.md)后,携带 `name` 的调用可以启动一个[队友](https://code.claude.com/docs/zh-CN/agent-teams.md#how-claude-starts-agent-teams)。请参阅 [Agent 工具行为](#agent-tool-behavior) | 否 |

22| `Artifact` | 将 HTML 或 Markdown 文件发布为[工件](https://code.claude.com/docs/zh-CN/artifacts.md):claude.ai 上的私有交互式页面。您可以与公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](https://code.claude.com/docs/zh-CN/artifacts.md#control-public-sharing)。需要 Pro、Max、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](https://code.claude.com/docs/zh-CN/artifacts.md#availability) | 是 |22| `Artifact` | 将 HTML 或 Markdown 文件作为 [Artifact](https://code.claude.com/docs/zh-CN/artifacts.md) 发布到 claude.ai:一个私有的交互式页面。您可以通过公开链接共享它,或在 Team 和 Enterprise 计划上在您的组织内共享,其中公开共享需要所有者[启用它](https://code.claude.com/docs/zh-CN/artifacts.md#control-public-sharing)。需要 Pro、Max、Ultra、Team 或 Enterprise 计划和 `/login` 身份验证;请参阅[可用性](https://code.claude.com/docs/zh-CN/artifacts.md#availability) | 是 |

23| `AskUserQuestion` | 提出多选问题以收集要求或澄清歧义。问题默认保持打开状态,直到您回答。请参阅 [AskUserQuestion 工具行为](#askuserquestion-tool-behavior) | 否 |23| `AskUserQuestion` | 提出多选问题以收集要求或澄清歧义。问题默认保持打开状态,直到您回答。请参阅 [AskUserQuestion 工具行为](#askuserquestion-tool-behavior) | 否 |

24| `Bash` | 在您的环境中执行 shell 命令。请参阅 [Bash 工具行为](#bash-tool-behavior) | 是 |24| `Bash` | 在您的环境中执行 shell 命令。请参阅 [Bash 工具行为](#bash-tool-behavior) | 是 |

25| `CronCreate` | 在当前会话中安排重复或一次性提示词。任务的范围是会话级别,在 `--resume` 或 `--continue` 时恢复(如果未过期)。请参阅[会话级定时任务](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 否 |25| `CronCreate` | 在当前会话中安排重复或一次性提示词。任务的范围是会话级别,在 `--resume` 或 `--continue` 时恢复(如果未过期)。请参阅[会话级定时任务](https://code.claude.com/docs/zh-CN/scheduled-tasks.md) | 否 |


42| `PushNotification` | 发送桌面通知,以及当 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 连接时的手机推送,以便长时间运行的任务或[会话级定时任务](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)可以在您离开时联系您。推送传递通过 Anthropic 托管的基础设施运行,无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |42| `PushNotification` | 发送桌面通知,以及当 [Remote Control](https://code.claude.com/docs/zh-CN/remote-control.md) 连接时的手机推送,以便长时间运行的任务或[会话级定时任务](https://code.claude.com/docs/zh-CN/scheduled-tasks.md)可以在您离开时联系您。推送传递通过 Anthropic 托管的基础设施运行,无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

43| `Read` | 读取文件的内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |43| `Read` | 读取文件的内容。请参阅 [Read 工具行为](#read-tool-behavior) | 否 |

44| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |44| `ReadMcpResourceTool` | 按 URI 读取特定 MCP 资源 | 否 |

45| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(以前称为 Routine)。支持 `/schedule` 命令。[`RemoteTrigger` 输入参考](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#remotetrigger)记录了每个操作和删除该工具的组织策略。云端定时任务位于 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 计划,因此此工具无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |45| `RemoteTrigger` | 在 claude.ai 上创建、更新、运行和列出[云端定时任务](https://code.claude.com/docs/zh-CN/routines.md)(以前称为 Routine)。支持 `/schedule` 命令。[`RemoteTrigger` 输入参考](https://code.claude.com/docs/zh-CN/agent-sdk/typescript#remotetrigger)记录了每个操作和删除该工具的组织策略。云端定时任务位于 claude.ai 上,需要 Pro、Max、Ultra、Team 或 Enterprise 计划。因此,此工具无法从 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 访问 | 否 |

46| `ReportFindings` | 将代码审查发现报告为结构化列表,每个发现都有文件、摘要和失败场景,以便 Claude Code 可以呈现它们而不是将其打印为文本。当活跃的代码审查指令要求它这样做时,Claude 会调用它。发现还可以携带可选的 `category` 段,例如 `correctness` 或 `test-coverage`,显示在呈现列表中的文件位置旁边 | 否 |46| `ReportFindings` | 将代码审查发现报告为结构化列表,每个发现都有文件、摘要和失败场景,以便 Claude Code 可以呈现它们而不是将其打印为文本。当活跃的代码审查指令要求它这样做时,Claude 会调用它。发现还可以携带可选的 `category` 段,例如 `correctness` 或 `test-coverage`,显示在呈现列表中的文件位置旁边 | 否 |

47| `ScheduleWakeup` | 重新安排[自定步调 `/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval)的下一次迭代。Claude 在每次迭代结束时调用此工具以选择下一次运行的时间,在一分钟到一小时之间;您不直接调用它。要改为结束循环,Claude 使用 `stop: true` 调用它,这会取消待处理的唤醒。待处理的唤醒出现在 [Stop hook 输入](https://code.claude.com/docs/zh-CN/hooks.md#stop-input)中的 `session_crons` 中 | 否 |47| `ScheduleWakeup` | 重新安排[自定步调 `/loop`](https://code.claude.com/docs/zh-CN/scheduled-tasks#let-claude-choose-the-interval)的下一次迭代。Claude 在每次迭代结束时调用此工具以选择下一次运行的时间,在一分钟到一小时之间;您不直接调用它。要改为结束循环,Claude 使用 `stop: true` 调用它,这会取消待处理的唤醒。待处理的唤醒出现在 [Stop hook 输入](https://code.claude.com/docs/zh-CN/hooks.md#stop-input)中的 `session_crons` 中 | 否 |

48| `SendFeedback` | 起草关于 Claude Code 的反馈报告,涵盖产品问题或 Claude 在会话中的自身行为,并将其排队在您的机器上供您审查。Claude Code 在您选择发送草稿之前不会发送任何内容。请参阅 [SendFeedback 工具行为](#sendfeedback-tool-behavior)。需要 Claude Code v2.1.238 或更高版本 | 否 |48| `SendFeedback` | 起草关于 Claude Code 的反馈报告,涵盖产品问题或 Claude 在会话中的自身行为,并将其排队在您的机器上供您审查。Claude Code 在您选择发送草稿之前不会发送任何内容。请参阅 [SendFeedback 工具行为](#sendfeedback-tool-behavior)。需要 Claude Code v2.1.238 或更高版本 | 否 |

Details

75 75 

76安装程序从 `downloads.claude.ai` 下载。验证您可以访问它:76安装程序从 `downloads.claude.ai` 下载。验证您可以访问它:

77 77 

78**macOS/Linux**78> [tab] macOS/Linux

79 79>

80```bash theme={null}80> ```bash theme={null}

81curl -sI https://downloads.claude.ai/claude-code-releases/latest81> curl -sI https://downloads.claude.ai/claude-code-releases/latest

82```82> ```

83 

84**Windows PowerShell**

85 

86```powershell theme={null}

87curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest

88```

89 83 

90PowerShell 将 `curl` 别名为 `Invoke-WebRequest`,它拒绝 `-sI` 标志,因此请显式调用 `curl.exe`。84> [tab] Windows PowerShell

85>

86> ```powershell theme={null}

87> curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest

88> ```

89>

90> PowerShell 将 `curl` 别名为 `Invoke-WebRequest`,它拒绝 `-sI` 标志,因此请显式调用 `curl.exe`。

91 91 

92如果第一行显示 `200` 状态,则表示您已到达服务器。在 macOS 和 Linux 上您会看到 `HTTP/2 200`,从 Windows 附带的 `curl.exe` 会看到 `HTTP/1.1 200 OK`。其他结果指向原因:92如果第一行显示 `200` 状态,则表示您已到达服务器。在 macOS 和 Linux 上您会看到 `HTTP/2 200`,从 Windows 附带的 `curl.exe` 会看到 `HTTP/1.1 200 OK`。其他结果指向原因:

93 93 


104 104 

105此示例设置两个代理变量,然后通过您的代理运行安装程序:105此示例设置两个代理变量,然后通过您的代理运行安装程序:

106 106 

107**macOS/Linux**107> [tab] macOS/Linux

108 108>

109```bash theme={null}109> ```bash theme={null}

110export HTTP_PROXY=http://proxy.example.com:8080110> export HTTP_PROXY=http://proxy.example.com:8080

111export HTTPS_PROXY=http://proxy.example.com:8080111> export HTTPS_PROXY=http://proxy.example.com:8080

112curl -fsSL https://claude.ai/install.sh | bash112> curl -fsSL https://claude.ai/install.sh | bash

113```113> ```

114 

115**Windows PowerShell**

116 114 

117```powershell theme={null}115> [tab] Windows PowerShell

118$env:HTTP_PROXY = 'http://proxy.example.com:8080'116>

119$env:HTTPS_PROXY = 'http://proxy.example.com:8080'117> ```powershell theme={null}

120irm https://claude.ai/install.ps1 | iex118> $env:HTTP_PROXY = 'http://proxy.example.com:8080'

121```119> $env:HTTPS_PROXY = 'http://proxy.example.com:8080'

120> irm https://claude.ai/install.ps1 | iex

121> ```

122 122 

123### 验证您的 PATH123### 验证您的 PATH

124 124 


132 132 

133首先检查程序是否存在,然后检查其所在文件夹是否在您的 PATH 中。PATH 修复是永久性的,因此只需执行一次。选择您平台对应的选项卡并在相应环境中运行其中的命令:在 macOS 和 Linux 上使用终端,在 Windows 上使用 PowerShell 或命令提示符。133首先检查程序是否存在,然后检查其所在文件夹是否在您的 PATH 中。PATH 修复是永久性的,因此只需执行一次。选择您平台对应的选项卡并在相应环境中运行其中的命令:在 macOS 和 Linux 上使用终端,在 Windows 上使用 PowerShell 或命令提示符。

134 134 

135**macOS/Linux**135> [tab] macOS/Linux

136 136>

137检查安装程序是否已将程序放置到位:137> 检查安装程序是否已将程序放置到位:

138 138>

139```bash theme={null}139> ```bash theme={null}

140ls -la ~/.local/bin/claude140> ls -la ~/.local/bin/claude

141```141> ```

142 142>

143* **`No such file or directory`**:没有本机安装。如果您尚未通过其他方式(例如 npm、Homebrew 或 Linux 包管理器)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。143> * **`No such file or directory`**:没有本机安装。如果您尚未通过其他方式(例如 npm、Homebrew 或 Linux 包管理器)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。

144* **显示该文件的列表信息**:程序已存在。接下来检查您的 PATH。144> * **显示该文件的列表信息**:程序已存在。接下来检查您的 PATH。

145 145>

146列出您的 PATH 条目并过滤出安装文件夹:146> 列出您的 PATH 条目并过滤出安装文件夹:

147 147>

148```bash theme={null}148> ```bash theme={null}

149echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"149> echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

150```150> ```

151 151>

152如果这打印 `/Users/you/.local/bin` 或 `/home/you/.local/bin`,该目录在您的 PATH 中,您可以跳到[检查冲突的安装](#check-for-conflicting-installations)。如果没有输出,请使用对应您 shell 的两条命令将其添加到您的 shell 配置中。`echo` 命令会为每个新终端保存该设置,`source` 则将其应用到当前窗口。`echo` 命令成功时不会打印任何内容。152> 如果这打印 `/Users/you/.local/bin` 或 `/home/you/.local/bin`,该目录在您的 PATH 中,您可以跳到[检查冲突的安装](#check-for-conflicting-installations)。如果没有输出,请使用对应您 shell 的两条命令将其添加到您的 shell 配置中。`echo` 命令会为每个新终端保存该设置,`source` 则将其应用到当前窗口。`echo` 命令成功时不会打印任何内容。

153 153>

154对于 Zsh(macOS 上的默认值):154> 对于 Zsh(macOS 上的默认值):

155 155>

156```bash theme={null}156> ```bash theme={null}

157echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc157> echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

158source ~/.zshrc158> source ~/.zshrc

159```159> ```

160 160>

161对于 Linux 上的 Bash(大多数发行版上的默认值):161> 对于 Linux 上的 Bash(大多数发行版上的默认值):

162 162>

163```bash theme={null}163> ```bash theme={null}

164echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc164> echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

165source ~/.bashrc165> source ~/.bashrc

166```166> ```

167 167>

168对于 macOS 上的 Bash,请改为将该行添加到 `~/.bash_profile`。macOS 上的终端将 Bash 作为登录 shell 启动,它忽略 `~/.bashrc` 并仅读取存在的 `~/.bash_profile`、`~/.bash_login` 或 `~/.profile` 中的第一个。如果您已经有 `~/.bash_login` 或 `~/.profile` 且没有 `~/.bash_profile`,请将该行放在该文件中,而不是创建 `~/.bash_profile`:168> 对于 macOS 上的 Bash,请改为将该行添加到 `~/.bash_profile`。macOS 上的终端将 Bash 作为登录 shell 启动,它忽略 `~/.bashrc` 并仅读取存在的 `~/.bash_profile`、`~/.bash_login` 或 `~/.profile` 中的第一个。如果您已经有 `~/.bash_login` 或 `~/.profile` 且没有 `~/.bash_profile`,请将该行放在该文件中,而不是创建 `~/.bash_profile`:

169 169>

170```bash theme={null}170> ```bash theme={null}

171echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile171> echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

172source ~/.bash_profile172> source ~/.bash_profile

173```173> ```

174 174>

175或者,关闭并重新打开您的终端。175> 或者,关闭并重新打开您的终端。

176 176>

177如果 `echo` 命令打印 `permission denied`,请参阅[添加到 PATH 时出现 `permission denied`](#permission-denied-when-adding-to-your-path)。177> 如果 `echo` 命令打印 `permission denied`,请参阅[添加到 PATH 时出现 `permission denied`](#permission-denied-when-adding-to-your-path)。

178 178>

179对于其他 shell(如 fish 或 Nushell),使用您的 shell 自己的配置语法将 `~/.local/bin` 添加到您的 PATH,然后重启您的终端。179> 对于其他 shell(如 fish 或 Nushell),使用您的 shell 自己的配置语法将 `~/.local/bin` 添加到您的 PATH,然后重启您的终端。

180 180>

181验证修复是否有效:181> 验证修复是否有效:

182 182>

183```bash theme={null}183> ```bash theme={null}

184claude --version184> claude --version

185```185> ```

186 186>

187如果仍然找不到 `claude`,请检查以下原因:187> 如果仍然找不到 `claude`,请检查以下原因:

188 188>

189* **终端在更改之前就已打开**:已经打开的窗口会保留其旧的 PATH,而编辑器内的终端从编辑器获取其 PATH。请打开一个新窗口,或退出并重新打开编辑器。189> * **终端在更改之前就已打开**:已经打开的窗口会保留其旧的 PATH,而编辑器内的终端从编辑器获取其 PATH。请打开一个新窗口,或退出并重新打开编辑器。

190* **该行未被保存**:运行 `grep -n '.local/bin' ~/.zshrc`,并使用您的 shell 对应的文件名。如果该行存在,它会打印该行及其行号。如果没有打印任何内容,请再次运行这两条 PATH 命令。190> * **该行未被保存**:运行 `grep -n '.local/bin' ~/.zshrc`,并使用您的 shell 对应的文件名。如果该行存在,它会打印该行及其行号。如果没有打印任何内容,请再次运行这两条 PATH 命令。

191* **该行被写入了另一个 shell 的文件**:运行 `echo $0` 查看您的 shell,然后运行对应该 shell 的两条 PATH 命令。191> * **该行被写入了另一个 shell 的文件**:运行 `echo $0` 查看您的 shell,然后运行对应该 shell 的两条 PATH 命令。

192 

193**Windows PowerShell**

194 

195检查安装程序是否已将程序放置到位:

196 

197```powershell theme={null}

198Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

199```

200 

201* **`False`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。

202* **`True`**:程序已存在。接下来检查您的 PATH。

203 

204列出您的 PATH 条目并过滤出安装文件夹:

205 

206```powershell theme={null}

207$env:PATH -split ';' | Select-String '\.local\\bin'

208```

209 

210如果这打印 `C:\Users\you\.local\bin`,该目录在您的 PATH 中,您可以跳到[检查冲突的安装](#check-for-conflicting-installations)。如果没有输出,请将安装目录添加到您的用户 PATH:

211 

212```powershell theme={null}

213$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')

214[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

215```

216 

217重启您的终端以使更改生效。

218 

219验证修复是否有效:

220 

221```powershell theme={null}

222claude --version

223```

224 

225如果在新终端中仍然找不到 `claude`,请检查以下原因:

226 

227* **终端运行在编辑器内**:它从编辑器获取其 PATH,因此请退出并重新打开编辑器。

228* **更改未被保存**:运行 `[Environment]::GetEnvironmentVariable('PATH', 'User')`,并在其打印的 PATH 中查找 `.local\bin`。如果缺失,请再次运行这两条命令。

229 

230**Windows CMD**

231 

232检查安装程序是否已将程序放置到位:

233 

234```batch theme={null}

235dir "%USERPROFILE%\.local\bin\claude.exe"

236```

237 

238* **`File Not Found` 或 `The system cannot find the path specified.`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。

239* **显示 `claude.exe` 的列表信息**:程序已存在。接下来检查您的 PATH。

240 

241列出您的 PATH 条目并过滤出安装文件夹:

242 

243```batch theme={null}

244echo %PATH% | findstr /i "local\bin"

245```

246 

247如果没有输出,打开系统设置,转到环境变量,并将 `%USERPROFILE%\.local\bin` 添加到您的用户 PATH 变量。重启您的终端。

248 

249验证修复是否有效:

250 192 

251```batch theme={null}193> [tab] Windows PowerShell

252claude --version194>

253```195> 检查安装程序是否已将程序放置到位:

196>

197> ```powershell theme={null}

198> Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

199> ```

200>

201> * **`False`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。

202> * **`True`**:程序已存在。接下来检查您的 PATH。

203>

204> 列出您的 PATH 条目并过滤出安装文件夹:

205>

206> ```powershell theme={null}

207> $env:PATH -split ';' | Select-String '\.local\\bin'

208> ```

209>

210> 如果这打印 `C:\Users\you\.local\bin`,该目录在您的 PATH 中,您可以跳到[检查冲突的安装](#check-for-conflicting-installations)。如果没有输出,请将安装目录添加到您的用户 PATH:

211>

212> ```powershell theme={null}

213> $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')

214> [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

215> ```

216>

217> 重启您的终端以使更改生效。

218>

219> 验证修复是否有效:

220>

221> ```powershell theme={null}

222> claude --version

223> ```

224>

225> 如果在新终端中仍然找不到 `claude`,请检查以下原因:

226>

227> * **终端运行在编辑器内**:它从编辑器获取其 PATH,因此请退出并重新打开编辑器。

228> * **更改未被保存**:运行 `[Environment]::GetEnvironmentVariable('PATH', 'User')`,并在其打印的 PATH 中查找 `.local\bin`。如果缺失,请再次运行这两条命令。

254 229 

255如果在新终端中仍然找不到 `claude`,编辑器内的终端会从编辑器获取其 PATH,因此也请退出并重新打开编辑器。230> [tab] Windows CMD

231>

232> 检查安装程序是否已将程序放置到位:

233>

234> ```batch theme={null}

235> dir "%USERPROFILE%\.local\bin\claude.exe"

236> ```

237>

238> * **`File Not Found` 或 `The system cannot find the path specified.`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果您通过其他方式安装了它,请参阅[检查冲突的安装](#check-for-conflicting-installations)。

239> * **显示 `claude.exe` 的列表信息**:程序已存在。接下来检查您的 PATH。

240>

241> 列出您的 PATH 条目并过滤出安装文件夹:

242>

243> ```batch theme={null}

244> echo %PATH% | findstr /i "local\bin"

245> ```

246>

247> 如果没有输出,打开系统设置,转到环境变量,并将 `%USERPROFILE%\.local\bin` 添加到您的用户 PATH 变量。重启您的终端。

248>

249> 验证修复是否有效:

250>

251> ```batch theme={null}

252> claude --version

253> ```

254>

255> 如果在新终端中仍然找不到 `claude`,编辑器内的终端会从编辑器获取其 PATH,因此也请退出并重新打开编辑器。

256 256 

257### 检查冲突的安装257### 检查冲突的安装

258 258 

259多个 Claude Code 安装可能导致版本不匹配或意外行为。检查已安装的内容:259多个 Claude Code 安装可能导致版本不匹配或意外行为。检查已安装的内容:

260 260 

261**macOS/Linux**261> [tab] macOS/Linux

262 262>

263列出在您的 PATH 中找到的所有 `claude` 二进制文件:263> 列出在您的 PATH 中找到的所有 `claude` 二进制文件:

264 264>

265```bash theme={null}265> ```bash theme={null}

266which -a claude266> which -a claude

267```267> ```

268 268>

269如果这打印 `claude not found`、一行 `no claude in` 或不打印任何内容,则您的 PATH 上没有 `claude`。接下来的检查会显示是否安装了 `claude`。269> 如果这打印 `claude not found`、一行 `no claude in` 或不打印任何内容,则您的 PATH 上没有 `claude`。接下来的检查会显示是否安装了 `claude`。

270 270>

271检查 `claude` 二进制文件可以来自的三个位置。`~/.local/bin/claude` 是本机安装程序,`~/.claude/local/` 是由较旧版本的 Claude Code 创建的旧版本本地 npm 安装,npm 全局列表显示 `-g` 安装:271> 检查 `claude` 二进制文件可以来自的三个位置。`~/.local/bin/claude` 是本机安装程序,`~/.claude/local/` 是由较旧版本的 Claude Code 创建的旧版本本地 npm 安装,npm 全局列表显示 `-g` 安装:

272 272>

273```bash theme={null}273> ```bash theme={null}

274ls -la ~/.local/bin/claude274> ls -la ~/.local/bin/claude

275```275> ```

276 276>

277一个本机安装显示一个指向 `~/.local/share/claude/versions/` 的符号链接。您在此路径创建的脚本或符号链接是自定义启动程序,[自动更新会将其保留在原位](https://code.claude.com/docs/zh-CN/setup.md#auto-updates)。277> 一个本机安装显示一个指向 `~/.local/share/claude/versions/` 的符号链接。您在此路径创建的脚本或符号链接是自定义启动程序,[自动更新会将其保留在原位](https://code.claude.com/docs/zh-CN/setup.md#auto-updates)。

278 278>

279如果任一 `ls` 命令打印 `No such file or directory`,这不是错误。这意味着该位置没有安装任何内容,因此继续进行下一个检查。279> 如果任一 `ls` 命令打印 `No such file or directory`,这不是错误。这意味着该位置没有安装任何内容,因此继续进行下一个检查。

280 280>

281```bash theme={null}281> ```bash theme={null}

282ls -la ~/.claude/local/282> ls -la ~/.claude/local/

283```283> ```

284 284>

285```bash theme={null}285> ```bash theme={null}

286npm -g ls @anthropic-ai/claude-code 2>/dev/null286> npm -g ls @anthropic-ai/claude-code 2>/dev/null

287```287> ```

288 288>

289如果 `ls -la ~/.local/bin/claude` 打印了 `No such file or directory`,则没有本机安装。如果您尚未通过其他方式(例如 npm、Homebrew 或 Linux 包管理器)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果 `~/.local/bin/claude` 存在但 `which -a claude` 未列出它,则该文件夹不在您的 PATH 中:请参阅[验证您的 PATH](#verify-your-path)。289> 如果 `ls -la ~/.local/bin/claude` 打印了 `No such file or directory`,则没有本机安装。如果您尚未通过其他方式(例如 npm、Homebrew 或 Linux 包管理器)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。如果 `~/.local/bin/claude` 存在但 `which -a claude` 未列出它,则该文件夹不在您的 PATH 中:请参阅[验证您的 PATH](#verify-your-path)。

290 

291**Windows PowerShell**

292 

293列出在您的 PATH 中找到的所有 `claude` 二进制文件:

294 

295```powershell theme={null}

296where.exe claude

297```

298 

299如果这打印 `INFO: Could not find files for the given pattern(s).`,则您的 PATH 上没有 `claude`。

300 

301检查本机安装程序是否放置了二进制文件:

302 

303```powershell theme={null}

304Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

305```

306 290 

307* **`True`**:本机安装存在。如果 `where.exe` 未找到任何内容,则其所在文件夹不在您的 PATH 中:请参阅[验证您的 PATH](#verify-your-path)。291> [tab] Windows PowerShell

308* **`False`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。292>

293> 列出在您的 PATH 中找到的所有 `claude` 二进制文件:

294>

295> ```powershell theme={null}

296> where.exe claude

297> ```

298>

299> 如果这打印 `INFO: Could not find files for the given pattern(s).`,则您的 PATH 上没有 `claude`。

300>

301> 检查本机安装程序是否放置了二进制文件:

302>

303> ```powershell theme={null}

304> Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

305> ```

306>

307> * **`True`**:本机安装存在。如果 `where.exe` 未找到任何内容,则其所在文件夹不在您的 PATH 中:请参阅[验证您的 PATH](#verify-your-path)。

308> * **`False`**:没有本机安装。如果您尚未通过其他方式(例如 npm 或 WinGet)安装 Claude Code,请[安装 Claude Code](https://code.claude.com/docs/zh-CN/setup.md#install-claude-code)。

309 309 

310如果您找到多个安装,只保留一个。macOS/Linux 上 `~/.local/bin/claude` 或 Windows 上 `%USERPROFILE%\.local\bin\claude.exe` 的本机安装是推荐的。删除额外的:310如果您找到多个安装,只保留一个。macOS/Linux 上 `~/.local/bin/claude` 或 Windows 上 `%USERPROFILE%\.local\bin\claude.exe` 的本机安装是推荐的。删除额外的:

311 311 


317 317 

318删除旧版本本地 npm 安装:318删除旧版本本地 npm 安装:

319 319 

320**macOS/Linux**320> [tab] macOS/Linux

321 321>

322```bash theme={null}322> ```bash theme={null}

323rm -rf ~/.claude/local323> rm -rf ~/.claude/local

324```324> ```

325 

326**Windows PowerShell**

327 325 

328```powershell theme={null}326> [tab] Windows PowerShell

329Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"327>

330```328> ```powershell theme={null}

329> Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"

330> ```

331 331 

332在 macOS 上删除 Homebrew 安装。如果您安装了 `claude-code@latest` cask,请替换该名称:332在 macOS 上删除 Homebrew 安装。如果您安装了 `claude-code@latest` cask,请替换该名称:

333 333 


376 376 

377确认二进制文件存在且可执行:377确认二进制文件存在且可执行:

378 378 

379**macOS/Linux**379> [tab] macOS/Linux

380 380>

381```bash theme={null}381> ```bash theme={null}

382ls -la "$(command -v claude)"382> ls -la "$(command -v claude)"

383```383> ```

384 

385**Windows PowerShell**

386 384 

387```powershell theme={null}385> [tab] Windows PowerShell

388Get-Command claude | Select-Object Source386>

389```387> ```powershell theme={null}

388> Get-Command claude | Select-Object Source

389> ```

390 390 

391在 Linux 上,检查缺失的共享库。如果 `ldd` 显示缺失的库,您可能需要安装系统包。在 Alpine Linux 和其他基于 musl 的发行版上,请参阅 [Alpine Linux setup](https://code.claude.com/docs/zh-CN/setup.md#alpine-linux-and-musl-based-distributions)。391在 Linux 上,检查缺失的共享库。如果 `ldd` 显示缺失的库,您可能需要安装系统包。在 Alpine Linux 和其他基于 musl 的发行版上,请参阅 [Alpine Linux setup](https://code.claude.com/docs/zh-CN/setup.md#alpine-linux-and-musl-based-distributions)。

392 392 


568 568 

5693. **检查代理或防火墙干扰**:执行 TLS 检查的公司代理可能会导致这些错误,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。对于安装步骤,使安装下载信任您的公司代理的 CA:5693. **检查代理或防火墙干扰**:执行 TLS 检查的公司代理可能会导致这些错误,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。对于安装步骤,使安装下载信任您的公司代理的 CA:

570 570 

571 **macOS/Linux**571 > [tab] macOS/Linux

572 >

573 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash

575 > ```

572 576 

573 ```bash theme={null}577 > [tab] Windows PowerShell

574 curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash578 >

575 ```579 > PowerShell 安装程序通过 .NET 下载,该 .NET 针对 Windows 证书存储验证 TLS。如果代理的 CA 证书尚未在 Windows 存储中,请要求您的 IT 团队添加它,然后运行安装程序:

576 580 >

577 **Windows PowerShell**581 > ```powershell theme={null}

578 582 > irm https://claude.ai/install.ps1 | iex

579 PowerShell 安装程序通过 .NET 下载,该 .NET 针对 Windows 证书存储验证 TLS。如果代理的 CA 证书尚未在 Windows 存储中,请要求您的 IT 团队添加它,然后运行安装程序:583 > ```

580 

581 ```powershell theme={null}

582 irm https://claude.ai/install.ps1 | iex

583 ```

584 584 

585 对于安装后的 Claude Code 本身,设置 `NODE_EXTRA_CA_CERTS` 以便 API 请求信任相同的包:585 对于安装后的 Claude Code 本身,设置 `NODE_EXTRA_CA_CERTS` 以便 API 请求信任相同的包:

586 586 

587 **macOS/Linux**587 > [tab] macOS/Linux

588 588 >

589 ```bash theme={null}589 > ```bash theme={null}

590 export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem590 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

591 ```591 > ```

592 

593 **Windows PowerShell**

594 592 

595 ```powershell theme={null}593 > [tab] Windows PowerShell

596 $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'594 >

597 ```595 > ```powershell theme={null}

596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```

598 598 

599 如果您没有证书文件,请向您的 IT 团队索取。您也可以尝试直接连接来确认代理是原因。599 如果您没有证书文件,请向您的 IT 团队索取。您也可以尝试直接连接来确认代理是原因。

600 600 


827 827 

828在所有其他配置中,重新运行安装程序会绕过此错误,因为即使您要求它安装较旧版本,脚本也会运行最新版本的 `install` 命令。为您的平台重新运行命令:828在所有其他配置中,重新运行安装程序会绕过此错误,因为即使您要求它安装较旧版本,脚本也会运行最新版本的 `install` 命令。为您的平台重新运行命令:

829 829 

830**macOS/Linux**830> [tab] macOS/Linux

831 831>

832```bash theme={null}832> ```bash theme={null}

833curl -fsSL https://claude.ai/install.sh | bash833> curl -fsSL https://claude.ai/install.sh | bash

834```834> ```

835 

836**Windows PowerShell**

837 835 

838```powershell theme={null}836> [tab] Windows PowerShell

839irm https://claude.ai/install.ps1 | iex837>

840```838> ```powershell theme={null}

839> irm https://claude.ai/install.ps1 | iex

840> ```

841 841 

842`claude --version` 打印重新运行安装的版本。842`claude --version` 打印重新运行安装的版本。

843 843 


1108 1108 

1109`npm error path` 行命名 npm 无法移动的目录。删除该目录和其旁边的任何剩余 `.claude-code-*` 目录,这些目录可能由较早的中断运行留下。以下命令使用 `npm root -g` 找到您的全局包目录;如果 `npm error path` 行命名的目录不在 `npm root -g` 打印的目录下,例如因为您使用 nvm 切换了 Node 版本,请改为删除错误命名的目录:1109`npm error path` 行命名 npm 无法移动的目录。删除该目录和其旁边的任何剩余 `.claude-code-*` 目录,这些目录可能由较早的中断运行留下。以下命令使用 `npm root -g` 找到您的全局包目录;如果 `npm error path` 行命名的目录不在 `npm root -g` 打印的目录下,例如因为您使用 nvm 切换了 Node 版本,请改为删除错误命名的目录:

1110 1110 

1111**macOS/Linux**1111> [tab] macOS/Linux

1112 1112>

1113```bash theme={null}1113> ```bash theme={null}

1114rm -rf "$(npm root -g)/@anthropic-ai/claude-code"1114> rm -rf "$(npm root -g)/@anthropic-ai/claude-code"

1115```1115> ```

1116 1116>

1117然后删除任何剩余的临时目录。如果 Zsh 打印 `no matches found`,则没有要删除的目录:1117> 然后删除任何剩余的临时目录。如果 Zsh 打印 `no matches found`,则没有要删除的目录:

1118 1118>

1119```bash theme={null}1119> ```bash theme={null}

1120rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*1120> rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*

1121```1121> ```

1122 

1123**Windows PowerShell**

1124 1122 

1125```powershell theme={null}1123> [tab] Windows PowerShell

1126Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*"1124>

1127```1125> ```powershell theme={null}

1126> Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*"

1127> ```

1128 1128 

1129然后重新安装。在 npm 12 上,请按照[修复 npm 12 安装](#fix-an-npm-12-install)操作。否则,请运行:1129然后重新安装。在 npm 12 上,请按照[修复 npm 12 安装](#fix-an-npm-12-install)操作。否则,请运行:

1130 1130 


1162 1162 

1163如果登录后看到 `API Error: 403 Request not allowed`:1163如果登录后看到 `API Error: 403 Request not allowed`:

1164 1164 

1165* **Claude Pro/Max 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效1165* **Claude Pro/Max/Ultra 用户**:在 [claude.ai/settings](https://claude.ai/settings) 验证您的订阅是否有效

1166* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Console 的 Members 页面 [platform.claude.com/settings/members](https://platform.claude.com/settings/members) 中分配此角色。1166* **Anthropic Console 用户**:确认您的账户具有"Claude Code"或"Developer"角色。管理员在 Console 的 Members 页面 [platform.claude.com/settings/members](https://platform.claude.com/settings/members) 中分配此角色。

1167* **在代理后面**:企业代理可能干扰 API 请求。有关代理设置,请参阅 [network configuration](https://code.claude.com/docs/zh-CN/network-config.md)。1167* **在代理后面**:企业代理可能干扰 API 请求。有关代理设置,请参阅 [network configuration](https://code.claude.com/docs/zh-CN/network-config.md)。

1168 1168 


1183 1183 

1184要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:1184要改用您的订阅,请取消设置环境变量并从您的 shell 配置文件中删除它:

1185 1185 

1186**macOS/Linux**1186> [tab] macOS/Linux

1187 1187>

1188```bash theme={null}1188> ```bash theme={null}

1189unset ANTHROPIC_API_KEY1189> unset ANTHROPIC_API_KEY

1190claude1190> claude

1191```1191> ```

1192 

1193**Windows PowerShell**

1194 1192 

1195```powershell theme={null}1193> [tab] Windows PowerShell

1196Remove-Item Env:ANTHROPIC_API_KEY1194>

1197claude1195> ```powershell theme={null}

1198```1196> Remove-Item Env:ANTHROPIC_API_KEY

1197> claude

1198> ```

1199 1199 

1200检查 `~/.zshrc`、`~/.bashrc` 或 `~/.profile` 中的 `export ANTHROPIC_API_KEY=...` 行并删除它们以使更改永久生效。在 Windows 上,检查您的 PowerShell 配置文件(位于 `$PROFILE`)和您的用户环境变量中的 `ANTHROPIC_API_KEY`。在 Claude Code 内运行 `/status` 以确认哪种身份验证方法处于活跃状态。1200检查 `~/.zshrc`、`~/.bashrc` 或 `~/.profile` 中的 `export ANTHROPIC_API_KEY=...` 行并删除它们以使更改永久生效。在 Windows 上,检查您的 PowerShell 配置文件(位于 `$PROFILE`)和您的用户环境变量中的 `ANTHROPIC_API_KEY`。在 Claude Code 内运行 `/status` 以确认哪种身份验证方法处于活跃状态。

1201 1201 

troubleshooting.md +27 −27

Details

134 134 

135如果搜索工具、`@file` 提及、自定义代理或自定义 skills 找不到文件,捆绑的 `ripgrep` 二进制文件可能无法在您的系统上运行。安装您平台的 `ripgrep` 包并告诉 Claude Code 改用它:135如果搜索工具、`@file` 提及、自定义代理或自定义 skills 找不到文件,捆绑的 `ripgrep` 二进制文件可能无法在您的系统上运行。安装您平台的 `ripgrep` 包并告诉 Claude Code 改用它:

136 136 

137**macOS**137> [tab] macOS

138 138>

139```bash theme={null}139> ```bash theme={null}

140brew install ripgrep140> brew install ripgrep

141```141> ```

142 

143**Ubuntu/Debian**

144 

145```bash theme={null}

146sudo apt install ripgrep

147```

148 

149**Alpine**

150 

151```bash theme={null}

152apk add ripgrep

153```

154 

155`ripgrep` 在 Alpine 的社区存储库中。如果 `apk` 报告包缺失,请参阅 [Alpine Linux 设置](https://code.claude.com/docs/zh-CN/setup.md#alpine-linux-and-musl-based-distributions)。

156 142 

157**Arch**143> [tab] Ubuntu/Debian

144>

145> ```bash theme={null}

146> sudo apt install ripgrep

147> ```

158 148 

159```bash theme={null}149> [tab] Alpine

160pacman -S ripgrep150>

161```151> ```bash theme={null}

152> apk add ripgrep

153> ```

154>

155> `ripgrep` 在 Alpine 的社区存储库中。如果 `apk` 报告包缺失,请参阅 [Alpine Linux 设置](https://code.claude.com/docs/zh-CN/setup.md#alpine-linux-and-musl-based-distributions)。

162 156 

163**Windows**157> [tab] Arch

158>

159> ```bash theme={null}

160> pacman -S ripgrep

161> ```

164 162 

165```powershell theme={null}163> [tab] Windows

166winget install BurntSushi.ripgrep.MSVC164>

167```165> ```powershell theme={null}

166> winget install BurntSushi.ripgrep.MSVC

167> ```

168 168 

169然后在您的 shell [环境](https://code.claude.com/docs/zh-CN/env-vars.md)中或在您的 [`settings.json`](https://code.claude.com/docs/zh-CN/settings-reference#all-settings) 的 `env` 块中将 `USE_BUILTIN_RIPGREP` 设置为 `0`:169然后在您的 shell [环境](https://code.claude.com/docs/zh-CN/env-vars.md)中或在您的 [`settings.json`](https://code.claude.com/docs/zh-CN/settings-reference#all-settings) 的 `env` 块中将 `USE_BUILTIN_RIPGREP` 设置为 `0`:

170 170 

ultrareview.md +2 −1

Details

120| - | - | - |120| - | - | - |

121| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |121| Pro | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

122| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |122| Max | 3 次免费运行 | 按 [额外使用量](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

123| Ultra | 3 次免费运行 | 按 [使用额度](https://support.claude.com/zh-CN/articles/12429409-extra-usage-for-paid-claude-plans) 计费 |

123 124 

124* **免费运行**:Pro 和 Max 的三次运行是每个账户的一次性分配,不会刷新。125* **免费运行**:Pro、Max 和 Ultra 的三次运行是每个账户的一次性分配,不会刷新。

125* **每次审查的成本**:使用完免费运行后,通常花费 \$5 到 \$25 的使用额度,具体取决于更改的大小,与启动对话框在每次运行前显示的估计相匹配。126* **每次审查的成本**:使用完免费运行后,通常花费 \$5 到 \$25 的使用额度,具体取决于更改的大小,与启动对话框在每次运行前显示的估计相匹配。

126* **何时计数一次运行**:一旦云会话启动。您提前停止或未能完成的审查仍然会使用一次免费运行;付费审查仅对运行的部分计费。127* **何时计数一次运行**:一旦云会话启动。您提前停止或未能完成的审查仍然会使用一次免费运行;付费审查仅对运行的部分计费。

127 128 

Details

105 105 

106语音听写使用与控制 Claude 响应语言相同的[`language` 设置](https://code.claude.com/docs/zh-CN/settings-reference#language)。如果该设置为空,听写默认为英语。在 VS Code 扩展中,如果 `language` 为空,听写在默认为英语之前使用 VS Code 的 `accessibility.voice.speechLanguage` 设置。106语音听写使用与控制 Claude 响应语言相同的[`language` 设置](https://code.claude.com/docs/zh-CN/settings-reference#language)。如果该设置为空,听写默认为英语。在 VS Code 扩展中,如果 `language` 为空,听写在默认为英语之前使用 VS Code 的 `accessibility.voice.speechLanguage` 设置。

107 107 

108> **支持的听写语言**108> [accordion] 支持的听写语言

109>109>

110> | 语言 | 代码 |110> | 语言 | 代码 |

111> | :- | :- |111> | :- | :- |

vs-code.md +34 −30

Details

23安装前,请确保您拥有:23安装前,请确保您拥有:

24 24 

25* VS Code 1.94.0 或更高版本25* VS Code 1.94.0 或更高版本

26* Anthropic 账户:任何付费 Claude 订阅(Pro、Max、Team 或 Enterprise)或 Claude Console 账户都可以使用,无需 API 密钥。首次打开扩展时,您将[使用此账户登录](https://code.claude.com/docs/zh-CN/authentication.md#log-in-to-claude-code)。如果您通过第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)访问 Claude,请参阅[使用第三方提供商](#use-third-party-providers)了解设置说明。26* Anthropic 账户:任何付费 Claude 订阅(Pro、Max、Ultra、Team 或 Enterprise)或 Claude Console 账户都可以使用,无需 API 密钥。首次打开扩展时,您将[使用此账户登录](https://code.claude.com/docs/zh-CN/authentication.md#log-in-to-claude-code)。如果您通过第三方提供商(如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)访问 Claude,请参阅[使用第三方提供商](#use-third-party-providers)了解设置说明。

27 27 

28> [!TIP]28> [!TIP]

29>29>


38 38 

39或者在 VS Code 中,按 `Cmd+Shift+X`(Mac)或 `Ctrl+Shift+X`(Windows/Linux)打开扩展视图,搜索"Claude Code",然后点击 **Install**。39或者在 VS Code 中,按 `Cmd+Shift+X`(Mac)或 `Ctrl+Shift+X`(Windows/Linux)打开扩展视图,搜索"Claude Code",然后点击 **Install**。

40 40 

41> [!NOTE]

42>

43> 扩展市场属于第三方软件,Anthropic 不为其背书、维护或审计。Anthropic 会将扩展提交至 Visual Studio Marketplace 和 Open VSX Registry 进行发布。

44 

41扩展的版本号即其捆绑的 Claude Code 版本。例如,需要 Claude Code v2.1.286 或更高版本的功能,需要 2.1.286 或更高版本的扩展,版本号可在扩展视图中查看。45扩展的版本号即其捆绑的 Claude Code 版本。例如,需要 Claude Code v2.1.286 或更高版本的功能,需要 2.1.286 或更高版本的扩展,版本号可在扩展视图中查看。

42 46 

43Claude Code 还可以在其他编辑器和容器中运行:47Claude Code 还可以在其他编辑器和容器中运行:

44 48 

45* **其他 VS Code 分支**:该扩展也可以安装在 Devin Desktop 或 Kiro 等分支中。在编辑器的扩展视图中搜索"Claude Code",或从 [Open VSX 注册表](https://open-vsx.org/extension/Anthropic/claude-code)安装。49* **其他 VS Code 分支版本**:该扩展也可以安装在 Devin Desktop 或 Kiro 等分支版本中。在编辑器的扩展视图中搜索"Claude Code",或从 [Open VSX Registry](https://open-vsx.org/extension/Anthropic/claude-code) 安装。

46* **无法安装该扩展的编辑器**:请[安装 CLI](https://code.claude.com/docs/zh-CN/quickstart.md),然后在编辑器的集成终端中运行 `claude`。CLI 可在任何终端中使用。50* **无法安装该扩展的编辑器**:请[安装 CLI](https://code.claude.com/docs/zh-CN/quickstart.md),然后在编辑器的集成终端中运行 `claude`。CLI 可在任何终端中使用。

47* **开发容器**:要在开发容器中运行 Claude Code,请参阅[开发容器](https://code.claude.com/docs/zh-CN/devcontainer.md)。51* **开发容器**:要在开发容器中运行 Claude Code,请参阅[开发容器](https://code.claude.com/docs/zh-CN/devcontainer.md)。

48 52 


117 121 

118输入框支持以下几项功能:122输入框支持以下几项功能:

119 123 

120* **权限模式**:点击输入框底部的模式指示器即可切换权限模式。在 Claude Code v2.1.283 或更高版本中,Auto 是内置的初始权限模式;在更早的版本中,仅 Pro、Max 和 Team 套餐如此。请参阅[扩展如何选择初始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes),了解哪些因素会改变初始模式,以及指示器提供的所有权限模式。124* **权限模式**:点击输入框底部的模式指示器即可切换权限模式。在 Claude Code v2.1.283 或更高版本中,Auto 是内置的初始权限模式;在更早的版本中,仅 Pro、Max、Ultra 和 Team 套餐如此。请参阅[扩展如何选择初始权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes),了解哪些因素会改变初始模式,以及指示器提供的所有权限模式。

121 * **Auto**:由分类器审查大多数操作,而不是询问您。请参阅[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode),了解它会审查和阻止哪些操作。125 * **Auto**:由分类器审查大多数操作,而不是询问您。请参阅[自动模式](https://code.claude.com/docs/zh-CN/permission-modes.md#eliminate-prompts-with-auto-mode),了解它会审查和阻止哪些操作。

122 * **Manual**:Claude 在编辑文件和执行大多数 shell 命令之前会请求权限。126 * **Manual**:Claude 在编辑文件和执行大多数 shell 命令之前会请求权限。

123 * **Plan**:Claude 会描述它将要执行的操作,并在进行更改前等待批准。VS Code 会自动将计划作为完整的 Markdown 文档打开,您可以在 Claude 开始之前添加行内评论来提供反馈。127 * **Plan**:Claude 会描述它将要执行的操作,并在进行更改前等待批准。VS Code 会自动将计划作为完整的 Markdown 文档打开,您可以在 Claude 开始之前添加行内评论来提供反馈。


656 660 

657使用操作系统的 URL 打开程序来调用该处理程序。661使用操作系统的 URL 打开程序来调用该处理程序。

658 662 

659**macOS**663> [tab] macOS

660 664>

661```bash theme={null}665> ```bash theme={null}

662open "vscode://anthropic.claude-code/open"666> open "vscode://anthropic.claude-code/open"

663```667> ```

664 

665**Linux**

666 

667```bash theme={null}

668xdg-open "vscode://anthropic.claude-code/open"

669```

670 

671`xdg-open` 命令来自 `xdg-utils` 软件包。如果 shell 报告找不到该命令,请参阅 [Linux 上找不到 xdg-open](https://code.claude.com/docs/zh-CN/deep-links.md#xdg-open-is-not-found-on-linux)。

672 

673**Windows**

674 

675在 PowerShell 中:

676 

677```powershell theme={null}

678Start-Process "vscode://anthropic.claude-code/open"

679```

680 668 

681在 `cmd.exe` 中,`start` 会将其第一个带引号的参数视为窗口标题,因此请在 URL 之前传入一个空标题:669> [tab] Linux

670>

671> ```bash theme={null}

672> xdg-open "vscode://anthropic.claude-code/open"

673> ```

674>

675> `xdg-open` 命令来自 `xdg-utils` 软件包。如果 shell 报告找不到该命令,请参阅 [Linux 上找不到 xdg-open](https://code.claude.com/docs/zh-CN/deep-links.md#xdg-open-is-not-found-on-linux)。

682 676 

683```cmd theme={null}677> [tab] Windows

684start "" "vscode://anthropic.claude-code/open"678>

685```679> 在 PowerShell 中:

680>

681> ```powershell theme={null}

682> Start-Process "vscode://anthropic.claude-code/open"

683> ```

684>

685> 在 `cmd.exe` 中,`start` 会将其第一个带引号的参数视为窗口标题,因此请在 URL 之前传入一个空标题:

686>

687> ```cmd theme={null}

688> start "" "vscode://anthropic.claude-code/open"

689> ```

686 690 

687该处理程序接受两个可选的查询参数:691该处理程序接受两个可选的查询参数:

688 692 


704您可以在两个位置配置该扩展:VS Code 的扩展设置和 Claude Code 设置文件:708您可以在两个位置配置该扩展:VS Code 的扩展设置和 Claude Code 设置文件:

705 709 

706* VS Code 中的**扩展设置**:控制扩展在 VS Code 中的行为。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)打开,然后转到 **Extensions > Claude Code**。也可以输入 `/` 并选择 **General config…** 来打开设置。710* VS Code 中的**扩展设置**:控制扩展在 VS Code 中的行为。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)打开,然后转到 **Extensions > Claude Code**。也可以输入 `/` 并选择 **General config…** 来打开设置。

707* `~/.claude/settings.json` 中的 **Claude Code 设置**:由扩展和 CLI 共享。用于配置允许的命令、环境变量、hook 和 MCP 服务器。在 Claude Code v2.1.283 或更高版本中,它也是决定对话起始权限模式的输入之一;在更早的版本中,仅适用于 Pro、Max 和 Team 计划。[切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)列出了优先顺序。详情请参阅[设置](https://code.claude.com/docs/zh-CN/settings.md)。711* `~/.claude/settings.json` 中的 **Claude Code 设置**:由扩展和 CLI 共享。用于配置允许的命令、环境变量、hook 和 MCP 服务器。在 Claude Code v2.1.283 或更高版本中,它也是决定对话起始权限模式的输入之一;在更早的版本中,仅适用于 Pro、Max、Ultra 和 Team 计划。[切换权限模式](https://code.claude.com/docs/zh-CN/permission-modes.md#switch-permission-modes)列出了优先顺序。详情请参阅[设置](https://code.claude.com/docs/zh-CN/settings.md)。

708 712 

709> [!TIP]713> [!TIP]

710>714>


933 937 

934* 确保您的 VS Code 版本兼容(1.94.0 或更高版本)938* 确保您的 VS Code 版本兼容(1.94.0 或更高版本)

935* 检查 VS Code 是否具有安装扩展的权限939* 检查 VS Code 是否具有安装扩展的权限

936* 尝试直接从 [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code) 安装940* 尝试直接从 [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code) 安装

937 941 

938### Spark 图标不可见942### Spark 图标不可见

939 943 

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> 云会话可在 Pro、Max 和 Team 计划上使用,以及拥有高级席位或 Chat + Claude Code 席位的企业用户。11> 云端会话可在 Pro、Max、Ultra 和 Team 计划上使用,以及拥有高级席位或 Chat + Claude Code 席位的企业用户。

12 12 

13云会话在云基础设施上运行 Claude Code,而不是在您的机器上,默认由 Anthropic 管理。此快速入门从浏览器中的 [claude.ai/code](https://claude.ai/code) 启动一个会话。您也可以从 Claude 移动应用、Desktop 应用或终端使用 `claude --cloud` 启动一个会话。13云会话在云基础设施上运行 Claude Code,而不是在您的机器上,默认由 Anthropic 管理。此快速入门从浏览器中的 [claude.ai/code](https://claude.ai/code) 启动一个会话。您也可以从 Claude 移动应用、Desktop 应用或终端使用 `claude --cloud` 启动一个会话。

14 14 


77 77 

78[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md)是保存的配置,控制会话期间 Claude 拥有的网络访问权限以及会话启动时运行的内容。连接 GitHub 后发生的情况取决于您的计划:78[云环境](https://code.claude.com/docs/zh-CN/cloud-environments.md)是保存的配置,控制会话期间 Claude 拥有的网络访问权限以及会话启动时运行的内容。连接 GitHub 后发生的情况取决于您的计划:

79 79 

80* **Pro 和 Max**:入门流程为您创建一个名为**Default**的环境。80* **Pro、Max 和 Ultra**:您会自动获得一个名为**Default**的环境。

81* **Team 和 Enterprise**:入门流程显示**Create your first cloud environment**表单。保持预填充的名称和网络访问不变,然后单击**Create & finish**以创建**Default**环境。如果所有者已打开[Quick setup](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#quick-setup-for-team-and-enterprise),入门流程会为您创建**Default**。81* **Team 和 Enterprise**:入门流程显示**Create your first cloud environment**表单。保持预填充的名称和网络访问不变,然后单击**Create & finish**以创建**Default**环境。如果所有者已打开[Quick setup](https://code.claude.com/docs/zh-CN/claude-code-on-the-web.md#quick-setup-for-team-and-enterprise),入门流程会为您创建**Default**。

82 82 

83**Default** 使用[`Trusted` 网络访问](https://code.claude.com/docs/zh-CN/cloud-environments#access-levels):会话可以访问[常见包注册表](https://code.claude.com/docs/zh-CN/cloud-environments.md#default-allowed-domains)和其他允许列表中的域,以及通过会话网络的其他任何内容都无法访问。有关无需任何配置即可使用的内容,请参阅[已安装的工具](https://code.claude.com/docs/zh-CN/cloud-environments.md#installed-tools)。83**Default** 使用[`Trusted` 网络访问](https://code.claude.com/docs/zh-CN/cloud-environments#access-levels):会话可以访问[常见包注册表](https://code.claude.com/docs/zh-CN/cloud-environments.md#default-allowed-domains)和其他允许列表中的域,以及通过会话网络的其他任何内容都无法访问。有关无需任何配置即可使用的内容,请参阅[已安装的工具](https://code.claude.com/docs/zh-CN/cloud-environments.md#installed-tools)。