SpyBara
Go Premium

Documentation 2026-05-05 23:00 UTC to 2026-05-07 22:59 UTC

32 files changed +1,507 −214. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

agent-sdk/custom-tools.md +833 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude에 사용자 정의 도구 제공

6 

7> Claude Agent SDK의 인프로세스 MCP 서버로 사용자 정의 도구를 정의하여 Claude가 함수를 호출하고, API를 사용하며, 도메인별 작업을 수행할 수 있도록 합니다.

8 

9사용자 정의 도구는 Claude가 대화 중에 호출할 수 있는 자신의 함수를 정의하도록 하여 Agent SDK를 확장합니다. SDK의 인프로세스 MCP 서버를 사용하면 Claude에 데이터베이스, 외부 API, 도메인별 로직 또는 애플리케이션에 필요한 다른 기능에 대한 액세스 권한을 부여할 수 있습니다.

10 

11이 가이드에서는 입력 스키마 및 핸들러를 사용하여 도구를 정의하고, 이를 MCP 서버로 번들링하고, `query`에 전달하며, Claude가 액세스할 수 있는 도구를 제어하는 방법을 다룹니다. 또한 오류 처리, 도구 주석, 이미지와 같은 비텍스트 콘텐츠 반환에 대해서도 다룹니다.

12 

13## 빠른 참조

14 

15| 원하는 작업 | 수행 방법 |

16| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

17| 도구 정의 | 이름, 설명, 스키마 및 핸들러를 사용하여 [`@tool`](/ko/agent-sdk/python#tool) (Python) 또는 [`tool()`](/ko/agent-sdk/typescript#tool) (TypeScript)을 사용합니다. [사용자 정의 도구 만들기](#create-a-custom-tool)를 참조하세요. |

18| Claude에 도구 등록 | `create_sdk_mcp_server` / `createSdkMcpServer`로 래핑하고 `query()`의 `mcpServers`에 전달합니다. [사용자 정의 도구 호출](#call-a-custom-tool)을 참조하세요. |

19| 도구 사전 승인 | 허용된 도구에 추가합니다. [허용된 도구 구성](#configure-allowed-tools)을 참조하세요. |

20| Claude의 컨텍스트에서 기본 제공 도구 제거 | 원하는 기본 제공 도구만 나열하는 `tools` 배열을 전달합니다. [허용된 도구 구성](#configure-allowed-tools)을 참조하세요. |

21| Claude가 도구를 병렬로 호출하도록 허용 | 부작용이 없는 도구에 `readOnlyHint: true`를 설정합니다. [도구 주석 추가](#add-tool-annotations)를 참조하세요. |

22| 루프를 중지하지 않고 오류 처리 | 예외를 발생시키는 대신 `isError: true`를 반환합니다. [오류 처리](#handle-errors)를 참조하세요. |

23| 이미지 또는 파일 반환 | 콘텐츠 배열에서 `image` 또는 `resource` 블록을 사용합니다. [이미지 및 리소스 반환](#return-images-and-resources)을 참조하세요. |

24| 머신 판독 가능한 JSON 결과 반환 | 결과에 `structuredContent`를 설정합니다. [구조화된 데이터 반환](#return-structured-data)을 참조하세요. |

25| 많은 도구로 확장 | [도구 검색](/ko/agent-sdk/tool-search)을 사용하여 필요에 따라 도구를 로드합니다. |

26 

27## 사용자 정의 도구 만들기

28 

29도구는 TypeScript의 [`tool()`](/ko/agent-sdk/typescript#tool) 헬퍼 또는 Python의 [`@tool`](/ko/agent-sdk/python#tool) 데코레이터에 인수로 전달되는 네 부분으로 정의됩니다:

30 

31* **이름:** Claude가 도구를 호출하는 데 사용하는 고유 식별자입니다.

32* **설명:** 도구가 수행하는 작업입니다. Claude는 이를 읽고 도구를 호출할 시기를 결정합니다.

33* **입력 스키마:** Claude가 제공해야 하는 인수입니다. TypeScript에서는 항상 [Zod 스키마](https://zod.dev/)이며, 핸들러의 `args`는 자동으로 입력됩니다. Python에서는 `{"latitude": float}`와 같이 이름을 유형에 매핑하는 딕셔너리이며, SDK가 JSON Schema로 변환합니다. Python 데코레이터는 열거형, 범위, 선택적 필드 또는 중첩된 객체가 필요할 때 전체 [JSON Schema](https://json-schema.org/understanding-json-schema/about) 딕셔너리도 허용합니다.

34* **핸들러:** Claude가 도구를 호출할 때 실행되는 비동기 함수입니다. 검증된 인수를 받고 다음을 포함하는 객체를 반환해야 합니다:

35 * `content` (필수): 각각 `"text"`, `"image"` 또는 `"resource"`의 `type`을 가진 결과 블록의 배열입니다. 비텍스트 블록은 [이미지 및 리소스 반환](#return-images-and-resources)을 참조하세요.

36 * `structuredContent` (선택사항): 머신 판독 가능한 데이터로 결과를 보유하는 JSON 객체이며, `content`와 함께 반환됩니다. [구조화된 데이터 반환](#return-structured-data)을 참조하세요.

37 * `isError` (선택사항): Claude가 반응할 수 있도록 도구 실패를 신호하려면 `true`로 설정합니다. [오류 처리](#handle-errors)를 참조하세요.

38 

39도구를 정의한 후 [`createSdkMcpServer`](/ko/agent-sdk/typescript#createsdkmcpserver) (TypeScript) 또는 [`create_sdk_mcp_server`](/ko/agent-sdk/python#create_sdk_mcp_server) (Python)를 사용하여 서버로 래핑합니다. 서버는 별도의 프로세스가 아닌 애플리케이션 내에서 인프로세스로 실행됩니다.

40 

41### 날씨 도구 예제

42 

43이 예제는 `get_temperature` 도구를 정의하고 MCP 서버로 래핑합니다. 도구만 설정합니다. `query`에 전달하고 실행하려면 아래의 [사용자 정의 도구 호출](#call-a-custom-tool)을 참조하세요.

44 

45<CodeGroup>

46 ```python Python theme={null}

47 from typing import Any

48 import httpx

49 from claude_agent_sdk import tool, create_sdk_mcp_server

50 

51 

52 # 도구 정의: 이름, 설명, 입력 스키마, 핸들러

53 @tool(

54 "get_temperature",

55 "Get the current temperature at a location",

56 {"latitude": float, "longitude": float},

57 )

58 async def get_temperature(args: dict[str, Any]) -> dict[str, Any]:

59 async with httpx.AsyncClient() as client:

60 response = await client.get(

61 "https://api.open-meteo.com/v1/forecast",

62 params={

63 "latitude": args["latitude"],

64 "longitude": args["longitude"],

65 "current": "temperature_2m",

66 "temperature_unit": "fahrenheit",

67 },

68 )

69 data = response.json()

70 

71 # 콘텐츠 배열 반환 - Claude는 이를 도구 결과로 봅니다

72 return {

73 "content": [

74 {

75 "type": "text",

76 "text": f"Temperature: {data['current']['temperature_2m']}°F",

77 }

78 ]

79 }

80 

81 

82 # 도구를 인프로세스 MCP 서버로 래핑합니다

83 weather_server = create_sdk_mcp_server(

84 name="weather",

85 version="1.0.0",

86 tools=[get_temperature],

87 )

88 ```

89 

90 ```typescript TypeScript theme={null}

91 import { tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

92 import { z } from "zod";

93 

94 // 도구 정의: 이름, 설명, 입력 스키마, 핸들러

95 const getTemperature = tool(

96 "get_temperature",

97 "Get the current temperature at a location",

98 {

99 latitude: z.number().describe("Latitude coordinate"), // .describe()는 Claude가 보는 필드 설명을 추가합니다

100 longitude: z.number().describe("Longitude coordinate")

101 },

102 async (args) => {

103 // args는 스키마에서 입력됩니다: { latitude: number; longitude: number }

104 const response = await fetch(

105 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&current=temperature_2m&temperature_unit=fahrenheit`

106 );

107 const data: any = await response.json();

108 

109 // 콘텐츠 배열 반환 - Claude는 이를 도구 결과로 봅니다

110 return {

111 content: [{ type: "text", text: `Temperature: ${data.current.temperature_2m}°F` }]

112 };

113 }

114 );

115 

116 // 도구를 인프로세스 MCP 서버로 래핑합니다

117 const weatherServer = createSdkMcpServer({

118 name: "weather",

119 version: "1.0.0",

120 tools: [getTemperature]

121 });

122 ```

123</CodeGroup>

124 

125전체 매개변수 세부 정보, JSON Schema 입력 형식 및 반환 값 구조를 포함하여 [`tool()`](/ko/agent-sdk/typescript#tool) TypeScript 참조 또는 [`@tool`](/ko/agent-sdk/python#tool) Python 참조를 참조하세요.

126 

127<Tip>

128 매개변수를 선택사항으로 만들려면: TypeScript에서 Zod 필드에 `.default()`를 추가합니다. Python에서 딕셔너리 스키마는 모든 키를 필수로 취급하므로 스키마에서 매개변수를 생략하고, 설명 문자열에서 언급하고, 핸들러에서 `args.get()`으로 읽습니다. 아래의 [`get_precipitation_chance` 도구](#add-more-tools)는 두 패턴을 모두 보여줍니다.

129</Tip>

130 

131### 사용자 정의 도구 호출

132 

133`mcpServers` 옵션을 통해 생성한 MCP 서버를 `query`에 전달합니다. `mcpServers`의 키는 각 도구의 정규화된 이름에서 `{server_name}` 세그먼트가 됩니다: `mcp__{server_name}__{tool_name}`. 도구가 권한 프롬프트 없이 실행되도록 `allowedTools`에 해당 이름을 나열합니다.

134 

135이 스니펫은 [위의 예제](#weather-tool-example)의 `weatherServer`를 재사용하여 Claude에 특정 위치의 날씨를 묻습니다.

136 

137<CodeGroup>

138 ```python Python theme={null}

139 import asyncio

140 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

141 

142 

143 async def main():

144 options = ClaudeAgentOptions(

145 mcp_servers={"weather": weather_server},

146 allowed_tools=["mcp__weather__get_temperature"],

147 )

148 

149 async for message in query(

150 prompt="What's the temperature in San Francisco?",

151 options=options,

152 ):

153 # ResultMessage는 모든 도구 호출이 완료된 후의 최종 메시지입니다

154 if isinstance(message, ResultMessage) and message.subtype == "success":

155 print(message.result)

156 

157 

158 asyncio.run(main())

159 ```

160 

161 ```typescript TypeScript theme={null}

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

163 

164 for await (const message of query({

165 prompt: "What's the temperature in San Francisco?",

166 options: {

167 mcpServers: { weather: weatherServer },

168 allowedTools: ["mcp__weather__get_temperature"]

169 }

170 })) {

171 // "result"는 모든 도구 호출이 완료된 후의 최종 메시지입니다

172 if (message.type === "result" && message.subtype === "success") {

173 console.log(message.result);

174 }

175 }

176 ```

177</CodeGroup>

178 

179### 더 많은 도구 추가

180 

181서버는 `tools` 배열에 나열한 만큼 많은 도구를 보유합니다. 서버에 둘 이상의 도구가 있으면 `allowedTools`에서 각각을 개별적으로 나열하거나 와일드카드 `mcp__weather__*`를 사용하여 서버가 노출하는 모든 도구를 포함할 수 있습니다.

182 

183아래 예제는 [날씨 도구 예제](#weather-tool-example)의 `weatherServer`에 두 번째 도구인 `get_precipitation_chance`를 추가하고 배열의 두 도구로 다시 빌드합니다.

184 

185<CodeGroup>

186 ```python Python theme={null}

187 # 동일한 서버에 대한 두 번째 도구 정의

188 @tool(

189 "get_precipitation_chance",

190 "Get the hourly precipitation probability for a location. "

191 "Optionally pass 'hours' (1-24) to control how many hours to return.",

192 {"latitude": float, "longitude": float},

193 )

194 async def get_precipitation_chance(args: dict[str, Any]) -> dict[str, Any]:

195 # 'hours'는 스키마에 없습니다 - .get()으로 읽어서 선택사항으로 만듭니다

196 hours = args.get("hours", 12)

197 async with httpx.AsyncClient() as client:

198 response = await client.get(

199 "https://api.open-meteo.com/v1/forecast",

200 params={

201 "latitude": args["latitude"],

202 "longitude": args["longitude"],

203 "hourly": "precipitation_probability",

204 "forecast_days": 1,

205 },

206 )

207 data = response.json()

208 chances = data["hourly"]["precipitation_probability"][:hours]

209 

210 return {

211 "content": [

212 {

213 "type": "text",

214 "text": f"Next {hours} hours: {'%, '.join(map(str, chances))}%",

215 }

216 ]

217 }

218 

219 

220 # 배열의 두 도구로 서버를 다시 빌드합니다

221 weather_server = create_sdk_mcp_server(

222 name="weather",

223 version="1.0.0",

224 tools=[get_temperature, get_precipitation_chance],

225 )

226 ```

227 

228 ```typescript TypeScript theme={null}

229 // 동일한 서버에 대한 두 번째 도구 정의

230 const getPrecipitationChance = tool(

231 "get_precipitation_chance",

232 "Get the hourly precipitation probability for a location",

233 {

234 latitude: z.number(),

235 longitude: z.number(),

236 hours: z

237 .number()

238 .int()

239 .min(1)

240 .max(24)

241 .default(12) // .default()는 매개변수를 선택사항으로 만듭니다

242 .describe("How many hours of forecast to return")

243 },

244 async (args) => {

245 const response = await fetch(

246 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`

247 );

248 const data: any = await response.json();

249 const chances = data.hourly.precipitation_probability.slice(0, args.hours);

250 

251 return {

252 content: [{ type: "text", text: `Next ${args.hours} hours: ${chances.join("%, ")}%` }]

253 };

254 }

255 );

256 

257 // 배열의 두 도구로 서버를 다시 빌드합니다

258 const weatherServer = createSdkMcpServer({

259 name: "weather",

260 version: "1.0.0",

261 tools: [getTemperature, getPrecipitationChance]

262 });

263 ```

264</CodeGroup>

265 

266이 배열의 모든 도구는 매 턴마다 컨텍스트 윈도우 공간을 소비합니다. 수십 개의 도구를 정의하는 경우 [도구 검색](/ko/agent-sdk/tool-search)을 참조하여 필요할 때 로드합니다.

267 

268### 도구 주석 추가

269 

270[도구 주석](https://modelcontextprotocol.io/docs/concepts/tools#tool-annotations)은 도구의 동작을 설명하는 선택적 메타데이터입니다. TypeScript의 `tool()` 헬퍼에 다섯 번째 인수로 전달하거나 Python의 `@tool` 데코레이터에 대해 `annotations` 키워드 인수를 통해 전달합니다. 모든 힌트 필드는 부울입니다.

271 

272| 필드 | 기본값 | 의미 |

273| :---------------- | :------ | :----------------------------------------------------------- |

274| `readOnlyHint` | `false` | 도구는 환경을 수정하지 않습니다. 도구를 다른 읽기 전용 도구와 병렬로 호출할 수 있는지 여부를 제어합니다. |

275| `destructiveHint` | `true` | 도구는 파괴적인 업데이트를 수행할 수 있습니다. 정보 제공용입니다. |

276| `idempotentHint` | `false` | 동일한 인수로 반복 호출해도 추가 효과가 없습니다. 정보 제공용입니다. |

277| `openWorldHint` | `true` | 도구는 프로세스 외부의 시스템에 도달합니다. 정보 제공용입니다. |

278 

279주석은 메타데이터이지 강제 사항이 아닙니다. `readOnlyHint: true`로 표시된 도구도 핸들러가 수행하는 경우 디스크에 쓸 수 있습니다. 주석을 핸들러에 정확하게 유지합니다.

280 

281이 예제는 [날씨 도구 예제](#weather-tool-example)의 `get_temperature` 도구에 `readOnlyHint`를 추가합니다.

282 

283<CodeGroup>

284 ```python Python theme={null}

285 from claude_agent_sdk import tool, ToolAnnotations

286 

287 

288 @tool(

289 "get_temperature",

290 "Get the current temperature at a location",

291 {"latitude": float, "longitude": float},

292 annotations=ToolAnnotations(

293 readOnlyHint=True

294 ), # Claude가 이를 다른 읽기 전용 호출과 일괄 처리하도록 합니다

295 )

296 async def get_temperature(args):

297 return {"content": [{"type": "text", "text": "..."}]}

298 ```

299 

300 ```typescript TypeScript theme={null}

301 tool(

302 "get_temperature",

303 "Get the current temperature at a location",

304 { latitude: z.number(), longitude: z.number() },

305 async (args) => ({ content: [{ type: "text", text: `...` }] }),

306 { annotations: { readOnlyHint: true } } // Claude가 이를 다른 읽기 전용 호출과 일괄 처리하도록 합니다

307 );

308 ```

309</CodeGroup>

310 

311[TypeScript](/ko/agent-sdk/typescript#toolannotations) 또는 [Python](/ko/agent-sdk/python#toolannotations) 참조에서 `ToolAnnotations`를 참조하세요.

312 

313## 도구 액세스 제어

314 

315[날씨 도구 예제](#weather-tool-example)는 서버를 등록하고 `allowedTools`에 도구를 나열했습니다. 이 섹션에서는 도구 이름이 구성되는 방식과 여러 도구가 있거나 기본 제공 도구를 제한하려는 경우 액세스 범위를 지정하는 방법을 다룹니다.

316 

317### 도구 이름 형식

318 

319MCP 도구가 Claude에 노출될 때 이름은 특정 형식을 따릅니다:

320 

321* 패턴: `mcp__{server_name}__{tool_name}`

322* 예제: `weather` 서버의 `get_temperature`라는 도구는 `mcp__weather__get_temperature`가 됩니다

323 

324### 허용된 도구 구성

325 

326`tools` 옵션과 허용/거부 목록은 별도의 계층에서 작동합니다. `tools`는 Claude의 컨텍스트에 나타나는 기본 제공 도구를 제어합니다. 허용 및 거부 도구 목록은 Claude가 호출을 시도한 후 호출이 승인되거나 거부되는지 여부를 제어합니다.

327 

328| 옵션 | 계층 | 효과 |

329| :------------------------ | :-- | :----------------------------------------------------------------------------------------------- |

330| `tools: ["Read", "Grep"]` | 가용성 | 나열된 기본 제공 도구만 Claude의 컨텍스트에 있습니다. 나열되지 않은 기본 제공 도구는 제거됩니다. MCP 도구는 영향을 받지 않습니다. |

331| `tools: []` | 가용성 | 모든 기본 제공 도구가 제거됩니다. Claude는 MCP 도구만 사용할 수 있습니다. |

332| 허용된 도구 | 권한 | 나열된 도구는 권한 프롬프트 없이 실행됩니다. 나열되지 않은 도구는 계속 사용 가능합니다. 호출은 [권한 흐름](/ko/agent-sdk/permissions)을 거칩니다. |

333| 거부된 도구 | 권한 | 나열된 도구에 대한 모든 호출이 거부됩니다. 도구는 Claude의 컨텍스트에 남아 있으므로 Claude는 호출이 거부되기 전에 시도할 수 있습니다. |

334 

335Claude가 사용할 수 있는 기본 제공 도구를 제한하려면 거부된 도구보다 `tools`를 선호합니다. `tools`에서 도구를 생략하면 컨텍스트에서 제거되므로 Claude는 시도하지 않습니다. `disallowedTools`에 나열하면 호출을 차단하지만 도구를 표시하므로 Claude는 시도하는 데 턴을 낭비할 수 있습니다. 전체 평가 순서는 [권한 구성](/ko/agent-sdk/permissions)을 참조하세요.

336 

337## 오류 처리

338 

339핸들러가 오류를 보고하는 방식에 따라 에이전트 루프가 계속되는지 중지되는지가 결정됩니다:

340 

341| 발생하는 상황 | 결과 |

342| :---------------------------------------------------------------------- | :------------------------------------------------------------------------ |

343| 핸들러가 포착되지 않은 예외를 발생시킵니다 | 에이전트 루프가 중지됩니다. Claude는 오류를 보지 못하고 `query` 호출이 실패합니다. |

344| 핸들러가 오류를 포착하고 `isError: true` (TS) / `"is_error": True` (Python)를 반환합니다 | 에이전트 루프가 계속됩니다. Claude는 오류를 데이터로 보고 재시도하거나, 다른 도구를 시도하거나, 실패를 설명할 수 있습니다. |

345 

346아래 예제는 핸들러 내에서 두 가지 종류의 실패를 포착합니다. 0이 아닌 HTTP 상태는 응답에서 포착되어 오류 결과로 반환됩니다. 네트워크 오류 또는 잘못된 JSON은 주변 `try/except` (Python) 또는 `try/catch` (TypeScript)로 포착되어 오류 결과로도 반환됩니다. 두 경우 모두 핸들러는 정상적으로 반환되고 에이전트 루프가 계속됩니다.

347 

348<CodeGroup>

349 ```python Python theme={null}

350 import json

351 import httpx

352 from typing import Any

353 

354 

355 @tool(

356 "fetch_data",

357 "Fetch data from an API",

358 {"endpoint": str}, # 간단한 스키마

359 )

360 async def fetch_data(args: dict[str, Any]) -> dict[str, Any]:

361 try:

362 async with httpx.AsyncClient() as client:

363 response = await client.get(args["endpoint"])

364 if response.status_code != 200:

365 # Claude가 반응할 수 있도록 실패를 도구 결과로 반환합니다.

366 # is_error는 이를 실패한 호출로 표시하지 않으면 이상한 데이터로 표시합니다.

367 return {

368 "content": [

369 {

370 "type": "text",

371 "text": f"API error: {response.status_code} {response.reason_phrase}",

372 }

373 ],

374 "is_error": True,

375 }

376 

377 data = response.json()

378 return {"content": [{"type": "text", "text": json.dumps(data, indent=2)}]}

379 except Exception as e:

380 # 여기서 포착하면 에이전트 루프가 살아있습니다. 포착되지 않은 예외는

381 # 전체 query() 호출을 종료합니다.

382 return {

383 "content": [{"type": "text", "text": f"Failed to fetch data: {str(e)}"}],

384 "is_error": True,

385 }

386 ```

387 

388 ```typescript TypeScript theme={null}

389 tool(

390 "fetch_data",

391 "Fetch data from an API",

392 {

393 endpoint: z.string().url().describe("API endpoint URL")

394 },

395 async (args) => {

396 try {

397 const response = await fetch(args.endpoint);

398 

399 if (!response.ok) {

400 // Claude가 반응할 수 있도록 실패를 도구 결과로 반환합니다.

401 // isError는 이를 실패한 호출로 표시하지 않으면 이상한 데이터로 표시합니다.

402 return {

403 content: [

404 {

405 type: "text",

406 text: `API error: ${response.status} ${response.statusText}`

407 }

408 ],

409 isError: true

410 };

411 }

412 

413 const data = await response.json();

414 return {

415 content: [

416 {

417 type: "text",

418 text: JSON.stringify(data, null, 2)

419 }

420 ]

421 };

422 } catch (error) {

423 // 여기서 포착하면 에이전트 루프가 살아있습니다. 포착되지 않은 throw는

424 // 전체 query() 호출을 종료합니다.

425 return {

426 content: [

427 {

428 type: "text",

429 text: `Failed to fetch data: ${error instanceof Error ? error.message : String(error)}`

430 }

431 ],

432 isError: true

433 };

434 }

435 }

436 );

437 ```

438</CodeGroup>

439 

440## 이미지 및 리소스 반환

441 

442도구 결과의 `content` 배열은 `text`, `image` 및 `resource` 블록을 허용합니다. 동일한 응답에서 이들을 혼합할 수 있습니다.

443 

444### 이미지

445 

446이미지 블록은 이미지 바이트를 base64로 인코딩하여 인라인으로 전달합니다. URL 필드가 없습니다. URL에 있는 이미지를 반환하려면 핸들러에서 가져오고, 응답 바이트를 읽고, 반환하기 전에 base64로 인코딩합니다. 결과는 시각적 입력으로 처리됩니다.

447 

448| 필드 | 유형 | 참고 |

449| :--------- | :-------- | :-------------------------------------------------------------- |

450| `type` | `"image"` | |

451| `data` | `string` | Base64로 인코딩된 바이트입니다. `data:image/...;base64,` 접두사 없이 원본 base64만 |

452| `mimeType` | `string` | 필수입니다. 예: `image/png`, `image/jpeg`, `image/webp`, `image/gif` |

453 

454<CodeGroup>

455 ```python Python theme={null}

456 import base64

457 import httpx

458 

459 

460 # URL에서 이미지를 가져와 Claude에 반환하는 도구를 정의합니다

461 @tool("fetch_image", "Fetch an image from a URL and return it to Claude", {"url": str})

462 async def fetch_image(args):

463 async with httpx.AsyncClient() as client: # 이미지 바이트를 가져옵니다

464 response = await client.get(args["url"])

465 

466 return {

467 "content": [

468 {

469 "type": "image",

470 "data": base64.b64encode(response.content).decode(

471 "ascii"

472 ), # 원본 바이트를 base64로 인코딩합니다

473 "mimeType": response.headers.get(

474 "content-type", "image/png"

475 ), # 응답에서 MIME 유형을 읽습니다

476 }

477 ]

478 }

479 ```

480 

481 ```typescript TypeScript theme={null}

482 tool(

483 "fetch_image",

484 "Fetch an image from a URL and return it to Claude",

485 {

486 url: z.string().url()

487 },

488 async (args) => {

489 const response = await fetch(args.url); // 이미지 바이트를 가져옵니다

490 const buffer = Buffer.from(await response.arrayBuffer()); // base64 인코딩을 위해 버퍼로 읽습니다

491 const mimeType = response.headers.get("content-type") ?? "image/png";

492 

493 return {

494 content: [

495 {

496 type: "image",

497 data: buffer.toString("base64"), // 원본 바이트를 base64로 인코딩합니다

498 mimeType

499 }

500 ]

501 };

502 }

503 );

504 ```

505</CodeGroup>

506 

507### 리소스

508 

509리소스 블록은 URI로 식별되는 콘텐츠 조각을 포함합니다. URI는 Claude가 참조할 레이블입니다. 실제 콘텐츠는 블록의 `text` 또는 `blob` 필드에 있습니다. 도구가 나중에 이름으로 주소를 지정하는 것이 합리적인 것을 생성할 때 사용합니다. 예를 들어 생성된 파일 또는 외부 시스템의 레코드입니다.

510 

511| 필드 | 유형 | 참고 |

512| :------------------ | :----------- | :------------------------------------------- |

513| `type` | `"resource"` | |

514| `resource.uri` | `string` | 콘텐츠의 식별자입니다. 모든 URI 스키마 |

515| `resource.text` | `string` | 텍스트인 경우 콘텐츠입니다. `blob` 대신 이것을 제공하되 둘 다는 아닙니다 |

516| `resource.blob` | `string` | 바이너리인 경우 base64로 인코딩된 콘텐츠입니다 |

517| `resource.mimeType` | `string` | 선택사항 |

518 

519이 예제는 도구 핸들러 내에서 반환된 리소스 블록을 보여줍니다. URI `file:///tmp/report.md`는 Claude가 나중에 참조할 수 있는 레이블입니다. SDK는 해당 경로에서 읽지 않습니다.

520 

521<CodeGroup>

522 ```typescript TypeScript theme={null}

523 return {

524 content: [

525 {

526 type: "resource",

527 resource: {

528 uri: "file:///tmp/report.md", // Claude가 참조할 레이블이지 SDK가 읽는 경로가 아닙니다

529 mimeType: "text/markdown",

530 text: "# Report\n..." // 실제 콘텐츠, 인라인

531 }

532 }

533 ]

534 };

535 ```

536 

537 ```python Python theme={null}

538 return {

539 "content": [

540 {

541 "type": "resource",

542 "resource": {

543 "uri": "file:///tmp/report.md", # Claude가 참조할 레이블이지 SDK가 읽는 경로가 아닙니다

544 "mimeType": "text/markdown",

545 "text": "# Report\n...", # 실제 콘텐츠, 인라인

546 },

547 }

548 ]

549 }

550 ```

551</CodeGroup>

552 

553이 블록 모양은 MCP `CallToolResult` 유형에서 나옵니다. 전체 정의는 [MCP 사양](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result)을 참조하세요.

554 

555## 구조화된 데이터 반환

556 

557`structuredContent`는 `content` 배열과 별개인 결과의 선택적 JSON 객체입니다. 이를 사용하여 텍스트 문자열이나 이미지에서 구문 분석하는 대신 Claude가 정확한 필드로 읽을 수 있는 원본 값을 반환합니다.

558 

559`structuredContent`가 설정되면 Claude는 JSON과 `content`의 모든 이미지 또는 리소스 블록을 받습니다. `content`의 텍스트 블록은 구조화된 데이터를 복제한다고 가정하므로 전달되지 않습니다. 아래 예제는 차트를 이미지 블록으로 렌더링하고 동일한 핸들러에서 `structuredContent`의 뒤에 있는 데이터 포인트를 반환합니다.

560 

561```typescript TypeScript theme={null}

562return {

563 content: [

564 {

565 type: "image",

566 data: chartPngBuffer.toString("base64"),

567 mimeType: "image/png"

568 }

569 ],

570 structuredContent: {

571 series: "temperature_2m",

572 unit: "fahrenheit",

573 points: [62.1, 63.4, 65.0, 64.2]

574 }

575};

576```

577 

578<Note>

579 Python `@tool` 데코레이터는 핸들러의 반환 딕셔너리에서 `content` 및 `is_error`만 전달합니다. Python에서 `structuredContent`를 반환하려면 인프로세스 SDK 서버 대신 [독립형 MCP 서버](/ko/agent-sdk/mcp)를 실행합니다.

580</Note>

581 

582## 예제: 단위 변환기

583 

584이 도구는 길이, 온도 및 무게 단위 간에 값을 변환합니다. 사용자는 "100킬로미터를 마일로 변환" 또는 "72°F는 섭씨온도로 몇 도인가"라고 물을 수 있으며, Claude는 요청에서 올바른 단위 유형과 단위를 선택합니다.

585 

586두 가지 패턴을 보여줍니다:

587 

588* **열거형 스키마:** `unit_type`은 고정된 값 집합으로 제한됩니다. TypeScript에서 `z.enum()`을 사용합니다. Python에서 딕셔너리 스키마는 열거형을 지원하지 않으므로 전체 JSON Schema 딕셔너리가 필요합니다.

589* **지원되지 않는 입력 처리:** 변환 쌍을 찾을 수 없으면 핸들러는 `isError: true`를 반환하므로 Claude는 실패를 정상 결과로 취급하는 대신 사용자에게 무엇이 잘못되었는지 알릴 수 있습니다.

590 

591<CodeGroup>

592 ```python Python theme={null}

593 from typing import Any

594 from claude_agent_sdk import tool, create_sdk_mcp_server

595 

596 

597 # TypeScript의 z.enum()은 JSON Schema의 "enum" 제약이 됩니다.

598 # 딕셔너리 스키마는 동등한 것이 없으므로 전체 JSON Schema가 필요합니다.

599 @tool(

600 "convert_units",

601 "Convert a value from one unit to another",

602 {

603 "type": "object",

604 "properties": {

605 "unit_type": {

606 "type": "string",

607 "enum": ["length", "temperature", "weight"],

608 "description": "Category of unit",

609 },

610 "from_unit": {

611 "type": "string",

612 "description": "Unit to convert from, e.g. kilometers, fahrenheit, pounds",

613 },

614 "to_unit": {"type": "string", "description": "Unit to convert to"},

615 "value": {"type": "number", "description": "Value to convert"},

616 },

617 "required": ["unit_type", "from_unit", "to_unit", "value"],

618 },

619 )

620 async def convert_units(args: dict[str, Any]) -> dict[str, Any]:

621 conversions = {

622 "length": {

623 "kilometers_to_miles": lambda v: v * 0.621371,

624 "miles_to_kilometers": lambda v: v * 1.60934,

625 "meters_to_feet": lambda v: v * 3.28084,

626 "feet_to_meters": lambda v: v * 0.3048,

627 },

628 "temperature": {

629 "celsius_to_fahrenheit": lambda v: (v * 9) / 5 + 32,

630 "fahrenheit_to_celsius": lambda v: (v - 32) * 5 / 9,

631 "celsius_to_kelvin": lambda v: v + 273.15,

632 "kelvin_to_celsius": lambda v: v - 273.15,

633 },

634 "weight": {

635 "kilograms_to_pounds": lambda v: v * 2.20462,

636 "pounds_to_kilograms": lambda v: v * 0.453592,

637 "grams_to_ounces": lambda v: v * 0.035274,

638 "ounces_to_grams": lambda v: v * 28.3495,

639 },

640 }

641 

642 key = f"{args['from_unit']}_to_{args['to_unit']}"

643 fn = conversions.get(args["unit_type"], {}).get(key)

644 

645 if not fn:

646 return {

647 "content": [

648 {

649 "type": "text",

650 "text": f"Unsupported conversion: {args['from_unit']} to {args['to_unit']}",

651 }

652 ],

653 "is_error": True,

654 }

655 

656 result = fn(args["value"])

657 return {

658 "content": [

659 {

660 "type": "text",

661 "text": f"{args['value']} {args['from_unit']} = {result:.4f} {args['to_unit']}",

662 }

663 ]

664 }

665 

666 

667 converter_server = create_sdk_mcp_server(

668 name="converter",

669 version="1.0.0",

670 tools=[convert_units],

671 )

672 ```

673 

674 ```typescript TypeScript theme={null}

675 import { tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

676 import { z } from "zod";

677 

678 const convert = tool(

679 "convert_units",

680 "Convert a value from one unit to another",

681 {

682 unit_type: z.enum(["length", "temperature", "weight"]).describe("Category of unit"),

683 from_unit: z

684 .string()

685 .describe("Unit to convert from, e.g. kilometers, fahrenheit, pounds"),

686 to_unit: z.string().describe("Unit to convert to"),

687 value: z.number().describe("Value to convert")

688 },

689 async (args) => {

690 type Conversions = Record<string, Record<string, (v: number) => number>>;

691 

692 const conversions: Conversions = {

693 length: {

694 kilometers_to_miles: (v) => v * 0.621371,

695 miles_to_kilometers: (v) => v * 1.60934,

696 meters_to_feet: (v) => v * 3.28084,

697 feet_to_meters: (v) => v * 0.3048

698 },

699 temperature: {

700 celsius_to_fahrenheit: (v) => (v * 9) / 5 + 32,

701 fahrenheit_to_celsius: (v) => ((v - 32) * 5) / 9,

702 celsius_to_kelvin: (v) => v + 273.15,

703 kelvin_to_celsius: (v) => v - 273.15

704 },

705 weight: {

706 kilograms_to_pounds: (v) => v * 2.20462,

707 pounds_to_kilograms: (v) => v * 0.453592,

708 grams_to_ounces: (v) => v * 0.035274,

709 ounces_to_grams: (v) => v * 28.3495

710 }

711 };

712 

713 const key = `${args.from_unit}_to_${args.to_unit}`;

714 const fn = conversions[args.unit_type]?.[key];

715 

716 if (!fn) {

717 return {

718 content: [

719 {

720 type: "text",

721 text: `Unsupported conversion: ${args.from_unit} to ${args.to_unit}`

722 }

723 ],

724 isError: true

725 };

726 }

727 

728 const result = fn(args.value);

729 return {

730 content: [

731 {

732 type: "text",

733 text: `${args.value} ${args.from_unit} = ${result.toFixed(4)} ${args.to_unit}`

734 }

735 ]

736 };

737 }

738 );

739 

740 const converterServer = createSdkMcpServer({

741 name: "converter",

742 version: "1.0.0",

743 tools: [convert]

744 });

745 ```

746</CodeGroup>

747 

748서버가 정의되면 날씨 예제와 동일한 방식으로 `query`에 전달합니다. 이 예제는 루프에서 세 가지 다른 프롬프트를 보내 동일한 도구가 다양한 단위 유형을 처리하는 것을 보여줍니다. 각 응답에 대해 `AssistantMessage` 객체(Claude가 해당 턴 중에 수행한 도구 호출을 포함)를 검사하고 각 `ToolUseBlock`을 인쇄한 후 최종 `ResultMessage` 텍스트를 인쇄합니다. 이를 통해 Claude가 도구를 사용하는 시기와 자신의 지식에서 답변하는 시기를 볼 수 있습니다.

749 

750<CodeGroup>

751 ```python Python theme={null}

752 import asyncio

753 from claude_agent_sdk import (

754 query,

755 ClaudeAgentOptions,

756 ResultMessage,

757 AssistantMessage,

758 ToolUseBlock,

759 )

760 

761 

762 async def main():

763 options = ClaudeAgentOptions(

764 mcp_servers={"converter": converter_server},

765 allowed_tools=["mcp__converter__convert_units"],

766 )

767 

768 prompts = [

769 "Convert 100 kilometers to miles.",

770 "What is 72°F in Celsius?",

771 "How many pounds is 5 kilograms?",

772 ]

773 

774 for prompt in prompts:

775 async for message in query(prompt=prompt, options=options):

776 if isinstance(message, AssistantMessage):

777 for block in message.content:

778 if isinstance(block, ToolUseBlock):

779 print(f"[tool call] {block.name}({block.input})")

780 elif isinstance(message, ResultMessage) and message.subtype == "success":

781 print(f"Q: {prompt}\nA: {message.result}\n")

782 

783 

784 asyncio.run(main())

785 ```

786 

787 ```typescript TypeScript theme={null}

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

789 

790 const prompts = [

791 "Convert 100 kilometers to miles.",

792 "What is 72°F in Celsius?",

793 "How many pounds is 5 kilograms?"

794 ];

795 

796 for (const prompt of prompts) {

797 for await (const message of query({

798 prompt,

799 options: {

800 mcpServers: { converter: converterServer },

801 allowedTools: ["mcp__converter__convert_units"]

802 }

803 })) {

804 if (message.type === "assistant") {

805 for (const block of message.message.content) {

806 if (block.type === "tool_use") {

807 console.log(`[tool call] ${block.name}`, block.input);

808 }

809 }

810 } else if (message.type === "result" && message.subtype === "success") {

811 console.log(`Q: ${prompt}\nA: ${message.result}\n`);

812 }

813 }

814 }

815 ```

816</CodeGroup>

817 

818## 다음 단계

819 

820사용자 정의 도구는 비동기 함수를 표준 인터페이스로 래핑합니다. 동일한 서버에서 이 페이지의 패턴을 혼합할 수 있습니다: 단일 서버는 데이터베이스 도구, API 게이트웨이 도구 및 이미지 렌더러를 함께 보유할 수 있습니다.

821 

822여기서:

823 

824* 서버가 수십 개의 도구로 증가하면 [도구 검색](/ko/agent-sdk/tool-search)을 참조하여 Claude가 필요할 때까지 로드를 연기합니다.

825* 자신의 도구를 빌드하는 대신 외부 MCP 서버(파일 시스템, GitHub, Slack)에 연결하려면 [MCP 서버 연결](/ko/agent-sdk/mcp)을 참조하세요.

826* 어떤 도구가 자동으로 실행되는지 대 승인이 필요한지 제어하려면 [권한 구성](/ko/agent-sdk/permissions)을 참조하세요.

827 

828## 관련 문서

829 

830* [TypeScript SDK 참조](/ko/agent-sdk/typescript)

831* [Python SDK 참조](/ko/agent-sdk/python)

832* [MCP 문서](https://modelcontextprotocol.io)

833* [SDK 개요](/ko/agent-sdk/overview)

Details

757 allowed_tools: list[str] = field(default_factory=list)757 allowed_tools: list[str] = field(default_factory=list)

758 system_prompt: str | SystemPromptPreset | None = None758 system_prompt: str | SystemPromptPreset | None = None

759 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)759 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)

760 strict_mcp_config: bool = False

760 permission_mode: PermissionMode | None = None761 permission_mode: PermissionMode | None = None

761 continue_conversation: bool = False762 continue_conversation: bool = False

762 resume: str | None = None763 resume: str | None = None


781 hooks: dict[HookEvent, list[HookMatcher]] | None = None782 hooks: dict[HookEvent, list[HookMatcher]] | None = None

782 user: str | None = None783 user: str | None = None

783 include_partial_messages: bool = False784 include_partial_messages: bool = False

785 include_hook_events: bool = False

784 fork_session: bool = False786 fork_session: bool = False

785 agents: dict[str, AgentDefinition] | None = None787 agents: dict[str, AgentDefinition] | None = None

786 setting_sources: list[SettingSource] | None = None788 setting_sources: list[SettingSource] | None = None


788 plugins: list[SdkPluginConfig] = field(default_factory=list)790 plugins: list[SdkPluginConfig] = field(default_factory=list)

789 max_thinking_tokens: int | None = None # Deprecated: use thinking instead791 max_thinking_tokens: int | None = None # Deprecated: use thinking instead

790 thinking: ThinkingConfig | None = None792 thinking: ThinkingConfig | None = None

791 effort: Literal["low", "medium", "high", "max"] | None = None793 effort: Literal["low", "medium", "high", "xhigh", "max"] | None = None

792 enable_file_checkpointing: bool = False794 enable_file_checkpointing: bool = False

793 session_store: SessionStore | None = None795 session_store: SessionStore | None = None

794 session_store_flush: SessionStoreFlushMode = "batched"796 session_store_flush: SessionStoreFlushMode = "batched"


800| `allowed_tools` | `list[str]` | `[]` | 프롬프트 없이 자동 승인할 도구. 이것은 Claude를 이 도구로만 제한하지 않습니다. 나열되지 않은 도구는 `permission_mode` 및 `can_use_tool`로 넘어갑니다. `disallowed_tools`를 사용하여 도구를 차단합니다. [권한](/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |802| `allowed_tools` | `list[str]` | `[]` | 프롬프트 없이 자동 승인할 도구. 이것은 Claude를 이 도구로만 제한하지 않습니다. 나열되지 않은 도구는 `permission_mode` 및 `can_use_tool`로 넘어갑니다. `disallowed_tools`를 사용하여 도구를 차단합니다. [권한](/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |

801| `system_prompt` | `str \| SystemPromptPreset \| None` | `None` | 시스템 프롬프트 구성. 사용자 정의 프롬프트의 경우 문자열을 전달하거나, Claude Code의 시스템 프롬프트를 위해 `{"type": "preset", "preset": "claude_code"}` 사용. 프리셋을 확장하려면 `"append"` 추가 |803| `system_prompt` | `str \| SystemPromptPreset \| None` | `None` | 시스템 프롬프트 구성. 사용자 정의 프롬프트의 경우 문자열을 전달하거나, Claude Code의 시스템 프롬프트를 위해 `{"type": "preset", "preset": "claude_code"}` 사용. 프리셋을 확장하려면 `"append"` 추가 |

802| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 서버 구성 또는 구성 파일 경로 |804| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 서버 구성 또는 구성 파일 경로 |

805| `strict_mcp_config` | `bool` | `False` | `True`일 때, `mcp_servers`에 전달된 서버만 사용하고 프로젝트 `.mcp.json`, 사용자 설정 및 플러그인 제공 MCP 서버를 무시합니다. CLI `--strict-mcp-config` 플래그에 매핑됩니다 |

803| `permission_mode` | `PermissionMode \| None` | `None` | 도구 사용을 위한 권한 모드 |806| `permission_mode` | `PermissionMode \| None` | `None` | 도구 사용을 위한 권한 모드 |

804| `continue_conversation` | `bool` | `False` | 가장 최신 대화 계속하기 |807| `continue_conversation` | `bool` | `False` | 가장 최신 대화 계속하기 |

805| `resume` | `str \| None` | `None` | 재개할 세션 ID |808| `resume` | `str \| None` | `None` | 재개할 세션 ID |


816| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 실행 파일의 사용자 정의 경로 |819| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 실행 파일의 사용자 정의 경로 |

817| `settings` | `str \| None` | `None` | 설정 파일 경로 |820| `settings` | `str \| None` | `None` | 설정 파일 경로 |

818| `add_dirs` | `list[str \| Path]` | `[]` | Claude가 접근할 수 있는 추가 디렉토리 |821| `add_dirs` | `list[str \| Path]` | `[]` | Claude가 접근할 수 있는 추가 디렉토리 |

819| `env` | `dict[str, str]` | `{}` | 상속된 프로세스 환경 위에 병합된 환경 변수. 기본 CLI가 읽는 변수는 [환경 변수](/ko/env-vars) 참조 |822| `env` | `dict[str, str]` | `{}` | 상속된 프로세스 환경 위에 병합된 환경 변수. 기본 CLI가 읽는 변수는 [환경 변수](/ko/env-vars) 참조. 시간 초과 관련 변수는 [느리거나 정지된 API 응답 처리](#handle-slow-or-stalled-api-responses) 참조 |

820| `extra_args` | `dict[str, str \| None]` | `{}` | CLI에 직접 전달할 추가 CLI 인수 |823| `extra_args` | `dict[str, str \| None]` | `{}` | CLI에 직접 전달할 추가 CLI 인수 |

821| `max_buffer_size` | `int \| None` | `None` | CLI stdout 버퍼링 시 최대 바이트 |824| `max_buffer_size` | `int \| None` | `None` | CLI stdout 버퍼링 시 최대 바이트 |

822| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - 디버그 출력을 위한 파일 유사 객체. 대신 `stderr` 콜백 사용 |825| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - 디버그 출력을 위한 파일 유사 객체. 대신 `stderr` 콜백 사용 |


825| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 이벤트 가로채기를 위한 hook 구성 |828| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 이벤트 가로채기를 위한 hook 구성 |

826| `user` | `str \| None` | `None` | 사용자 식별자 |829| `user` | `str \| None` | `None` | 사용자 식별자 |

827| `include_partial_messages` | `bool` | `False` | 부분 메시지 스트리밍 이벤트 포함. 활성화되면 [`StreamEvent`](#streamevent) 메시지가 생성됩니다 |830| `include_partial_messages` | `bool` | `False` | 부분 메시지 스트리밍 이벤트 포함. 활성화되면 [`StreamEvent`](#streamevent) 메시지가 생성됩니다 |

831| `include_hook_events` | `bool` | `False` | 메시지 스트림에 hook 라이프사이클 이벤트를 `HookEventMessage` 객체로 포함 |

828| `fork_session` | `bool` | `False` | `resume`으로 재개할 때, 원본 세션을 계속하는 대신 새 세션 ID로 포크합니다 |832| `fork_session` | `bool` | `False` | `resume`으로 재개할 때, 원본 세션을 계속하는 대신 새 세션 ID로 포크합니다 |

829| `agents` | `dict[str, AgentDefinition] \| None` | `None` | 프로그래밍 방식으로 정의된 서브에이전트 |833| `agents` | `dict[str, AgentDefinition] \| None` | `None` | 프로그래밍 방식으로 정의된 서브에이전트 |

830| `plugins` | `list[SdkPluginConfig]` | `[]` | 로컬 경로에서 사용자 정의 플러그인 로드. 자세한 내용은 [플러그인](/ko/agent-sdk/plugins) 참조 |834| `plugins` | `list[SdkPluginConfig]` | `[]` | 로컬 경로에서 사용자 정의 플러그인 로드. 자세한 내용은 [플러그인](/ko/agent-sdk/plugins) 참조 |


832| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI 기본값: 모든 소스) | 로드할 파일 시스템 설정을 제어합니다. 사용자, 프로젝트 및 로컬 설정을 비활성화하려면 `[]`를 전달합니다. 관리형 정책 설정은 어쨌든 로드됩니다. [Claude Code 기능 사용](/ko/agent-sdk/claude-code-features#what-settingsources-does-not-control)에서 이것이 제어하지 않는 입력 및 비활성화 방법 참조 |836| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI 기본값: 모든 소스) | 로드할 파일 시스템 설정을 제어합니다. 사용자, 프로젝트 및 로컬 설정을 비활성화하려면 `[]`를 전달합니다. 관리형 정책 설정은 어쨌든 로드됩니다. [Claude Code 기능 사용](/ko/agent-sdk/claude-code-features#what-settingsources-does-not-control)에서 이것이 제어하지 않는 입력 및 비활성화 방법 참조 |

833| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - 생각 블록의 최대 토큰. 대신 `thinking` 사용 |837| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - 생각 블록의 최대 토큰. 대신 `thinking` 사용 |

834| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | 확장된 생각 동작을 제어합니다. `max_thinking_tokens`보다 우선합니다 |838| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | 확장된 생각 동작을 제어합니다. `max_thinking_tokens`보다 우선합니다 |

835| `effort` | `Literal["low", "medium", "high", "max"] \| None` | `None` | 생각 깊이를 위한 노력 수준 |839| `effort` | `Literal["low", "medium", "high", "xhigh", "max"] \| None` | `None` | 생각 깊이를 위한 노력 수준 |

836| `session_store` | [`SessionStore`](/ko/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | 세션 기록을 외부 백엔드로 미러링하여 모든 호스트가 이를 재개할 수 있도록 합니다. [외부 저장소에 세션 유지](/ko/agent-sdk/session-storage) 참조 |840| `session_store` | [`SessionStore`](/ko/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | 세션 기록을 외부 백엔드로 미러링하여 모든 호스트가 이를 재개할 수 있도록 합니다. [외부 저장소에 세션 유지](/ko/agent-sdk/session-storage) 참조 |

837| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | `session_store`에 미러링된 기록 항목을 플러시할 시기. `"batched"`는 턴당 한 번 또는 버퍼가 가득 찰 때 플러시합니다. `"eager"`는 모든 프레임 후에 백그라운드 플러시를 트리거합니다. `session_store`가 `None`일 때 무시됩니다 |841| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | `session_store`에 미러링된 기록 항목을 플러시할 시기. `"batched"`는 턴당 한 번 또는 버퍼가 가득 찰 때 플러시합니다. `"eager"`는 모든 프레임 후에 백그라운드 플러시를 트리거합니다. `session_store`가 `None`일 때 무시됩니다 |

838 842 

843#### 느리거나 정지된 API 응답 처리

844 

845CLI 서브프로세스는 API 시간 초과 및 정지 감지를 제어하는 여러 환경 변수를 읽습니다. `ClaudeAgentOptions.env`를 통해 전달합니다:

846 

847```python theme={null}

848options = ClaudeAgentOptions(

849 env={

850 "API_TIMEOUT_MS": "120000",

851 "CLAUDE_CODE_MAX_RETRIES": "2",

852 "CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS": "120000",

853 },

854)

855```

856 

857* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 시간 초과 (밀리초). 기본값 `600000`. 주 루프 및 모든 서브에이전트에 적용됩니다.

858* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도. 기본값 `10`. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로, 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다.

859* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트의 정지 감시견. 기본값 `600000`. 각 스트림 이벤트에서 재설정됩니다. 정지 시 서브에이전트를 중단하고, 작업을 실패로 표시하고, 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.

860* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 제한됩니다. 중단된 요청은 정상 재시도 경로를 거칩니다.

861 

839### `OutputFormat`862### `OutputFormat`

840 863 

841구조화된 출력 검증을 위한 구성입니다. 이를 `ClaudeAgentOptions`의 `output_format` 필드에 `dict`로 전달합니다.864구조화된 출력 검증을 위한 구성입니다. 이를 `ClaudeAgentOptions`의 `output_format` 필드에 `dict`로 전달합니다:

842 865 

843```python theme={null}866```python theme={null}

844# output_format에 대한 예상 dict 형태867# output_format에 대한 예상 dict 형태


895**파일 시스템 설정 비활성화:**918**파일 시스템 설정 비활성화:**

896 919 

897```python theme={null}920```python theme={null}

898# Do not load user, project, or local settings from disk921# 디스크에서 사용자, 프로젝트 또는 로컬 설정을 로드하지 않습니다

899from claude_agent_sdk import query, ClaudeAgentOptions922from claude_agent_sdk import query, ClaudeAgentOptions

900 923 

901async for message in query(924async for message in query(


928**특정 설정 소스만 로드:**951**특정 설정 소스만 로드:**

929 952 

930```python theme={null}953```python theme={null}

931# Load only project settings, ignore user and local954# 프로젝트 설정만 로드, 사용자 로컬 무시

932async for message in query(955async for message in query(

933 prompt="Run CI checks",956 prompt="Run CI checks",

934 options=ClaudeAgentOptions(957 options=ClaudeAgentOptions(


941**테스트 및 CI 환경:**964**테스트 및 CI 환경:**

942 965 

943```python theme={null}966```python theme={null}

944# Ensure consistent behavior in CI by excluding local settings967# 로컬 설정을 제외하여 CI에서 일관된 동작 보장

945async for message in query(968async for message in query(

946 prompt="Run tests",969 prompt="Run tests",

947 options=ClaudeAgentOptions(970 options=ClaudeAgentOptions(


955**SDK 전용 애플리케이션:**978**SDK 전용 애플리케이션:**

956 979 

957```python theme={null}980```python theme={null}

958# Define everything programmatically.981# 모든 것을 프로그래밍 방식으로 정의합니다.

959# Pass [] to opt out of filesystem setting sources.982# 파일 시스템 설정 소스를 거부하려면 []를 전달합니다.

960async for message in query(983async for message in query(

961 prompt="Review this PR",984 prompt="Review this PR",

962 options=ClaudeAgentOptions(985 options=ClaudeAgentOptions(


972**CLAUDE.md 프로젝트 지침 로드:**995**CLAUDE.md 프로젝트 지침 로드:**

973 996 

974```python theme={null}997```python theme={null}

975# Load project settings to include CLAUDE.md files998# 프로젝트 설정을 로드하여 CLAUDE.md 파일 포함

976async for message in query(999async for message in query(

977 prompt="Add a new feature following project conventions",1000 prompt="Add a new feature following project conventions",

978 options=ClaudeAgentOptions(1001 options=ClaudeAgentOptions(


1015 initialPrompt: str | None = None1038 initialPrompt: str | None = None

1016 maxTurns: int | None = None1039 maxTurns: int | None = None

1017 background: bool | None = None1040 background: bool | None = None

1018 effort: Literal["low", "medium", "high", "max"] | int | None = None1041 effort: Literal["low", "medium", "high", "xhigh", "max"] | int | None = None

1019 permissionMode: PermissionMode | None = None1042 permissionMode: PermissionMode | None = None

1020```1043```

1021 1044 


1080class ToolPermissionContext:1103class ToolPermissionContext:

1081 signal: Any | None = None # Future: abort signal support1104 signal: Any | None = None # Future: abort signal support

1082 suggestions: list[PermissionUpdate] = field(default_factory=list)1105 suggestions: list[PermissionUpdate] = field(default_factory=list)

1106 blocked_path: str | None = None

1107 decision_reason: str | None = None

1108 title: str | None = None

1109 display_name: str | None = None

1110 description: str | None = None

1083```1111```

1084 1112 

1085| 필드 | 타입 | 설명 |1113| 필드 | 타입 | 설명 |

1086| :------------ | :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |1114| :---------------- | :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |

1087| `signal` | `Any \| None` | 향후 중단 신호 지원을 위해 예약됨 |1115| `signal` | `Any \| None` | 향후 중단 신호 지원을 위해 예약됨 |

1088| `suggestions` | `list[PermissionUpdate]` | CLI의 권한 업데이트 제안. Bash 프롬프트는 `localSettings` 대상이 있는 제안을 포함하므로, `updated_permissions`에서 반환하면 규칙을 `.claude/settings.local.json`에 쓰고 세션 간에 유지합니다. |1116| `suggestions` | `list[PermissionUpdate]` | CLI의 권한 업데이트 제안. Bash 프롬프트는 `localSettings` 대상이 있는 제안을 포함하므로, `updated_permissions`에서 반환하면 규칙을 `.claude/settings.local.json`에 쓰고 세션 간에 유지합니다. |

1117| `blocked_path` | `str \| None` | 권한 요청을 트리거한 파일 경로 (해당하는 경우). 예를 들어, Bash 명령이 허용된 디렉토리 외부의 경로에 접근하려고 할 때 |

1118| `decision_reason` | `str \| None` | 이 권한 요청이 트리거된 이유. PreToolUse hook이 `"ask"`를 반환했을 때 hook의 `permissionDecisionReason`에서 전달됨 |

1119| `title` | `str \| None` | 전체 권한 프롬프트 문장 (예: `Claude wants to read foo.txt`). 존재할 때 기본 프롬프트 텍스트로 사용 |

1120| `display_name` | `str \| None` | 도구 작업의 짧은 명사구 (예: `Read file`), 버튼 레이블에 적합 |

1121| `description` | `str \| None` | 권한 UI를 위한 인간이 읽을 수 있는 부제목 |

1089 1122 

1090### `PermissionResult`1123### `PermissionResult`

1091 1124 


1187 1220 

1188### `ThinkingConfig`1221### `ThinkingConfig`

1189 1222 

1190확장된 생각 동작을 제어합니다. 세 가지 구성의 합집합입니다.1223확장된 생각 동작을 제어합니다. 세 가지 구성의 합집합입니다:

1191 1224 

1192```python theme={null}1225```python theme={null}

1193class ThinkingConfigAdaptive(TypedDict):1226class ThinkingConfigAdaptive(TypedDict):


1466 is_error: bool1499 is_error: bool

1467 num_turns: int1500 num_turns: int

1468 session_id: str1501 session_id: str

1502 stop_reason: str | None = None

1469 total_cost_usd: float | None = None1503 total_cost_usd: float | None = None

1470 usage: dict[str, Any] | None = None1504 usage: dict[str, Any] | None = None

1471 result: str | None = None1505 result: str | None = None

1472 stop_reason: str | None = None

1473 structured_output: Any = None1506 structured_output: Any = None

1474 model_usage: dict[str, Any] | None = None1507 model_usage: dict[str, Any] | None = None

1508 permission_denials: list[Any] | None = None

1509 deferred_tool_use: DeferredToolUse | None = None

1510 errors: list[str] | None = None

1511 api_error_status: int | None = None

1512 uuid: str | None = None

1475```1513```

1476 1514 

1477`usage` dict는 존재할 때 다음 키를 포함합니다.1515`usage` dict는 존재할 때 다음 키를 포함합니다:

1478 1516 

1479| 키 | 타입 | 설명 |1517| 키 | 타입 | 설명 |

1480| ----------------------------- | ----- | -------------------------- |1518| ----------------------------- | ----- | -------------------------- |


1483| `cache_creation_input_tokens` | `int` | 새 캐시 항목을 생성하는 데 사용된 토큰입니다. |1521| `cache_creation_input_tokens` | `int` | 새 캐시 항목을 생성하는 데 사용된 토큰입니다. |

1484| `cache_read_input_tokens` | `int` | 기존 캐시 항목에서 읽은 토큰입니다. |1522| `cache_read_input_tokens` | `int` | 기존 캐시 항목에서 읽은 토큰입니다. |

1485 1523 

1486`model_usage` dict는 모델 이름을 모델별 사용량에 매핑합니다. 내부 dict 키는 camelCase를 사용합니다. 기본 CLI 프로세스에서 수정되지 않은 상태로 전달되므로 TypeScript [`ModelUsage`](/ko/agent-sdk/typescript#modelusage) 타입과 일치합니다.1524`model_usage` dict는 모델 이름을 모델별 사용량에 매핑합니다. 내부 dict 키는 camelCase를 사용합니다. 기본 CLI 프로세스에서 수정되지 않은 상태로 전달되므로 TypeScript [`ModelUsage`](/ko/agent-sdk/typescript#modelusage) 타입과 일치합니다:

1487 1525 

1488| 키 | 타입 | 설명 |1526| 키 | 타입 | 설명 |

1489| -------------------------- | ------- | ---------------------------------------------------------------------------------------------- |1527| -------------------------- | ------- | ---------------------------------------------------------------------------------------------- |


2128```python theme={null}2166```python theme={null}

2129class PreToolUseHookSpecificOutput(TypedDict):2167class PreToolUseHookSpecificOutput(TypedDict):

2130 hookEventName: Literal["PreToolUse"]2168 hookEventName: Literal["PreToolUse"]

2131 permissionDecision: NotRequired[Literal["allow", "deny", "ask"]]2169 permissionDecision: NotRequired[Literal["allow", "deny", "ask", "defer"]]

2132 permissionDecisionReason: NotRequired[str]2170 permissionDecisionReason: NotRequired[str]

2133 updatedInput: NotRequired[dict[str, Any]]2171 updatedInput: NotRequired[dict[str, Any]]

2134 additionalContext: NotRequired[str]2172 additionalContext: NotRequired[str]


2137class PostToolUseHookSpecificOutput(TypedDict):2175class PostToolUseHookSpecificOutput(TypedDict):

2138 hookEventName: Literal["PostToolUse"]2176 hookEventName: Literal["PostToolUse"]

2139 additionalContext: NotRequired[str]2177 additionalContext: NotRequired[str]

2178 updatedToolOutput: NotRequired[Any]

2140 updatedMCPToolOutput: NotRequired[Any]2179 updatedMCPToolOutput: NotRequired[Any]

2141 2180 

2142 2181 

Details

8 8 

9<script src="/components/typescript-sdk-type-links.js" defer />9<script src="/components/typescript-sdk-type-links.js" defer />

10 10 

11<Note>

12 **새로운 V2 인터페이스 시도 (미리보기):** `send()` 및 `stream()` 패턴을 사용하는 간소화된 인터페이스가 이제 사용 가능하며, 다중 턴 대화를 더 쉽게 만듭니다. [TypeScript V2 미리보기에 대해 자세히 알아보기](/ko/agent-sdk/typescript-v2-preview)

13</Note>

14 

15## 설치11## 설치

16 12 

17```bash theme={null}13```bash theme={null}


360| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 프로그래밍 방식으로 샌드박스 동작을 구성합니다. [샌드박스 설정](#sandboxsettings) 참조 |356| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | 프로그래밍 방식으로 샌드박스 동작을 구성합니다. [샌드박스 설정](#sandboxsettings) 참조 |

361| `sessionId` | `string` | 자동 생성 | 자동 생성하는 대신 세션에 특정 UUID를 사용합니다 |357| `sessionId` | `string` | 자동 생성 | 자동 생성하는 대신 세션에 특정 UUID를 사용합니다 |

362| `sessionStore` | [`SessionStore`](/ko/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 세션 대화를 외부 백엔드로 미러링하여 모든 호스트가 이를 재개할 수 있습니다. [세션을 외부 저장소에 유지](/ko/agent-sdk/session-storage) 참조 |358| `sessionStore` | [`SessionStore`](/ko/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 세션 대화를 외부 백엔드로 미러링하여 모든 호스트가 이를 재개할 수 있습니다. [세션을 외부 저장소에 유지](/ko/agent-sdk/session-storage) 참조 |

359| `settings` | `string \| Settings` | `undefined` | 인라인 [설정](/ko/settings) 객체 또는 설정 파일의 경로입니다. [우선순위 순서](/ko/settings#settings-precedence)에서 플래그 설정 계층을 채웁니다. [`applyFlagSettings()`](#applyflagsettings)로 런타임에 변경합니다 |

363| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 기본값 (모든 소스) | 로드할 파일 시스템 설정을 제어합니다. 사용자, 프로젝트 및 로컬 설정을 비활성화하려면 `[]`을 전달합니다. 관리되는 정책 설정은 어쨌든 로드됩니다. [Claude Code 기능 사용](/ko/agent-sdk/claude-code-features#what-settingsources-does-not-control) 참조 |360| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 기본값 (모든 소스) | 로드할 파일 시스템 설정을 제어합니다. 사용자, 프로젝트 및 로컬 설정을 비활성화하려면 `[]`을 전달합니다. 관리되는 정책 설정은 어쨌든 로드됩니다. [Claude Code 기능 사용](/ko/agent-sdk/claude-code-features#what-settingsources-does-not-control) 참조 |

364| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code 프로세스를 생성하는 사용자 정의 함수입니다. VM, 컨테이너 또는 원격 환경에서 Claude Code를 실행하는 데 사용합니다 |361| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code 프로세스를 생성하는 사용자 정의 함수입니다. VM, 컨테이너 또는 원격 환경에서 Claude Code를 실행하는 데 사용합니다 |

365| `stderr` | `(data: string) => void` | `undefined` | stderr 출력에 대한 콜백 |362| `stderr` | `(data: string) => void` | `undefined` | stderr 출력에 대한 콜백 |


369| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 기본 제공 도구 동작의 구성입니다. [`ToolConfig`](#toolconfig) 참조 |366| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 기본 제공 도구 동작의 구성입니다. [`ToolConfig`](#toolconfig) 참조 |

370| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 도구 구성입니다. 도구 이름의 배열을 전달하거나 프리셋을 사용하여 Claude Code의 기본 도구를 가져옵니다 |367| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 도구 구성입니다. 도구 이름의 배열을 전달하거나 프리셋을 사용하여 Claude Code의 기본 도구를 가져옵니다 |

371 368 

369#### 느린 또는 정지된 API 응답 처리

370 

371CLI 서브프로세스는 API 타임아웃 및 정지 감지를 제어하는 여러 환경 변수를 읽습니다. `env` 옵션을 통해 전달합니다:

372 

373```typescript theme={null}

374const result = query({

375 prompt: "Analyze this code",

376 options: {

377 env: {

378 ...process.env,

379 API_TIMEOUT_MS: "120000",

380 CLAUDE_CODE_MAX_RETRIES: "2",

381 CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS: "120000",

382 },

383 },

384});

385```

386 

387* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 타임아웃 (밀리초 단위). 기본값 `600000`. 메인 루프 및 모든 서브에이전트에 적용됩니다.

388* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도 횟수. 기본값 `10`. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다.

389* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트에 대한 정지 감시견입니다. 기본값 `600000`. 각 스트림 이벤트에서 재설정되며, 정지 시 서브에이전트를 중단하고 작업을 실패로 표시하며 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.

390* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` 및 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 고정됩니다. 중단된 요청은 일반 재시도 경로를 거칩니다.

391 

372### `Query` 객체392### `Query` 객체

373 393 

374`query()` 함수에서 반환된 인터페이스입니다.394`query()` 함수에서 반환된 인터페이스입니다.


383 setPermissionMode(mode: PermissionMode): Promise<void>;403 setPermissionMode(mode: PermissionMode): Promise<void>;

384 setModel(model?: string): Promise<void>;404 setModel(model?: string): Promise<void>;

385 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;405 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

406 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;

386 initializationResult(): Promise<SDKControlInitializeResponse>;407 initializationResult(): Promise<SDKControlInitializeResponse>;

387 supportedCommands(): Promise<SlashCommand[]>;408 supportedCommands(): Promise<SlashCommand[]>;

388 supportedModels(): Promise<ModelInfo[]>;409 supportedModels(): Promise<ModelInfo[]>;


407| `setPermissionMode()` | 권한 모드를 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |428| `setPermissionMode()` | 권한 모드를 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |

408| `setModel()` | 모델을 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |429| `setModel()` | 모델을 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |

409| `setMaxThinkingTokens()` | *더 이상 사용되지 않음:* 대신 `thinking` 옵션을 사용합니다. 최대 사고 토큰을 변경합니다 |430| `setMaxThinkingTokens()` | *더 이상 사용되지 않음:* 대신 `thinking` 옵션을 사용합니다. 최대 사고 토큰을 변경합니다 |

431| `applyFlagSettings(settings)` | 런타임에 세션의 플래그 설정 계층으로 설정을 병합합니다 (스트리밍 입력 모드에서만 사용 가능). [`applyFlagSettings()`](#applyflagsettings) 참조 |

410| `initializationResult()` | 지원되는 명령, 모델, 계정 정보 및 출력 스타일 구성을 포함한 전체 초기화 결과를 반환합니다 |432| `initializationResult()` | 지원되는 명령, 모델, 계정 정보 및 출력 스타일 구성을 포함한 전체 초기화 결과를 반환합니다 |

411| `supportedCommands()` | 사용 가능한 슬래시 명령을 반환합니다 |433| `supportedCommands()` | 사용 가능한 슬래시 명령을 반환합니다 |

412| `supportedModels()` | 표시 정보를 포함한 사용 가능한 모델을 반환합니다 |434| `supportedModels()` | 표시 정보를 포함한 사용 가능한 모델을 반환합니다 |


420| `stopTask(taskId)` | ID로 실행 중인 백그라운드 작업을 중지합니다 |442| `stopTask(taskId)` | ID로 실행 중인 백그라운드 작업을 중지합니다 |

421| `close()` | 쿼리를 닫고 기본 프로세스를 종료합니다. 쿼리를 강제로 종료하고 모든 리소스를 정리합니다 |443| `close()` | 쿼리를 닫고 기본 프로세스를 종료합니다. 쿼리를 강제로 종료하고 모든 리소스를 정리합니다 |

422 444 

445#### `applyFlagSettings()`

446 

447실행 중인 세션에서 [설정](/ko/settings)을 변경하고 쿼리를 다시 시작하지 않습니다. 전용 설정자가 없는 설정이 변경되어야 할 때 사용합니다. 예를 들어 에이전트가 신뢰할 수 없는 입력을 읽은 후 `permissions`를 강화합니다. `setModel()` 및 `setPermissionMode()`는 이 두 키에 대한 전용 설정자입니다. `applyFlagSettings()`는 설정 키의 모든 부분 집합을 허용하는 일반 형식이며, 여기에 `model`을 전달하는 것은 `setModel()`과 동일하게 작동합니다.

448 

449값은 플래그 설정 계층에 기록되며, 이는 `query()`의 인라인 `settings` 옵션이 시작 시 채우는 계층과 동일합니다. 플래그 설정은 [설정 우선순위 순서](/ko/settings#settings-precedence)의 상단 근처에 있습니다: 사용자, 프로젝트 및 로컬 설정을 재정의하며, 관리되는 정책 설정만 이를 재정의할 수 있습니다. 이는 [우선순위 섹션](#settings-precedence)이 프로그래밍 방식의 옵션이라고 부르는 것과 동일한 계층입니다.

450 

451연속 호출은 최상위 키를 얕게 병합합니다. `{ permissions: {...} }`를 포함한 두 번째 호출은 이전 호출의 전체 `permissions` 객체를 대체하며 깊게 병합하지 않습니다. 플래그 계층에서 키를 지우고 낮은 우선순위 소스로 돌아가려면 해당 키에 `null`을 전달합니다. `undefined`를 전달하면 JSON 직렬화가 이를 삭제하므로 효과가 없습니다.

452 

453스트리밍 입력 모드에서만 사용 가능하며, 이는 `setModel()` 및 `setPermissionMode()`와 동일한 제약입니다.

454 

455아래 예제는 세션 중간에 활성 모델을 전환한 다음 재정의를 지우므로 모델이 사용자 또는 프로젝트 설정이 지정하는 것으로 돌아갑니다.

456 

457```typescript theme={null}

458const q = query({ prompt: messageStream });

459 

460// 세션의 나머지 부분에 대해 모델을 재정의합니다

461await q.applyFlagSettings({ model: "claude-opus-4-6" });

462 

463// 나중에: 재정의를 지우고 낮은 우선순위 설정으로 돌아갑니다

464await q.applyFlagSettings({ model: null });

465```

466 

467<Note>

468 `applyFlagSettings()`는 TypeScript 전용입니다. Python SDK는 동등한 메서드를 노출하지 않습니다.

469</Note>

470 

423### `WarmQuery`471### `WarmQuery`

424 472 

425[`startup()`](#startup)에서 반환된 핸들입니다. 서브프로세스가 이미 생성되고 초기화되었으므로 이 핸들에서 `query()`를 호출하면 시작 지연 없이 준비된 프로세스에 프롬프트를 직접 작성합니다.473[`startup()`](#startup)에서 반환된 핸들입니다. 서브프로세스가 이미 생성되고 초기화되었으므로 이 핸들에서 `query()`를 호출하면 시작 지연 없이 준비된 프로세스에 프롬프트를 직접 작성합니다.


2443 2491 

2444### `CallToolResult`2492### `CallToolResult`

2445 2493 

2446MCP 도구 결과 타입 (`@modelcontextprotocol/sdk/types.js`에서).2494MCP 도구 결과 타입 (`@modelcontextprotocol/sdk/types.js`에서). `structuredContent`는 `content`와 함께 반환될 수 있는 JSON 객체이며, 이미지 블록을 포함합니다. [구조화된 데이터 반환](/ko/agent-sdk/custom-tools#return-structured-data)을 참조하세요.

2447 2495 

2448```typescript theme={null}2496```typescript theme={null}

2449type CallToolResult = {2497type CallToolResult = {


2451 type: "text" | "image" | "resource";2499 type: "text" | "image" | "resource";

2452 // 추가 필드는 타입에 따라 다릅니다2500 // 추가 필드는 타입에 따라 다릅니다

2453 }>;2501 }>;

2502 structuredContent?: Record<string, unknown>;

2454 isError?: boolean;2503 isError?: boolean;

2455};2504};

2456```2505```

Details

361 361 

362```bash theme={null}362```bash theme={null}

363# 추론 프로필 ID 사용363# 추론 프로필 ID 사용

364export ANTHROPIC_MODEL='global.anthropic.claude-sonnet-4-6'364export ANTHROPIC_MODEL='us.anthropic.claude-sonnet-4-6'

365export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'365export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

366 366 

367# 애플리케이션 추론 프로필 ARN 사용367# 애플리케이션 추론 프로필 ARN 사용


462 462 

463[설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.463[설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.

464 464 

465## 서비스 계층

466 

467[Amazon Bedrock 서비스 계층](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)을 사용하면 비용과 지연 시간을 절충할 수 있습니다. `ANTHROPIC_BEDROCK_SERVICE_TIER`를 `default`, `flex` 또는 `priority`로 설정하십시오:

468 

469```bash theme={null}

470export ANTHROPIC_BEDROCK_SERVICE_TIER=priority

471```

472 

473Claude Code는 이를 각 요청의 `X-Amzn-Bedrock-Service-Tier` 헤더로 보냅니다. 계층 가용성은 모델 및 지역에 따라 다릅니다. 예약된 용량은 이 설정 대신 [프로비저닝된 처리량](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) ARN을 모델 ID로 사용합니다.

474 

465## AWS Guardrails475## AWS Guardrails

466 476 

467[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html)를 사용하면 Claude Code에 대한 콘텐츠 필터링을 구현할 수 있습니다. [Amazon Bedrock 콘솔](https://console.aws.amazon.com/bedrock/)에서 Guardrail을 만들고 버전을 게시한 다음 Guardrail 헤더를 [설정 파일](/ko/settings)에 추가하십시오. 교차 지역 추론 프로필을 사용하는 경우 Guardrail에서 교차 지역 추론을 활성화하십시오.477[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html)를 사용하면 Claude Code에 대한 콘텐츠 필터링을 구현할 수 있습니다. [Amazon Bedrock 콘솔](https://console.aws.amazon.com/bedrock/)에서 Guardrail을 만들고 버전을 게시한 다음 Guardrail 헤더를 [설정 파일](/ko/settings)에 추가하십시오. 교차 지역 추론 프로필을 사용하는 경우 Guardrail에서 교차 지역 추론을 활성화하십시오.

Details

113 113 

114Claude Code는 인증 자격증명을 안전하게 관리합니다:114Claude Code는 인증 자격증명을 안전하게 관리합니다:

115 115 

116* **저장 위치**: macOS에서 자격증명은 암호화된 macOS Keychain에 저장됩니다. Linux 및 Windows에서 자격증명은 `~/.claude/.credentials.json`에 저장되거나, 해당 변수가 설정된 경우 `$CLAUDE_CONFIG_DIR` 아래에 저장됩니다. Linux에서 파일은 모드 `0600`으로 작성되며, Windows에서는 사용자 프로필 디렉터리의 액세스 제어를 상속합니다.116* **저장 위치**:

117 * macOS에서 자격증명은 암호화된 macOS Keychain에 저장됩니다.

118 * Linux에서 자격증명은 `~/.claude/.credentials.json`에 파일 모드 `0600`으로 저장됩니다.

119 * Windows에서 자격증명은 `%USERPROFILE%\.claude\.credentials.json`에 저장되며 사용자 프로필 디렉터리의 액세스 제어를 상속하므로 기본적으로 파일이 사용자 계정으로 제한됩니다.

120 * Linux 또는 Windows에서 `CLAUDE_CONFIG_DIR` 환경 변수를 설정한 경우 `.credentials.json` 파일은 해당 디렉터리 아래에 있습니다.

121 * Claude Code는 `/login` 및 `/logout`을 통해 `.credentials.json`을 관리합니다. 요청을 사용자 정의 API 엔드포인트를 통해 라우팅하려면 대신 [`ANTHROPIC_BASE_URL`](/ko/env-vars) 환경 변수를 설정합니다.

117* **지원되는 인증 유형**: Claude.ai 자격증명, Claude API 자격증명, Azure Auth, Bedrock Auth, Vertex Auth.122* **지원되는 인증 유형**: Claude.ai 자격증명, Claude API 자격증명, Azure Auth, Bedrock Auth, Vertex Auth.

118* **사용자 정의 자격증명 스크립트**: [`apiKeyHelper`](/ko/settings#available-settings) 설정을 구성하여 API 키를 반환하는 셸 스크립트를 실행할 수 있습니다.123* **사용자 정의 자격증명 스크립트**: [`apiKeyHelper`](/ko/settings#available-settings) 설정을 구성하여 API 키를 반환하는 셸 스크립트를 실행할 수 있습니다.

119* **새로고침 간격**: 기본적으로 `apiKeyHelper`는 5분 후 또는 HTTP 401 응답 시 호출됩니다. 사용자 정의 새로고침 간격을 위해 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 환경 변수를 설정합니다.124* **새로고침 간격**: 기본적으로 `apiKeyHelper`는 5분 후 또는 HTTP 401 응답 시 호출됩니다. 사용자 정의 새로고침 간격을 위해 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 환경 변수를 설정합니다.


127 132 

1281. `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, 또는 `CLAUDE_CODE_USE_FOUNDRY`가 설정된 경우 클라우드 제공자 자격증명. 설정은 [타사 통합](/ko/third-party-integrations)을 참조합니다.1331. `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, 또는 `CLAUDE_CODE_USE_FOUNDRY`가 설정된 경우 클라우드 제공자 자격증명. 설정은 [타사 통합](/ko/third-party-integrations)을 참조합니다.

1292. `ANTHROPIC_AUTH_TOKEN` 환경 변수. `Authorization: Bearer` 헤더로 전송됩니다. Anthropic API 키 대신 베어러 토큰으로 인증하는 [LLM 게이트웨이 또는 프록시](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다.1342. `ANTHROPIC_AUTH_TOKEN` 환경 변수. `Authorization: Bearer` 헤더로 전송됩니다. Anthropic API 키 대신 베어러 토큰으로 인증하는 [LLM 게이트웨이 또는 프록시](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다.

1303. `ANTHROPIC_API_KEY` 환경 변수. `X-Api-Key` 헤더로 전송됩니다. [Claude Console](https://platform.claude.com)의 키를 사용하여 Anthropic API에 직접 액세스할 때 사용합니다. 대화형 모드에서는 키를 승인하거나 거부하도록 한 번 프롬프트되며 선택이 기억됩니다. 나중에 변경하려면 `/config`의 "Use custom API key" 토글을 사용합니다. 비대화형 모드(`-p`)에서는 키가 있을 때 항상 사용됩니다.1353. `ANTHROPIC_API_KEY` 환경 변수. `X-Api-Key` 헤더로 전송됩니다. [Claude Console](https://platform.claude.com)의 키를 사용하여 Anthropic API에 직접 액세스할 때 사용합니다. 대화형 모드에서는 키를 승인하거나 거부하도록 한 번 프롬프트되며 선택이 기억됩니다. 나중에 변경하려면 `/config`의 "사용자 정의 API 키 사용" 토글을 사용합니다. 비대화형 모드(`-p`)에서는 키가 있을 때 항상 사용됩니다.

1314. [`apiKeyHelper`](/ko/settings#available-settings) 스크립트 출력. 자격증명 모음에서 가져온 단기 토큰과 같은 동적 또는 회전 자격증명에 사용합니다.1364. [`apiKeyHelper`](/ko/settings#available-settings) 스크립트 출력. 자격증명 모음에서 가져온 단기 토큰과 같은 동적 또는 회전 자격증명에 사용합니다.

1325. `CLAUDE_CODE_OAUTH_TOKEN` 환경 변수. [`claude setup-token`](#generate-a-long-lived-token)으로 생성된 장기 OAuth 토큰입니다. 브라우저 로그인을 사용할 수 없는 CI 파이프라인 및 스크립트에 사용합니다.1375. `CLAUDE_CODE_OAUTH_TOKEN` 환경 변수. [`claude setup-token`](#generate-a-long-lived-token)으로 생성된 장기 OAuth 토큰입니다. 브라우저 로그인을 사용할 수 없는 CI 파이프라인 및 스크립트에 사용합니다.

1336. `/login`의 구독 OAuth 자격증명. Claude Pro, Max, Team, Enterprise 사용자의 기본값입니다.1386. `/login`의 구독 OAuth 자격증명. Claude Pro, Max, Team, Enterprise 사용자의 기본값입니다.

Details

113 113 

114각 클라우드 세션에는 claude.ai의 트랜스크립트 URL이 있으며, 세션은 `CLAUDE_CODE_REMOTE_SESSION_ID` 환경 변수에서 자신의 ID를 읽을 수 있습니다. 이를 사용하여 PR 본문, 커밋 메시지, Slack 게시물 또는 생성된 보고서에 추적 가능한 링크를 넣어서 검토자가 이를 생성한 실행을 열 수 있습니다.114각 클라우드 세션에는 claude.ai의 트랜스크립트 URL이 있으며, 세션은 `CLAUDE_CODE_REMOTE_SESSION_ID` 환경 변수에서 자신의 ID를 읽을 수 있습니다. 이를 사용하여 PR 본문, 커밋 메시지, Slack 게시물 또는 생성된 보고서에 추적 가능한 링크를 넣어서 검토자가 이를 생성한 실행을 열 수 있습니다.

115 115 

116Claude에 환경 변수에서 링크를 구성하도록 요청하세요. 다음 명령은 URL을 인쇄합니다:116변수의 값은 `cse_` 접두사를 사용하고, 트랜스크립트 URL 경로는 `session_` 접두사를 사용하는 동일한 ID를 사용합니다. 링크를 구성할 때 접두사를 대체하세요. 다음 명령은 URL을 인쇄합니다:

117 117 

118```bash theme={null}118```bash theme={null}

119echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID}"119echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"

120```120```

121 121 

122### 테스트 실행, 서비스 시작 및 패키지 추가122### 테스트 실행, 서비스 시작 및 패키지 추가


156| 작업 | 방법 |156| 작업 | 방법 |

157| :----------------- | :------------------------------------------------------------------------------------------------------------------ |157| :----------------- | :------------------------------------------------------------------------------------------------------------------ |

158| 환경 추가 | 현재 환경을 선택하여 선택기를 열고 **Add environment**를 선택합니다. 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. |158| 환경 추가 | 현재 환경을 선택하여 선택기를 열고 **Add environment**를 선택합니다. 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. |

159| 환경 편집 | 환경 이름 오른쪽의 설정 아이콘을 선택합니다. |159| 환경 편집 | 클라우드 아이콘을 선택하여 현재 환경의 이름을 표시하고 선택기를 열고, 환경 위에 마우스를 올리고, 오른쪽에 나타나는 설정 아이콘을 클릭합니다. |

160| 환경 보관 | 환경을 편집하기 위해 열고 **Archive**를 선택합니다. 보관된 환경은 선택기에서 숨겨지지만 기존 세션은 계속 실행됩니다. |160| 환경 보관 | 환경을 편집하기 위해 열고 **Archive**를 선택합니다. 보관된 환경은 선택기에서 숨겨지지만 기존 세션은 계속 실행됩니다. |

161| `--remote`의 기본값 설정 | 터미널에서 `/remote-env`를 실행합니다. 단일 환경이 있으면 이 명령은 현재 구성을 표시합니다. `/remote-env`는 기본값만 선택합니다. 웹 인터페이스에서 환경을 추가, 편집 및 보관합니다. |161| `--remote`의 기본값 설정 | 터미널에서 `/remote-env`를 실행합니다. 단일 환경이 있으면 이 명령은 현재 구성을 표시합니다. `/remote-env`는 기본값만 선택합니다. 웹 인터페이스에서 환경을 추가, 편집 및 보관합니다. |

162 162 


185 185 

186스크립트가 0이 아닌 값으로 종료되면 세션이 시작되지 않습니다. 간헐적인 설치 실패로 세션을 차단하지 않으려면 중요하지 않은 명령에 `|| true`를 추가하세요.186스크립트가 0이 아닌 값으로 종료되면 세션이 시작되지 않습니다. 간헐적인 설치 실패로 세션을 차단하지 않으려면 중요하지 않은 명령에 `|| true`를 추가하세요.

187 187 

188스크립트의 총 런타임을 대략 5분 이내로 유지하여 [환경 캐시](#environment-caching)를 구성할 수 있습니다. `&` 및 `wait`를 사용하여 독립적인 설치를 병렬로 실행하세요. 단일 다운로드가 5분 제한에 맞지 않으면 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks)으로 이동하여 백그라운드에서 시작하세요.

189 

188<Note>190<Note>

189 패키지를 설치하는 설정 스크립트는 레지스트리에 도달하기 위해 네트워크 액세스가 필요합니다. 기본 **Trusted** 네트워크 액세스는 npm, PyPI, RubyGems 및 crates.io를 포함한 [일반적인 패키지 레지스트리](#default-allowed-domains)에 대한 연결을 허용합니다. 환경이 **None** 네트워크 액세스를 사용하면 스크립트가 패키지 설치에 실패합니다.191 패키지를 설치하는 설정 스크립트는 레지스트리에 도달하기 위해 네트워크 액세스가 필요합니다. 기본 **Trusted** 네트워크 액세스는 npm, PyPI, RubyGems 및 crates.io를 포함한 [일반적인 패키지 레지스트리](#default-allowed-domains)에 대한 연결을 허용합니다. 환경이 **None** 네트워크 액세스를 사용하면 스크립트가 패키지 설치에 실패합니다.

190</Note>192</Note>


265 267 

266네트워크 액세스는 클라우드 환경에서 아웃바운드 연결을 제어합니다. 각 환경은 하나의 액세스 수준을 지정하며, 사용자 정의 허용 도메인으로 확장할 수 있습니다. 기본값은 **Trusted**이며, 패키지 레지스트리 및 기타 [허용 목록 도메인](#default-allowed-domains)을 허용합니다.268네트워크 액세스는 클라우드 환경에서 아웃바운드 연결을 제어합니다. 각 환경은 하나의 액세스 수준을 지정하며, 사용자 정의 허용 도메인으로 확장할 수 있습니다. 기본값은 **Trusted**이며, 패키지 레지스트리 및 기타 [허용 목록 도메인](#default-allowed-domains)을 허용합니다.

267 269 

270환경의 네트워크 액세스를 변경하려면 [편집을 위해 열고](#configure-your-environment) 대화 상자에서 **Network access** 선택기를 사용하세요. 별도의 Environments 페이지가 없습니다. 클라우드 세션을 시작하거나 [routine](/ko/routines#environments-and-network-access)을 구성할 때마다 클라우드 아이콘이 나타납니다.

271 

272<Note>

273 MCP 커넥터 트래픽은 Anthropic의 서버를 통해 라우팅되므로 세션 또는 routine에서 활성화한 커넥터는 **Allowed domains**에 해당 호스트를 추가하지 않고도 작동합니다. 커넥터는 세션별 또는 routine별로 구성됩니다. 필요하지 않은 것을 제거하여 Claude가 도달할 수 있는 도구를 제한하세요. 이는 [보안 및 격리](#security-and-isolation)에서 언급한 동일한 Anthropic 바운드 채널에 의존합니다.

274</Note>

275 

268### 액세스 수준276### 액세스 수준

269 277 

270환경을 생성하거나 편집할 때 액세스 수준을 선택하세요:278환경을 생성하거나 편집할 때 액세스 수준을 선택하세요:


754* **자격 증명 보호**: git 자격 증명 또는 서명 키와 같은 민감한 자격 증명은 Claude Code가 있는 샌드박스 내부에 없습니다. 인증은 범위 자격 증명을 사용하는 보안 프록시를 통해 처리됩니다.762* **자격 증명 보호**: git 자격 증명 또는 서명 키와 같은 민감한 자격 증명은 Claude Code가 있는 샌드박스 내부에 없습니다. 인증은 범위 자격 증명을 사용하는 보안 프록시를 통해 처리됩니다.

755* **안전한 분석**: 코드는 PR을 생성하기 전에 격리된 VM 내에서 분석 및 수정됩니다763* **안전한 분석**: 코드는 PR을 생성하기 전에 격리된 VM 내에서 분석 및 수정됩니다

756 764 

765## 문제 해결

766 

767런타임 API 오류(예: `API Error: 500`, `529 Overloaded`, `429` 또는 `Prompt is too long`)가 대화에 나타나면 [오류 참조](/ko/errors)를 참조하세요. 이러한 오류와 해결 방법은 CLI 및 Desktop 앱과 공유됩니다. 아래 섹션에서는 클라우드 세션에 특정한 문제를 다룹니다.

768 

769### 세션 생성 실패

770 

771새 세션이 `Session creation failed`로 시작되지 않거나 프로비저닝에서 정지되면 Claude Code가 클라우드 환경을 할당할 수 없습니다.

772 

773* [status.claude.com](https://status.claude.com)에서 클라우드 세션 인시던트를 확인하세요

774* 용량이 온디맨드로 프로비저닝되므로 1분 후 다시 시도하세요

775* 저장소에 도달할 수 있는지 확인하세요. 개인 저장소는 해당 저장소에 액세스할 수 있는 GitHub App이 설치되어 있거나 `/web-setup`을 통해 동기화된 `gh` 토큰이 필요합니다. [GitHub 인증 옵션](#github-authentication-options)을 참조하세요.

776 

777### Remote Control 세션 만료 또는 액세스 거부

778 

779`--teleport`는 클라우드 세션이 사용하는 동일한 Remote Control 세션 인프라를 통해 연결되므로 인증 및 세션 만료 오류는 Remote Control 용어로 표시됩니다. `Remote Control session has expired` 또는 `Access denied`가 표시될 수 있습니다. 연결 토큰은 단기이며 계정으로 범위가 지정됩니다.

780 

781* 로컬에서 `/login`을 실행하여 자격 증명을 새로 고친 다음 다시 연결하세요

782* 세션을 소유한 동일한 계정으로 로그인했는지 확인하세요

783* `Remote Control may not be available for this organization`이 표시되면 관리자가 계획에 대해 원격 세션을 활성화하지 않았습니다

784 

785### 환경 만료

786 

787클라우드 세션은 비활성 기간 후 중지되고 기본 환경이 회수됩니다. 로컬 터미널에서 이는 `Could not resume session ... its environment has expired. Creating a fresh session instead.`로 표시됩니다. 웹에서 세션은 세션 목록에서 만료된 것으로 표시됩니다.

788 

789[claude.ai/code](https://claude.ai/code)에서 세션을 다시 열어 대화 기록이 복원된 새로운 환경을 프로비저닝하세요.

790 

757## 제한 사항791## 제한 사항

758 792 

759클라우드 세션을 워크플로우에 사용하기 전에 이러한 제약을 고려하세요:793클라우드 세션을 워크플로우에 사용하기 전에 이러한 제약을 고려하세요:


761* **속도 제한**: Claude Code on the web은 계정 내의 다른 모든 Claude 및 Claude Code 사용과 속도 제한을 공유합니다. 여러 작업을 병렬로 실행하면 비례적으로 더 많은 속도 제한을 소비합니다. 클라우드 VM에 대한 별도의 컴퓨팅 요금은 없습니다.795* **속도 제한**: Claude Code on the web은 계정 내의 다른 모든 Claude 및 Claude Code 사용과 속도 제한을 공유합니다. 여러 작업을 병렬로 실행하면 비례적으로 더 많은 속도 제한을 소비합니다. 클라우드 VM에 대한 별도의 컴퓨팅 요금은 없습니다.

762* **저장소 인증**: 웹에서 로컬로 세션을 이동할 때 동일한 계정으로 인증된 경우에만 가능합니다796* **저장소 인증**: 웹에서 로컬로 세션을 이동할 때 동일한 계정으로 인증된 경우에만 가능합니다

763* **플랫폼 제한**: 저장소 복제 및 pull request 생성에는 GitHub가 필요합니다. 자체 호스팅 [GitHub Enterprise Server](/ko/github-enterprise-server) 인스턴스는 Team 및 Enterprise 플랜에서 지원됩니다. GitLab, Bitbucket 및 기타 비 GitHub 저장소는 [로컬 번들](#send-local-repositories-without-github)로 클라우드 세션에 보낼 수 있지만 세션이 원격으로 결과를 다시 푸시할 수 없습니다797* **플랫폼 제한**: 저장소 복제 및 pull request 생성에는 GitHub가 필요합니다. 자체 호스팅 [GitHub Enterprise Server](/ko/github-enterprise-server) 인스턴스는 Team 및 Enterprise 플랜에서 지원됩니다. GitLab, Bitbucket 및 기타 비 GitHub 저장소는 [로컬 번들](#send-local-repositories-without-github)로 클라우드 세션에 보낼 수 있지만 세션이 원격으로 결과를 다시 푸시할 수 없습니다

798* **조직 IP 허용 목록**: 클라우드 세션은 네트워크에서가 아닌 Anthropic 관리 인프라에서 Anthropic API를 호출합니다. 조직에 [IP 허용 목록](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting)이 활성화되어 있으면 모든 클라우드 세션이 인증 오류로 실패합니다. 동일하게 [Code Review](/ko/code-review) 및 [Routines](/ko/routines)에 적용됩니다. [Anthropic 지원](https://support.claude.com/)에 문의하여 조직의 IP 허용 목록에서 Anthropic 호스팅 서비스를 제외하세요.

764 799 

765## 관련 리소스800## 관련 리소스

766 801 

cli-reference.md +11 −10

Details

40이러한 명령줄 플래그를 사용하여 Claude Code의 동작을 사용자 정의합니다. `claude --help`는 모든 플래그를 나열하지 않으므로, `--help`에 플래그가 없다고 해서 사용할 수 없다는 의미는 아닙니다.40이러한 명령줄 플래그를 사용하여 Claude Code의 동작을 사용자 정의합니다. `claude --help`는 모든 플래그를 나열하지 않으므로, `--help`에 플래그가 없다고 해서 사용할 수 없다는 의미는 아닙니다.

41 41 

42| 플래그 | 설명 | 예시 |42| 플래그 | 설명 | 예시 |

43| :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |43| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |

44| `--add-dir` | Claude가 파일을 읽고 편집할 수 있는 추가 작업 디렉토리를 추가합니다. 파일 액세스를 부여합니다. 대부분의 `.claude/` 구성은 이러한 디렉토리에서 [검색되지 않습니다](/ko/permissions#additional-directories-grant-file-access-not-configuration). 각 경로가 디렉토리로 존재하는지 검증합니다 | `claude --add-dir ../apps ../lib` |44| `--add-dir` | Claude가 파일을 읽고 편집할 수 있는 추가 작업 디렉토리를 추가합니다. 파일 액세스를 부여합니다. 대부분의 `.claude/` 구성은 이러한 디렉토리에서 [검색되지 않습니다](/ko/permissions#additional-directories-grant-file-access-not-configuration). 각 경로가 디렉토리로 존재하는지 검증합니다. 이러한 디렉토리를 세션 간에 유지하려면 설정에서 [`permissions.additionalDirectories`](/ko/settings#permission-settings)를 설정합니다 | `claude --add-dir ../apps ../lib` |

45| `--agent` | 현재 세션에 대한 에이전트를 지정합니다(`agent` 설정 재정의) | `claude --agent my-custom-agent` |45| `--agent` | 현재 세션에 대한 에이전트를 지정합니다(`agent` 설정 재정의) | `claude --agent my-custom-agent` |

46| `--agents` | JSON을 통해 사용자 정의 subagents를 동적으로 정의합니다. subagent [frontmatter](/ko/sub-agents#supported-frontmatter-fields)와 동일한 필드 이름과 에이전트의 지시사항에 대한 `prompt` 필드를 사용합니다 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |46| `--agents` | JSON을 통해 사용자 정의 subagents를 동적으로 정의합니다. subagent [frontmatter](/ko/sub-agents#supported-frontmatter-fields)와 동일한 필드 이름과 에이전트의 지시사항에 대한 `prompt` 필드를 사용합니다 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

47| `--allow-dangerously-skip-permissions` | `Shift+Tab` 모드 사이클에 `bypassPermissions`를 추가합니다. 이를 통해 `plan`과 같은 다른 모드에서 시작하고 나중에 `bypassPermissions`로 전환할 수 있습니다. [권한 모드](/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 참조 | `claude --permission-mode plan --allow-dangerously-skip-permissions` |47| `--allow-dangerously-skip-permissions` | `Shift+Tab` 모드 사이클에 `bypassPermissions`를 추가합니다. 이를 통해 `plan`과 같은 다른 모드에서 시작하고 나중에 `bypassPermissions`로 전환할 수 있습니다. [권한 모드](/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 참조 | `claude --permission-mode plan --allow-dangerously-skip-permissions` |


59| `--debug-file <path>` | 디버그 로그를 특정 파일 경로에 씁니다. 암묵적으로 디버그 모드를 활성화합니다. `CLAUDE_CODE_DEBUG_LOGS_DIR`보다 우선합니다 | `claude --debug-file /tmp/claude-debug.log` |59| `--debug-file <path>` | 디버그 로그를 특정 파일 경로에 씁니다. 암묵적으로 디버그 모드를 활성화합니다. `CLAUDE_CODE_DEBUG_LOGS_DIR`보다 우선합니다 | `claude --debug-file /tmp/claude-debug.log` |

60| `--disable-slash-commands` | 이 세션에 대해 모든 skills 및 명령어를 비활성화합니다 | `claude --disable-slash-commands` |60| `--disable-slash-commands` | 이 세션에 대해 모든 skills 및 명령어를 비활성화합니다 | `claude --disable-slash-commands` |

61| `--disallowedTools` | 모델의 컨텍스트에서 제거되고 사용할 수 없는 도구 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |61| `--disallowedTools` | 모델의 컨텍스트에서 제거되고 사용할 수 없는 도구 | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

62| `--effort` | 현재 세션에 대한 [노력 수준](/ko/model-config#adjust-effort-level)을 설정합니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`; 사용 가능한 수준은 모델에 따라 다릅니다. 세션 범위이며 설정에 지속되지 않습니다 | `claude --effort high` |62| `--effort` | 현재 세션에 대한 [노력 수준](/ko/model-config#adjust-effort-level)을 설정합니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`; 사용 가능한 수준은 모델에 따라 다릅니다. [`effortLevel`](/ko/settings#available-settings) 설정을 세션에 대해 재정의하며 지속되지 않습니다 | `claude --effort high` |

63| `--enable-auto-mode` | {/* max-version: 2.1.110 */}v2.1.111에서 제거됨. 자동 모드는 이제 `Shift+Tab` 사이클에 기본적으로 포함됩니다. `--permission-mode auto`를 사용하여 시작합니다 | `claude --permission-mode auto` |63| `--enable-auto-mode` | {/* max-version: 2.1.110 */}v2.1.111에서 제거됨. 자동 모드는 이제 `Shift+Tab` 사이클에 기본적으로 포함됩니다. `--permission-mode auto`를 사용하여 시작합니다 | `claude --permission-mode auto` |

64| `--exclude-dynamic-system-prompt-sections` | 시스템 프롬프트의 머신별 섹션(작업 디렉토리, 환경 정보, 메모리 경로, git 상태)을 첫 번째 사용자 메시지로 이동합니다. 동일한 작업을 실행하는 다양한 사용자 및 머신 간에 프롬프트 캐시 재사용을 개선합니다. 기본 시스템 프롬프트에만 적용됩니다. `--system-prompt` 또는 `--system-prompt-file`이 설정되면 무시됩니다. 스크립트된 다중 사용자 워크로드의 경우 `-p`와 함께 사용합니다 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |64| `--exclude-dynamic-system-prompt-sections` | 시스템 프롬프트의 머신별 섹션(작업 디렉토리, 환경 정보, 메모리 경로, git 상태)을 첫 번째 사용자 메시지로 이동합니다. 동일한 작업을 실행하는 다양한 사용자 및 머신 간에 프롬프트 캐시 재사용을 개선합니다. 기본 시스템 프롬프트에만 적용됩니다. `--system-prompt` 또는 `--system-prompt-file`이 설정되면 무시됩니다. 스크립트된 다중 사용자 워크로드의 경우 `-p`와 함께 사용합니다 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

65| `--fallback-model` | 기본 모델이 과부하 상태일 때 지정된 모델로 자동 폴백을 활성화합니다(인쇄 모드만 해당) | `claude -p --fallback-model sonnet "query"` |65| `--fallback-model` | 기본 모델이 과부하 상태일 때 지정된 모델로 자동 폴백을 활성화합니다(인쇄 모드만 해당) | `claude -p --fallback-model sonnet "query"` |


76| `--max-budget-usd` | 중지하기 전에 API 호출에 소비할 최대 달러 금액(인쇄 모드만 해당) | `claude -p --max-budget-usd 5.00 "query"` |76| `--max-budget-usd` | 중지하기 전에 API 호출에 소비할 최대 달러 금액(인쇄 모드만 해당) | `claude -p --max-budget-usd 5.00 "query"` |

77| `--max-turns` | 에이전트 턴의 수를 제한합니다(인쇄 모드만 해당). 제한에 도달하면 오류로 종료됩니다. 기본적으로 제한 없음 | `claude -p --max-turns 3 "query"` |77| `--max-turns` | 에이전트 턴의 수를 제한합니다(인쇄 모드만 해당). 제한에 도달하면 오류로 종료됩니다. 기본적으로 제한 없음 | `claude -p --max-turns 3 "query"` |

78| `--mcp-config` | JSON 파일 또는 문자열에서 MCP 서버를 로드합니다(공백으로 구분) | `claude --mcp-config ./mcp.json` |78| `--mcp-config` | JSON 파일 또는 문자열에서 MCP 서버를 로드합니다(공백으로 구분) | `claude --mcp-config ./mcp.json` |

79| `--model` | 최신 모델의 별칭(`sonnet` 또는 `opus`) 또는 모델의 전체 이름으로 현재 세션에 대한 모델을 설정합니다 | `claude --model claude-sonnet-4-6` |79| `--model` | 최신 모델의 별칭(`sonnet` 또는 `opus`) 또는 모델의 전체 이름으로 현재 세션에 대한 모델을 설정합니다. [`model`](/ko/settings#available-settings) 설정 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)을 재정의합니다 | `claude --model claude-sonnet-4-6` |

80| `--name`, `-n` | 세션의 표시 이름을 설정합니다. `/resume`과 터미널 제목에 표시됩니다. `claude --resume <name>`으로 명명된 세션을 재개할 수 있습니다. <br /><br />[`/rename`](/ko/commands)은 세션 중에 이름을 변경하고 프롬프트 표시줄에도 표시합니다 | `claude -n "my-feature-work"` |80| `--name`, `-n` | 세션의 표시 이름을 설정합니다. `/resume`과 터미널 제목에 표시됩니다. `claude --resume <name>`으로 명명된 세션을 재개할 수 있습니다. <br /><br />[`/rename`](/ko/commands)은 세션 중에 이름을 변경하고 프롬프트 표시줄에도 표시합니다 | `claude -n "my-feature-work"` |

81| `--no-chrome` | 이 세션에 대해 [Chrome 브라우저 통합](/ko/chrome)을 비활성화합니다 | `claude --no-chrome` |81| `--no-chrome` | 이 세션에 대해 [Chrome 브라우저 통합](/ko/chrome)을 비활성화합니다 | `claude --no-chrome` |

82| `--no-session-persistence` | 세션 지속성을 비활성화하여 세션이 디스크에 저장되지 않고 재개할 수 없습니다(인쇄 모드만 해당) | `claude -p --no-session-persistence "query"` |82| `--no-session-persistence` | 세션 지속성을 비활성화하여 세션이 디스크에 저장되지 않고 재개할 수 없습니다(인쇄 모드만 해당). [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ko/env-vars) 환경 변수는 모든 모드에서 동일한 작업을 수행합니다 | `claude -p --no-session-persistence "query"` |

83| `--output-format` | 인쇄 모드에 대한 출력 형식을 지정합니다(옵션: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |83| `--output-format` | 인쇄 모드에 대한 출력 형식을 지정합니다(옵션: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

84| `--permission-mode` | 지정된 [권한 모드](/ko/permission-modes)에서 시작합니다. `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` 또는 `bypassPermissions`를 허용합니다. 설정 파일의 `defaultMode`를 재정의합니다 | `claude --permission-mode plan` |84| `--permission-mode` | 지정된 [권한 모드](/ko/permission-modes)에서 시작합니다. `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` 또는 `bypassPermissions`를 허용합니다. 설정 파일의 `defaultMode`를 재정의합니다 | `claude --permission-mode plan` |

85| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |85| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

86| `--plugin-dir` | 이 세션에만 디렉토리에서 plugins를 로드합니다. 각 플래그는 하나의 경로를 사용합니다. 여러 디렉토리의 경우 플래그를 반복합니다: `--plugin-dir A --plugin-dir B` | `claude --plugin-dir ./my-plugins` |86| `--plugin-dir` | 이 세션에만 디렉토리 또는 `.zip` 아카이브에서 plugin을 로드합니다. 각 플래그는 하나의 경로를 사용합니다. 여러 plugins의 경우 플래그를 반복합니다: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |

87| `--plugin-url` | 이 세션에만 URL에서 plugin `.zip` 아카이브를 가져옵니다. 각 플래그는 하나의 URL을 사용합니다. 여러 plugins의 경우 플래그를 반복합니다 | `claude --plugin-url https://example.com/plugin.zip` |

87| `--print`, `-p` | 대화형 모드 없이 응답을 인쇄합니다([Agent SDK 문서](/ko/agent-sdk/overview)에서 프로그래밍 방식 사용 세부 정보 참조) | `claude -p "query"` |88| `--print`, `-p` | 대화형 모드 없이 응답을 인쇄합니다([Agent SDK 문서](/ko/agent-sdk/overview)에서 프로그래밍 방식 사용 세부 정보 참조) | `claude -p "query"` |

88| `--remote` | 제공된 작업 설명으로 claude.ai에서 새 [웹 세션](/ko/claude-code-on-the-web)을 생성합니다 | `claude --remote "Fix the login bug"` |89| `--remote` | 제공된 작업 설명으로 claude.ai에서 새 [웹 세션](/ko/claude-code-on-the-web)을 생성합니다 | `claude --remote "Fix the login bug"` |

89| `--remote-control`, `--rc` | claude.ai 또는 Claude 앱에서도 제어할 수 있도록 [Remote Control](/ko/remote-control#start-a-remote-control-session)이 활성화된 대화형 세션을 시작합니다. 선택적으로 세션의 이름을 전달할 수 있습니다 | `claude --remote-control "My Project"` |90| `--remote-control`, `--rc` | claude.ai 또는 Claude 앱에서도 제어할 수 있도록 [Remote Control](/ko/remote-control#start-a-remote-control-session)이 활성화된 대화형 세션을 시작합니다. 선택적으로 세션의 이름을 전달할 수 있습니다 | `claude --remote-control "My Project"` |


92| `--resume`, `-r` | ID 또는 이름으로 특정 세션을 재개하거나 세션을 선택할 수 있는 대화형 선택기를 표시합니다. `/add-dir`으로 이 디렉토리를 추가한 세션을 포함합니다 | `claude --resume auth-refactor` |93| `--resume`, `-r` | ID 또는 이름으로 특정 세션을 재개하거나 세션을 선택할 수 있는 대화형 선택기를 표시합니다. `/add-dir`으로 이 디렉토리를 추가한 세션을 포함합니다 | `claude --resume auth-refactor` |

93| `--session-id` | 대화에 특정 세션 ID를 사용합니다(유효한 UUID여야 함) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |94| `--session-id` | 대화에 특정 세션 ID를 사용합니다(유효한 UUID여야 함) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

94| `--setting-sources` | 로드할 설정 소스의 쉼표로 구분된 목록(`user`, `project`, `local`) | `claude --setting-sources user,project` |95| `--setting-sources` | 로드할 설정 소스의 쉼표로 구분된 목록(`user`, `project`, `local`) | `claude --setting-sources user,project` |

95| `--settings` | 추가 설정을 로드할 설정 JSON 파일 또는 JSON 문자열의 경로 | `claude --settings ./settings.json` |96| `--settings` | 설정 JSON 파일 또는 인라인 JSON 문자열의 경로입니다. 여기서 설정한 값은 이 세션에 대해 `settings.json` 파일의 동일한 키를 재정의합니다. 생략한 키는 파일 기반 값을 유지합니다. [설정 우선순위](/ko/settings#settings-precedence) 참조 | `claude --settings ./settings.json` |

96| `--strict-mcp-config` | `--mcp-config`의 MCP 서버만 사용하고 다른 모든 MCP 구성을 무시합니다 | `claude --strict-mcp-config --mcp-config ./mcp.json` |97| `--strict-mcp-config` | `--mcp-config`의 MCP 서버만 사용하고 다른 모든 MCP 구성을 무시합니다 | `claude --strict-mcp-config --mcp-config ./mcp.json` |

97| `--system-prompt` | 전체 시스템 프롬프트를 사용자 정의 텍스트로 바꿉니다 | `claude --system-prompt "You are a Python expert"` |98| `--system-prompt` | 전체 시스템 프롬프트를 사용자 정의 텍스트로 바꿉니다 | `claude --system-prompt "You are a Python expert"` |

98| `--system-prompt-file` | 파일에서 시스템 프롬프트를 로드하여 기본 프롬프트를 바꿉니다 | `claude --system-prompt-file ./custom-prompt.txt` |99| `--system-prompt-file` | 파일에서 시스템 프롬프트를 로드하여 기본 프롬프트를 바꿉니다 | `claude --system-prompt-file ./custom-prompt.txt` |

99| `--teleport` | 로컬 터미널에서 [웹 세션](/ko/claude-code-on-the-web)을 재개합니다 | `claude --teleport` |100| `--teleport` | 로컬 터미널에서 [웹 세션](/ko/claude-code-on-the-web)을 재개합니다 | `claude --teleport` |

100| `--teammate-mode` | [에이전트 팀](/ko/agent-teams) 팀원 표시 방식을 설정합니다: `auto`(기본값), `in-process` 또는 `tmux`. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode) 참조 | `claude --teammate-mode in-process` |101| `--teammate-mode` | [에이전트 팀](/ko/agent-teams) 팀원 표시 방식을 설정합니다: `auto`(기본값), `in-process` 또는 `tmux`. [`teammateMode`](/ko/settings#available-settings) 설정을 이 세션에 대해 재정의합니다. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode) 참조 | `claude --teammate-mode in-process` |

101| `--tmux` | worktree에 대한 tmux 세션을 생성합니다. `--worktree`가 필요합니다. 사용 가능한 경우 iTerm2 네이티브 창을 사용합니다. 기존 tmux의 경우 `--tmux=classic`을 전달합니다 | `claude -w feature-auth --tmux` |102| `--tmux` | worktree에 대한 tmux 세션을 생성합니다. `--worktree`가 필요합니다. 사용 가능한 경우 iTerm2 네이티브 창을 사용합니다. 기존 tmux의 경우 `--tmux=classic`을 전달합니다 | `claude -w feature-auth --tmux` |

102| `--tools` | Claude가 사용할 수 있는 기본 제공 도구를 제한합니다. 모두 비활성화하려면 `""`를 사용하고, 모두 사용하려면 `"default"`를 사용하거나, `"Bash,Edit,Read"`와 같은 도구 이름을 사용합니다 | `claude --tools "Bash,Edit,Read"` |103| `--tools` | Claude가 사용할 수 있는 기본 제공 도구를 제한합니다. 모두 비활성화하려면 `""`를 사용하고, 모두 사용하려면 `"default"`를 사용하거나, `"Bash,Edit,Read"`와 같은 도구 이름을 사용합니다 | `claude --tools "Bash,Edit,Read"` |

103| `--verbose` | 자세한 로깅을 활성화하고 전체 턴별 출력을 표시합니다 | `claude --verbose` |104| `--verbose` | 자세한 로깅을 활성화하고 전체 턴별 출력을 표시합니다. [`viewMode`](/ko/settings#available-settings) 설정을 이 세션에 대해 재정의합니다 | `claude --verbose` |

104| `--version`, `-v` | 버전 번호를 출력합니다 | `claude -v` |105| `--version`, `-v` | 버전 번호를 출력합니다 | `claude -v` |

105| `--worktree`, `-w` | Claude를 `<repo>/.claude/worktrees/<name>`의 격리된 [git worktree](/ko/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)에서 시작합니다. 이름이 지정되지 않으면 자동으로 생성됩니다 | `claude -w feature-auth` |106| `--worktree`, `-w` | Claude를 `<repo>/.claude/worktrees/<name>`의 격리된 [git worktree](/ko/worktrees)에서 시작합니다. 이름이 지정되지 않으면 자동으로 생성됩니다 | `claude -w feature-auth` |

106 107 

107### 시스템 프롬프트 플래그108### 시스템 프롬프트 플래그

108 109 

commands.md +6 −4

Details

10 10 

11`/`를 입력하면 사용 가능한 모든 명령어를 볼 수 있으며, `/` 다음에 문자를 입력하여 필터링할 수 있습니다.11`/`를 입력하면 사용 가능한 모든 명령어를 볼 수 있으며, `/` 다음에 문자를 입력하여 필터링할 수 있습니다.

12 12 

13명령어는 메시지의 시작 부분에서만 인식됩니다. 명령어 이름 다음에 오는 텍스트는 인수로 전달됩니다.

14 

13아래 표는 Claude Code에 포함된 모든 명령어를 나열합니다. \*\*[Skill](/ko/skills#bundled-skills)\*\*로 표시된 항목은 번들 skills입니다. 이들은 직접 작성하는 skills와 동일한 메커니즘을 사용합니다. Claude에 전달되는 프롬프트이며, Claude는 관련이 있을 때 자동으로 호출할 수도 있습니다. 그 외의 모든 것은 CLI에 코딩된 동작을 가진 기본 제공 명령어입니다. 자신만의 명령어를 추가하려면 [skills](/ko/skills)를 참조하세요.15아래 표는 Claude Code에 포함된 모든 명령어를 나열합니다. \*\*[Skill](/ko/skills#bundled-skills)\*\*로 표시된 항목은 번들 skills입니다. 이들은 직접 작성하는 skills와 동일한 메커니즘을 사용합니다. Claude에 전달되는 프롬프트이며, Claude는 관련이 있을 때 자동으로 호출할 수도 있습니다. 그 외의 모든 것은 CLI에 코딩된 동작을 가진 기본 제공 명령어입니다. 자신만의 명령어를 추가하려면 [skills](/ko/skills)를 참조하세요.

14 16 

15모든 명령어가 모든 사용자에게 표시되는 것은 아닙니다. 가용성은 플랫폼, 요금제 및 환경에 따라 달라집니다. 예를 들어, `/desktop`은 macOS 및 Windows에서만 표시되고, `/upgrade`는 Pro 및 Max 요금제에서만 표시됩니다.17모든 명령어가 모든 사용자에게 표시되는 것은 아닙니다. 가용성은 플랫폼, 요금제 및 환경에 따라 달라집니다. 예를 들어, `/desktop`은 macOS 및 Windows에서만 표시되고, `/upgrade`는 Pro 및 Max 요금제에서만 표시됩니다.


21| `/add-dir <path>` | 현재 세션 중에 파일 액세스를 위한 작업 디렉토리를 추가합니다. 대부분의 `.claude/` 구성은 추가된 디렉토리에서 [발견되지 않습니다](/ko/permissions#additional-directories-grant-file-access-not-configuration). 나중에 `--continue` 또는 `--resume`을 사용하여 추가된 디렉토리에서 세션을 재개할 수 있습니다 |23| `/add-dir <path>` | 현재 세션 중에 파일 액세스를 위한 작업 디렉토리를 추가합니다. 대부분의 `.claude/` 구성은 추가된 디렉토리에서 [발견되지 않습니다](/ko/permissions#additional-directories-grant-file-access-not-configuration). 나중에 `--continue` 또는 `--resume`을 사용하여 추가된 디렉토리에서 세션을 재개할 수 있습니다 |

22| `/agents` | [agent](/ko/sub-agents) 구성을 관리합니다 |24| `/agents` | [agent](/ko/sub-agents) 구성을 관리합니다 |

23| `/autofix-pr [prompt]` | 현재 브랜치의 PR을 감시하고 CI가 실패하거나 검토자가 댓글을 남길 때 수정 사항을 푸시하는 [Claude Code on the web](/ko/claude-code-on-the-web#auto-fix-pull-requests) 세션을 생성합니다. `gh pr view`를 사용하여 체크아웃된 브랜치에서 열린 PR을 감지합니다. 다른 PR을 감시하려면 먼저 해당 브랜치를 체크아웃하세요. 기본적으로 원격 세션은 모든 CI 실패 및 검토 댓글을 수정하도록 지시받습니다. 프롬프트를 전달하여 다른 지침을 제공합니다. 예를 들어 `/autofix-pr only fix lint and type errors`. `gh` CLI 및 [Claude Code on the web](/ko/claude-code-on-the-web#who-can-use-claude-code-on-the-web)에 대한 액세스가 필요합니다 |25| `/autofix-pr [prompt]` | 현재 브랜치의 PR을 감시하고 CI가 실패하거나 검토자가 댓글을 남길 때 수정 사항을 푸시하는 [Claude Code on the web](/ko/claude-code-on-the-web#auto-fix-pull-requests) 세션을 생성합니다. `gh pr view`를 사용하여 체크아웃된 브랜치에서 열린 PR을 감지합니다. 다른 PR을 감시하려면 먼저 해당 브랜치를 체크아웃하세요. 기본적으로 원격 세션은 모든 CI 실패 및 검토 댓글을 수정하도록 지시받습니다. 프롬프트를 전달하여 다른 지침을 제공합니다. 예를 들어 `/autofix-pr only fix lint and type errors`. `gh` CLI 및 [Claude Code on the web](/ko/claude-code-on-the-web#who-can-use-claude-code-on-the-web)에 대한 액세스가 필요합니다 |

24| `/batch <instruction>` | **[Skill](/ko/skills#bundled-skills).** 코드베이스 전체에서 대규모 변경 사항을 병렬로 조율합니다. 코드베이스를 연구하고, 작업을 5\~30개의 독립적인 단위로 분해하고, 계획을 제시합니다. 승인되면 격리된 [git worktree](/ko/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)에서 단위당 하나의 백그라운드 agent를 생성합니다. 각 agent는 해당 단위를 구현하고, 테스트를 실행하고, pull request를 엽니다. git 리포지토리가 필요합니다. 예: `/batch migrate src/ from Solid to React` |26| `/batch <instruction>` | **[Skill](/ko/skills#bundled-skills).** 코드베이스 전체에서 대규모 변경 사항을 병렬로 조율합니다. 코드베이스를 연구하고, 작업을 5\~30개의 독립적인 단위로 분해하고, 계획을 제시합니다. 승인되면 격리된 [git worktree](/ko/worktrees)에서 단위당 하나의 백그라운드 agent를 생성합니다. 각 agent는 해당 단위를 구현하고, 테스트를 실행하고, pull request를 엽니다. git 리포지토리가 필요합니다. 예: `/batch migrate src/ from Solid to React` |

25| `/branch [name]` | 이 시점에서 현재 대화의 브랜치를 만듭니다. 브랜치로 전환하고 원본을 보존하며, `/resume`을 사용하여 돌아갈 수 있습니다. 별칭: `/fork`. [`CLAUDE_CODE_FORK_SUBAGENT`](/ko/env-vars)가 설정되면, `/fork`는 대신 [forked subagent](/ko/sub-agents#fork-the-current-conversation)를 생성하며 더 이상 이 명령어의 별칭이 아닙니다 |27| `/branch [name]` | 이 시점에서 현재 대화의 브랜치를 만듭니다. 브랜치로 전환하고 원본을 보존하며, `/resume`을 사용하여 돌아갈 수 있습니다. 별칭: `/fork`. [`CLAUDE_CODE_FORK_SUBAGENT`](/ko/env-vars)가 설정되면, `/fork`는 대신 [forked subagent](/ko/sub-agents#fork-the-current-conversation)를 생성하며 더 이상 이 명령어의 별칭이 아닙니다 |

26| `/btw <question>` | 대화에 추가하지 않고 빠른 [side question](/ko/interactive-mode#side-questions-with-%2Fbtw)을 합니다 |28| `/btw <question>` | 대화에 추가하지 않고 빠른 [side question](/ko/interactive-mode#side-questions-with-%2Fbtw)을 합니다 |

27| `/chrome` | [Claude in Chrome](/ko/chrome) 설정을 구성합니다 |29| `/chrome` | [Claude in Chrome](/ko/chrome) 설정을 구성합니다 |

28| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/ko/skills#bundled-skills).** 프로젝트의 언어(Python, TypeScript, Java, Go, Ruby, C#, PHP 또는 cURL) 및 Managed Agents 참조에 대한 Claude API 참조 자료를 로드합니다. 도구 사용, 스트리밍, 배치, 구조화된 출력 및 일반적인 함정을 다룹니다. 또한 코드가 `anthropic` 또는 `@anthropic-ai/sdk`를 가져올 때 자동으로 활성화됩니다. `/claude-api migrate`를 실행하여 기존 Claude API 코드를 최신 모델로 업그레이드합니다. Claude는 스캔할 파일과 대상 모델을 묻고, 모델 ID, thinking 구성 및 버전 간에 변경된 기타 매개변수를 업데이트합니다. `/claude-api managed-agents-onboard`를 실행하여 처음부터 새로운 Managed Agent를 만드는 대화형 안내를 받습니다 |30| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/ko/skills#bundled-skills).** 프로젝트의 언어(Python, TypeScript, Java, Go, Ruby, C#, PHP 또는 cURL) 및 Managed Agents 참조에 대한 Claude API 참조 자료를 로드합니다. 도구 사용, 스트리밍, 배치, 구조화된 출력 및 일반적인 함정을 다룹니다. 또한 코드가 `anthropic` 또는 `@anthropic-ai/sdk`를 가져올 때 자동으로 활성화됩니다. `/claude-api migrate`를 실행하여 기존 Claude API 코드를 최신 모델로 업그레이드합니다. Claude는 스캔할 파일과 대상 모델을 묻고, 모델 ID, thinking 구성 및 버전 간에 변경된 기타 매개변수를 업데이트합니다. `/claude-api managed-agents-onboard`를 실행하여 처음부터 새로운 Managed Agent를 만드는 대화형 안내를 받습니다 |

29| `/clear` | 빈 컨텍스트로 새 대화를 시작합니다. 이전 대화는 `/resume`에서 사용 가능하게 유지됩니다. 같은 대화를 계속하면서 컨텍스트를 확보하려면 `/compact`를 대신 사용하세요. 별칭: `/reset`, `/new` |31| `/clear` | 빈 컨텍스트로 새 대화를 시작합니다. 이전 대화는 `/resume`에서 사용 가능하게 유지됩니다. 같은 대화를 계속하면서 컨텍스트를 확보하려면 `/compact`를 대신 사용하세요. 별칭: `/reset`, `/new` |

30| `/color [color\|default]` | 현재 세션의 프롬프트 바 색상을 설정합니다. 사용 가능한 색상: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. 초기화하려면 `default`를 사용합니다. [Remote Control](/ko/remote-control)이 연결되면 색상이 claude.ai/code와 동기화됩니다 |32| `/color [color\|default]` | 현재 세션의 프롬프트 바 색상을 설정합니다. 사용 가능한 색상: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. 초기화하려면 `default`를 사용합니다. 인수 없이 실행하면 무작위 색상을 선택합니다. [Remote Control](/ko/remote-control)이 연결되면 색상이 claude.ai/code와 동기화됩니다 |

31| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약에 대한 포커스 지침을 전달합니다. [compaction이 규칙, skills 및 메모리 파일을 처리하는 방법](/ko/context-window#what-survives-compaction)을 참조하세요 |33| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약에 대한 포커스 지침을 전달합니다. [compaction이 규칙, skills 및 메모리 파일을 처리하는 방법](/ko/context-window#what-survives-compaction)을 참조하세요 |

32| `/config` | [Settings](/ko/settings) 인터페이스를 열어 테마, 모델, [output style](/ko/output-styles) 및 기타 기본 설정을 조정합니다. 별칭: `/settings` |34| `/config` | [Settings](/ko/settings) 인터페이스를 열어 테마, 모델, [output style](/ko/output-styles) 및 기타 기본 설정을 조정합니다. 별칭: `/settings` |

33| `/context` | 현재 컨텍스트 사용량을 색상 그리드로 시각화합니다. 컨텍스트 집약적 도구, 메모리 부풀림 및 용량 경고에 대한 최적화 제안을 표시합니다 |35| `/context` | 현재 컨텍스트 사용량을 색상 그리드로 시각화합니다. 컨텍스트 집약적 도구, 메모리 부풀림 및 용량 경고에 대한 최적화 제안을 표시합니다 |


83| `/setup-bedrock` | [Amazon Bedrock](/ko/amazon-bedrock) 인증, 지역 및 모델 핀을 대화형 마법사를 통해 구성합니다. `CLAUDE_CODE_USE_BEDROCK=1`이 설정되어 있을 때만 표시됩니다. 처음 Bedrock을 사용하는 사용자는 로그인 화면에서도 이 마법사에 액세스할 수 있습니다 |85| `/setup-bedrock` | [Amazon Bedrock](/ko/amazon-bedrock) 인증, 지역 및 모델 핀을 대화형 마법사를 통해 구성합니다. `CLAUDE_CODE_USE_BEDROCK=1`이 설정되어 있을 때만 표시됩니다. 처음 Bedrock을 사용하는 사용자는 로그인 화면에서도 이 마법사에 액세스할 수 있습니다 |

84| `/setup-vertex` | [Google Vertex AI](/ko/google-vertex-ai) 인증, 프로젝트, 지역 및 모델 핀을 대화형 마법사를 통해 구성합니다. `CLAUDE_CODE_USE_VERTEX=1`이 설정되어 있을 때만 표시됩니다. 처음 Vertex AI를 사용하는 사용자는 로그인 화면에서도 이 마법사에 액세스할 수 있습니다 |86| `/setup-vertex` | [Google Vertex AI](/ko/google-vertex-ai) 인증, 프로젝트, 지역 및 모델 핀을 대화형 마법사를 통해 구성합니다. `CLAUDE_CODE_USE_VERTEX=1`이 설정되어 있을 때만 표시됩니다. 처음 Vertex AI를 사용하는 사용자는 로그인 화면에서도 이 마법사에 액세스할 수 있습니다 |

85| `/simplify [focus]` | **[Skill](/ko/skills#bundled-skills).** 최근에 변경된 파일을 코드 재사용, 품질 및 효율성 문제에 대해 검토한 다음 수정합니다. 3개의 검토 agent를 병렬로 생성하고, 해당 결과를 집계하고, 수정 사항을 적용합니다. 특정 관심사에 초점을 맞추기 위해 텍스트를 전달합니다: `/simplify focus on memory efficiency` |87| `/simplify [focus]` | **[Skill](/ko/skills#bundled-skills).** 최근에 변경된 파일을 코드 재사용, 품질 및 효율성 문제에 대해 검토한 다음 수정합니다. 3개의 검토 agent를 병렬로 생성하고, 해당 결과를 집계하고, 수정 사항을 적용합니다. 특정 관심사에 초점을 맞추기 위해 텍스트를 전달합니다: `/simplify focus on memory efficiency` |

86| `/skills` | 사용 가능한 [skills](/ko/skills)를 나열합니다. `t`를 눌러 토큰 수로 정렬합니다 |88| `/skills` | 사용 가능한 [skills](/ko/skills)를 나열합니다. `t`를 눌러 토큰 수로 정렬합니다. `Space`를 눌러 [Claude 또는 `/` 메뉴에서 skill을 숨기고](/ko/skills#override-skill-visibility-from-settings), `Enter`를 눌러 저장합니다 |

87| `/stats` | `/usage`의 별칭입니다. Stats 탭에서 엽니다 |89| `/stats` | `/usage`의 별칭입니다. Stats 탭에서 엽니다 |

88| `/status` | 버전, 모델, 계정 및 연결성을 표시하는 Settings 인터페이스(Status 탭)를 엽니다. Claude가 응답하는 동안 현재 응답이 완료될 때까지 기다리지 않고 작동합니다 |90| `/status` | 버전, 모델, 계정 및 연결성을 표시하는 Settings 인터페이스(Status 탭)를 엽니다. Claude가 응답하는 동안 현재 응답이 완료될 때까지 기다리지 않고 작동합니다 |

89| `/statusline` | Claude Code의 [status line](/ko/statusline)을 구성합니다. 원하는 내용을 설명하거나 인수 없이 실행하여 셸 프롬프트에서 자동으로 구성합니다 |91| `/statusline` | Claude Code의 [status line](/ko/statusline)을 구성합니다. 원하는 내용을 설명하거나 인수 없이 실행하여 셸 프롬프트에서 자동으로 구성합니다 |

90| `/stickers` | Claude Code 스티커를 주문합니다 |92| `/stickers` | Claude Code 스티커를 주문합니다 |

91| `/tasks` | 백그라운드 작업을 나열하고 관리합니다. `/bashes`로도 사용 가능합니다 |93| `/tasks` | 백그라운드 작업을 나열하고 관리합니다. `/bashes`로도 사용 가능합니다 |

92| `/team-onboarding` | Claude Code 사용 기록에서 팀 온보딩 가이드를 생성합니다. Claude는 지난 30일간의 세션, 명령어 및 MCP 서버 사용을 분석하고 팀원이 첫 메시지로 붙여넣어 빠르게 설정할 수 있는 markdown 가이드를 생성합니다 |94| `/team-onboarding` | Claude Code 사용 기록에서 팀 온보딩 가이드를 생성합니다. Claude는 지난 30일간의 세션, 명령어 및 MCP 서버 사용을 분석하고 팀원이 첫 메시지로 붙여넣어 빠르게 설정할 수 있는 markdown 가이드를 생성합니다. claude.ai 구독자의 Pro, Max, Team 및 Enterprise 요금제의 경우, 팀원이 Claude Code에서 직접 열 수 있는 공유 링크도 반환합니다 |

93| `/teleport` | [Claude Code on the web](/ko/claude-code-on-the-web#from-web-to-terminal) 세션을 이 터미널로 가져옵니다. 선택기를 열고 브랜치와 대화를 가져옵니다. `/tp`로도 사용 가능합니다. claude.ai 구독이 필요합니다 |95| `/teleport` | [Claude Code on the web](/ko/claude-code-on-the-web#from-web-to-terminal) 세션을 이 터미널로 가져옵니다. 선택기를 열고 브랜치와 대화를 가져옵니다. `/tp`로도 사용 가능합니다. claude.ai 구독이 필요합니다 |

94| `/terminal-setup` | Shift+Enter 및 기타 바로 가기에 대한 터미널 키바인딩을 구성합니다. VS Code, Cursor, Windsurf, Alacritty 또는 Zed와 같이 필요한 터미널에서만 표시됩니다 |96| `/terminal-setup` | Shift+Enter 및 기타 바로 가기에 대한 터미널 키바인딩을 구성합니다. VS Code, Cursor, Windsurf, Alacritty 또는 Zed와 같이 필요한 터미널에서만 표시됩니다 |

95| `/theme` | 색상 테마를 변경합니다. 터미널의 어두운 또는 밝은 배경을 따르는 `auto` 옵션, 밝은 색과 어두운 색 변형, 색맹 접근 가능(daltonized) 테마, 터미널의 색상 팔레트를 사용하는 ANSI 테마 및 `~/.claude/themes/` 또는 plugins의 [custom themes](/ko/terminal-config#create-a-custom-theme)를 포함합니다. \*\*New custom theme…\*\*를 선택하여 새로 만듭니다 |97| `/theme` | 색상 테마를 변경합니다. 터미널의 어두운 또는 밝은 배경을 따르는 `auto` 옵션, 밝은 색과 어두운 색 변형, 색맹 접근 가능(daltonized) 테마, 터미널의 색상 팔레트를 사용하는 ANSI 테마 및 `~/.claude/themes/` 또는 plugins의 [custom themes](/ko/terminal-config#create-a-custom-theme)를 포함합니다. \*\*New custom theme…\*\*를 선택하여 새로 만듭니다 |

Details

8 8 

9Claude가 명령을 무시하거나 구성한 기능이 나타나지 않을 때, 원인은 보통 파일이 로드되지 않았거나, 예상과 다른 위치에서 로드되었거나, 다른 파일이 이를 재정의했기 때문입니다. 이 가이드는 Claude Code가 실제로 로드한 항목을 검사하여 어느 경우에 해당하는지 좁혀나가는 방법을 보여줍니다.9Claude가 명령을 무시하거나 구성한 기능이 나타나지 않을 때, 원인은 보통 파일이 로드되지 않았거나, 예상과 다른 위치에서 로드되었거나, 다른 파일이 이를 재정의했기 때문입니다. 이 가이드는 Claude Code가 실제로 로드한 항목을 검사하여 어느 경우에 해당하는지 좁혀나가는 방법을 보여줍니다.

10 10 

11설치, 인증 및 연결 문제의 경우 대신 [문제 해결](/ko/troubleshoot-install)을 참조하십시오.11설치, 인증 및 연결 문제의 경우 대신 [설치 및 로그인 문제 해결](/ko/troubleshoot-install)을 참조하십시오.

12 12 

13## 컨텍스트에 로드된 항목 확인13## 컨텍스트에 로드된 항목 확인

14 14 


17특정 카테고리에 대한 세부 정보는 전용 명령으로 팔로우업합니다:17특정 카테고리에 대한 세부 정보는 전용 명령으로 팔로우업합니다:

18 18 

19| 명령 | 표시 내용 |19| 명령 | 표시 내용 |

20| :------------- | :--------------------------------- |20| :--------------- | :------------------------------------------------------------- |

21| `/memory` | 로드된 `CLAUDE.md` 및 규칙 파일, 자동 메모리 항목 |21| `/memory` | 로드된 `CLAUDE.md` 및 규칙 파일, 자동 메모리 항목 |

22| `/skills` | 프로젝트, 사용자 및 플러그인 소스의 사용 가능한 스킬 |22| `/skills` | 프로젝트, 사용자 및 플러그인 소스의 사용 가능한 스킬 |

23| `/agents` | 구성된 서브에이전트 및 해당 설정 |23| `/agents` | 구성된 서브에이전트 및 해당 설정 |


25| `/mcp` | 연결된 MCP 서버 및 해당 상태 |25| `/mcp` | 연결된 MCP 서버 및 해당 상태 |

26| `/permissions` | 현재 적용 중인 허용 및 거부 규칙 |26| `/permissions` | 현재 적용 중인 허용 및 거부 규칙 |

27| `/doctor` | 구성 진단: 잘못된 키, 스키마 오류, 설치 상태 |27| `/doctor` | 구성 진단: 잘못된 키, 스키마 오류, 설치 상태 |

28| `/debug [issue]` | 세션에 대해 디버그 로깅을 활성화하고 Claude가 로그 출력 및 설정 경로를 사용하여 진단하도록 프롬프트합니다 |

28| `/status` | 활성 설정 소스, 관리 설정이 적용 중인지 여부 포함 |29| `/status` | 활성 설정 소스, 관리 설정이 적용 중인지 여부 포함 |

29 30 

30메모리 파일이 `/memory`에서 누락된 경우, [CLAUDE.md 파일이 로드되는 방식](/ko/memory#how-claude-md-files-load)에 대해 해당 위치를 확인합니다. 하위 디렉토리 `CLAUDE.md` 파일은 Claude가 Read 도구로 해당 디렉토리의 파일을 읽을 때 요청 시 로드되며, 세션 시작 시가 아닙니다.31메모리 파일이 `/memory`에서 누락된 경우, [CLAUDE.md 파일이 로드되는 방식](/ko/memory#how-claude-md-files-load)에 대해 해당 위치를 확인합니다. 하위 디렉토리 `CLAUDE.md` 파일은 Claude가 Read 도구로 해당 디렉토리의 파일을 읽을 때 요청 시 로드되며, 세션 시작 시가 아닙니다.


41 42 

42설정은 관리, 사용자, 프로젝트 및 로컬 범위에 걸쳐 병합됩니다. 관리 설정은 존재할 때 항상 우선합니다. 나머지 중에서는 더 가까운 범위가 로컬, 프로젝트, 사용자 순서로 더 넓은 범위를 재정의합니다. 일부 설정은 또한 명령줄 플래그 또는 [환경 변수](/ko/env-vars)로 설정할 수 있으며, 이는 또 다른 재정의 계층으로 작동합니다. 설정이 적용되지 않는 것처럼 보일 때, 설정한 값은 보통 다른 범위 또는 환경 변수에 의해 재정의되고 있습니다.43설정은 관리, 사용자, 프로젝트 및 로컬 범위에 걸쳐 병합됩니다. 관리 설정은 존재할 때 항상 우선합니다. 나머지 중에서는 더 가까운 범위가 로컬, 프로젝트, 사용자 순서로 더 넓은 범위를 재정의합니다. 일부 설정은 또한 명령줄 플래그 또는 [환경 변수](/ko/env-vars)로 설정할 수 있으며, 이는 또 다른 재정의 계층으로 작동합니다. 설정이 적용되지 않는 것처럼 보일 때, 설정한 값은 보통 다른 범위 또는 환경 변수에 의해 재정의되고 있습니다.

43 44 

44`/doctor`를 실행하여 구성 파일을 검증하고 잘못된 키 또는 스키마 오류를 표시합니다. `/status`를 실행하여 관리 설정이 적용 중인지 여부를 포함하여 활성 설정 소스를 확인합니다. 주어진 키에 대해 어느 범위가 우선하는지 이해하려면 [범위가 상호작용하는 방식](/ko/settings#how-scopes-interact)을 참조합니다.45`/doctor`를 실행하여 구성 파일을 검증하고 잘못된 키 또는 스키마 오류를 표시합니다. `/doctor` 문제를 보고할 때, `f`를 눌러 진단 보고서를 Claude에게 보내고 Claude가 수정 사항을 안내하도록 합니다.

46 

47`/status`를 실행하여 관리 설정이 적용 중인지 여부를 포함하여 활성 설정 소스를 확인합니다. 주어진 키에 대해 어느 범위가 우선하는지 이해하려면 [범위가 상호작용하는 방식](/ko/settings#how-scopes-interact)을 참조합니다.

45 48 

46## MCP 서버 확인49## MCP 서버 확인

47 50 


63 66 

64`/hooks`가 훅을 표시하지만 여전히 실행되지 않으면, 다음 단계는 훅 평가를 실시간으로 감시하는 것입니다. `claude --debug hooks`로 세션을 시작하고 도구 호출을 트리거합니다. 디버그 로그는 각 이벤트, 확인된 매처 및 훅의 종료 코드와 출력을 기록합니다. 로그 형식은 [훅 디버깅](/ko/hooks#debug-hooks)을 참조하고 일반적인 실패 패턴은 [훅 문제 해결](/ko/hooks-guide#limitations-and-troubleshooting)을 참조합니다.67`/hooks`가 훅을 표시하지만 여전히 실행되지 않으면, 다음 단계는 훅 평가를 실시간으로 감시하는 것입니다. `claude --debug hooks`로 세션을 시작하고 도구 호출을 트리거합니다. 디버그 로그는 각 이벤트, 확인된 매처 및 훅의 종료 코드와 출력을 기록합니다. 로그 형식은 [훅 디버깅](/ko/hooks#debug-hooks)을 참조하고 일반적인 실패 패턴은 [훅 문제 해결](/ko/hooks-guide#limitations-and-troubleshooting)을 참조합니다.

65 68 

66## 일반적인 원인69## 깨끗한 구성에 대해 테스트

70 

71대상 확인이 원인을 격리하지 못하거나 구성이 알 수 없는 상태에 있으면, 일반적인 설정에서 아무것도 로드하지 않는 세션과 비교합니다. [`CLAUDE_CONFIG_DIR`](/ko/env-vars)을 빈 디렉토리로 지정하여 `~/.claude` 아래의 모든 항목을 우회하고, 프로젝트 구성도 건너뛰도록 `.claude` 폴더, `.mcp.json` 또는 `CLAUDE.md`가 없는 디렉토리에서 시작합니다.

72 

73```bash theme={null}

74cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude

75```

76 

77깨끗한 세션에는 사용자 또는 프로젝트 설정, 훅, MCP 서버, 플러그인 또는 메모리가 없습니다.

78 

79* 조직이 배포하는 경우 관리 설정은 여전히 적용됩니다. 이들은 `~/.claude` 외부의 시스템 경로에 있기 때문입니다.

80* Linux 및 Windows에서는 자격 증명이 구성 디렉토리 아래에 저장되므로 다시 로그인하라는 메시지가 표시됩니다.

81* macOS에서는 자격 증명이 Keychain에 있으며 깨끗한 세션으로 이월됩니다.

82 

83문제가 여기서 사라지면, 원인은 실제 `~/.claude` 또는 프로젝트 `.claude` 파일 어딘가에 있습니다. 임시 디렉토리에 파일을 복사하거나 프로젝트에서 시작하여 한 번에 하나씩 다시 도입하여 어느 것인지 찾습니다. 깨끗한 세션에서 지속되면, 원인은 사용자 및 프로젝트 구성 외부에 있습니다. `/status`를 실행하여 관리 설정이 적용 중인지 확인하고, Claude Code에 영향을 미치는 [환경 변수](/ko/env-vars)를 찾은 다음, [문제 해결](/ko/troubleshooting)을 참조합니다.

84 

85## 일반적인 원인 확인

67 86 

68대부분의 구성 놀라움은 작은 위치 및 구문 규칙 집합으로 추적됩니다. 버그라고 가정하기 전에 다음을 확인합니다:87대부분의 구성 놀라움은 작은 위치 및 구문 규칙 집합으로 추적됩니다. 버그라고 가정하기 전에 다음을 확인합니다:

69 88 


80| 서브에이전트가 `CLAUDE.md` 명령을 무시합니다 | 서브에이전트는 항상 프로젝트 메모리를 상속하지 않습니다 | 중요한 규칙을 에이전트 파일 본문에 넣습니다. 이는 서브에이전트의 시스템 프롬프트가 됩니다. [서브에이전트 구성](/ko/sub-agents)을 참조합니다. |99| 서브에이전트가 `CLAUDE.md` 명령을 무시합니다 | 서브에이전트는 항상 프로젝트 메모리를 상속하지 않습니다 | 중요한 규칙을 에이전트 파일 본문에 넣습니다. 이는 서브에이전트의 시스템 프롬프트가 됩니다. [서브에이전트 구성](/ko/sub-agents)을 참조합니다. |

81| 정리 로직이 세션 종료 시 절대 실행되지 않습니다 | `SessionEnd` 훅이 구성되지 않았습니다 | `settings.json`에 `SessionEnd` 훅을 추가합니다. [훅 이벤트 목록](/ko/hooks#hook-events)을 참조합니다. |100| 정리 로직이 세션 종료 시 절대 실행되지 않습니다 | `SessionEnd` 훅이 구성되지 않았습니다 | `settings.json`에 `SessionEnd` 훅을 추가합니다. [훅 이벤트 목록](/ko/hooks#hook-events)을 참조합니다. |

82| `.mcp.json`의 MCP 서버가 절대 로드되지 않습니다 | 파일이 `.claude/` 아래에 있거나 Claude Desktop의 구성 형식을 사용합니다 | 프로젝트 MCP 구성은 `.claude/` 내부가 아니라 저장소 루트에 `.mcp.json`으로 이동합니다. [MCP 구성](/ko/mcp)을 참조합니다. |101| `.mcp.json`의 MCP 서버가 절대 로드되지 않습니다 | 파일이 `.claude/` 아래에 있거나 Claude Desktop의 구성 형식을 사용합니다 | 프로젝트 MCP 구성은 `.claude/` 내부가 아니라 저장소 루트에 `.mcp.json`으로 이동합니다. [MCP 구성](/ko/mcp)을 참조합니다. |

102| `settings.json`의 `mcpServers` 아래에 추가된 MCP 서버가 절대 나타나지 않습니다 | `settings.json`은 `mcpServers` 키를 읽지 않습니다 | 저장소 루트의 `.mcp.json`에서 프로젝트 서버를 정의하거나, 사용자 범위 서버의 경우 `claude mcp add --scope user`를 실행합니다. [MCP 구성](/ko/mcp)을 참조합니다. |

83| 프로젝트 MCP 서버가 추가되었지만 나타나지 않습니다 | 일회성 승인 프롬프트가 해제되었습니다 | 프로젝트 범위 서버는 승인이 필요합니다. `/mcp`를 실행하여 상태를 확인하고 승인합니다. |103| 프로젝트 MCP 서버가 추가되었지만 나타나지 않습니다 | 일회성 승인 프롬프트가 해제되었습니다 | 프로젝트 범위 서버는 승인이 필요합니다. `/mcp`를 실행하여 상태를 확인하고 승인합니다. |

84| MCP 서버가 일부 디렉토리에서 시작하지 못합니다 | `command` 또는 `args`가 상대 파일 경로를 사용합니다 | 로컬 스크립트에 절대 경로를 사용합니다. `npx` 또는 `uvx`와 같은 `PATH`의 실행 파일은 그대로 작동합니다. |104| MCP 서버가 일부 디렉토리에서 시작하지 못합니다 | `command` 또는 `args`가 상대 파일 경로를 사용합니다 | 로컬 스크립트에 절대 경로를 사용합니다. `npx` 또는 `uvx`와 같은 `PATH`의 실행 파일은 그대로 작동합니다. |

85| MCP 서버가 예상 환경 변수 없이 시작됩니다 | 변수가 `settings.json` `env`에 있으며, MCP 자식 프로세스로 전파되지 않습니다 | 대신 `.mcp.json` 내부에 서버별 `env`를 설정합니다. |105| MCP 서버가 예상 환경 변수 없이 시작됩니다 | 변수가 `settings.json` `env`에 있으며, MCP 자식 프로세스로 전파되지 않습니다 | 대신 `.mcp.json` 내부에 서버별 `env`를 설정합니다. |

Details

4 4 

5# 마켓플레이스를 통해 미리 빌드된 플러그인 발견 및 설치5# 마켓플레이스를 통해 미리 빌드된 플러그인 발견 및 설치

6 6 

7> 마켓플레이스에서 플러그인을 찾아 설치하여 Claude Code를 새로운 명령어, 에이전트 및 기능으로 확장합니다.7> 마켓플레이스에서 플러그인을 찾아 설치하여 Claude Code를 새로운 skills, agents 및 기능으로 확장합니다.

8 8 

9플러그인은 Claude Code를 skills, agents, hooks 및 MCP servers로 확장합니다. 플러그인 마켓플레이스는 직접 빌드하지 않고도 이러한 확장 기능을 발견하고 설치할 수 있도록 도와주는 카탈로그입니다.9플러그인은 Claude Code를 skills, agents, hooks 및 MCP servers로 확장합니다. 플러그인 마켓플레이스는 직접 빌드하지 않고도 이러한 확장 기능을 발견하고 설치할 수 있도록 도와주는 카탈로그입니다.

10 10 


36/plugin install github@claude-plugins-official36/plugin install github@claude-plugins-official

37```37```

38 38 

39Claude Code가 플러그인을 어떤 마켓플레이스에서도 찾을 수 없다고 보고하면 마켓플레이스가 누락되었거나 오래되었을 수 있습니다. `/plugin marketplace update claude-plugins-official`을 실행하여 새로 고치거나, 이전에 추가하지 않았다면 `/plugin marketplace add anthropics/claude-plugins-official`을 실행합니다. 그런 다음 설치를 다시 시도합니다.

40 

39<Note>41<Note>

40 공식 마켓플레이스는 Anthropic에서 유지 관리합니다. 공식 마켓플레이스에 플러그인을 제출하려면 다음 앱 내 제출 양식 중 하나를 사용하세요:42 공식 마켓플레이스는 Anthropic에서 유지 관리합니다. 공식 마켓플레이스에 플러그인을 제출하려면 다음 앱 내 제출 양식 중 하나를 사용하세요:

41 43 


95 97 

96### 개발 워크플로우98### 개발 워크플로우

97 99 

98일반적인 개발 작업을 위한 명령어에이전트를 추가하는 플러그인:100일반적인 개발 작업을 위한 skillsagents를 추가하는 플러그인:

99 101 

100* **commit-commands**: commit, push 및 PR 생성을 포함한 Git commit 워크플로우102* **commit-commands**: commit, push 및 PR 생성을 포함한 Git commit 워크플로우

101* **pr-review-toolkit**: pull request 검토를 위한 특화된 에이전트103* **pr-review-toolkit**: pull request 검토를 위한 특화된 agents

102* **agent-sdk-dev**: Claude Agent SDK로 빌드하기 위한 도구104* **agent-sdk-dev**: Claude Agent SDK로 빌드하기 위한 도구

103* **plugin-dev**: 자신의 플러그인을 만들기 위한 도구 모음105* **plugin-dev**: 자신의 플러그인을 만들기 위한 도구 모음

104 106 


142 * **Project scope**: 이 저장소의 모든 협력자를 위해 설치144 * **Project scope**: 이 저장소의 모든 협력자를 위해 설치

143 * **Local scope**: 이 저장소에서만 자신을 위해 설치145 * **Local scope**: 이 저장소에서만 자신을 위해 설치

144 146 

145 예를 들어 **commit-commands**(git 워크플로우 명령어를 추가하는 플러그인)를 선택하고 사용자 범위에 설치합니다.147 예를 들어 **commit-commands**(git 워크플로우 skills를 추가하는 플러그인)를 선택하고 사용자 범위에 설치합니다.

146 148 

147 명령줄에서 직접 설치할 수도 있습니다:149 명령줄에서 직접 설치할 수도 있습니다:

148 150 


154 </Step>156 </Step>

155 157 

156 <Step title="새 플러그인 사용">158 <Step title="새 플러그인 사용">

157 설치 후 `/reload-plugins`를 실행하여 플러그인을 활성화합니다. 플러그인 명령어는 플러그인 이름으로 네임스페이스되므로 **commit-commands**는 `/commit-commands:commit`과 같은 명령어를 제공합니다.159 설치 후 `/reload-plugins`를 실행하여 플러그인을 활성화합니다. 플러그인 skills는 플러그인 이름으로 네임스페이스되므로 **commit-commands**는 `/commit-commands:commit`과 같은 skills를 제공합니다.

158 160 

159 파일을 변경하고 다음을 실행하여 시도해보세요:161 파일을 변경하고 다음을 실행하여 시도해보세요:

160 162 


164 166 

165 이는 변경 사항을 스테이징하고, commit 메시지를 생성하며, commit을 만듭니다.167 이는 변경 사항을 스테이징하고, commit 메시지를 생성하며, commit을 만듭니다.

166 168 

167 각 플러그인은 다르게 작동합니다. **Discover** 탭의 플러그인 설명이나 해당 홈페이지를 확인하여 제공하는 명령어 및 기능을 알아보세요.169 각 플러그인은 다르게 작동합니다. **Discover** 탭의 플러그인 설명이나 해당 홈페이지를 확인하여 제공하는 skills 및 기능을 알아보세요.

168 </Step>170 </Step>

169</Steps>171</Steps>

170 172 


195 197 

196### 다른 Git 호스트에서 추가198### 다른 Git 호스트에서 추가

197 199 

198전체 URL을 제공하여 모든 git 저장소를 추가합니다. 이는 GitLab, Bitbucket 및 자체 호스팅 서버를 포함한 모든 Git 호스트에서 작동합니다:200전체 URL을 제공하여 모든 git 저장소를 추가합니다. 이는 GitLab, Bitbucket 및 자체 호스팅 서버를 포함한 모든 Git 호스트에서 작동합니다. `.git` 접미사를 포함하여 Claude Code가 URL을 호스팅된 `marketplace.json` 파일에 대한 직접 링크로 취급하지 않고 저장소를 복제하도록 합니다.

199 201 

200HTTPS 사용:202HTTPS 사용:

201 203 


257 259 

258**managed** 범위의 플러그인도 볼 수 있습니다. 이는 관리자가 [관리되는 설정](/ko/settings#settings-files)을 통해 설치하며 수정할 수 없습니다.260**managed** 범위의 플러그인도 볼 수 있습니다. 이는 관리자가 [관리되는 설정](/ko/settings#settings-files)을 통해 설치하며 수정할 수 없습니다.

259 261 

260`/plugin`을 실행하고 **Installed** 탭으로 이동하여 범위별로 그룹화된 플러그인을 확인합니다.

261 

262<Warning>262<Warning>

263 플러그인을 설치하기 전에 신뢰할 수 있는지 확인하세요. Anthropic은 플러그인에 포함된 MCP servers, 파일 또는 기타 소프트웨어를 제어하지 않으며 의도한 대로 작동하는지 확인할 수 없습니다. 자세한 내용은 각 플러그인의 홈페이지를 확인하세요.263 플러그인을 설치하기 전에 신뢰할 수 있는지 확인하세요. Anthropic은 플러그인에 포함된 MCP servers, 파일 또는 기타 소프트웨어를 제어하지 않으며 의도한 대로 작동하는지 확인할 수 없습니다. 자세한 내용은 각 플러그인의 홈페이지를 확인하세요.

264</Warning>264</Warning>

265 265 

266## 설치된 플러그인 관리266## 설치된 플러그인 관리

267 267 

268`/plugin`을 실행하고 **Installed** 탭으로 이동하여 플러그인을 보고, 활성화하고, 비활성화하거나, 제거합니다. 플러그인 이름 또는 설명으로 목록을 필터링하려면 입력합니다.268`/plugin`을 실행하고 **Installed** 탭으로 이동하여 플러그인을 보고, 활성화하고, 비활성화하거나, 제거합니다. 목록은 범위별로 그룹화되고 문제가 먼저 표시되도록 정렬됩니다: 로드 오류 또는 해결되지 않은 종속성이 있는 플러그인이 맨 위에 나타나고, 그 다음 즐겨찾기가 나타나며, 비활성화된 플러그인은 맨 아래의 축소된 헤더 뒤에 접혀 있습니다.

269 

270목록에서 다음을 수행할 수 있습니다:

271 

272* `f`를 눌러 선택한 플러그인을 즐겨찾기에 추가하거나 제거

273* 입력하여 플러그인 이름 또는 설명으로 필터링

274* Enter를 눌러 플러그인의 세부 정보 보기를 열고 활성화, 비활성화 또는 제거

275 

276종속성을 선언하는 플러그인을 설치하면 설치 출력에 함께 자동 설치된 종속성이 나열됩니다.

269 277 

270직접 명령어로 플러그인을 관리할 수도 있습니다.278직접 명령어로 플러그인을 관리할 수도 있습니다.

271 279 


400 408 

4011. **버전 확인**: `claude --version`을 실행하여 설치된 항목을 확인합니다.4091. **버전 확인**: `claude --version`을 실행하여 설치된 항목을 확인합니다.

4022. **Claude Code 업데이트**:4102. **Claude Code 업데이트**:

403 * **Homebrew**: `brew upgrade claude-code`411 * **Homebrew**: `brew upgrade claude-code`(또는 해당 cask를 설치한 경우 `brew upgrade claude-code@latest`)

404 * **npm**: `npm update -g @anthropic-ai/claude-code`412 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

405 * **네이티브 설치 프로그램**: [설정](/ko/setup)에서 설치 명령어를 다시 실행합니다.413 * **네이티브 설치 프로그램**: [설정](/ko/setup)에서 설치 명령어를 다시 실행합니다.

4063. **Claude Code 재시작**: 업데이트 후 터미널을 재시작하고 `claude`를 다시 실행합니다.4143. **Claude Code 재시작**: 업데이트 후 터미널을 재시작하고 `claude`를 다시 실행합니다.

407 415 

env-vars.md +15 −9

Details

41| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] 백그라운드 작업용 [Haiku 클래스 모델](/ko/costs)의 이름 |41| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] 백그라운드 작업용 [Haiku 클래스 모델](/ko/costs)의 이름 |

42| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Bedrock 또는 Bedrock Mantle 사용 시 Haiku 클래스 모델의 AWS 리전 재정의 |42| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Bedrock 또는 Bedrock Mantle 사용 시 Haiku 클래스 모델의 AWS 리전 재정의 |

43| `ANTHROPIC_VERTEX_BASE_URL` | Vertex AI 엔드포인트 URL을 재정의합니다. 사용자 정의 Vertex 엔드포인트 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |43| `ANTHROPIC_VERTEX_BASE_URL` | Vertex AI 엔드포인트 URL을 재정의합니다. 사용자 정의 Vertex 엔드포인트 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |

44| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI용 GCP 프로젝트 ID입니다. [Google Vertex AI](/ko/google-vertex-ai) 사용 시 필수입니다. |44| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 요청용 GCP 프로젝트 ID입니다. `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` 또는 `GOOGLE_APPLICATION_CREDENTIALS` 자격 증명 파일의 프로젝트로 재정의됩니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |

45| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초)(기본값: 600000, 또는 10분; 최대: 2147483647). 느린 네트워크에서 요청이 시간 초과되거나 프록시를 통해 라우팅할 때 이를 증가시킵니다. 최대값을 초과하는 값은 기본 타이머를 오버플로우하여 요청이 즉시 실패하게 합니다. |45| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초)(기본값: 600000, 또는 10분; 최대: 2147483647). 느린 네트워크에서 요청이 시간 초과되거나 프록시를 통해 라우팅할 때 이를 증가시킵니다. 최대값을 초과하는 값은 기본 타이머를 오버플로우하여 요청이 즉시 실패하게 합니다. |

46| `AWS_BEARER_TOKEN_BEDROCK` | 인증용 Bedrock API 키([Bedrock API 키](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) 참조) |46| `AWS_BEARER_TOKEN_BEDROCK` | 인증용 Bedrock API 키([Bedrock API 키](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) 참조) |

47| `BASH_DEFAULT_TIMEOUT_MS` | 장시간 실행되는 bash 명령의 기본 타임아웃(기본값: 120000, 또는 2분) |47| `BASH_DEFAULT_TIMEOUT_MS` | 장시간 실행되는 bash 명령의 기본 타임아웃(기본값: 120000, 또는 2분) |


51| `CLAUDECODE` | Claude Code가 생성하는 셸 환경(Bash 도구, tmux 세션)에서 `1`로 설정합니다. [훅](/ko/hooks) 또는 [상태 줄](/ko/statusline) 명령에서는 설정되지 않습니다. Claude Code가 생성한 셸 내에서 스크립트가 실행 중인지 감지하는 데 사용합니다. |51| `CLAUDECODE` | Claude Code가 생성하는 셸 환경(Bash 도구, tmux 세션)에서 `1`로 설정합니다. [훅](/ko/hooks) 또는 [상태 줄](/ko/statusline) 명령에서는 설정되지 않습니다. Claude Code가 생성한 셸 내에서 스크립트가 실행 중인지 감지하는 데 사용합니다. |

52| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [subagent](/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정합니다. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. |52| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [subagent](/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정합니다. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. |

53| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | SDK에서 생성한 MCP 서버의 도구 이름에서 `mcp__<server>__` 접두사를 건너뛰려면 `1`로 설정합니다. 도구는 원래 이름을 사용합니다. SDK 사용만 해당 |53| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | SDK에서 생성한 MCP 서버의 도구 이름에서 `mcp__<server>__` 접두사를 건너뛰려면 `1`로 설정합니다. 도구는 원래 이름을 사용합니다. SDK 사용만 해당 |

54| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 백그라운드 subagent의 정체 타임아웃(밀리초). 기본값 `600000`(10분). 타이머는 각 스트리밍 진행 이벤트에서 재설정됩니다. 윈도우 내에 진행이 도착하지 않으면 subagent가 중단되고 작업이 실패로 표시되며 부분 결과가 부모에게 표시됩니다. |

54| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 컨텍스트 용량의 백분율(1-100)을 설정합니다. 기본적으로 자동 압축은 약 95% 용량에서 트리거됩니다. `50`과 같은 낮은 값을 사용하여 더 일찍 압축합니다. 기본 임계값보다 높은 값은 효과가 없습니다. 주 대화와 subagent 모두에 적용됩니다. 이 백분율은 [상태 줄](/ko/statusline)에서 사용 가능한 `context_window.used_percentage` 필드와 일치합니다. |55| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 컨텍스트 용량의 백분율(1-100)을 설정합니다. 기본적으로 자동 압축은 약 95% 용량에서 트리거됩니다. `50`과 같은 낮은 값을 사용하여 더 일찍 압축합니다. 기본 임계값보다 높은 값은 효과가 없습니다. 주 대화와 subagent 모두에 적용됩니다. 이 백분율은 [상태 줄](/ko/statusline)에서 사용 가능한 `context_window.used_percentage` 필드와 일치합니다. |

55| `CLAUDE_AUTO_BACKGROUND_TASKS` | 장시간 실행되는 에이전트 작업의 자동 백그라운드 처리를 강제로 활성화하려면 `1`로 설정합니다. 활성화되면 subagent는 약 2분 동안 실행한 후 백그라운드로 이동합니다. |56| `CLAUDE_AUTO_BACKGROUND_TASKS` | 장시간 실행되는 에이전트 작업의 자동 백그라운드 처리를 강제로 활성화하려면 `1`로 설정합니다. 활성화되면 subagent는 약 2분 동안 실행한 후 백그라운드로 이동합니다. |

56| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다. |57| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다. |


59| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고쳐야 하는 간격(밀리초)([`apiKeyHelper`](/ko/settings#available-settings) 사용 시) |60| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고쳐야 하는 간격(밀리초)([`apiKeyHelper`](/ko/settings#available-settings) 사용 시) |

60| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 시스템 프롬프트의 시작 부분에서 속성 블록(클라이언트 버전 및 프롬프트 지문)을 생략하려면 `0`으로 설정합니다. 비활성화하면 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 프롬프트 캐시 히트율이 향상됩니다. Anthropic API 캐싱은 영향을 받지 않습니다. |61| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 시스템 프롬프트의 시작 부분에서 속성 블록(클라이언트 버전 및 프롬프트 지문)을 생략하려면 `0`으로 설정합니다. 비활성화하면 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 프롬프트 캐시 히트율이 향상됩니다. Anthropic API 캐싱은 영향을 받지 않습니다. |

61| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 자동 압축 계산에 사용되는 컨텍스트 용량을 토큰 단위로 설정합니다. 기본값은 모델의 컨텍스트 윈도우입니다: 표준 모델의 경우 200K 또는 [확장 컨텍스트](/ko/model-config#extended-context) 모델의 경우 1M입니다. 1M 모델에서 `500000`과 같은 낮은 값을 사용하여 압축 목적상 윈도우를 500K로 취급합니다. 값은 모델의 실제 컨텍스트 윈도우로 제한됩니다. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 이 값의 백분율로 적용됩니다. 이 변수를 설정하면 압축 임계값이 상태 줄의 `used_percentage`에서 분리되며, 이는 항상 모델의 전체 컨텍스트 윈도우를 사용합니다. |62| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 자동 압축 계산에 사용되는 컨텍스트 용량을 토큰 단위로 설정합니다. 기본값은 모델의 컨텍스트 윈도우입니다: 표준 모델의 경우 200K 또는 [확장 컨텍스트](/ko/model-config#extended-context) 모델의 경우 1M입니다. 1M 모델에서 `500000`과 같은 낮은 값을 사용하여 압축 목적상 윈도우를 500K로 취급합니다. 값은 모델의 실제 컨텍스트 윈도우로 제한됩니다. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 이 값의 백분율로 적용됩니다. 이 변수를 설정하면 압축 임계값이 상태 줄의 `used_percentage`에서 분리되며, 이는 항상 모델의 전체 컨텍스트 윈도우를 사용합니다. |

62| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널 내에서 실행될 때 자동으로 연결됩니다. 이를 방지하려면 `false`로 설정합니다. tmux가 부모 터미널을 가리는 경우와 같이 자동 감지가 실패할 때 연결을 강제하려면 `true`로 설정합니다. |63| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널 내에서 실행될 때 자동으로 연결됩니다. 이를 방지하려면 `false`로 설정합니다. tmux가 부모 터미널을 가리는 경우와 같이 자동 감지가 실패할 때 연결을 강제하려면 `true`로 설정합니다. [`autoConnectIde`](/ko/settings#global-config-settings) 전역 구성 설정보다 우선합니다. |

63| `CLAUDE_CODE_CERT_STORE` | TLS 연결을 위한 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 저장소입니다. 기본값은 `bundled,system`입니다. 시스템 저장소 통합을 위해서는 기본 바이너리 배포가 필요합니다. Node.js 런타임에서는 이 값과 관계없이 번들 세트만 사용됩니다. |64| `CLAUDE_CODE_CERT_STORE` | TLS 연결을 위한 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 저장소입니다. 기본값은 `bundled,system`입니다. |

64| `CLAUDE_CODE_CLIENT_CERT` | mTLS 인증용 클라이언트 인증서 파일의 경로 |65| `CLAUDE_CODE_CLIENT_CERT` | mTLS 인증용 클라이언트 인증서 파일의 경로 |

65| `CLAUDE_CODE_CLIENT_KEY` | mTLS 인증용 클라이언트 개인 키 파일의 경로 |66| `CLAUDE_CODE_CLIENT_KEY` | mTLS 인증용 클라이언트 개인 키 파일의 경로 |

66| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 암호화된 CLAUDE\_CODE\_CLIENT\_KEY의 암호(선택 사항) |67| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 암호화된 CLAUDE\_CODE\_CLIENT\_KEY의 암호(선택 사항) |


68| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 디버그 로그 파일에 기록되는 최소 로그 수준입니다. 값: `verbose`, `debug`(기본값), `info`, `warn`, `error`. 전체 상태 줄 명령 출력과 같은 대용량 진단을 포함하려면 `verbose`로 설정하거나, 노이즈를 줄이려면 `error`로 올립니다. |69| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 디버그 로그 파일에 기록되는 최소 로그 수준입니다. 값: `verbose`, `debug`(기본값), `info`, `warn`, `error`. 전체 상태 줄 명령 출력과 같은 대용량 진단을 포함하려면 `verbose`로 설정하거나, 노이즈를 줄이려면 `error`로 올립니다. |

69| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |70| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |

70| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. Opus 4.7에는 효과가 없으며, 항상 적응형 추론을 사용합니다. |71| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. Opus 4.7에는 효과가 없으며, 항상 적응형 추론을 사용합니다. |

72| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | [전체 화면 렌더링](/ko/fullscreen)을 비활성화하려면 `1`로 설정합니다. 대화가 터미널의 기본 스크롤백에 남아 있으므로 `Cmd+f` 및 tmux 복사 모드가 평소처럼 작동합니다. `CLAUDE_CODE_NO_FLICKER` 및 [`tui`](/ko/settings#available-settings) 설정보다 우선합니다. `/tui default`로도 전환할 수 있습니다. |

71| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정합니다. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다. |73| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정합니다. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다. |

72| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [자동 메모리](/ko/memory#auto-memory)를 비활성화하려면 `1`로 설정합니다. 점진적 롤아웃 중에 자동 메모리를 강제로 켜려면 `0`으로 설정합니다. 비활성화되면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다. |74| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [자동 메모리](/ko/memory#auto-memory)를 비활성화하려면 `1`로 설정합니다. `0`으로 설정하여 `--bare` 모드 또는 [`autoMemoryEnabled: false`](/ko/settings#available-settings)가 그렇지 않으면 비활성화할 때에도 자동 메모리를 강제로 켭니다. 비활성화되면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다. |

73| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Bash 및 subagent 도구의 `run_in_background` 매개변수, 자동 백그라운드 처리, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화하려면 `1`로 설정합니다. |75| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Bash 및 subagent 도구의 `run_in_background` 매개변수, 자동 백그라운드 처리, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화하려면 `1`로 설정합니다. |

74| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 사용자, 프로젝트, 자동 메모리 파일을 포함한 모든 CLAUDE.md 메모리 파일을 컨텍스트에 로드하지 않으려면 `1`로 설정합니다. |76| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 사용자, 프로젝트, 자동 메모리 파일을 포함한 모든 CLAUDE.md 메모리 파일을 컨텍스트에 로드하지 않으려면 `1`로 설정합니다. |

75| `CLAUDE_CODE_DISABLE_CRON` | [예약된 작업](/ko/scheduled-tasks)을 비활성화하려면 `1`로 설정합니다. `/loop` skill과 cron 도구를 사용할 수 없게 되고 이미 예약된 모든 작업이 중지되며, 세션 중에 이미 실행 중인 작업을 포함한 모든 작업이 실행되지 않습니다. |77| `CLAUDE_CODE_DISABLE_CRON` | [예약된 작업](/ko/scheduled-tasks)을 비활성화하려면 `1`로 설정합니다. `/loop` skill과 cron 도구를 사용할 수 없게 되고 이미 예약된 모든 작업이 중지되며, 세션 중에 이미 실행 중인 작업을 포함한 모든 작업이 실행되지 않습니다. |

76| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Anthropic 특정 `anthropic-beta` 요청 헤더 및 베타 도구 스키마 필드(`defer_loading` 및 `eager_input_streaming` 등)를 API 요청에서 제거하려면 `1`로 설정합니다. 프록시 게이트웨이가 "Unexpected value(s) for the `anthropic-beta` header" 또는 "Extra inputs are not permitted"와 같은 오류로 요청을 거부할 때 사용합니다. 표준 필드(`name`, `description`, `input_schema`, `cache_control`)는 유지됩니다. |78| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Anthropic 특정 `anthropic-beta` 요청 헤더 및 베타 도구 스키마 필드(`defer_loading` 및 `eager_input_streaming` 등)를 API 요청에서 제거하려면 `1`로 설정합니다. 프록시 게이트웨이가 "Unexpected value(s) for the `anthropic-beta` header" 또는 "Extra inputs are not permitted"와 같은 오류로 요청을 거부할 때 사용합니다. 표준 필드(`name`, `description`, `input_schema`, `cache_control`)는 유지됩니다. |

77| `CLAUDE_CODE_DISABLE_FAST_MODE` | [빠른 모드](/ko/fast-mode)를 비활성화하려면 `1`로 설정합니다. |79| `CLAUDE_CODE_DISABLE_FAST_MODE` | [빠른 모드](/ko/fast-mode)를 비활성화하려면 `1`로 설정합니다. |

78| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 비활성화하려면 `1`로 설정합니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되면 설문조사도 비활성화됩니다. [세션 품질 설문조사](/ko/data-usage#session-quality-surveys) 참조 |80| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 비활성화하려면 `1`로 설정합니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되면 설문조사도 비활성화됩니다. 설문조사 샘플 레이트를 설정하려면 [`feedbackSurveyRate`](/ko/settings#available-settings) 설정을 사용합니다. [세션 품질 설문조사](/ko/data-usage#session-quality-surveys) 참조 |

79| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 파일 [체크포인팅](/ko/checkpointing)을 비활성화하려면 `1`로 설정합니다. `/rewind` 명령이 코드 변경 사항을 복원할 수 없습니다. |81| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 파일 [체크포인팅](/ko/checkpointing)을 비활성화하려면 `1`로 설정합니다. `/rewind` 명령이 코드 변경 사항을 복원할 수 없습니다. |

80| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Claude의 시스템 프롬프트에서 기본 제공 커밋 및 PR 워크플로우 지침과 git 상태 스냅샷을 제거하려면 `1`로 설정합니다. 자신의 git 워크플로우 skill을 사용할 때 유용합니다. 설정하면 [`includeGitInstructions`](/ko/settings#available-settings) 설정보다 우선합니다. |82| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Claude의 시스템 프롬프트에서 기본 제공 커밋 및 PR 워크플로우 지침과 git 상태 스냅샷을 제거하려면 `1`로 설정합니다. 자신의 git 워크플로우 skill을 사용할 때 유용합니다. 설정하면 [`includeGitInstructions`](/ko/settings#available-settings) 설정보다 우선합니다. |

81| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API에서 Opus 4.0 및 4.1을 현재 Opus 버전으로 자동 재매핑하지 않으려면 `1`로 설정합니다. 의도적으로 이전 모델을 고정하려는 경우 사용합니다. 재매핑은 Bedrock, Vertex 또는 Foundry에서 실행되지 않습니다. |83| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API에서 Opus 4.0 및 4.1을 현재 Opus 버전으로 자동 재매핑하지 않으려면 `1`로 설정합니다. 의도적으로 이전 모델을 고정하려는 경우 사용합니다. 재매핑은 Bedrock, Vertex 또는 Foundry에서 실행되지 않습니다. |


90| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 노력 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max`, 또는 `auto`(모델 기본값 사용). 사용 가능한 수준은 모델에 따라 다릅니다. `/effort` 및 `effortLevel` 설정보다 우선합니다. [노력 수준 조정](/ko/model-config#adjust-effort-level) 참조 |92| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 노력 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max`, 또는 `auto`(모델 기본값 사용). 사용 가능한 수준은 모델에 따라 다릅니다. `/effort` 및 `effortLevel` 설정보다 우선합니다. [노력 수준 조정](/ko/model-config#adjust-effort-level) 참조 |

91| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/ko/interactive-mode#session-recap) 가용성을 재정의합니다. 재개를 강제로 끄려면 `0`으로 설정합니다. [`awaySummaryEnabled`](/ko/settings#available-settings)가 `false`일 때 재개를 강제로 켜려면 `1`로 설정합니다. 설정 및 `/config` 토글보다 우선합니다. |93| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/ko/interactive-mode#session-recap) 가용성을 재정의합니다. 재개를 강제로 끄려면 `0`으로 설정합니다. [`awaySummaryEnabled`](/ko/settings#available-settings)가 `false`일 때 재개를 강제로 켜려면 `1`로 설정합니다. 설정 및 `/config` 토글보다 우선합니다. |

92| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | [비대화형 모드](/ko/headless)에서 백그라운드 설치가 완료된 후 턴 경계에서 플러그인 상태를 새로 고치려면 `1`로 설정합니다. 새로 고침이 세션 중간에 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다. |94| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | [비대화형 모드](/ko/headless)에서 백그라운드 설치가 완료된 후 턴 경계에서 플러그인 상태를 새로 고치려면 `1`로 설정합니다. 새로 고침이 세션 중간에 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다. |

93| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 세밀한 도구 입력 스트리밍을 강제로 활성화하려면 `1`로 설정합니다. 이 없으면 API는 도구 입력 매개변수를 완전히 버퍼링한 델타 이벤트를 전송하므로 도구 입력에서 표시가 지연될 수 있습니다. Anthropic API만 해당: Bedrock, Vertex 또는 Foundry에는 효과가 없습니다. |95| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 도구 호출 입력이 Claude가 생성할 API에서 스트리밍되는지 여부를 제어합니다. 이 없으면 파일 쓰기와 같은 도구 입력이 Claude가 생성을 완료한 후에만 도착하므로 중단된 것처럼 보일 수 있습니다. 직접 Anthropic API 연결에 대해 기본적으로 활성화됩니다. 옵트아웃하려면 `0`으로 설정합니다. 서버 측 기본값이 꺼져 있을 때에도 강제로 활성화하려면 `1`로 설정합니다. Bedrock, Vertex, Foundry 또는 [게이트웨이](/ko/llm-gateway) 연결에는 효과가 없습니다. |

96| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `ANTHROPIC_BASE_URL`이 LiteLLM, Kong 또는 내부 프록시와 같은 Anthropic 호환 게이트웨이를 가리킬 때 게이트웨이의 `/v1/models` 엔드포인트에서 `/model` 선택기를 채우려면 `1`로 설정합니다. 공유 API 키로 지원되는 게이트웨이는 그렇지 않으면 모든 사용자에게 키가 액세스할 수 있는 모든 모델을 표시하므로 기본적으로 꺼져 있습니다. 검색된 모델은 여전히 [`availableModels`](/ko/settings#available-settings) 허용 목록으로 필터링됩니다. |

94| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 프롬프트 제안을 비활성화하려면 `false`로 설정합니다(`/config`의 "프롬프트 제안" 토글). 이는 Claude가 응답한 후 프롬프트 입력에 나타나는 회색으로 표시된 예측입니다. [프롬프트 제안](/ko/interactive-mode#prompt-suggestions) 참조 |97| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 프롬프트 제안을 비활성화하려면 `false`로 설정합니다(`/config`의 "프롬프트 제안" 토글). 이는 Claude가 응답한 후 프롬프트 입력에 나타나는 회색으로 표시된 예측입니다. [프롬프트 제안](/ko/interactive-mode#prompt-suggestions) 참조 |

95| `CLAUDE_CODE_ENABLE_TASKS` | 비대화형 모드(`-p` 플래그)에서 작업 추적 시스템을 활성화하려면 `1`로 설정합니다. 작업은 대화형 모드에서 기본적으로 켜져 있습니다. [작업 목록](/ko/interactive-mode#task-list) 참조 |98| `CLAUDE_CODE_ENABLE_TASKS` | 비대화형 모드(`-p` 플래그)에서 작업 추적 시스템을 활성화하려면 `1`로 설정합니다. 작업은 대화형 모드에서 기본적으로 켜져 있습니다. [작업 목록](/ko/interactive-mode#task-list) 참조 |

96| `CLAUDE_CODE_ENABLE_TELEMETRY` | 메트릭 및 로깅을 위한 OpenTelemetry 데이터 수집을 활성화하려면 `1`로 설정합니다. OTel 내보내기를 구성하기 전에 필수입니다. [모니터링](/ko/monitoring-usage) 참조 |99| `CLAUDE_CODE_ENABLE_TELEMETRY` | 메트릭 및 로깅을 위한 OpenTelemetry 데이터 수집을 활성화하려면 `1`로 설정합니다. OTel 내보내기를 구성하기 전에 필수입니다. [모니터링](/ko/monitoring-usage) 참조 |


98| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/ko/agent-teams)을 활성화하려면 `1`로 설정합니다. 에이전트 팀은 실험적이며 기본적으로 비활성화됩니다. |101| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/ko/agent-teams)을 활성화하려면 `1`로 설정합니다. 에이전트 팀은 실험적이며 기본적으로 비활성화됩니다. |

99| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준으로 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 공급자 특정 매개변수를 전달하는 데 유용합니다. |102| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준으로 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 공급자 특정 매개변수를 전달하는 데 유용합니다. |

100| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 전체 파일을 읽어야 할 때 유용합니다. |103| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 전체 파일을 읽어야 할 때 유용합니다. |

104| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 터미널이 지원하지만 자동 감지되지 않을 때 DEC 개인 모드 2026 [동기화된 출력](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)을 강제로 활성화하려면 `1`로 설정합니다. Emacs `eat`과 같은 BSU/ESU를 구현하지만 기능 프로브에 응답하지 않는 에뮬레이터에 유용합니다. tmux에서는 효과가 없습니다. |

101| `CLAUDE_CODE_FORK_SUBAGENT` | [포크된 subagent](/ko/sub-agents#fork-the-current-conversation)를 활성화하려면 `1`로 설정합니다. 포크된 subagent는 새로 시작하는 대신 주 세션에서 전체 대화 컨텍스트를 상속합니다. 활성화되면 `/fork`는 [`/branch`](/ko/commands)의 별칭으로 작동하는 대신 포크된 subagent를 생성하며, 모든 subagent 생성은 백그라운드에서 실행됩니다. 대화형 모드와 SDK 또는 `claude -p`를 통해 작동합니다. |105| `CLAUDE_CODE_FORK_SUBAGENT` | [포크된 subagent](/ko/sub-agents#fork-the-current-conversation)를 활성화하려면 `1`로 설정합니다. 포크된 subagent는 새로 시작하는 대신 주 세션에서 전체 대화 컨텍스트를 상속합니다. 활성화되면 `/fork`는 [`/branch`](/ko/commands)의 별칭으로 작동하는 대신 포크된 subagent를 생성하며, 모든 subagent 생성은 백그라운드에서 실행됩니다. 대화형 모드와 SDK 또는 `claude -p`를 통해 작동합니다. |

102| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되었지만 PATH에 없을 때 사용합니다. [Windows 설정](/ko/setup#set-up-on-windows) 참조 |106| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되었지만 PATH에 없을 때 사용합니다. [Windows 설정](/ko/setup#set-up-on-windows) 참조 |

103| `CLAUDE_CODE_GLOB_HIDDEN` | Claude가 [Glob 도구](/ko/tools-reference)를 호출할 때 결과에서 dotfile을 제외하려면 `false`로 설정합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep 또는 Read에는 영향을 주지 않습니다. |107| `CLAUDE_CODE_GLOB_HIDDEN` | Claude가 [Glob 도구](/ko/tools-reference)를 호출할 때 결과에서 dotfile을 제외하려면 `false`로 설정합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep 또는 Read에는 영향을 주지 않습니다. |


120| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하는 타임아웃(밀리초)(기본값: 5000). [모니터링](/ko/monitoring-usage) 참조 |124| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하는 타임아웃(밀리초)(기본값: 5000). [모니터링](/ko/monitoring-usage) 참조 |

121| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)(기본값: 1740000 / 29분). [동적 헤더](/ko/monitoring-usage#dynamic-headers) 참조 |125| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)(기본값: 1740000 / 29분). [동적 헤더](/ko/monitoring-usage#dynamic-headers) 참조 |

122| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 내보내기가 완료되는 타임아웃(밀리초)(기본값: 2000). 메트릭이 종료 시 삭제되면 증가시킵니다. [모니터링](/ko/monitoring-usage) 참조 |126| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 내보내기가 완료되는 타임아웃(밀리초)(기본값: 2000). 메트릭이 종료 시 삭제되면 증가시킵니다. [모니터링](/ko/monitoring-usage) 참조 |

127| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 새 버전을 사용할 수 있을 때 Claude Code가 백그라운드에서 패키지 관리자의 업그레이드 명령을 실행하도록 하려면 `1`로 설정합니다. Homebrew 및 WinGet 설치에 적용됩니다. 다른 패키지 관리자는 업그레이드 명령을 실행하지 않고 계속 표시합니다. [자동 업데이트](/ko/setup#auto-updates) 참조 |

123| `CLAUDE_CODE_PERFORCE_MODE` | Perforce 인식 쓰기 보호를 활성화하려면 `1`로 설정합니다. 설정하면 대상 파일이 소유자 쓰기 비트가 없으면 Edit, Write, NotebookEdit이 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 `p4 edit`이 파일을 열 때까지 동기화된 파일에서 이를 지웁니다. 이는 Claude Code가 Perforce 변경 추적을 우회하지 않도록 방지합니다. |128| `CLAUDE_CODE_PERFORCE_MODE` | Perforce 인식 쓰기 보호를 활성화하려면 `1`로 설정합니다. 설정하면 대상 파일이 소유자 쓰기 비트가 없으면 Edit, Write, NotebookEdit이 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 `p4 edit`이 파일을 열 때까지 동기화된 파일에서 이를 지웁니다. 이는 Claude Code가 Perforce 변경 추적을 우회하지 않도록 방지합니다. |

124| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉토리를 재정의합니다. 이름과 달리 이는 캐시 자체가 아닌 부모 디렉토리를 설정합니다: 마켓플레이스 및 플러그인 캐시는 이 경로 아래의 하위 디렉토리에 있습니다. 기본값은 `~/.claude/plugins`입니다. |129| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉토리를 재정의합니다. 이름과 달리 이는 캐시 자체가 아닌 부모 디렉토리를 설정합니다: 마켓플레이스 및 플러그인 캐시는 이 경로 아래의 하위 디렉토리에 있습니다. 기본값은 `~/.claude/plugins`입니다. |

125| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인을 설치하거나 업데이트할 때 git 작업의 타임아웃(밀리초)(기본값: 120000). 큰 리포지토리 또는 느린 네트워크 연결의 경우 이 값을 증가시킵니다. [Git 작업 시간 초과](/ko/plugin-marketplaces#git-operations-time-out) 참조 |130| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인을 설치하거나 업데이트할 때 git 작업의 타임아웃(밀리초)(기본값: 120000). 큰 리포지토리 또는 느린 네트워크 연결의 경우 이 값을 증가시킵니다. [Git 작업 시간 초과](/ko/plugin-marketplaces#git-operations-time-out) 참조 |


131| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동으로 설정됩니다. 세션 트랜스크립트로 다시 연결하는 링크를 구성하려면 이를 읽습니다. [세션으로 아티팩트 다시 연결](/ko/claude-code-on-the-web#link-artifacts-back-to-the-session) 참조 |136| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동으로 설정됩니다. 세션 트랜스크립트로 다시 연결하는 링크를 구성하려면 이를 읽습니다. [세션으로 아티팩트 다시 연결](/ko/claude-code-on-the-web#link-artifacts-back-to-the-session) 참조 |

132| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 중간에 끝난 경우 자동으로 재개하려면 `1`로 설정합니다. SDK 모드에서 사용되므로 모델이 SDK가 프롬프트를 다시 전송할 필요 없이 계속됩니다. |137| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 중간에 끝난 경우 자동으로 재개하려면 `1`로 설정합니다. SDK 모드에서 사용되므로 모델이 SDK가 프롬프트를 다시 전송할 필요 없이 계속됩니다. |

133| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정되었을 때 세션당 특정 스크립트를 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트에 대해 일치하는 부분 문자열입니다. 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 2번 호출할 수 있습니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)`과 같은 셸 확장 트릭도 여전히 제한에 포함됩니다. `xargs` 또는 `find -exec`을 통한 런타임 팬아웃은 감지되지 않습니다. 이는 심층 방어 제어입니다. |138| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정되었을 때 세션당 특정 스크립트를 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트에 대해 일치하는 부분 문자열입니다. 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 2번 호출할 수 있습니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)`과 같은 셸 확장 트릭도 여전히 제한에 포함됩니다. `xargs` 또는 `find -exec`을 통한 런타임 팬아웃은 감지되지 않습니다. 이는 심층 방어 제어입니다. |

134| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배수를 설정합니다. 1부터 20까지의 값을 허용합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내는 경우 `vim`과 일치하도록 `3`으로 설정합니다. |139| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배수를 설정합니다. 1부터 20까지의 값을 허용합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내는 경우 `vim`과 일치하도록 `3`으로 설정합니다. JetBrains IDE 터미널에서는 무시되며, Claude Code는 자체 스크롤 처리를 사용합니다. |

135| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본적으로 예산은 1.5초이며, 설정 파일에서 구성된 가장 높은 훅별 `timeout`으로 자동으로 올라가며, 최대 60초입니다. 플러그인 제공 훅의 타임아웃은 예산을 올리지 않습니다. |140| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본적으로 예산은 1.5초이며, 설정 파일에서 구성된 가장 높은 훅별 `timeout`으로 자동으로 올라가며, 최대 60초입니다. 플러그인 제공 훅의 타임아웃은 예산을 올리지 않습니다. |

141| `CLAUDE_CODE_SESSION_ID` | Bash 및 PowerShell 도구 subprocess에서 현재 세션 ID로 자동으로 설정됩니다. [훅](/ko/hooks)에 전달된 `session_id` 필드와 일치합니다. `/clear`에서 업데이트됩니다. 스크립트 및 외부 도구를 Claude Code 세션과 연관시키는 데 사용합니다. |

136| `CLAUDE_CODE_SHELL` | 자동 셸 감지를 재정의합니다. 로그인 셸이 선호하는 작업 셸과 다를 때 유용합니다(예: `bash` vs `zsh`). |142| `CLAUDE_CODE_SHELL` | 자동 셸 감지를 재정의합니다. 로그인 셸이 선호하는 작업 셸과 다를 때 유용합니다(예: `bash` vs `zsh`). |

137| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 모든 셸 명령을 래핑할 명령 접두사: Bash 도구 호출, [훅](/ko/hooks) 명령, stdio [MCP 서버](/ko/mcp) 시작 명령. 로깅 또는 감사에 유용합니다. 예: `/path/to/logger.sh`를 설정하면 각 명령을 `/path/to/logger.sh <command>`로 실행합니다. |143| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 모든 셸 명령을 래핑할 명령 접두사: Bash 도구 호출, [훅](/ko/hooks) 명령, stdio [MCP 서버](/ko/mcp) 시작 명령. 로깅 또는 감사에 유용합니다. 예: `/path/to/logger.sh`를 설정하면 각 명령을 `/path/to/logger.sh <command>`로 실행합니다. |

138| `CLAUDE_CODE_SIMPLE` | 최소 시스템 프롬프트 및 Bash, 파일 읽기, 파일 편집 도구만으로 실행하려면 `1`로 설정합니다. `--mcp-config`의 MCP 도구는 계속 사용 가능합니다. 훅, skill, 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. [`--bare`](/ko/headless#start-faster-with-bare-mode) CLI 플래그가 이를 설정합니다. |144| `CLAUDE_CODE_SIMPLE` | 최소 시스템 프롬프트 및 Bash, 파일 읽기, 파일 편집 도구만으로 실행하려면 `1`로 설정합니다. `--mcp-config`의 MCP 도구는 계속 사용 가능합니다. 훅, skill, 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. [`--bare`](/ko/headless#start-faster-with-bare-mode) CLI 플래그가 이를 설정합니다. |


146| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Anthropic 및 클라우드 공급자 자격 증명을 subprocess 환경(Bash 도구, 훅, MCP stdio 서버)에서 제거하려면 `1`로 설정합니다. 부모 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로 셸 확장을 통해 비밀을 유출하려는 프롬프트 주입 공격에 대한 노출을 줄입니다. Linux에서는 Bash subprocess를 격리된 PID 네임스페이스에서도 실행하므로 `/proc`을 통해 호스트 프로세스 환경을 읽을 수 없습니다. 부작용으로 `ps`, `pgrep`, `kill`은 호스트 프로세스를 보거나 신호할 수 없습니다. `allowed_non_write_users`가 구성되면 `claude-code-action`이 자동으로 이를 설정합니다. |152| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Anthropic 및 클라우드 공급자 자격 증명을 subprocess 환경(Bash 도구, 훅, MCP stdio 서버)에서 제거하려면 `1`로 설정합니다. 부모 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로 셸 확장을 통해 비밀을 유출하려는 프롬프트 주입 공격에 대한 노출을 줄입니다. Linux에서는 Bash subprocess를 격리된 PID 네임스페이스에서도 실행하므로 `/proc`을 통해 호스트 프로세스 환경을 읽을 수 없습니다. 부작용으로 `ps`, `pgrep`, `kill`은 호스트 프로세스를 보거나 신호할 수 없습니다. `allowed_non_write_users`가 구성되면 `claude-code-action`이 자동으로 이를 설정합니다. |

147| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 대기하려면 `1`로 설정합니다. 이 없으면 플러그인이 백그라운드에서 설치되고 첫 번째 턴에서 사용하지 못할 수 있습니다. `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 결합하여 대기를 제한합니다. |153| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 대기하려면 `1`로 설정합니다. 이 없으면 플러그인이 백그라운드에서 설치되고 첫 번째 턴에서 사용하지 못할 수 있습니다. `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 결합하여 대기를 제한합니다. |

148| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기 플러그인 설치의 타임아웃(밀리초). 초과되면 Claude Code는 플러그인 없이 진행하고 오류를 기록합니다. 기본값 없음: 이 변수가 없으면 동기 설치는 완료될 때까지 대기합니다. |154| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기 플러그인 설치의 타임아웃(밀리초). 초과되면 Claude Code는 플러그인 없이 진행하고 오류를 기록합니다. 기본값 없음: 이 변수가 없으면 동기 설치는 완료될 때까지 대기합니다. |

149| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | diff 출력에서 구문 강조를 비활성화하려면 `false`로 설정합니다. 색상이 터미널 설정을 방해할 때 유용합니다. |155| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | diff 출력에서 구문 강조를 비활성화하려면 `false`로 설정합니다. 색상이 터미널 설정을 방해할 때 유용합니다. 코드 블록 및 파일 미리보기에서 강조를 비활성화하려면 [`syntaxHighlightingDisabled`](/ko/settings) 설정을 사용합니다. |

150| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. 여러 Claude Code 인스턴스에서 동일한 ID를 설정하여 공유 작업 목록에서 조정합니다. [작업 목록](/ko/interactive-mode#task-list) 참조 |156| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. 여러 Claude Code 인스턴스에서 동일한 ID를 설정하여 공유 작업 목록에서 조정합니다. [작업 목록](/ko/interactive-mode#task-list) 참조 |

151| `CLAUDE_CODE_TEAM_NAME` | 이 팀원이 속한 에이전트 팀의 이름입니다. [에이전트 팀](/ko/agent-teams) 멤버에서 자동으로 설정됩니다. |157| `CLAUDE_CODE_TEAM_NAME` | 이 팀원이 속한 에이전트 팀의 이름입니다. [에이전트 팀](/ko/agent-teams) 멤버에서 자동으로 설정됩니다. |

152| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용되는 임시 디렉토리를 재정의합니다. Claude Code는 이 경로에 `/claude-{uid}/`(Unix) 또는 `/claude/`(Windows)를 추가합니다. 기본값: macOS의 경우 `/tmp`, Linux/Windows의 경우 `os.tmpdir()` |158| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용되는 임시 디렉토리를 재정의합니다. Claude Code는 이 경로에 `/claude-{uid}/`(Unix) 또는 `/claude/`(Windows)를 추가합니다. 기본값: macOS의 경우 `/tmp`, Linux/Windows의 경우 `os.tmpdir()` |


181| `DISABLE_PROMPT_CACHING_HAIKU` | Haiku 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |187| `DISABLE_PROMPT_CACHING_HAIKU` | Haiku 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

182| `DISABLE_PROMPT_CACHING_OPUS` | Opus 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |188| `DISABLE_PROMPT_CACHING_OPUS` | Opus 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

183| `DISABLE_PROMPT_CACHING_SONNET` | Sonnet 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |189| `DISABLE_PROMPT_CACHING_SONNET` | Sonnet 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

184| `DISABLE_TELEMETRY` | Statsig 원격 분석을 거부하려면 `1`로 설정합니다(Statsig 이벤트에는 코드, 파일 경로 또는 bash 명령과 같은 사용자 데이터가 포함되지 않음). |190| `DISABLE_TELEMETRY` | 원격 분석을 거부하려면 `1`로 설정합니다. 원격 분석 이벤트에는 코드, 파일 경로 또는 bash 명령과 같은 사용자 데이터가 포함되지 않습니다. |

185| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 더 엄격합니다. 자신의 채널을 통해 Claude Code를 배포하고 사용자가 자체 업데이트하지 않아야 할 때 사용합니다. |191| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 더 엄격합니다. 자신의 채널을 통해 Claude Code를 배포하고 사용자가 자체 업데이트하지 않아야 할 때 사용합니다. |

186| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다. |192| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다. |

187| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code에서 [claude.ai MCP 서버](/ko/mcp#use-mcp-servers-from-claude-ai)를 비활성화하려면 `false`로 설정합니다. 로그인한 사용자의 경우 기본적으로 활성화됩니다. |193| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code에서 [claude.ai MCP 서버](/ko/mcp#use-mcp-servers-from-claude-ai)를 비활성화하려면 `false`로 설정합니다. 로그인한 사용자의 경우 기본적으로 활성화됩니다. |

errors.md +29 −7

Details

19터미널에 표시되는 메시지를 아래 섹션과 일치시킵니다.19터미널에 표시되는 메시지를 아래 섹션과 일치시킵니다.

20 20 

21| 메시지 | 섹션 |21| 메시지 | 섹션 |

22| :----------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |22| :----------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |

23| `API Error: 500 ... Internal server error` | [서버 오류](#api-error-500-internal-server-error) |23| `API Error: 500 ... Internal server error` | [서버 오류](#api-error-500-internal-server-error) |

24| `API Error: Repeated 529 Overloaded errors` | [서버 오류](#api-error-repeated-529-overloaded-errors) |24| `API Error: Repeated 529 Overloaded errors` | [서버 오류](#api-error-repeated-529-overloaded-errors) |

25| `Request timed out` | [서버 오류](#request-timed-out) 또는 메시지에 인터넷 연결이 언급된 경우 [네트워크](#unable-to-connect-to-api) |25| `Request timed out` | [서버 오류](#request-timed-out), 또는 메시지에 인터넷 연결이 언급된 경우 [네트워크](#unable-to-connect-to-api) |

26| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |26| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |

27| `You've hit your session limit` / `You've hit your weekly limit` | [사용 제한](#youve-hit-your-session-limit) |27| `You've hit your session limit` / `You've hit your weekly limit` | [사용 제한](#youve-hit-your-session-limit) |

28| `Server is temporarily limiting requests` | [사용 제한](#server-is-temporarily-limiting-requests) |28| `Server is temporarily limiting requests` | [사용 제한](#server-is-temporarily-limiting-requests) |


35| `does not meet scope requirement user:profile` | [인증](#oauth-scope-requirement) |35| `does not meet scope requirement user:profile` | [인증](#oauth-scope-requirement) |

36| `Unable to connect to API` | [네트워크](#unable-to-connect-to-api) |36| `Unable to connect to API` | [네트워크](#unable-to-connect-to-api) |

37| `SSL certificate verification failed` | [네트워크](#ssl-certificate-errors) |37| `SSL certificate verification failed` | [네트워크](#ssl-certificate-errors) |

38| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [네트워크](#host-not-allowed-in-a-cloud-session) |

38| `Prompt is too long` | [요청 오류](#prompt-is-too-long) |39| `Prompt is too long` | [요청 오류](#prompt-is-too-long) |

39| `Error during compaction: Conversation too long` | [요청 오류](#error-during-compaction-conversation-too-long) |40| `Error during compaction: Conversation too long` | [요청 오류](#error-during-compaction-conversation-too-long) |

40| `Request too large` | [요청 오류](#request-too-large) |41| `Request too large` | [요청 오류](#request-too-large) |


282 283 

283## 네트워크 및 연결 오류284## 네트워크 및 연결 오류

284 285 

285이러한 오류는 Claude Code가 API에 전혀 도달할 없음을 의미합니다. 거의 항상 Anthropic 인프라가 아닌 로컬 네트워크, 프록시 또는 방화벽에서 발생합니다.286이러한 오류는 Claude Code의 네트워크 요청이 목적지에 도달하지 못했음을 의미합니다. 일반적으로 로컬 네트워크, 프록시 또는 방화벽, 또는 클라우드 환경의 네트워크 정책에서 발생합니다.

286 287 

287### Unable to connect to API288### Unable to connect to API

288 289 


307* 방화벽이 [네트워크 액세스 요구 사항](/ko/network-config#network-access-requirements)에 나열된 호스트를 허용하는지 확인합니다.308* 방화벽이 [네트워크 액세스 요구 사항](/ko/network-config#network-access-requirements)에 나열된 호스트를 허용하는지 확인합니다.

308* 간헐적 오류는 [자동으로 재시도](#automatic-retries)됩니다. 지속적인 오류는 로컬 네트워크 문제를 나타냅니다.309* 간헐적 오류는 [자동으로 재시도](#automatic-retries)됩니다. 지속적인 오류는 로컬 네트워크 문제를 나타냅니다.

309 310 

310`curl`이 성공하지만 Claude Code가 여전히 실패하면 원인은 일반적으로 네트워크 자체가 아닌 Node.js와 네트워크 사이의 무언가입니다.311`curl`이 성공하지만 Claude Code가 여전히 실패하면 원인은 일반적으로 네트워크 자체가 아닌 런타임과 네트워크 사이의 무언가입니다.

311 312 

312* Linux 및 WSL에서 `/etc/resolv.conf`에서 도달할 수 없는 네임서버를 확인합니다. 특히 WSL은 호스트에서 손상된 리졸버를 상속할 수 있습니다.313* Linux 및 WSL에서 `/etc/resolv.conf`에서 도달할 수 없는 네임서버를 확인합니다. 특히 WSL은 호스트에서 손상된 리졸버를 상속할 수 있습니다.

313* macOS에서 연결이 끊어지거나 제거된 VPN 클라이언트는 터널 인터페이스 또는 라우팅 규칙을 남길 수 있습니다. `ifconfig`에서 오래된 `utun` 인터페이스를 확인하고 시스템 설정에서 VPN의 네트워크 확장을 제거합니다.314* macOS에서 연결이 끊어지거나 제거된 VPN 클라이언트는 터널 인터페이스 또는 라우팅 규칙을 남길 수 있습니다. `ifconfig`에서 오래된 `utun` 인터페이스를 확인하고 시스템 설정에서 VPN의 네트워크 확장을 제거합니다.


315 316 

316### SSL certificate errors317### SSL certificate errors

317 318 

318네트워크의 프록시 또는 보안 어플라이언스가 자체 인증서로 TLS 트래픽을 가로채고 있으며 Node.js가 이를 신뢰하지 않습니다.319네트워크의 프록시 또는 보안 어플라이언스가 자체 인증서로 TLS 트래픽을 가로채고 있으며 Claude Code가 이를 신뢰하지 않습니다.

319 320 

320```text theme={null}321```text theme={null}

321Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates322Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates


324 325 

325**할 일:**326**할 일:**

326 327 

327* 조직의 CA 번들을 내보내고 `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`으로 Node를 가리킵니다.328* 조직의 CA 번들을 내보내고 `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`으로 Claude Code를 가리킵니다.

328* 전체 설정 지침은 [네트워크 구성](/ko/network-config#custom-ca-certificates)을 참조하십시오.329* 전체 설정 지침은 [네트워크 구성](/ko/network-config#custom-ca-certificates)을 참조하십시오.

329* 인증서 검증을 완전히 비활성화하는 `NODE_TLS_REJECT_UNAUTHORIZED=0`을 설정하지 마십시오.330* 인증서 검증을 완전히 비활성화하는 `NODE_TLS_REJECT_UNAUTHORIZED=0`을 설정하지 마십시오.

330 331 

332### Host not allowed in a cloud session

333 

334클라우드 세션 또는 루틴의 아웃바운드 HTTP 요청이 환경의 네트워크 정책에 의해 차단되었습니다.

335 

336```text theme={null}

337HTTP 403

338x-deny-reason: host_not_allowed

339```

340 

341대상의 실제 인증서와 일치하지 않는 TLS 인증서도 표시될 수 있습니다. 클라우드 환경은 아웃바운드 트래픽을 네트워크 정책을 적용하는 프록시를 통해 라우팅하므로 인증서 불일치는 대상이 아닌 프록시가 연결을 종료했음을 의미합니다.

342 

343이것은 클라이언트 측 네트워크 문제가 아닙니다. 클라우드 세션 및 [루틴](/ko/routines)은 아웃바운드 트래픽이 환경의 허용 목록으로 필터링되는 샌드박스 환경 내에서 실행됩니다. **기본** 환경은 **신뢰할 수 있는** 액세스를 사용하며, 이는 패키지 레지스트리, 클라우드 공급자 API, 컨테이너 레지스트리 및 일반적인 개발 도메인의 [기본 허용 목록](/ko/claude-code-on-the-web#default-allowed-domains)을 허용하지만 다른 모든 것은 차단합니다.

344 

345**할 일:**

346 

347* 루틴을 편집하기 위해 열거나 클라우드 세션을 시작합니다. **기본**과 같은 환경 이름을 표시하는 클라우드 아이콘을 선택하여 선택기를 엽니다. 환경 위에 마우스를 올리고 설정 아이콘을 클릭합니다.

348* **클라우드 환경 업데이트** 대화 상자에서 **네트워크 액세스**를 **신뢰할 수 있는**에서 **사용자 정의**로 변경한 다음 차단된 도메인을 **허용된 도메인**에 추가합니다. 한 줄에 하나의 도메인을 입력합니다. **일반적인 패키지 관리자의 기본 목록도 포함**을 확인하여 사용자 정의 도메인과 함께 [기본 허용 목록](/ko/claude-code-on-the-web#default-allowed-domains)을 유지합니다. 제한 없는 액세스를 원하면 대신 **전체**를 선택합니다.

349* **변경 사항 저장**을 클릭합니다. 다음 실행은 업데이트된 허용 목록을 사용합니다.

350 

351액세스 수준 및 기본 허용 목록은 [네트워크 액세스](/ko/claude-code-on-the-web#network-access)를 참조하십시오. 로컬 CLI 세션은 이 정책의 영향을 받지 않습니다.

352 

331## 요청 오류353## 요청 오류

332 354 

333이러한 오류는 API가 요청을 수신했지만 내용을 거부했음을 의미합니다.355이러한 오류는 API가 요청을 수신했지만 내용을 거부했음을 의미합니다.


487**할 일:**509**할 일:**

488 510 

489* `MAX_THINKING_TOKENS`를 낮추거나 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/ko/env-vars)를 생각 예산 위로 높입니다.511* `MAX_THINKING_TOKENS`를 낮추거나 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/ko/env-vars)를 생각 예산 위로 높입니다.

490* [확장 생각](/ko/common-workflows#use-extended-thinking-thinking-mode)을 참조하여 예산이 출력 길이와 어떻게 상호 작용하는지 확인합니다.512* [확장 생각](/ko/model-config#extended-thinking)을 참조하여 예산이 출력 길이와 어떻게 상호 작용하는지 확인합니다.

491 513 

492### Tool use or thinking block mismatch514### Tool use or thinking block mismatch

493 515 

Details

219| **Subagents** | 생성 시 | 지정된 skill이 있는 신선한 컨텍스트 | 주 세션에서 격리됨 |219| **Subagents** | 생성 시 | 지정된 skill이 있는 신선한 컨텍스트 | 주 세션에서 격리됨 |

220| **Hooks** | 트리거 시 | 없음(외부에서 실행) | 0, hook이 추가 컨텍스트를 반환하지 않는 한 |220| **Hooks** | 트리거 시 | 없음(외부에서 실행) | 0, hook이 추가 컨텍스트를 반환하지 않는 한 |

221 221 

222\*기본적으로 skill 설명은 세션 시작 시 로드되므로 Claude가 사용할 시기를 결정할 수 있습니다. Skill의 frontmatter에서 `disable-model-invocation: true`를 설정하여 수동으로 호출할 때까지 Claude에서 완전히 숨깁니다. 이는 skill의 컨텍스트 비용을 0으로 줄입니다.222\*기본적으로 skill 설명은 세션 시작 시 로드되므로 Claude가 사용할 시기를 결정할 수 있습니다. Skill의 frontmatter에서 `disable-model-invocation: true`를 설정하여 수동으로 호출할 때까지 Claude에서 완전히 숨깁니다. 이는 skill의 컨텍스트 비용을 0으로 줄입니다. 작성하지 않은 skill의 경우, 파일을 편집하지 않고도 동일한 작업을 수행하도록 설정에서 [`skillOverrides`](/ko/skills#override-skill-visibility-from-settings)를 설정하세요.

223 223 

224### 기능이 어떻게 로드되는지 이해하기224### 기능이 어떻게 로드되는지 이해하기

225 225 

fullscreen.md +10 −2

Details

93 93 

94`3` 값은 `vim` 및 유사한 애플리케이션의 기본값과 일치합니다. 설정은 1에서 20 사이의 값을 허용합니다.94`3` 값은 `vim` 및 유사한 애플리케이션의 기본값과 일치합니다. 설정은 1에서 20 사이의 값을 허용합니다.

95 95 

96### JetBrains IDE 터미널에서 스크롤

97 

98JetBrains IDE 터미널에서 Claude Code는 자체 스크롤 처리를 적용하고 `CLAUDE_CODE_SCROLL_SPEED`를 무시합니다. 터미널은 다른 에뮬레이터보다 훨씬 높은 속도로 스크롤 이벤트를 보내므로 다른 곳에서 조정된 배수는 여기서 과도합니다.

99 

1002025.2에서 터미널에는 허위 화살표 키와 잘못된 방향 이벤트를 생성하는 스크롤 휠 버그도 있습니다. Claude Code는 런타임에 이를 감지하고 자동으로 완화하므로 트랙패드 및 마우스 휠 스크롤이 구성 없이 작동합니다. 최고의 스크롤 경험을 위해 2025.3 이상으로 업그레이드하십시오. Claude Code는 버그를 감지하면 처음 스크롤할 때 힌트를 표시합니다.

101 

96## 대화 검색 및 검토102## 대화 검색 및 검토

97 103 

98`Ctrl+o`는 일반 프롬프트와 트랜스크립트 모드 사이를 전환합니다. 마지막 프롬프트, 편집 diffstat가 있는 도구 호출의 한 줄 요약, 최종 응답만 표시하는 더 조용한 보기의 경우 `/focus`를 실행합니다. 설정은 세션 전체에 유지됩니다. 끄려면 `/focus`를 다시 실행합니다.104`Ctrl+o`는 일반 프롬프트와 트랜스크립트 모드 사이를 전환합니다. 마지막 프롬프트, 편집 diffstat가 있는 도구 호출의 한 줄 요약, 최종 응답만 표시하는 더 조용한 보기의 경우 `/focus`를 실행합니다. 설정은 세션 전체에 유지됩니다. 끄려면 `/focus`를 다시 실행합니다.


122 128 

123## tmux와 함께 사용129## tmux와 함께 사용

124 130 

125전체 화면 렌더링은 tmux 내에서 작동하며 가지 주의 사항이 있습니다.131전체 화면 렌더링은 tmux 내에서 작동하며 가지 주의 사항이 있습니다.

126 132 

127마우스 휠 스크롤에는 tmux의 마우스 모드가 필요합니다. `~/.tmux.conf`가 아직 활성화하지 않은 경우 이 줄을 추가하고 구성을 다시 로드합니다:133마우스 휠 스크롤에는 tmux의 마우스 모드가 필요합니다. `~/.tmux.conf`가 아직 활성화하지 않은 경우 이 줄을 추가하고 구성을 다시 로드합니다:

128 134 


134 140 

135전체 화면 렌더링은 iTerm2의 tmux 통합 모드와 호환되지 않습니다. 이는 `tmux -CC`로 들어가는 모드입니다. 통합 모드에서 iTerm2는 각 tmux 창을 tmux가 터미널에 그리도록 하는 대신 기본 분할로 렌더링합니다. 대체 화면 버퍼와 마우스 추적이 제대로 작동하지 않습니다: 마우스 휠이 작동하지 않고 더블 클릭이 터미널 상태를 손상시킬 수 있습니다. `tmux -CC` 세션에서 전체 화면 렌더링을 활성화하지 마십시오. `-CC` 없이 iTerm2 내부의 일반 tmux는 정상적으로 작동합니다.141전체 화면 렌더링은 iTerm2의 tmux 통합 모드와 호환되지 않습니다. 이는 `tmux -CC`로 들어가는 모드입니다. 통합 모드에서 iTerm2는 각 tmux 창을 tmux가 터미널에 그리도록 하는 대신 기본 분할로 렌더링합니다. 대체 화면 버퍼와 마우스 추적이 제대로 작동하지 않습니다: 마우스 휠이 작동하지 않고 더블 클릭이 터미널 상태를 손상시킬 수 있습니다. `tmux -CC` 세션에서 전체 화면 렌더링을 활성화하지 마십시오. `-CC` 없이 iTerm2 내부의 일반 tmux는 정상적으로 작동합니다.

136 142 

143tmux는 동기화된 출력을 지원하지 않으므로 Claude Code를 터미널에서 직접 실행할 때보다 다시 그리는 동안 더 많은 깜박임이 보일 수 있습니다. 특히 SSH를 통해 깜박임이 눈에 띄는 경우 Claude Code를 tmux 외부의 자체 터미널 탭에서 실행합니다.

144 

137## 기본 텍스트 선택 유지145## 기본 텍스트 선택 유지

138 146 

139마우스 캡처는 가장 일반적인 마찰 지점이며, 특히 SSH 또는 tmux 내에서 그렇습니다. Claude Code가 마우스 이벤트를 캡처하면 터미널의 기본 선택 시 복사가 작동하지 않습니다. 클릭 및 드래그로 만든 선택은 Claude Code 내부에 있으므로 터미널의 선택 버퍼에 없어서 tmux 복사 모드, Kitty 힌트 및 유사한 도구가 이를 볼 수 없습니다.147마우스 캡처는 가장 일반적인 마찰 지점이며, 특히 SSH 또는 tmux 내에서 그렇습니다. Claude Code가 마우스 이벤트를 캡처하면 터미널의 기본 선택 시 복사가 작동하지 않습니다. 클릭 및 드래그로 만든 선택은 Claude Code 내부에 있으므로 터미널의 선택 버퍼에 없어서 tmux 복사 모드, Kitty 힌트 및 유사한 도구가 이를 볼 수 없습니다.


156 164 

157문제가 발생하면 Claude Code 내에서 `/feedback`을 실행하여 보고하거나 [claude-code GitHub 저장소](https://github.com/anthropics/claude-code/issues)에서 문제를 엽니다. 터미널 에뮬레이터 이름과 버전을 포함합니다.165문제가 발생하면 Claude Code 내에서 `/feedback`을 실행하여 보고하거나 [claude-code GitHub 저장소](https://github.com/anthropics/claude-code/issues)에서 문제를 엽니다. 터미널 에뮬레이터 이름과 버전을 포함합니다.

158 166 

159전체 화면 렌더링을 끄려면 `/tui default`를 실행하거나 그 방식으로 활성화한 경우 환경 변수를 설정 해제합니다.167전체 화면 렌더링을 끄려면 `/tui default`를 실행하거나 그 방식으로 활성화한 경우 `CLAUDE_CODE_NO_FLICKER`를 설정 해제합니다. 저장된 `tui` 설정과 관계없이 클래식 렌더러를 강제로 사용하려면 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`을 설정합니다. 클래식 렌더러는 대화를 터미널의 기본 스크롤백에 유지하므로 `Cmd+f`와 tmux 복사 모드가 평소대로 작동합니다.

Details

266Claude Code v2.1.121 이상은 동일한 Application Default Credentials 체인을 통해 [X.509 인증서 기반 Workload Identity Federation](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates)을 지원합니다. `GOOGLE_APPLICATION_CREDENTIALS`를 자격증명 구성 파일의 경로로 설정합니다.266Claude Code v2.1.121 이상은 동일한 Application Default Credentials 체인을 통해 [X.509 인증서 기반 Workload Identity Federation](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates)을 지원합니다. `GOOGLE_APPLICATION_CREDENTIALS`를 자격증명 구성 파일의 경로로 설정합니다.

267 267 

268<Note>268<Note>

269 인증할 때 Claude Code는 `ANTHROPIC_VERTEX_PROJECT_ID` 환경 변수에서 프로젝트 ID를 자동으로 사용합니다. 이를 재정의하려면 다음 환경 변수하나를 설정하십시오: `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` 또는 `GOOGLE_APPLICATION_CREDENTIALS`.269 Claude Code는 Vertex AI 요청에 대해 `ANTHROPIC_VERTEX_PROJECT_ID` 프로젝트 ID로 사용합니다. `GCLOUD_PROJECT` `GOOGLE_CLOUD_PROJECT` 환경 변수와 `GOOGLE_APPLICATION_CREDENTIALS`에서 참조하는 자격증명 파일이 이를 우선합니다. 이 어느 것도 설정되지 않으면 프로젝트 ID는 `gcloud` 구성 또는 연결된 서비스 계정에서 확인됩니다.

270</Note>270</Note>

271 271 

272#### 고급 자격증명 구성

273 

274Claude Code는 `gcpAuthRefresh` 설정을 통해 GCP에 대한 자동 자격증명 새로 고침을 지원합니다. Claude Code가 GCP 자격증명이 만료되었거나 로드할 수 없음을 감지하면 요청을 다시 시도하기 전에 구성된 명령을 실행하여 새 자격증명을 얻습니다.

275 

276```json theme={null}

277{

278 "gcpAuthRefresh": "gcloud auth application-default login",

279 "env": {

280 "ANTHROPIC_VERTEX_PROJECT_ID": "your-project-id"

281 }

282}

283```

284 

285명령의 출력은 사용자에게 표시되지만 대화형 입력은 지원되지 않습니다. 이는 CLI가 URL을 표시하고 브라우저에서 인증을 완료하는 브라우저 기반 인증 흐름에 적합합니다. 인증이 완료되지 않으면 새로 고침 명령은 3분 후에 시간 초과됩니다. `.claude/settings.json`과 같은 프로젝트 설정에서 `gcpAuthRefresh`를 설정하면 워크스페이스 신뢰 프롬프트를 수락한 후에만 명령이 실행됩니다.

286 

272### 4. Claude Code 구성287### 4. Claude Code 구성

273 288 

274다음 환경 변수를 설정합니다:289다음 환경 변수를 설정합니다:


363 378 

364## 문제 해결379## 문제 해결

365 380 

381"기본 자격증명을 로드할 수 없음" 오류가 발생하는 경우:

382 

383* `gcloud auth application-default login`을 실행하여 Application Default Credentials를 설정합니다

384* `GOOGLE_APPLICATION_CREDENTIALS`를 서비스 계정 키 파일 경로로 설정합니다

385* 모든 옵션은 [GCP 자격증명 구성](#3-configure-gcp-credentials)을 참조하세요

386 

366할당량 문제가 발생하는 경우:387할당량 문제가 발생하는 경우:

367 388 

368* [Cloud Console](https://cloud.google.com/docs/quotas/view-manage)을 통해 현재 할당량을 확인하거나 할당량 증가를 요청합니다389* [Cloud Console](https://cloud.google.com/docs/quotas/view-manage)을 통해 현재 할당량을 확인하거나 할당량 증가를 요청합니다

headless.md +31 −1

Details

54| 설정 | `--settings <file-or-json>` |54| 설정 | `--settings <file-or-json>` |

55| MCP 서버 | `--mcp-config <file-or-json>` |55| MCP 서버 | `--mcp-config <file-or-json>` |

56| 사용자 정의 에이전트 | `--agents <json>` |56| 사용자 정의 에이전트 | `--agents <json>` |

57| 플러그인 디렉토리 | `--plugin-dir <path>` |57| 플러그인 | `--plugin-dir <path>`, `--plugin-url <url>` |

58 58 

59베어 모드는 OAuth 및 키체인 읽기를 건너뜁니다. Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`에 전달된 JSON의 `apiKeyHelper`에서 가져와야 합니다. Bedrock, Vertex 및 Foundry는 일반적인 공급자 자격 증명을 사용합니다.59베어 모드는 OAuth 및 키체인 읽기를 건너뜁니다. Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`에 전달된 JSON의 `apiKeyHelper`에서 가져와야 합니다. Bedrock, Vertex 및 Foundry는 일반적인 공급자 자격 증명을 사용합니다.

60 60 


66 66 

67이 예제들은 일반적인 CLI 패턴을 강조합니다. CI 및 기타 스크립트 호출의 경우 로컬에 구성된 항목을 선택하지 않도록 [`--bare`](#start-faster-with-bare-mode)를 추가합니다.67이 예제들은 일반적인 CLI 패턴을 강조합니다. CI 및 기타 스크립트 호출의 경우 로컬에 구성된 항목을 선택하지 않도록 [`--bare`](#start-faster-with-bare-mode)를 추가합니다.

68 68 

69### Claude를 통해 데이터 파이프하기

70 

71비대화형 모드는 stdin을 읽으므로 다른 명령줄 도구처럼 데이터를 파이프하고 응답을 리디렉션할 수 있습니다.

72 

73이 예제는 빌드 로그를 Claude에 파이프하고 설명을 파일에 씁니다:

74 

75```bash theme={null}

76cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

77```

78 

79`--output-format json`을 사용하면 응답 페이로드에 `total_cost_usd`와 모델별 비용 분석이 포함되므로 스크립트 호출자는 [사용 대시보드](/ko/costs)를 참조하지 않고도 호출당 지출을 추적할 수 있습니다.

80 

81<Note>

82 Claude Code v2.1.128부터 파이프된 stdin은 10MB로 제한됩니다. 제한을 초과하면 Claude Code는 명확한 오류 메시지와 함께 0이 아닌 상태로 종료됩니다. 더 큰 입력으로 작업하려면 콘텐츠를 파일에 작성하고 파이프하는 대신 프롬프트에서 파일 경로를 참조합니다.

83</Note>

84 

85### 빌드 스크립트에 Claude 추가

86 

87비대화형 호출을 스크립트로 래핑하여 Claude를 프로젝트별 린터 또는 검토자로 사용할 수 있습니다.

88 

89이 `package.json` 스크립트는 `main`에 대한 diff를 Claude에 파이프하고 오타를 보고하도록 요청합니다. diff를 파이프하면 Claude가 이를 읽기 위해 Bash 권한이 필요하지 않으며, 이스케이프된 큰따옴표는 스크립트를 Windows에 이식 가능하게 유지합니다:

90 

91```json theme={null}

92{

93 "scripts": {

94 "lint:claude": "git diff main | claude -p \"you are a typo linter. for each typo in this diff, report filename:line on one line and the issue on the next. return nothing else.\""

95 }

96}

97```

98 

69### 구조화된 출력 가져오기99### 구조화된 출력 가져오기

70 100 

71`--output-format`을 사용하여 응답이 반환되는 방식을 제어합니다:101`--output-format`을 사용하여 응답이 반환되는 방식을 제어합니다:

Details

94 94 

95## 세션으로 작업95## 세션으로 작업

96 96 

97Claude Code는 작업하면서 대화를 로컬에 저장합니다. 각 메시지, 도구 사용, 결과가 저장되어 [되돌리기](#undo-changes-with-checkpoints), [재개 및 포크](#resume-or-fork-sessions) 세션을 활성화합니다. Claude가 코드를 변경하기 전에 영향을 받는 파일을 스냅샷하므로 필요하면 되돌릴 수 있습니다.97Claude Code는 작업하면서 대화를 로컬에 저장합니다. 각 메시지, 도구 사용, 결과가 `~/.claude/projects/` 아래의 일반 텍스트 JSONL 파일에 기록되어 [되돌리기](#undo-changes-with-checkpoints), [재개 및 포크](#resume-or-fork-sessions) 세션을 활성화합니다. Claude가 코드를 변경하기 전에 영향을 받는 파일을 스냅샷하므로 필요하면 되돌릴 수 있습니다. 경로, 보존, 이 데이터를 지우는 방법은 [`~/.claude`의 애플리케이션 데이터](/ko/claude-directory#application-data)를 참조하세요.

98 98 

99**세션은 독립적입니다.** 각 새 세션은 이전 세션의 대화 기록 없이 새로운 컨텍스트 윈도우로 시작합니다. Claude는 [자동 메모리](/ko/memory#auto-memory)를 사용하여 세션 간에 학습을 유지할 수 있으며, [CLAUDE.md](/ko/memory)에 자신의 지속적인 지침을 추가할 수 있습니다.99**세션은 독립적입니다.** 각 새 세션은 이전 세션의 대화 기록 없이 새로운 컨텍스트 윈도우로 시작합니다. Claude는 [자동 메모리](/ko/memory#auto-memory)를 사용하여 세션 간에 학습을 유지할 수 있으며, [CLAUDE.md](/ko/memory)에 자신의 지속적인 지침을 추가할 수 있습니다.

100 100 

101### 브랜치 간 작업101### 브랜치 간 작업

102 102 

103각 Claude Code 대화는 현재 디렉토리에 연결된 세션입니다. 재개할 해당 디렉토리의 세션만 표시됩니다.103각 Claude Code 대화는 현재 디렉토리에 연결된 세션입니다. `/resume` 선택기는 기본적으로 현재 worktree의 세션을 표시하며, 다른 worktrees 또는 프로젝트로 목록을 확장하는 키보드 단축키가 있습니다. 전체 선택기 단축키 목록과 이름 해석 방식은 [세션 관리](/ko/sessions#use-the-session-picker)를 참조하세요.

104 104 

105Claude는 현재 브랜치의 파일을 봅니다. 브랜치를 전환하면 Claude는 새 브랜치의 파일을 보지만 대화 기록은 동일하게 유지됩니다. Claude는 전환 후에도 논의한 내용을 기억합니다.105Claude는 현재 브랜치의 파일을 봅니다. 브랜치를 전환하면 Claude는 새 브랜치의 파일을 보지만 대화 기록은 동일하게 유지됩니다. Claude는 전환 후에도 논의한 내용을 기억합니다.

106 106 

107세션이 디렉토리에 연결되어 있으므로 [git worktrees](/ko/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)를 사용하여 병렬 Claude 세션을 실행할 수 있으며, 이는 개별 브랜치에 대한 별도 디렉토리를 생성합니다.107세션이 디렉토리에 연결되어 있으므로 [git worktrees](/ko/worktrees)를 사용하여 병렬 Claude 세션을 실행할 수 있으며, 이는 개별 브랜치에 대한 별도 디렉토리를 생성합니다.

108 108 

109### 세션 재개 또는 포크109### 세션 재개 또는 포크

110 110 

111`claude --continue` 또는 `claude --resume`으로 세션을 재개하면 동일한 세션 ID를 사용하여 중단한 지점부터 시작합니다. 새 메시지는 기존 대화에 추가됩니다. 전체 대화 기록이 복원되지만 세션 범위 권한은 복원되지 않습니다. 다시 승인해야 합니다.111`claude --continue` 또는 `claude --resume`으로 세션을 재개하면 동일한 세션 ID를 사용하여 중단한 지점부터 시작합니다. 새 메시지는 기존 대화에 추가됩니다. `--fork-session` 또는 `/branch`로 포크하면 기록을 새 세션 ID로 복사하여 원본은 변경되지 않은 상태로 유지합니다.

112 112 

113<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/session-continuity.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=fa41d12bfb57579cabfeece907151d30" alt="세션 연속성: 재개는 동일한 세션을 계속하고, 포크는 새 ID로 새 브랜치를 생성합니다." width="560" height="280" data-path="images/session-continuity.svg" />113<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/session-continuity.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=fa41d12bfb57579cabfeece907151d30" alt="세션 연속성: 재개는 동일한 세션을 계속하고, 포크는 새 ID로 새 브랜치를 생성합니다." width="560" height="280" data-path="images/session-continuity.svg" />

114 114 

115원본 세션에 영향을 주지 않고 다른 접근 방식을 시도하려면 `--fork-session` 플래그를 사용하세요:115재개 플래그, `/resume` 선택기, 이름 지정, 동일한 세션이 터미널에서 열려 있을 때 발생하는 상황은 [세션 관리](/ko/sessions)를 참조하세요.

116 

117```bash theme={null}

118claude --continue --fork-session

119```

120 

121이는 그 시점까지의 대화 기록을 유지하면서 새 세션 ID를 생성합니다. 원본 세션은 변경되지 않습니다. 재개와 마찬가지로 포크된 세션은 세션 범위 권한을 상속하지 않습니다.

122 

123**여러 터미널에서 동일한 세션**: 여러 터미널에서 동일한 세션을 재개하면 두 터미널 모두 동일한 세션 파일에 쓰기를 수행합니다. 두 터미널의 메시지가 같은 노트북에 두 사람이 쓰는 것처럼 인터리브됩니다. 아무것도 손상되지 않지만 대화가 뒤섞입니다. 각 터미널은 세션 중에 자신의 메시지만 보지만, 나중에 해당 세션을 재개하면 모든 것이 인터리브된 것을 볼 수 있습니다. 동일한 시작점에서 병렬 작업을 하려면 `--fork-session`을 사용하여 각 터미널에 자신의 깨끗한 세션을 제공하세요.

124 116 

125### 컨텍스트 윈도우117### 컨텍스트 윈도우

126 118 

127Claude의 컨텍스트 윈도우는 대화 기록, 파일 콘텐츠, 명령 출력, [CLAUDE.md](/ko/memory), [자동 메모리](/ko/memory#auto-memory), 로드된 skills, 시스템 지침을 보유합니다. 작업하면서 컨텍스트가 채워집니다. Claude는 자동으로 압축하지만 대화 초반의 지침이 손실될 수 있습니다. 지속적인 규칙을 CLAUDE.md에 넣고 `/context`를 실행하여 공간을 사용하는 것을 확인하세요.119Claude의 컨텍스트 윈도우는 대화 기록, 파일 콘텐츠, 명령 출력, [CLAUDE.md](/ko/memory), [자동 메모리](/ko/memory#auto-memory), 로드된 skills, 시스템 지침을 보유합니다. 작업하면서 컨텍스트가 채워집니다. Claude는 자동으로 압축하지만 대화 초반의 지침이 손실될 수 있습니다. 지속적인 규칙을 CLAUDE.md에 넣고 `/context`를 실행하여 공간을 사용하는 것을 확인하세요.

128 120 

129대화형 설명을 보려면 [컨텍스트 윈도우 탐색](/ko/context-window)을 참조하세요.121컨텍스트 윈도우의 대화형 설명은 [컨텍스트 윈도우 탐색](/ko/context-window)을 참조하세요.

130 122 

131#### 컨텍스트가 채워질 때123#### 컨텍스트가 채워질 때

132 124 


134 126 

135압축 중에 보존되는 것을 제어하려면 CLAUDE.md에 "Compact Instructions" 섹션을 추가하거나 `/compact`를 포커스와 함께 실행하세요 (예: `/compact focus on the API changes`).127압축 중에 보존되는 것을 제어하려면 CLAUDE.md에 "Compact Instructions" 섹션을 추가하거나 `/compact`를 포커스와 함께 실행하세요 (예: `/compact focus on the API changes`).

136 128 

129단일 파일 또는 도구 출력이 너무 커서 각 요약 후 컨텍스트가 즉시 다시 채워지면 Claude Code는 몇 번의 시도 후 자동 압축을 중지하고 루핑 대신 오류를 표시합니다. 복구 단계는 [자동 압축이 thrashing 오류로 중지됨](/ko/troubleshooting#auto-compaction-stops-with-a-thrashing-error)을 참조하세요.

130 

137`/context`를 실행하여 공간을 사용하는 것을 확인하세요. MCP 도구 정의는 기본적으로 지연되며 [도구 검색](/ko/mcp#scale-with-mcp-tool-search)을 통해 요청 시 로드되므로 Claude가 특정 도구를 사용할 때까지 도구 이름만 컨텍스트를 소비합니다. `/mcp`를 실행하여 서버별 비용을 확인하세요.131`/context`를 실행하여 공간을 사용하는 것을 확인하세요. MCP 도구 정의는 기본적으로 지연되며 [도구 검색](/ko/mcp#scale-with-mcp-tool-search)을 통해 요청 시 로드되므로 Claude가 특정 도구를 사용할 때까지 도구 이름만 컨텍스트를 소비합니다. `/mcp`를 실행하여 서버별 비용을 확인하세요.

138 132 

139#### skills 및 subagents로 컨텍스트 관리133#### skills 및 subagents로 컨텍스트 관리

140 134 

141압축 외에도 다른 기능을 사용하여 컨텍스트에 로드되는 것을 제어할 수 있습니다.135압축 외에도 다른 기능을 사용하여 컨텍스트에 로드되는 것을 제어할 수 있습니다.

142 136 

143[Skills](/ko/skills)는 요청 시 로드됩니다. Claude는 세션 시작 시 skill 설명을 보지만 전체 콘텐츠는 skill이 사용될 때만 로드됩니다. 수동으로 호출하는 skills의 경우 `disable-model-invocation: true`를 설정하여 필요할 때까지 설명을 컨텍스트 밖으로 유지하세요.137[Skills](/ko/skills)는 요청 시 로드됩니다. Claude는 세션 시작 시 skill 설명을 보지만 전체 콘텐츠는 skill이 사용될 때만 로드됩니다. 수동으로 호출하는 skills의 경우 `disable-model-invocation: true`를 설정하여 필요할 때까지 설명을 컨텍스트 밖으로 유지하세요. 작성하지 않은 skills의 경우 [`skillOverrides`](/ko/skills#override-skill-visibility-from-settings)를 사용하여 설정에서 동일하게 수행하세요.

144 138 

145[Subagents](/ko/sub-agents)는 주 대화와 완전히 분리된 자신의 새로운 컨텍스트를 얻습니다. 그들의 작업은 컨텍스트를 부풀리지 않습니다. 완료되면 요약을 반환합니다. 이 격리가 긴 세션에서 subagents가 도움이 되는 이유입니다.139[Subagents](/ko/sub-agents)는 주 대화와 완전히 분리된 자신의 새로운 컨텍스트를 얻습니다. 그들의 작업은 컨텍스트를 부풀리지 않습니다. 완료되면 요약을 반환합니다. 이 격리가 긴 세션에서 subagents가 도움이 되는 이유입니다.

146 140 


161`Shift+Tab`을 눌러 권한 모드를 순환하세요:155`Shift+Tab`을 눌러 권한 모드를 순환하세요:

162 156 

163* **기본값**: Claude는 파일 편집 및 셸 명령 전에 요청157* **기본값**: Claude는 파일 편집 및 셸 명령 전에 요청

164* **자동 수락 편집**: Claude는 파일을 편집하지만 명령은 여전히 요청158* **자동 수락 편집**: Claude는 파일을 편집하고 `mkdir` 및 `mv`와 같은 일반적인 파일시스템 명령을 요청 없이 실행하지만 다른 명령은 여전히 요청

165* **계획 모드**: Claude는 읽기 전용 도구만 사용하여 실행 전에 승인할 수 있는 계획을 생성159* **계획 모드**: Claude는 읽기 전용 도구만 사용하여 실행 전에 승인할 수 있는 계획을 생성

166* **자동 모드**: Claude는 백그라운드 안전 검사로 모든 작업을 평가합니다. 현재 연구 미리보기입니다160* **자동 모드**: Claude는 백그라운드 안전 검사로 모든 작업을 평가합니다. 현재 연구 미리보기입니다

167 161 

Details

11<Note>11<Note>

12 키보드 단축키는 플랫폼 및 터미널에 따라 다를 수 있습니다. `?`를 눌러 사용자 환경에서 사용 가능한 단축키를 확인하세요.12 키보드 단축키는 플랫폼 및 터미널에 따라 다를 수 있습니다. `?`를 눌러 사용자 환경에서 사용 가능한 단축키를 확인하세요.

13 13 

14 **macOS 사용자**: Option/Alt 키 단축키(`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`, `Alt+T`)를 사용하려면 터미널에서 Option을 Meta로 구성해야 합니다:14 **macOS 사용자**: Option/Alt 키 단축키(`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`)를 사용하려면 터미널에서 Option을 Meta로 구성해야 합니다:

15 15 

16 * **iTerm2**: 설정 → 프로필 → 키 → 일반 → Left/Right Option 키를 "Esc+"로 설정16 * **iTerm2**: 설정 → 프로필 → 키 → 일반 → Left/Right Option 키를 "Esc+"로 설정

17 * **Apple Terminal**: 설정 → 프로필 → 키보드 → "Option을 Meta 키로 사용" 확인17 * **Apple Terminal**: 설정 → 프로필 → 키보드 → "Option을 Meta 키로 사용" 확인


39| `Esc` + `Esc` | 되돌리기 또는 요약 | 코드 및/또는 대화를 이전 지점으로 복원하거나 선택한 메시지에서 요약 |39| `Esc` + `Esc` | 되돌리기 또는 요약 | 코드 및/또는 대화를 이전 지점으로 복원하거나 선택한 메시지에서 요약 |

40| `Shift+Tab` 또는 `Alt+M` (일부 구성) | 권한 모드 순환 | `default`, `acceptEdits`, `plan` 및 `auto` 또는 `bypassPermissions`와 같이 활성화한 모든 모드를 순환합니다. [권한 모드](/ko/permission-modes)를 참조하세요. |40| `Shift+Tab` 또는 `Alt+M` (일부 구성) | 권한 모드 순환 | `default`, `acceptEdits`, `plan` 및 `auto` 또는 `bypassPermissions`와 같이 활성화한 모든 모드를 순환합니다. [권한 모드](/ko/permission-modes)를 참조하세요. |

41| `Option+P` (macOS) 또는 `Alt+P` (Windows/Linux) | 모델 전환 | 프롬프트를 지우지 않고 모델 전환 |41| `Option+P` (macOS) 또는 `Alt+P` (Windows/Linux) | 모델 전환 | 프롬프트를 지우지 않고 모델 전환 |

42| `Option+T` (macOS) 또는 `Alt+T` (Windows/Linux) | 확장 사고 토글 | 확장 사고 모드를 활성화 또는 비활성화합니다. macOS에서 단축키가 작동하려면 터미널에서 Option을 Meta로 보내도록 구성하세요 |42| `Option+T` (macOS) 또는 `Alt+T` (Windows/Linux) | 확장 사고 토글 | 확장 사고 모드를 활성화 또는 비활성화합니다. {/* min-version: 2.1.132 */}v2.1.132부터 단축키는 macOS에서 Option을 Meta로 구성하지 않고도 작동합니다 |

43| `Option+O` (macOS) 또는 `Alt+O` (Windows/Linux) | 빠른 모드 토글 | [빠른 모드](/ko/fast-mode) 활성화 또는 비활성화 |43| `Option+O` (macOS) 또는 `Alt+O` (Windows/Linux) | 빠른 모드 토글 | [빠른 모드](/ko/fast-mode) 활성화 또는 비활성화 |

44 44 

45### 텍스트 편집45### 텍스트 편집


68| :---------- | :------------- | :--------------------------------------------------------------------------------------- |68| :---------- | :------------- | :--------------------------------------------------------------------------------------- |

69| 빠른 이스케이프 | `\` + `Enter` | 모든 터미널에서 작동 |69| 빠른 이스케이프 | `\` + `Enter` | 모든 터미널에서 작동 |

70| Option 키 | `Option+Enter` | macOS에서 [Option을 Meta로](/ko/terminal-config#enable-option-key-shortcuts-on-macos) 활성화한 후 |70| Option 키 | `Option+Enter` | macOS에서 [Option을 Meta로](/ko/terminal-config#enable-option-key-shortcuts-on-macos) 활성화한 후 |

71| Shift+Enter | `Shift+Enter` | iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal에서 기본적으로 작동 |71| Shift+Enter | `Shift+Enter` | iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal, Windows Terminal에서 기본적으로 작동 |

72| 제어 시퀀스 | `Ctrl+J` | 구성 없이 모든 터미널에서 작동 |72| 제어 시퀀스 | `Ctrl+J` | 구성 없이 모든 터미널에서 작동 |

73| 붙여넣기 모드 | 직접 붙여넣기 | 코드 블록, 로그의 경우 |73| 붙여넣기 모드 | 직접 붙여넣기 | 코드 블록, 로그의 경우 |

74 74 

75<Tip>75<Tip>

76 Shift+Enter는 iTerm2, WezTerm, Ghostty, Kitty, Warp 및 Apple Terminal에서 구성 없이 작동합니다. VS Code, Cursor, Windsurf, Alacritty 및 Zed의 경우 `/terminal-setup`을 실행하여 바인딩을 설치하세요.76 Shift+Enter는 iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal Windows Terminal에서 구성 없이 작동합니다. VS Code, Cursor, Windsurf, Alacritty 및 Zed의 경우 `/terminal-setup`을 실행하여 바인딩을 설치하세요.

77</Tip>77</Tip>

78 78 

79### 빠른 명령79### 빠른 명령


130| 명령 | 작업 |130| 명령 | 작업 |

131| :-------------- | :---------------------- |131| :-------------- | :---------------------- |

132| `h`/`j`/`k`/`l` | 왼쪽/아래/위/오른쪽 이동 |132| `h`/`j`/`k`/`l` | 왼쪽/아래/위/오른쪽 이동 |

133| `Space` | 오른쪽 이동 |

133| `w` | 다음 단어 |134| `w` | 다음 단어 |

134| `e` | 단어 끝 |135| `e` | 단어 끝 |

135| `b` | 이전 단어 |136| `b` | 이전 단어 |

llm-gateway.md +1 −1

Details

53 53 

54기본적으로 Claude Code는 선택한 API 형식에 대해 표준 모델 이름을 사용합니다.54기본적으로 Claude Code는 선택한 API 형식에 대해 표준 모델 이름을 사용합니다.

55 55 

56`ANTHROPIC_BASE_URL`이 Anthropic Messages 형식을 노출하는 게이트웨이를 가리킬 때, Claude Code는 시작 시 게이트웨이의 `/v1/models` 엔드포인트를 쿼리하고 반환된 모델을 `/model` 선택기에 추가합니다. 발견된 각 항목은 "From gateway"로 레이블이 지정되며, 응답에서 제공될 때 `display_name` 필드를 사용합니다. 이는 Claude Code v2.1.126 이상이 필요합니다.56`ANTHROPIC_BASE_URL`이 Anthropic Messages 형식을 노출하는 게이트웨이를 가리킬 때, Claude Code는 시작 시 게이트웨이의 `/v1/models` 엔드포인트를 쿼리하고 반환된 모델을 `/model` 선택기에 추가할 수 있습니다. `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`을 설정하여 이를 활성화합니다. 발견은 기본적으로 꺼져 있으므로 공유 API 키로 지원되는 게이트웨이가 키가 액세스할 수 있는 모든 모델을 모든 사용자에게 노출하지 않습니다. 발견된 각 항목은 "From gateway"로 레이블이 지정되며, 응답에서 제공될 때 `display_name` 필드를 사용합니다. 이는 Claude Code v2.1.129 이상이 필요합니다.

57 57 

58발견은 Anthropic Messages 형식에만 적용됩니다. Bedrock 또는 Vertex 통과 엔드포인트에서는 실행되지 않으며, `ANTHROPIC_BASE_URL`이 설정되지 않았거나 `api.anthropic.com`을 가리킬 때도 실행되지 않습니다.58발견은 Anthropic Messages 형식에만 적용됩니다. Bedrock 또는 Vertex 통과 엔드포인트에서는 실행되지 않으며, `ANTHROPIC_BASE_URL`이 설정되지 않았거나 `api.anthropic.com`을 가리킬 때도 실행되지 않습니다.

59 59 

mcp.md +12 −2

Details

325/mcp325/mcp

326```326```

327 327 

328`/mcp` 패널은 각 연결된 서버 옆에 도구 개수를 표시하고 도구 기능을 광고하지만 도구를 노출하지 않는 서버에 플래그를 지정합니다.

329 

330서버 이름 `workspace`는 내부 사용을 위해 예약되어 있습니다. 구성에서 해당 이름의 서버를 정의하면 Claude Code는 로드 시 이를 건너뛰고 이름을 바꾸도록 요청하는 경고를 표시합니다.

331 

328### 동적 도구 업데이트332### 동적 도구 업데이트

329 333 

330Claude Code는 MCP `list_changed` 알림을 지원하므로 MCP 서버가 연결을 끊었다가 다시 연결할 필요 없이 사용 가능한 도구, 프롬프트 및 리소스를 동적으로 업데이트할 수 있습니다. MCP 서버가 `list_changed` 알림을 보내면 Claude Code는 해당 서버에서 사용 가능한 기능을 자동으로 새로 고칩니다.334Claude Code는 MCP `list_changed` 알림을 지원하므로 MCP 서버가 연결을 끊었다가 다시 연결할 필요 없이 사용 가능한 도구, 프롬프트 및 리소스를 동적으로 업데이트할 수 있습니다. MCP 서버가 `list_changed` 알림을 보내면 Claude Code는 해당 서버에서 사용 가능한 기능을 자동으로 새로 고칩니다.


421 425 

422## MCP 설치 범위426## MCP 설치 범위

423 427 

424MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위는 서버가 로드되는 프로젝트와 구성이 팀과 공유되는지 여부를 제어합니다.428MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위는 서버가 로드되는 프로젝트와 구성이 팀과 공유되는지 여부를 제어합니다. 관리자는 [관리형 구성](#managed-mcp-configuration)을 통해 엔터프라이즈 수준에서 서버를 배포할 수도 있습니다.

425 429 

426| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |430| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |

427| ---------------------- | -------- | ------------ | -------------------- |431| ---------------------- | -------- | ------------ | -------------------- |


498 502 

499### 범위 계층 및 우선순위503### 범위 계층 및 우선순위

500 504 

501동일한 이름의 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다:505동일한 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다:

502 506 

5031. 로컬 범위5071. 로컬 범위

5042. 프로젝트 범위5082. 프로젝트 범위


942 </Step>946 </Step>

943</Steps>947</Steps>

944 948 

949Claude Code에서 추가한 서버는 동일한 URL을 가리키는 claude.ai 커넥터보다 [우선순위](#scope-hierarchy-and-precedence)를 갖습니다. 이 경우 `/mcp`는 커넥터를 숨김으로 표시하고 커넥터를 사용하려는 경우 중복을 제거하는 방법을 표시합니다.

950 

945Claude Code에서 claude.ai MCP 서버를 비활성화하려면 `ENABLE_CLAUDEAI_MCP_SERVERS` 환경 변수를 `false`로 설정합니다:951Claude Code에서 claude.ai MCP 서버를 비활성화하려면 `ENABLE_CLAUDEAI_MCP_SERVERS` 환경 변수를 `false`로 설정합니다:

946 952 

947```bash theme={null}953```bash theme={null}


1181 1187 

1182`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능하며 Claude Code v2.1.121 이상이 필요합니다. MCP 서버는 도구의 `_meta` 객체에 `"anthropic/alwaysLoad": true`를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.1188`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능하며 Claude Code v2.1.121 이상이 필요합니다. MCP 서버는 도구의 `_meta` 객체에 `"anthropic/alwaysLoad": true`를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.

1183 1189 

1190`alwaysLoad: true`를 설정하면 서버가 연결될 때까지 시작이 차단되며, 표준 5초 연결 타임아웃으로 제한됩니다. 이는 [`MCP_CONNECTION_NONBLOCKING=1`](/ko/env-vars)이 설정된 경우에도 적용됩니다. 첫 번째 프롬프트가 빌드될 때 도구가 있어야 하기 때문입니다. 비차단이 활성화된 경우 다른 서버는 여전히 백그라운드에서 연결됩니다.

1191 

1184## MCP 프롬프트를 명령으로 사용1192## MCP 프롬프트를 명령으로 사용

1185 1193 

1186MCP 서버는 Claude Code에서 명령으로 사용 가능하게 되는 프롬프트를 노출할 수 있습니다.1194MCP 서버는 Claude Code에서 명령으로 사용 가능하게 되는 프롬프트를 노출할 수 있습니다.


1349* `https://*.example.com/*` - example.com의 모든 하위 도메인 허용1357* `https://*.example.com/*` - example.com의 모든 하위 도메인 허용

1350* `http://localhost:*/*` - localhost의 모든 포트 허용1358* `http://localhost:*/*` - localhost의 모든 포트 허용

1351 1359 

1360호스트명 일치는 대소문자를 구분하지 않으며 후행 FQDN 점을 무시하여 DNS 의미론을 따릅니다. `*://Mcp.Example.com/*`와 같은 패턴은 `https://mcp.example.com/api`와 일치하며, `https://mcp.example.com.`은 `https://mcp.example.com`과 동일하게 처리됩니다. 스킴과 경로는 대소문자를 구분합니다.

1361 

1352**원격 서버 동작**:1362**원격 서버 동작**:

1353 1363 

1354* 허용 목록에 **모든** `serverUrl` 항목이 포함되면 원격 서버는 해당 URL 패턴 중 하나와 일치해야 합니다1364* 허용 목록에 **모든** `serverUrl` 항목이 포함되면 원격 서버는 해당 URL 패턴 중 하나와 일치해야 합니다

memory.md +2 −0

Details

378* 지침을 더 구체적으로 만듭니다. "2칸 들여쓰기 사용"이 "코드를 제대로 포맷합니다"보다 더 잘 작동합니다.378* 지침을 더 구체적으로 만듭니다. "2칸 들여쓰기 사용"이 "코드를 제대로 포맷합니다"보다 더 잘 작동합니다.

379* CLAUDE.md 파일 전체에서 충돌하는 지침을 찾습니다. 두 파일이 동일한 동작에 대해 다른 지침을 제공하면 Claude가 하나를 임의로 선택할 수 있습니다.379* CLAUDE.md 파일 전체에서 충돌하는 지침을 찾습니다. 두 파일이 동일한 동작에 대해 다른 지침을 제공하면 Claude가 하나를 임의로 선택할 수 있습니다.

380 380 

381명령이 모든 커밋 전이나 각 파일 편집 후와 같이 특정 시점에 실행되어야 하는 경우, 대신 [hook](/ko/hooks-guide)으로 작성합니다. Hook은 고정된 라이프사이클 이벤트에서 셸 명령으로 실행되며 Claude가 무엇을 하기로 결정하든 관계없이 적용됩니다.

382 

381시스템 프롬프트 수준의 지침의 경우 [`--append-system-prompt`](/ko/cli-reference#system-prompt-flags)를 사용합니다. 이는 모든 호출 시 전달되어야 하므로 대화형 사용보다는 스크립트 및 자동화에 더 적합합니다.383시스템 프롬프트 수준의 지침의 경우 [`--append-system-prompt`](/ko/cli-reference#system-prompt-flags)를 사용합니다. 이는 모든 호출 시 전달되어야 하므로 대화형 사용보다는 스크립트 및 자동화에 더 적합합니다.

382 384 

383<Tip>385<Tip>

model-config.md +20 −6

Details

184 184 

185노력 척도는 모델별로 보정되므로 동일한 수준 이름이 모델 전체에서 동일한 기본 값을 나타내지 않습니다.185노력 척도는 모델별로 보정되므로 동일한 수준 이름이 모델 전체에서 동일한 기본 값을 나타내지 않습니다.

186 186 

187세션 설정을 변경하지 않고 일회성 깊은 추론을 위해 프롬프트에 "ultrathink"를 포함하세요. 이는 모델에 해당 턴에서 더 많이 추론하도록 지시하는 컨텍스트 내 지시를 추가합니다. 노력 수준을 변경하지 않습니다.187#### 일회성 깊은 추론을 위해 ultrathink 사용

188 

189프롬프트에 `ultrathink`를 포함하여 세션 노력 설정을 변경하지 않고 해당 턴에서 더 깊은 추론을 요청하세요. Claude Code는 키워드를 인식하고 컨텍스트 내 지시를 추가합니다. API로 전송되는 노력 수준은 변경되지 않습니다. "think", "think hard", "think more"와 같은 다른 구문은 일반 프롬프트 텍스트로 전달되며 키워드로 인식되지 않습니다.

188 190 

189#### 노력 수준 설정191#### 노력 수준 설정

190 192 


209 211 

210Opus 4.6 및 Sonnet 4.6에서 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전의 고정 사고 예산으로 되돌릴 수 있습니다. [환경 변수](/ko/env-vars)를 참조하세요.212Opus 4.6 및 Sonnet 4.6에서 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전의 고정 사고 예산으로 되돌릴 수 있습니다. [환경 변수](/ko/env-vars)를 참조하세요.

211 213 

214### 확장 사고

215 

216확장 사고는 Claude가 응답하기 전에 내보내는 추론입니다. [적응형 추론](#adjust-effort-level)을 지원하는 모델에서 노력 수준은 얼마나 많은 사고가 발생하는지에 대한 주요 제어입니다. 아래 설정은 사고를 켜거나 끄고 표시 방식을 제어합니다.

217 

218| 제어 | 설정 방법 |

219| :------------ | :----------------------------------------------------------------------------------------------------------------------- |

220| 현재 세션에 대한 토글 | macOS에서 `Option+T` 또는 Windows 및 Linux에서 `Alt+T`를 누릅니다 |

221| 전역 기본값 설정 | `/config`를 실행하고 사고 모드를 토글합니다. `~/.claude/settings.json`에 `alwaysThinkingEnabled`로 저장됩니다 |

222| 노력에 관계없이 비활성화 | [`MAX_THINKING_TOKENS=0`](/ko/env-vars)을 설정합니다. 다른 값은 [고정 사고 예산](#adaptive-reasoning-and-fixed-thinking-budgets)에만 적용됩니다 |

223 

224사고 출력은 기본적으로 축소됩니다. `Ctrl+O`를 눌러 자세한 모드를 토글하고 추론을 회색 기울임꼴 텍스트로 봅니다. Anthropic API의 대화형 세션은 기본적으로 편집된 사고 블록을 수신하므로 확장할 때 전체 요약을 사용할 수 있도록 하려면 [설정](/ko/settings)에서 `showThinkingSummaries: true`를 설정하세요. 축소되거나 편집된 경우에도 생성된 모든 사고 토큰에 대해 요금이 청구됩니다.

225 

212### 확장 컨텍스트226### 확장 컨텍스트

213 227 

214Opus 4.7, Opus 4.6 및 Sonnet 4.6은 대규모 코드베이스를 사용한 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다.228Opus 4.7, Opus 4.6 및 Sonnet 4.6은 대규모 코드베이스를 사용한 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다.


247 261 

248## 사용자 정의 모델 옵션 추가262## 사용자 정의 모델 옵션 추가

249 263 

250`ANTHROPIC_CUSTOM_MODEL_OPTION`을 사용하여 기본 제공 별칭을 대체하지 않고 `/model` 선택기에 단일 사용자 정의 항목을 추가합니다. 이는 Claude Code가 기본적으로 나열하지 않는 모델 ID를 테스트하는 데 유용합니다. LLM 게이트웨이 배포의 경우, Claude Code는 게이트웨이의 `/v1/models` 엔드포인트에서 선택기를 자동으로 채우므로, 이 변수는 검색에서 원하는 모델을 반환하지 않을 때만 필요합니다. [LLM 게이트웨이 모델 선택](/ko/llm-gateway#model-selection)을 참조하십시오.264`ANTHROPIC_CUSTOM_MODEL_OPTION`을 사용하여 기본 제공 별칭을 대체하지 않고 `/model` 선택기에 단일 사용자 정의 항목을 추가합니다. 이는 Claude Code가 기본적으로 나열하지 않는 모델 ID를 테스트하는 데 유용합니다. LLM 게이트웨이 배포의 경우, Claude Code는 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`이 설정되어 있을 때 게이트웨이의 `/v1/models` 엔드포인트에서 선택기를 자동으로 채울 수 있으므로, 이 변수는 검색이 비활성화되었거나 원하는 모델을 반환하지 않을 때만 필요합니다. [LLM 게이트웨이 모델 선택](/ko/llm-gateway#model-selection)을 참조하십시오.

251 265 

252이 예시는 게이트웨이 라우팅된 Opus 배포를 선택 가능하게 하기 위해 세 가지 변수를 모두 설정합니다:266이 예시는 게이트웨이 라우팅된 Opus 배포를 선택 가능하게 하기 위해 세 가지 변수를 모두 설정합니다:

253 267 


278 292 

279[Bedrock](/ko/amazon-bedrock), [Vertex AI](/ko/google-vertex-ai) 또는 [Foundry](/ko/microsoft-foundry)를 통해 Claude Code를 배포할 때 사용자에게 롤아웃하기 전에 모델 버전을 고정합니다.293[Bedrock](/ko/amazon-bedrock), [Vertex AI](/ko/google-vertex-ai) 또는 [Foundry](/ko/microsoft-foundry)를 통해 Claude Code를 배포할 때 사용자에게 롤아웃하기 전에 모델 버전을 고정합니다.

280 294 

281고정하지 않으면 Claude Code는 최신 버전으로 확인되는 모델 별칭(`sonnet`, `opus`, `haiku`)을 사용합니다. Anthropic이 새 모델을 출시할 때 새 버전이 활성화되지 않은 계정의 사용자는 공지 없이 이전 버전으로 폴백되며, Foundry 사용자는 Foundry에 동등한 시작 확인이 없기 때문에 오류를 봅니다.295고정하지 않으면 Claude Code는 최신 버전으로 확인되는 모델 별칭(`sonnet`, `opus`, `haiku`)을 사용합니다. Anthropic이 새 모델을 출시할 때 새 버전이 아직 사용자 계정에서 활성화되지 않으면 Bedrock 및 Vertex AI 사용자는 공지를 보고 해당 세션에 대해 이전 버전으로 폴백되며, Foundry 사용자는 Foundry에 동등한 시작 확인이 없기 때문에 오류를 봅니다.

282 296 

283<Warning>297<Warning>

284 초기 설정의 일부로 세 가지 모델 환경 변수를 모두 특정 버전 ID로 설정합니다. 고정하면 사용자가 새 모델로 이동할 시기를 제어할 수 있습니다.298 초기 설정의 일부로 세 가지 모델 환경 변수를 모두 특정 버전 ID로 설정합니다. 고정하면 사용자가 새 모델로 이동할 시기를 제어할 수 있습니다.


320 334 

321동일한 `_NAME`, `_DESCRIPTION` 및 `_SUPPORTED_CAPABILITIES` 접미사는 `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` 및 `ANTHROPIC_CUSTOM_MODEL_OPTION`에 사용 가능합니다.335동일한 `_NAME`, `_DESCRIPTION` 및 `_SUPPORTED_CAPABILITIES` 접미사는 `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` 및 `ANTHROPIC_CUSTOM_MODEL_OPTION`에 사용 가능합니다.

322 336 

323Claude Code는 모델 ID를 알려진 패턴과 비교하여 [노력 수준](#adjust-effort-level) 및 [확장 사고](/ko/common-workflows#use-extended-thinking-thinking-mode)와 같은 기능을 활성화합니다. Bedrock ARN 또는 사용자 정의 배포 이름과 같은 제공자별 ID는 종종 이러한 패턴과 일치하지 않아 지원되는 기능이 비활성화됩니다. `_SUPPORTED_CAPABILITIES`를 설정하여 Claude Code에 모델이 실제로 지원하는 기능을 알립니다:337Claude Code는 모델 ID를 알려진 패턴과 비교하여 [노력 수준](#adjust-effort-level) 및 [확장 사고](#extended-thinking)와 같은 기능을 활성화합니다. Bedrock ARN 또는 사용자 정의 배포 이름과 같은 제공자별 ID는 종종 이러한 패턴과 일치하지 않아 지원되는 기능이 비활성화됩니다. `_SUPPORTED_CAPABILITIES`를 설정하여 Claude Code에 모델이 실제로 지원하는 기능을 알립니다:

324 338 

325| 기능 값 | 활성화 |339| 기능 값 | 활성화 |

326| ---------------------- | ----------------------------------------------------------------- |340| ---------------------- | -------------------------------------------- |

327| `effort` | [노력 수준](#adjust-effort-level) 및 `/effort` 명령 |341| `effort` | [노력 수준](#adjust-effort-level) 및 `/effort` 명령 |

328| `xhigh_effort` | {/* min-version: 2.1.111 */}`xhigh` 노력 수준 |342| `xhigh_effort` | {/* min-version: 2.1.111 */}`xhigh` 노력 수준 |

329| `max_effort` | `max` 노력 수준 |343| `max_effort` | `max` 노력 수준 |

330| `thinking` | [확장 사고](/ko/common-workflows#use-extended-thinking-thinking-mode) |344| `thinking` | [확장 사고](#extended-thinking) |

331| `adaptive_thinking` | 작업 복잡도에 따라 동적으로 사고를 할당하는 적응형 추론 |345| `adaptive_thinking` | 작업 복잡도에 따라 동적으로 사고를 할당하는 적응형 추론 |

332| `interleaved_thinking` | 도구 호출 간의 사고 |346| `interleaved_thinking` | 도구 호출 간의 사고 |

333 347 

Details

64 관리 설정은 MDM(Mobile Device Management) 또는 기타 장치 관리 솔루션을 통해 배포할 수 있습니다. 관리 설정 파일에 정의된 환경 변수는 높은 우선순위를 가지며 사용자가 재정의할 수 없습니다.64 관리 설정은 MDM(Mobile Device Management) 또는 기타 장치 관리 솔루션을 통해 배포할 수 있습니다. 관리 설정 파일에 정의된 환경 변수는 높은 우선순위를 가지며 사용자가 재정의할 수 없습니다.

65</Note>65</Note>

66 66 

67Claude Code는 `OTEL_*` 환경 변수를 Bash 도구, 훅, MCP 서버 및 언어 서버를 포함하여 생성하는 하위 프로세스에 전달하지 않습니다. Bash 도구를 통해 실행하는 OpenTelemetry 계측 애플리케이션은 Claude Code의 내보내기 엔드포인트 또는 헤더를 상속하지 않으므로 해당 애플리케이션이 자신의 원격 측정을 내보내야 하는 경우 명령에서 직접 이러한 변수를 설정합니다.

68 

67## 구성 세부 정보69## 구성 세부 정보

68 70 

69### 일반적인 구성 변수71### 일반적인 구성 변수


80| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | 로그 프로토콜 (일반 설정 재정의) | `grpc`, `http/json`, `http/protobuf` |82| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | 로그 프로토콜 (일반 설정 재정의) | `grpc`, `http/json`, `http/protobuf` |

81| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | OTLP 로그 엔드포인트 (일반 설정 재정의) | `http://localhost:4318/v1/logs` |83| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | OTLP 로그 엔드포인트 (일반 설정 재정의) | `http://localhost:4318/v1/logs` |

82| `OTEL_EXPORTER_OTLP_HEADERS` | OTLP용 인증 헤더 | `Authorization=Bearer token` |84| `OTEL_EXPORTER_OTLP_HEADERS` | OTLP용 인증 헤더 | `Authorization=Bearer token` |

83| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` | mTLS 인증용 클라이언트 키 | 클라이언트 키 파일 경로 |

84| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE` | mTLS 인증용 클라이언트 인증서 | 클라이언트 인증서 파일 경로 |

85| `OTEL_METRIC_EXPORT_INTERVAL` | 내보내기 간격 (밀리초 단위, 기본값: 60000) | `5000`, `60000` |85| `OTEL_METRIC_EXPORT_INTERVAL` | 내보내기 간격 (밀리초 단위, 기본값: 60000) | `5000`, `60000` |

86| `OTEL_LOGS_EXPORT_INTERVAL` | 로그 내보내기 간격 (밀리초 단위, 기본값: 5000) | `1000`, `10000` |86| `OTEL_LOGS_EXPORT_INTERVAL` | 로그 내보내기 간격 (밀리초 단위, 기본값: 5000) | `1000`, `10000` |

87| `OTEL_LOG_USER_PROMPTS` | 사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화) | `1`로 활성화 |87| `OTEL_LOG_USER_PROMPTS` | 사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화) | `1`로 활성화 |


91| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 메트릭 시간성 선호도 (기본값: `delta`). 백엔드가 누적 시간성을 예상하는 경우 `cumulative`로 설정 | `delta`, `cumulative` |91| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 메트릭 시간성 선호도 (기본값: `delta`). 백엔드가 누적 시간성을 예상하는 경우 `cumulative`로 설정 | `delta`, `cumulative` |

92| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 헤더 새로 고침 간격 (기본값: 1740000ms / 29분) | `900000` |92| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 헤더 새로 고침 간격 (기본값: 1740000ms / 29분) | `900000` |

93 93 

94### mTLS 인증

95 

96OTLP 내보내기를 위한 클라이언트 인증서를 구성하는 방법은 해당 신호에 사용되는 OTLP 프로토콜에 따라 다르며, `OTEL_EXPORTER_OTLP_PROTOCOL` 또는 신호별 재정의를 통해 설정됩니다. 동일한 구성이 메트릭, 로그 및 추적에 적용됩니다.

97 

98| 프로토콜 | 클라이언트 인증서 변수 | 수집기의 CA 신뢰 |

99| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- |

100| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY` 및 선택적으로 `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. [네트워크 구성](/ko/network-config#mtls-authentication) 참조 | `NODE_EXTRA_CA_CERTS` |

101| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` 및 `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, 또는 신호별 인증서를 사용하기 위한 `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY`와 같은 신호별 변형 | `OTEL_EXPORTER_OTLP_CERTIFICATE` |

102 

103`grpc`의 경우 OpenTelemetry SDK는 표준 OTLP 변수를 직접 읽으므로 신호별 메트릭 변수를 설정하는 기존 구성은 계속 작동합니다.

104 

94### 메트릭 카디널리티 제어105### 메트릭 카디널리티 제어

95 106 

96다음 환경 변수는 카디널리티를 관리하기 위해 메트릭에 포함되는 속성을 제어합니다:107다음 환경 변수는 카디널리티를 관리하기 위해 메트릭에 포함되는 속성을 제어합니다:


107 118 

108분산 추적은 각 사용자 프롬프트를 해당 프롬프트가 트리거하는 API 요청 및 도구 실행에 연결하는 스팬을 내보내므로 추적 백엔드에서 전체 요청을 단일 추적으로 볼 수 있습니다.119분산 추적은 각 사용자 프롬프트를 해당 프롬프트가 트리거하는 API 요청 및 도구 실행에 연결하는 스팬을 내보내므로 추적 백엔드에서 전체 요청을 단일 추적으로 볼 수 있습니다.

109 120 

110추적은 기본적으로 꺼져 있습니다. 활성화하려면 `CLAUDE_CODE_ENABLE_TELEMETRY=1` 및 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`을 모두 설정한 다음 `OTEL_TRACES_EXPORTER`를 설정하여 스팬을 보낼 위치를 선택합니다. 추적은 엔드포인트, 프로토콜 및 헤더에 대해 [일반적인 OTLP 구성](#common-configuration-variables)을 재사용합니다.121추적은 기본적으로 꺼져 있습니다. 활성화하려면 `CLAUDE_CODE_ENABLE_TELEMETRY=1` 및 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`을 모두 설정한 다음 `OTEL_TRACES_EXPORTER`를 설정하여 스팬을 보낼 위치를 선택합니다. 추적은 엔드포인트, 프로토콜, 헤더 [mTLS](#mtls-authentication)에 대해 [일반적인 OTLP 구성](#common-configuration-variables)을 재사용합니다.

111 122 

112| 환경 변수 | 설명 | 예제 값 |123| 환경 변수 | 설명 | 예제 값 |

113| ------------------------------------- | ----------------------------------------------------- | ------------------------------------ |124| ------------------------------------- | ----------------------------------------------------- | ------------------------------------ |


233 244 

234### 동적 헤더245### 동적 헤더

235 246 

236동적 인증이 필요한 엔터프라이즈 환경의 경우 스크립트를 구성하여 헤더를 동적으로 생성할 수 있습니다:247동적 인증이 필요한 엔터프라이즈 환경의 경우 스크립트를 구성하여 헤더를 동적으로 생성할 수 있습니다. 동적 헤더는 `http/protobuf` 및 `http/json` 프로토콜에만 적용됩니다. `grpc` 내보내기는 정적 `OTEL_EXPORTER_OTLP_HEADERS` 값만 사용합니다.

237 248 

238#### 설정 구성249#### 설정 구성

239 250 


899 910 

900**성능 모니터링**: API 요청 지속 시간 및 도구 실행 시간을 추적하여 성능 병목 현상을 식별합니다.911**성능 모니터링**: API 요청 지속 시간 및 도구 실행 시간을 추적하여 성능 병목 현상을 식별합니다.

901 912 

913## 감사 보안 이벤트

914 

915OpenTelemetry 이벤트는 Claude Code 활동의 감사 데이터 소스입니다. 모든 이벤트는 도구 호출, MCP 활동 및 권한 결정을 해당 이벤트를 트리거한 사용자에게 연결하는 ID 속성을 전달하며, OTLP 로그 내보내기는 이러한 이벤트를 OTLP 수신기가 있는 모든 SIEM(Security Information and Event Management) 플랫폼 또는 SIEM으로 전달하는 OpenTelemetry Collector에 전달할 수 있습니다.

916 

917### 속성 작업을 사용자에게 연결

918 

919각 이벤트의 [표준 속성](#standard-attributes)에는 인증된 사용자의 ID가 포함됩니다: Claude 계정으로 로그인할 때 `user.email`, `user.account_uuid`, `user.account_id` 및 `organization.id`, 그리고 설치 범위 `user.id` 및 세션별 `session.id`.

920 

921MCP 도구 호출, Bash 명령 및 파일 편집은 따라서 세션을 시작한 개발자에게 귀속됩니다. Claude Code는 별도의 서비스 계정으로 작동하지 않습니다. 각 이벤트에 기록된 ID는 개발자 자신의 Claude 계정입니다.

922 

923Claude Code가 직접 API 키로 인증하거나 Bedrock, Vertex AI 또는 Microsoft Foundry에 대해 인증할 때 세션에 Claude 계정이 없으며 `user.id` 및 `session.id`만 채워집니다. 이러한 배포에서는 `OTEL_RESOURCE_ATTRIBUTES`를 사용하여 사용자 ID를 직접 첨부하고, [관리 설정](#administrator-configuration) 파일 또는 시작 래퍼를 통해 사용자별로 설정합니다:

924 

925```bash theme={null}

926export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

927```

928 

929### MCP 활동 감사

930 

931전체 호출 세부 정보로 MCP 서버 활동을 캡처하려면 로그 내보내기를 활성화하고 `OTEL_LOG_TOOL_DETAILS=1`을 설정합니다. 각 MCP 작업은 표준 ID 속성과 함께 서버 이름, 도구 이름 및 호출 인수를 전달하는 구조화된 이벤트를 생성합니다:

932 

933| 이벤트 | MCP에 대해 기록하는 것 |

934| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |

935| `mcp_server_connection` | 서버 연결, 연결 해제 및 연결 실패 (`server_name`, `transport_type`, `server_scope` 및 오류 세부 정보 포함) |

936| `tool_result` | 각 MCP 도구 호출 (`tool_name` 및 `mcp_server_scope` 포함, `mcp_server_name` 및 `mcp_tool_name`을 포함하는 `tool_parameters` 페이로드, 호출 인수를 포함하는 `tool_input` 페이로드) |

937| `tool_decision` | 호출이 허용되었는지 거부되었는지, 그리고 결정이 구성, 훅 또는 사용자에서 나왔는지 여부 |

938 

939`OTEL_LOG_TOOL_DETAILS` 없이 `tool_result` 이벤트는 여전히 `tool_name` 및 `mcp_server_scope`를 전달하지만 `mcp_server_name`/`mcp_tool_name` 분류 및 인수를 생략하고, `mcp_server_connection` 이벤트는 `server_name` 및 오류 메시지를 생략합니다.

940 

941### 보안 질문을 이벤트에 매핑

942 

943감지 규칙을 구축할 때 모니터링하려는 신호를 찾고 해당 이벤트 및 속성에 대해 백엔드를 쿼리합니다:

944 

945| 신호 | 이벤트 | 주요 속성 |

946| ----------------------- | -------------------------------------------- | ------------------------------------------------------------ |

947| 도구 호출 허용 또는 거부, 그리고 어떻게 | `tool_decision` | `decision`, `source`, `tool_name` |

948| 권한 모드 에스컬레이션 | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

949| 정책 훅이 작업을 차단함 | `hook_execution_complete` | `hook_event`, `num_blocking` |

950| 로그인, 로그아웃 및 인증 실패 | `auth` | `action`, `success`, `error_category` |

951| MCP 서버 연결 또는 실패 | `mcp_server_connection` | `status`, `server_name`, `error_code` |

952| 플러그인 설치 및 출처 | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

953| 실행된 명령 및 터치된 파일 | `tool_result` (`OTEL_LOG_TOOL_DETAILS=1` 포함) | `tool_parameters`, `tool_input` |

954 

955Claude Code는 원본 이벤트 스트림만 내보냅니다. 이상 감지, 기준선 설정, 세션 간 상관 관계 및 경고는 SIEM 또는 관찰성 백엔드의 책임입니다.

956 

957### SIEM에 이벤트 전송

958 

959`OTEL_EXPORTER_OTLP_LOGS_ENDPOINT`를 SIEM의 OTLP 수신기 또는 SIEM의 기본 수집 API로 전달하는 OpenTelemetry Collector로 지정합니다. 다음 관리 설정 예는 이벤트만 내보내고 MCP 및 Bash 감사를 위해 전체 도구 세부 정보를 활성화합니다:

960 

961```json theme={null}

962{

963 "env": {

964 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

965 "OTEL_LOGS_EXPORTER": "otlp",

966 "OTEL_LOG_TOOL_DETAILS": "1",

967 "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": "http/protobuf",

968 "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": "https://siem.example.com:4318/v1/logs",

969 "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer your-siem-token"

970 }

971}

972```

973 

902## 백엔드 고려 사항974## 백엔드 고려 사항

903 975 

904메트릭, 로그 및 추적 백엔드 선택은 수행할 수 있는 분석 유형을 결정합니다:976메트릭, 로그 및 추적 백엔드 선택은 수행할 수 있는 분석 유형을 결정합니다:

output-styles.md +14 −5

Details

6 6 

7> 소프트웨어 엔지니어링 이상의 용도로 Claude Code 적응시키기7> 소프트웨어 엔지니어링 이상의 용도로 Claude Code 적응시키기

8 8 

9출력 스타일을 사용하면 Claude Code의 로컬 스크립트 실행, 파일 읽기/쓰기, TODO 추적과 같은 핵심 기능을 유지하면서 모든 유형의 에이전트로 사용할 있습니다.9출력 스타일은 Claude가 응답하는 방식을 변경하며, Claude가 알고 있는 내용을 변경하지 않습니다. 이들은 시스템 프롬프트를 수정하여 역할, 톤, 출력 형식을 설정하면서 스크립트 실행, 파일 읽기쓰기, TODO 추적과 같은 핵심 기능을 유지합니다. 턴마다 동일한 음성이나 형식을 다시 요청하거나 Claude가 소프트웨어 엔지니어 이외의 역할을 하기를 원할 때 사용합니다.

10 

11프로젝트, 규칙 또는 코드베이스에 대한 지침은 대신 [CLAUDE.md](/ko/memory)를 사용합니다.

10 12 

11## 기본 제공 출력 스타일13## 기본 제공 출력 스타일

12 14 


26* 모든 출력 스타일은 시스템 프롬프트 끝에 추가된 자체 사용자 정의 지침을 가집니다.28* 모든 출력 스타일은 시스템 프롬프트 끝에 추가된 자체 사용자 정의 지침을 가집니다.

27* 모든 출력 스타일은 대화 중에 Claude가 출력 스타일 지침을 준수하도록 상기시키는 알림을 트리거합니다.29* 모든 출력 스타일은 대화 중에 Claude가 출력 스타일 지침을 준수하도록 상기시키는 알림을 트리거합니다.

28 30 

29토큰 사용량은 스타일에 따라 다릅니다. 시스템 프롬프트에 지침을 추가하면 입력 토큰이 증가하지만, 프롬프트 캐싱은 세션의 첫 번째 요청 이후 이 비용을 줄입니다. 기본 제공 Explanatory 및 Learning 스타일은 설계상 Default보다 더 긴 응답을 생성하므로 출력 토큰이 증가합니다. 사용자 정의 스타일의 경우, 출력 토큰 사용량은 지침이 Claude에게 생성하도록 지시하는 내용에 따라 달라집니다.31토큰 사용량은 스타일에 따라 다릅니다. 시스템 프롬프트에 지침을 추가하면 입력 토큰이 증가하지만, prompt caching은 세션의 첫 번째 요청 이후 이 비용을 줄입니다. 기본 제공 Explanatory 및 Learning 스타일은 설계상 Default보다 더 긴 응답을 생성하므로 출력 토큰이 증가합니다. 사용자 정의 스타일의 경우, 출력 토큰 사용량은 지침이 Claude에게 생성하도록 지시하는 내용에 따라 달라집니다.

30 32 

31## 출력 스타일 변경33## 출력 스타일 변경

32 34 


40}42}

41```43```

42 44 

43출력 스타일은 세션 시작 시 시스템 프롬프트에 설정되므로, 변경 사항은 새 세션을 시작할 때 적용됩니다. 이렇게 하면 시스템 프롬프트가 대화 전체에서 안정적으로 유지되어 프롬프트 캐싱이 지연 시간과 비용을 줄일 수 있습니다.45출력 스타일은 세션 시작 시 시스템 프롬프트에 설정되므로, 변경 사항은 새 세션을 시작할 때 적용됩니다. 이렇게 하면 시스템 프롬프트가 대화 전체에서 안정적으로 유지되어 prompt caching이 지연 시간과 비용을 줄일 수 있습니다.

44 46 

45## 사용자 정의 출력 스타일 만들기47## 사용자 정의 출력 스타일 만들기

46 48 


63[Define how the assistant should behave in this style...]65[Define how the assistant should behave in this style...]

64```66```

65 67 

66이러한 파일은 사용자 수준(`~/.claude/output-styles`) 또는 프로젝트 수준(`.claude/output-styles`)에 저장할 수 있습니다.68이러한 파일은 가지 수준에 저장할 수 있습니다:

69 

70* 사용자: `~/.claude/output-styles`

71* 프로젝트: `.claude/output-styles`

72* 관리형 정책: [관리형 설정 디렉토리](/ko/settings#settings-files) 내의 `.claude/output-styles`

73 

74[플러그인](/ko/plugins-reference)도 `output-styles/` 디렉토리에 출력 스타일을 포함할 수 있습니다.

67 75 

68### Frontmatter76### Frontmatter

69 77 

70출력 스타일 파일은 메타데이터 지정을 위한 frontmatter를 지원합니다:78출력 스타일 파일은 메타데이터 지정을 위한 frontmatter를 지원합니다:

71 79 

72| Frontmatter | 목적 | 기본값 |80| Frontmatter | 목적 | 기본값 |

73| :------------------------- | :--------------------------------------- | :--------- |81| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

74| `name` | 출력 스타일의 이름(파일 이름이 아닌 경우) | 파일 이름에서 상속 |82| `name` | 출력 스타일의 이름(파일 이름이 아닌 경우) | 파일 이름에서 상속 |

75| `description` | `/config` 선택기에 표시되는 출력 스타일의 설명 | 없음 |83| `description` | `/config` 선택기에 표시되는 출력 스타일의 설명 | 없음 |

76| `keep-coding-instructions` | Claude Code의 시스템 프롬프트의 코딩 관련 부분을 유지할지 여부 | false |84| `keep-coding-instructions` | Claude Code의 시스템 프롬프트의 코딩 관련 부분을 유지할지 여부 | false |

85| `force-for-plugin` | 플러그인 출력 스타일만 해당: 사용자가 선택하지 않아도 플러그인이 활성화될 때마다 이 스타일을 자동으로 적용합니다. 사용자의 `outputStyle` 설정을 재정의합니다. 여러 활성화된 플러그인이 이를 설정하면 먼저 로드된 것이 우선합니다. | false |

77 86 

78## 관련 기능과의 비교87## 관련 기능과의 비교

79 88 

plugins.md +6 −0

Details

315 ```315 ```

316</Tip>316</Tip>

317 317 

318URL에서 호스팅되는 `.zip` 아카이브로 이미 패키징된 플러그인을 테스트하려면(예: CI 빌드 아티팩트) 대신 `--plugin-url`을 사용하세요. Claude Code는 시작 시 아카이브를 가져오고 해당 세션에만 로드합니다. 가져오기가 실패하거나 아카이브가 유효하지 않으면 Claude Code는 플러그인 로드 오류를 보고하고 이를 제외하고 시작합니다. 모든 플러그인 소스에 대해 동일한 [신뢰 고려 사항](/ko/discover-plugins#security)이 적용됩니다: 이 플래그를 제어하거나 신뢰하는 아카이브에만 지정하세요.

319 

320```bash theme={null}

321claude --plugin-url https://example.com/my-plugin.zip

322```

323 

318### 플러그인 문제 디버깅324### 플러그인 문제 디버깅

319 325 

320플러그인이 예상대로 작동하지 않는 경우:326플러그인이 예상대로 작동하지 않는 경우:

Details

301]301]

302```302```

303 303 

304monitors를 인라인으로 선언하려면 `plugin.json`의 `monitors` 키를 동일한 배열로 설정하세요. 기본이 아닌 경로에서 로드하려면 `monitors`를 `"./config/monitors.json"`과 같은 상대 경로 문자열로 설정하세요.304monitors를 인라인으로 선언하려면 `plugin.json`의 `experimental.monitors` 동일한 배열로 설정하세요. 기본이 아닌 경로에서 로드하려면 `experimental.monitors`를 `"./config/monitors.json"`과 같은 상대 경로 문자열로 설정하세요. Monitors는 [실험적 컴포넌트](#experimental-components)입니다.

305 305 

306**필수 필드:**306**필수 필드:**

307 307 


323 323 

324### Themes324### Themes

325 325 

326플러그인은 `/theme`에 기본 제공 프리셋 및 사용자의 로컬 테마와 함께 나타나는 색상 테마를 제공할 수 있습니다. 테마는 `themes/` 디렉토리의 JSON 파일로, `base` 프리셋과 색상 토큰의 sparse `overrides` 맵을 포함합니다.326플러그인은 `/theme`에 기본 제공 프리셋 및 사용자의 로컬 테마와 함께 나타나는 색상 테마를 제공할 수 있습니다. 테마는 `themes/` 디렉토리의 JSON 파일로, `base` 프리셋과 색상 토큰의 sparse `overrides` 맵을 포함합니다. Themes는 [실험적 컴포넌트](#experimental-components)입니다.

327 327 

328```json theme={null}328```json theme={null}

329{329{


384 "hooks": "./config/hooks.json",384 "hooks": "./config/hooks.json",

385 "mcpServers": "./mcp-config.json",385 "mcpServers": "./mcp-config.json",

386 "outputStyles": "./styles/",386 "outputStyles": "./styles/",

387 "themes": "./themes/",

388 "lspServers": "./.lsp.json",387 "lspServers": "./.lsp.json",

389 "monitors": "./monitors.json",388 "experimental": {

389 "themes": "./themes/",

390 "monitors": "./monitors.json"

391 },

390 "dependencies": [392 "dependencies": [

391 "helper-lib",393 "helper-lib",

392 { "name": "secrets-vault", "version": "~2.1.0" }394 { "name": "secrets-vault", "version": "~2.1.0" }


420### 컴포넌트 경로 필드422### 컴포넌트 경로 필드

421 423 

422| 필드 | 타입 | 설명 | 예시 |424| 필드 | 타입 | 설명 | 예시 |

423| :------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |425| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

424| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 사용자 정의 skill 디렉토리 (기본 `skills/` 대체) | `"./custom/skills/"` |426| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 사용자 정의 skill 디렉토리 (기본 `skills/` 대체) | `"./custom/skills/"` |

425| `commands` | string\|array | 사용자 정의 평면 `.md` skill 파일 또는 디렉토리 (기본 `commands/` 대체) | `"./custom/cmd.md"` 또는 `["./cmd1.md"]` |427| `commands` | string\|array | 사용자 정의 평면 `.md` skill 파일 또는 디렉토리 (기본 `commands/` 대체) | `"./custom/cmd.md"` 또는 `["./cmd1.md"]` |

426| `agents` | string\|array | 사용자 정의 agent 파일 (기본 `agents/` 대체) | `"./custom/agents/reviewer.md"` |428| `agents` | string\|array | 사용자 정의 agent 파일 (기본 `agents/` 대체) | `"./custom/agents/reviewer.md"` |

427| `hooks` | string\|array\|object | Hook 구성 경로 또는 인라인 구성 | `"./my-extra-hooks.json"` |429| `hooks` | string\|array\|object | Hook 구성 경로 또는 인라인 구성 | `"./my-extra-hooks.json"` |

428| `mcpServers` | string\|array\|object | MCP 구성 경로 또는 인라인 구성 | `"./my-extra-mcp-config.json"` |430| `mcpServers` | string\|array\|object | MCP 구성 경로 또는 인라인 구성 | `"./my-extra-mcp-config.json"` |

429| `outputStyles` | string\|array | 사용자 정의 출력 스타일 파일/디렉토리 (기본 `output-styles/` 대체) | `"./styles/"` |431| `outputStyles` | string\|array | 사용자 정의 출력 스타일 파일/디렉토리 (기본 `output-styles/` 대체) | `"./styles/"` |

430| `themes` | string\|array | 색상 테마 파일/디렉토리 (기본 `themes/` 대체). [테마](#themes) 참조 | `"./themes/"` |

431| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 코드 인텔리전스 구성 (정의로 이동, 참조 찾기 등) | `"./.lsp.json"` |432| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 코드 인텔리전스 구성 (정의로 이동, 참조 찾기 등) | `"./.lsp.json"` |

432| `monitors` | string\|array | 플러그인이 활성화될 때 자동으로 시작되는 백그라운드 [Monitor](/ko/tools-reference#monitor-tool) 구성. [Monitors](#monitors) 참조 | `"./monitors.json"` |433| `experimental.themes` | string\|array | 색상 테마 파일/디렉토리 (기본 `themes/` 대체). [테마](#themes) 참조 | `"./themes/"` |

434| `experimental.monitors` | string\|array | 플러그인이 활성화될 때 자동으로 시작되는 백그라운드 [Monitor](/ko/tools-reference#monitor-tool) 구성. [Monitors](#monitors) 참조 | `"./monitors.json"` |

433| `userConfig` | object | 플러그인이 활성화될 때 사용자에게 프롬프트하는 사용자 구성 가능 값. [사용자 구성](#user-configuration) 참조 | 아래 참조 |435| `userConfig` | object | 플러그인이 활성화될 때 사용자에게 프롬프트하는 사용자 구성 가능 값. [사용자 구성](#user-configuration) 참조 | 아래 참조 |

434| `channels` | array | 메시지 주입을 위한 채널 선언 (Telegram, Slack, Discord 스타일). [채널](#channels) 참조 | 아래 참조 |436| `channels` | array | 메시지 주입을 위한 채널 선언 (Telegram, Slack, Discord 스타일). [채널](#channels) 참조 | 아래 참조 |

435| `dependencies` | array | 이 플러그인이 필요로 하는 다른 플러그인, 선택적으로 semver 버전 제약 포함. [플러그인 종속성 버전 제약](/ko/plugin-dependencies) 참조 | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |437| `dependencies` | array | 이 플러그인이 필요로 하는 다른 플러그인, 선택적으로 semver 버전 제약 포함. [플러그인 종속성 버전 제약](/ko/plugin-dependencies) 참조 | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

436 438 

439### 실험적 컴포넌트

440 

441`experimental` 키 아래의 컴포넌트인 `themes` 및 `monitors`는 안정화되는 동안 릴리스 간에 변경될 수 있는 매니페스트 스키마를 가집니다. 이들을 선언하는 위치는 별도의 마이그레이션입니다. 최상위 수준은 여전히 작동하고, `claude plugin validate`는 경고하며, 향후 릴리스에서는 `experimental.*`이 필요합니다.

442 

437### 사용자 구성443### 사용자 구성

438 444 

439`userConfig` 필드는 플러그인이 활성화될 때 Claude Code가 사용자에게 프롬프트하는 값을 선언합니다. 사용자가 `settings.json`을 수동으로 편집하도록 요구하는 대신 이를 사용하세요.445`userConfig` 필드는 플러그인이 활성화될 때 Claude Code가 사용자에게 프롬프트하는 값을 선언합니다. 사용자가 `settings.json`을 수동으로 편집하도록 요구하는 대신 이를 사용하세요.


504 510 

505### 경로 동작 규칙511### 경로 동작 규칙

506 512 

507`skills`, `commands`, `agents`, `outputStyles`, `themes` 및 `monitors`의 경우 사용자 정의 경로는 기본값을 대체합니다. 매니페스트가 `skills`를 지정하면 기본 `skills/` 디렉토리는 스캔되지 않습니다. 매니페스트가 `monitors`를 지정하면 기본 `monitors/monitors.json`은 로드되지 않습니다. [Hooks](#hooks), [MCP servers](#mcp-servers) 및 [LSP servers](#lsp-servers)는 여러 소스를 처리하기 위한 다른 의미를 가집니다.513`skills`, `commands`, `agents`, `outputStyles`, `experimental.themes` 및 `experimental.monitors`의 경우 사용자 정의 경로는 기본값을 대체합니다. 매니페스트가 `skills`를 지정하면 기본 `skills/` 디렉토리는 스캔되지 않습니다. 매니페스트가 `experimental.monitors`를 지정하면 기본 `monitors/monitors.json`은 로드되지 않습니다. [Hooks](#hooks), [MCP servers](#mcp-servers) 및 [LSP servers](#lsp-servers)는 여러 소스를 처리하기 위한 다른 의미를 가집니다.

508 514 

509* 모든 경로는 플러그인 루트에 상대적이어야 하며 `./`로 시작해야 합니다.515* 모든 경로는 플러그인 루트에 상대적이어야 하며 `./`로 시작해야 합니다.

510* 사용자 정의 경로의 컴포넌트는 동일한 명명 및 네임스페이싱 규칙을 사용합니다.516* 사용자 정의 경로의 컴포넌트는 동일한 명명 및 네임스페이싱 규칙을 사용합니다.


605 611 

606플러그인은 두 가지 방법 중 하나로 지정됩니다:612플러그인은 두 가지 방법 중 하나로 지정됩니다:

607 613 

608* `claude --plugin-dir`을 통해, 세션 기간 동안.614* `claude --plugin-dir` 또는 `claude --plugin-url`을 통해, 세션 기간 동안.

609* 마켓플레이스를 통해, 향후 세션을 위해 설치됨.615* 마켓플레이스를 통해, 향후 세션을 위해 설치됨.

610 616 

611보안 및 검증 목적으로 Claude Code는 *마켓플레이스* 플러그인을 제자리에서 사용하는 대신 사용자의 로컬 **플러그인 캐시** (`~/.claude/plugins/cache`)에 복사합니다. 외부 파일을 참조하는 플러그인을 개발할 때 이 동작을 이해하는 것이 중요합니다.617보안 및 검증 목적으로 Claude Code는 *마켓플레이스* 플러그인을 제자리에서 사용하는 대신 사용자의 로컬 **플러그인 캐시** (`~/.claude/plugins/cache`)에 복사합니다. 외부 파일을 참조하는 플러그인을 개발할 때 이 동작을 이해하는 것이 중요합니다.


616 622 

617### 경로 순회 제한623### 경로 순회 제한

618 624 

619설치된 플러그인은 해당 디렉토리 외부의 파일을 참조할 수 없습니다. 플러그인 루트 외부를 순회하는 경로 (예: `../shared-utils`)는 설치 후 작동하지 않습니다. 왜냐하면 이러한 외부 파일이 캐시에 복사되지 않기 때문입니다.625설치된 플러그인은 해당 디렉토리 외부의 파일을 참조할 수 없습니다. 플러그인 루트 외부를 순회하는 경로(예: `../shared-utils`)는 설치 후 작동하지 않습니다. 왜냐하면 이러한 외부 파일이 캐시에 복사되지 않기 때문입니다.

620 626 

621### 외부 종속성 작업627### 외부 종속성 작업

622 628 

routines.md +78 −28

Details

14 14 

15각 루틴에는 하나 이상의 트리거를 연결할 수 있습니다.15각 루틴에는 하나 이상의 트리거를 연결할 수 있습니다.

16 16 

17* **예약됨**: 시간별, 야간, 또는 주간과 같은 반복 주기로 실행17* **예약됨**: 시간별, 야간, 또는 주간과 같은 반복 주기로 실행되거나 특정 미래 시간에 한 번 실행

18* **API**: HTTP POST를 루틴별 엔드포인트로 보내 베어러 토큰으로 요청 시 트리거18* **API**: HTTP POST를 루틴별 엔드포인트로 보내 베어러 토큰으로 요청 시 트리거

19* **GitHub**: 풀 요청 또는 릴리스와 같은 저장소 이벤트에 자동으로 반응하여 실행19* **GitHub**: 풀 요청 또는 릴리스와 같은 저장소 이벤트에 자동으로 반응하여 실행

20 20 


44 44 

45## 루틴 생성45## 루틴 생성

46 46 

47, 데스크톱 앱 또는 CLI에서 루틴을 생성하세요. 세 가지 표면 모두 동일한 클라우드 계정에 쓰므로 CLI에서 생성한 루틴이 즉시 claude.ai/code/routines에 표시됩니다. 데스크톱 앱에서 **새 작업**을 클릭하고 **원격 작업**을 선택하세요. **로컬 작업**을 선택하면 [로컬 데스크톱 예약 작업](/ko/desktop-scheduled-tasks)이 생성되며, 이는 머신에서 실행되고 루틴이 아닙니다.47웹의 [claude.ai/code/routines](https://claude.ai/code/routines), 데스크톱 앱 또는 CLI에서 루틴을 생성합니다. 세 가지 표면 모두 동일한 클라우드 계정에 쓰므로 곳에서 생성한 루틴이 즉시 다른 곳에 표시됩니다. 데스크톱 앱에서 사이드바의 **루틴**을 클릭한 다음 **루틴**을 클릭하고 **원격**을 선택합니다. 대신 **로컬**을 선택하면 머신에서 실행되는 [데스크톱 예약 작업](/ko/desktop-scheduled-tasks)이 생성되며, 클라우드에서 실행되지 않습니다.

48 48 

49생성 양식은 루틴의 프롬프트, 저장소, 환경, 커넥터 및 트리거를 설정합니다.49생성 양식은 루틴의 프롬프트, 저장소, 환경, 커넥터 및 트리거를 설정합니다.

50 50 

51루틴은 완전한 Claude Code 클라우드 세션으로 자율적으로 실행됩니다. 권한 모드 선택기나 실행 중 승인 프롬프트가 없습니다. 세션은 셸 명령을 실행하고, 복제된 저장소에 커밋된 [스킬](/ko/skills)을 사용하고, 포함된 모든 커넥터를 호출할 수 있습니다. 루틴이 도달할 수 있는 것은 선택한 저장소와 해당 브랜치 푸시 설정, [환경의](/ko/claude-code-on-the-web#the-cloud-environment) 네트워크 액세스 및 변수, 그리고 포함된 커넥터에 의해 결정됩니다. 루틴이 실제로 필요한 것으로 각각을 범위 지정하세요.51루틴은 완전한 Claude Code 클라우드 세션으로 자율적으로 실행됩니다. 권한 모드 선택기나 실행 중 승인 프롬프트가 없습니다. 세션은 셸 명령을 실행하고, 복제된 저장소에 커밋된 [스킬](/ko/skills)을 사용하고, 포함된 모든 커넥터를 호출할 수 있습니다. 루틴이 도달할 수 있는 것은 선택한 저장소와 해당 브랜치 푸시 설정, [환경의](/ko/claude-code-on-the-web#the-cloud-environment) 네트워크 액세스 및 변수, 그리고 포함된 커넥터에 의해 결정됩니다. 루틴이 실제로 필요한 것으로 각각을 범위 지정합니다.

52 52 

53루틴은 개별 claude.ai 계정에 속합니다. 팀원과 공유되지 않으며 계정의 일일 실행 허용량에 대해 계산됩니다. 루틴이 연결된 GitHub 신원 또는 커넥터를 통해 수행하는 모든 작업은 사용자로 표시됩니다. 커밋 및 풀 요청은 GitHub 사용자를 전달하고, Slack 메시지, Linear 티켓 또는 기타 커넥터 작업은 해당 서비스에 대해 연결된 계정을 사용합니다.53루틴은 개별 claude.ai 계정에 속합니다. 팀원과 공유되지 않으며 계정의 일일 실행 허용량에 대해 계산됩니다. 루틴이 연결된 GitHub 신원 또는 커넥터를 통해 수행하는 모든 작업은 사용자로 표시됩니다. 커밋 및 풀 요청은 GitHub 사용자를 전달하고, Slack 메시지, Linear 티켓 또는 기타 커넥터 작업은 해당 서비스에 대해 연결된 계정을 사용합니다.

54 54 


56 56 

57<Steps>57<Steps>

58 <Step title="생성 양식 열기">58 <Step title="생성 양식 열기">

59 [claude.ai/code/routines](https://claude.ai/code/routines)를 방문하고 **새 루틴**을 클릭하세요.59 [claude.ai/code/routines](https://claude.ai/code/routines)를 방문하고 **새 루틴**을 클릭합니다.

60 </Step>60 </Step>

61 61 

62 <Step title="루틴 이름 지정 및 프롬프트 작성">62 <Step title="루틴 이름 지정 및 프롬프트 작성">

63 루틴에 설명적인 이름을 지정하고 Claude가 매번 실행할 프롬프트를 작성하세요. 프롬프트가 가장 중요한 부분입니다. 루틴이 자율적으로 실행되므로 프롬프트는 자체 포함되어야 하며 수행할 작업과 성공이 무엇인지에 대해 명시적이어야 합니다.63 루틴에 설명적인 이름을 지정하고 Claude가 매번 실행할 프롬프트를 작성합니다. 프롬프트가 가장 중요한 부분입니다. 루틴이 자율적으로 실행되므로 프롬프트는 자체 포함되어야 하며 수행할 작업과 성공이 무엇인지에 대해 명시적이어야 합니다.

64 64 

65 프롬프트 입력에는 모델 선택기가 포함됩니다. Claude는 모든 실행에서 선택된 모델을 사용합니다.65 프롬프트 입력에는 모델 선택기가 포함됩니다. Claude는 모든 실행에서 선택된 모델을 사용합니다.

66 </Step>66 </Step>

67 67 

68 <Step title="저장소 선택">68 <Step title="저장소 선택">

69 Claude가 작업할 하나 이상의 GitHub 저장소를 추가하세요. 각 저장소는 실행 시작 시 기본 브랜치에서 시작하여 복제됩니다. Claude는 변경 사항에 대해 `claude/` 접두사가 붙은 브랜치를 생성합니다. 모든 브랜치로의 푸시를 허용하려면 해당 저장소에 대해 **제한 없는 브랜치 푸시 허용**을 활성화하세요.69 Claude가 작업할 하나 이상의 GitHub 저장소를 추가합니다. 각 저장소는 실행 시작 시 기본 브랜치에서 시작하여 복제됩니다. Claude는 변경 사항에 대해 `claude/` 접두사가 붙은 브랜치를 생성합니다.

70 </Step>70 </Step>

71 71 

72 <Step title="환경 선택">72 <Step title="환경 선택">

73 루틴에 대해 [클라우드 환경](/ko/claude-code-on-the-web#the-cloud-environment)을 선택하세요. 환경은 클라우드 세션이 액세스할 수 있는 것을 제어합니다.73 루틴에 대해 [클라우드 환경](/ko/claude-code-on-the-web#the-cloud-environment)을 선택합니다. 환경은 클라우드 세션이 액세스할 수 있는 것을 제어합니다.

74 74 

75 * **네트워크 액세스**: 각 실행 중에 사용 가능한 인터넷 액세스 수준 설정75 * **네트워크 액세스**: 각 실행 중에 사용 가능한 인터넷 액세스 수준 설정

76 * **환경 변수**: Claude가 사용할 수 있는 API 키, 토큰 또는 기타 비밀 제공76 * **환경 변수**: Claude가 사용할 수 있는 API 키, 토큰 또는 기타 비밀 제공

77 * **설정 스크립트**: 루틴이 필요한 종속성 및 도구를 설치합니다. 결과는 [캐시됩니다](/ko/claude-code-on-the-web#environment-caching). 따라서 스크립트는 모든 세션에서 다시 실행되지 않습니다.77 * **설정 스크립트**: 루틴이 필요한 종속성 및 도구를 설치합니다. 결과는 [캐시됩니다](/ko/claude-code-on-the-web#environment-caching). 따라서 스크립트는 모든 세션에서 다시 실행되지 않습니다.

78 78 

79 **기본** 환경이 제공됩니다. 사용자 정의 환경을 사용하려면 루틴을 생성하기 전에 [하나를 생성](/ko/claude-code-on-the-web#the-cloud-environment)하세요.79 **기본** 환경이 제공되며 **신뢰할 수 있는** 네트워크 액세스가 있습니다. 이는 [기본 설정](/ko/claude-code-on-the-web#default-allowed-domains) 패키지 레지스트리, 클라우드 공급자 API, 컨테이너 레지스트리 및 일반적인 개발 도메인을 허용하지만 다른 모든 것을 차단합니다. 루틴이 자신의 서비스나 해당 목록 외의 도메인에 도달해야 하는 경우 실행하기 전에 환경의 [네트워크 액세스](/ko/claude-code-on-the-web#network-access)를 편집합니다. 별도의 환경을 사용하려면 먼저 [하나를 생성](/ko/claude-code-on-the-web#configure-your-environment)합니다.

80 </Step>80 </Step>

81 81 

82 <Step title="트리거 선택">82 <Step title="트리거 선택">

83 **트리거 선택** 아래에서 루틴이 시작되는 방식을 선택하세요. 하나의 트리거 유형을 선택하거나 여러 개를 결합할 수 있습니다.83 **트리거 선택** 아래에서 루틴이 시작되는 방식을 선택합니다. 하나의 트리거 유형을 선택하거나 여러 개를 결합할 수 있습니다.

84 84 

85 <Tabs>85 <Tabs>

86 <Tab title="일정">86 <Tab title="일정">

87 사전 설정된 빈도를 선택하세요. 시간별, 일일, 평일 또는 주간. 시간대 처리, 엇갈림 사용자 정의 cron 간격은 [일정 트리거 추가](#add-a-schedule-trigger)를 참조하세요.87 반복 실행을 위해 사전 설정된 빈도를 선택하거나 특정 타임스탬프에서 일회성 실행을 예약합니다. 시간대 처리, 엇갈림, 사용자 정의 cron 간격 및 일회성 실행은 [일정 트리거 추가](#add-a-schedule-trigger)를 참조합니다.

88 </Tab>88 </Tab>

89 89 

90 <Tab title="GitHub 이벤트">90 <Tab title="GitHub 이벤트">

91 저장소, 반응할 이벤트 및 선택적 필터를 선택하세요. 지원되는 이벤트 및 필터 필드의 전체 목록은 [GitHub 트리거 추가](#add-a-github-trigger)를 참조하세요.91 저장소, 반응할 이벤트 및 선택적 필터를 선택합니다. 지원되는 이벤트 및 필터 필드의 전체 목록은 [GitHub 트리거 추가](#add-a-github-trigger)를 참조합니다.

92 </Tab>92 </Tab>

93 93 

94 <Tab title="API">94 <Tab title="API">

95 여기서 **API**를 선택한 다음 루틴을 저장하세요. URL과 토큰은 루틴 ID에 따라 달라지므로 루틴이 저장된 후 생성됩니다. URL을 복사하고 토큰을 생성하려면 [API 트리거 추가](#add-an-api-trigger)를 참조하세요.95 여기서 **API**를 선택한 다음 루틴을 저장합니다. URL과 토큰은 루틴 ID에 따라 달라지므로 루틴이 저장된 후 생성됩니다. URL을 복사하고 토큰을 생성하려면 [API 트리거 추가](#add-an-api-trigger)를 참조합니다.

96 </Tab>96 </Tab>

97 </Tabs>97 </Tabs>

98 </Step>98 </Step>

99 99 

100 <Step title="커넥터 검토">100 <Step title="커넥터 및 권한 검토">

101 연결된 모든 [MCP 커넥터](/ko/mcp)는 기본적으로 포함됩니다. 루틴이 필요하지 않은 것을 제거하세요. 커넥터는 Claude에게 각 실행 중에 Slack, Linear 또는 Google Drive와 같은 외부 서비스에 액세스할있게 합니다.101 양식 하단의 **커넥터** **권한** 탭은 루틴이 도달할있는 것을 제어합니다.

102 

103 커넥터 아래에서 연결된 모든 [MCP 커넥터](/ko/mcp)는 기본적으로 포함됩니다. 루틴이 필요하지 않은 것을 제거합니다. Claude는 실행 중에 권한을 요청하지 않고 포함된 커넥터의 모든 도구(쓰기 포함)를 사용할 수 있습니다.

104 

105 권한 아래에서 Claude가 `claude/` 접두사가 붙은 브랜치만 푸시하는 대신 기존 브랜치로 푸시할 수 있어야 하는 모든 저장소에 대해 **제한 없는 브랜치 푸시 허용**을 활성화합니다.

102 </Step>106 </Step>

103 107 

104 <Step title="루틴 생성">108 <Step title="루틴 생성">

105 **생성**을 클릭하세요. 루틴이 목록에 나타나고 다음 번에 트리거 중 하나가 일치할 때 실행됩니다. 즉시 실행을 시작하려면 루틴의 세부 정보 페이지에서 **지금 실행**을 클릭하세요.109 **생성**을 클릭합니다. 루틴이 목록에 나타나고 다음 번에 트리거 중 하나가 일치할 때 실행됩니다. 즉시 실행을 시작하려면 루틴의 세부 정보 페이지에서 **지금 실행**을 클릭합니다.

106 110 

107 각 실행은 다른 세션과 함께 새 세션을 생성하므로 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 요청을 생성할 수 있습니다.111 각 실행은 다른 세션과 함께 새 세션을 생성하므로 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 요청을 생성할 수 있습니다.

108 </Step>112 </Step>


110 114 

111### CLI에서 생성115### CLI에서 생성

112 116 

113모든 세션에서 `/schedule`을 실행하여 예약된 루틴을 대화식으로 생성하세요. `/schedule daily PR review at 9am`과 같이 설명을 직접 전달할 수도 있습니다. Claude는 웹 양식이 수집하는 동일한 정보를 안내한 다음 루틴을 계정에 저장합니다.117모든 세션에서 `/schedule`을 실행하여 예약된 루틴을 대화식으로 생성합니다. `/schedule daily PR review at 9am`과 같은 반복 루틴이나 `/schedule clean up feature flag in one week`과 같은 일회성 루틴에 대해 설명을 직접 전달할 수도 있습니다. Claude는 웹 양식이 수집하는 동일한 정보를 안내한 다음 루틴을 계정에 저장합니다.

114 

115CLI의 `/schedule`은 예약된 루틴만 생성합니다. API 또는 GitHub 트리거를 추가하려면 [claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서 루틴을 편집하세요.

116 

117CLI는 기존 루틴 관리도 지원합니다. `/schedule list`를 실행하여 모든 루틴을 보거나, `/schedule update`를 실행하여 하나를 변경하거나, `/schedule run`을 실행하여 즉시 트리거하세요.

118 118 

119### 데스크톱 앱에서 생성119CLI의 `/schedule`은 예약된 루틴만 생성합니다. API 또는 GitHub 트리거를 추가하려면 [claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서 루틴을 편집합니다.

120 120 

121데스크톱 앱에서 **일정** 페이지를 열고 **새 작업**을 클릭한 다음 **새 원격 작업**을 선택하세요. 데스크톱 앱은 로컬 예약 작업과 루틴을 동일한 그리드에 표시합니다. 로컬 옵션에 대한 자세한 내용은 [데스크톱 예약 작업](/ko/desktop-scheduled-tasks)을 참조하세요.121CLI는 기존 루틴 관리도 지원합니다. `/schedule list`를 실행하여 모든 루틴을 보거나, `/schedule update`를 실행하여 하나를 변경하거나, `/schedule run`을 실행하여 즉시 트리거합니다.

122 122 

123## 트리거 구성123## 트리거 구성

124 124 


126 126 

127### 일정 트리거 추가127### 일정 트리거 추가

128 128 

129일정 트리거는 반복 주기에 따라 루틴을 실행합니다. **트리거 선택** 섹션에서 사전 설정된 빈도를 선택하세요. 시간별, 일일, 평일 또는 주간. 시간은 로컬 시간대에 입력되고 자동으로 변환되므로 클라우드 인프라가 어디에 있든 루틴이 해당 벽시계 시간에 실행됩니다.129일정 트리거는 반복 주기에 따라 루틴을 실행하거나 특정 미래 시간에 한 번 실행합니다. **트리거 선택** 섹션에서 사전 설정된 빈도를 선택하세요. 시간별, 일일, 평일 또는 주간. 시간은 로컬 시간대에 입력되고 자동으로 변환되므로 클라우드 인프라가 어디에 있든 루틴이 해당 벽시계 시간에 실행됩니다.

130 130 

131실행은 엇갈림으로 인해 예약된 시간 몇 분 후에 시작될 수 있습니다. 오프셋은 각 루틴에 대해 일관됩니다.131실행은 엇갈림으로 인해 예약된 시간 몇 분 후에 시작될 수 있습니다. 오프셋은 각 루틴에 대해 일관됩니다.

132 132 

1332시간마다 또는 매월 1일과 같은 사용자 정의 간격의 경우 양식에서 가장 가까운 사전 설정을 선택한 다음 CLI에서 `/schedule update`를 실행하여 특정 cron 표현식을 설정하세요. 최소 간격은 1시간입니다. 더 자주 실행되는 표현식은 거부됩니다.1332시간마다 또는 매월 1일과 같은 사용자 정의 간격의 경우 양식에서 가장 가까운 사전 설정을 선택한 다음 CLI에서 `/schedule update`를 실행하여 특정 cron 표현식을 설정하세요. 최소 간격은 1시간입니다. 더 자주 실행되는 표현식은 거부됩니다.

134 134 

135#### 일회성 실행 예약

136 

137일회성 일정은 특정 타임스탬프에서 루틴을 한 번만 실행합니다. 이를 사용하여 주 후반에 자신에게 상기시키거나, 롤아웃이 완료된 후 정리 PR을 열거나, 업스트림 변경이 도착할 때 후속 작업을 시작하세요. 루틴이 실행된 후 자동으로 비활성화되고 웹 UI는 이를 **실행됨**으로 표시합니다. 다시 실행하려면 루틴을 편집하고 새로운 일회성 시간을 설정하세요.

138 

139CLI에서 자연어로 시간을 설명하여 일회성 실행을 만드세요. Claude는 현재 시간에 대해 구문을 해석하고 저장하기 전에 절대 타임스탬프를 확인합니다.

140 

141```text theme={null}

142/schedule tomorrow at 9am, summarize yesterday's merged PRs

143```

144 

145```text theme={null}

146/schedule in 2 weeks, open a cleanup PR that removes the feature flag

147```

148 

149반복 일정과 동일한 로컬-UTC 변환이 일회성 타임스탬프에 적용됩니다.

150 

151일회성 실행은 일일 루틴 실행 상한선에 포함되지 않습니다. 다른 세션과 마찬가지로 플랜의 정기 구독 사용량을 소비합니다. 자세한 내용은 [사용량 및 제한](#usage-and-limits)을 참조하세요.

152 

135### API 트리거 추가153### API 트리거 추가

136 154 

137API 트리거는 루틴에 전용 HTTP 엔드포인트를 제공합니다. 루틴의 베어러 토큰으로 엔드포인트에 POST하면 새 세션이 시작되고 세션 URL이 반환됩니다. 이를 사용하여 Claude Code를 경고 시스템, 배포 파이프라인, 내부 도구 또는 인증된 HTTP 요청을 할 수 있는 곳에 연결하세요.155API 트리거는 루틴에 전용 HTTP 엔드포인트를 제공합니다. 루틴의 베어러 토큰으로 엔드포인트에 POST하면 새 세션이 시작되고 세션 URL이 반환됩니다. 이를 사용하여 Claude Code를 경고 시스템, 배포 파이프라인, 내부 도구 또는 인증된 HTTP 요청을 할 수 있는 곳에 연결하세요.


144 </Step>162 </Step>

145 163 

146 <Step title="API 트리거 추가">164 <Step title="API 트리거 추가">

147 프롬프트 아래의 **트리거 선택** 섹션으로 스크롤하고, **다른 트리거 추가**를 클릭한 다음, **API**를 선택하세요.165 **지침** 상자 아래의 **트리거 선택** 섹션으로 스크롤하고, **다른 트리거 추가**를 클릭한 다음, **API**를 선택하세요.

148 </Step>166 </Step>

149 167 

150 <Step title="URL 복사 및 토큰 생성">168 <Step title="URL 복사 및 토큰 생성">


250| 레이블 | PR에 적용된 레이블 |268| 레이블 | PR에 적용된 레이블 |

251| 초안 여부 | PR이 초안 상태인지 여부 |269| 초안 여부 | PR이 초안 상태인지 여부 |

252| 병합 여부 | PR이 병합되었는지 여부 |270| 병합 여부 | PR이 병합되었는지 여부 |

253| 포크에서 | PR이 포크에서 나오는지 여부 |

254 271 

255각 필터는 필드를 연산자와 쌍으로 지정합니다. 같음, 포함, 시작, 하나, 하나 아님 또는 정규식 일치.272각 필터는 필드를 연산자와 쌍으로 지정합니다. 같음, 포함, 시작, 하나, 하나 아님 또는 정규식 일치.

256 273 


259몇 가지 예시 필터 조합:276몇 가지 예시 필터 조합:

260 277 

261* **인증 모듈 검토**: 기본 브랜치 `main`, 헤드 브랜치 포함 `auth-provider`. 인증을 건드리는 모든 PR을 집중된 검토자에게 보냅니다.278* **인증 모듈 검토**: 기본 브랜치 `main`, 헤드 브랜치 포함 `auth-provider`. 인증을 건드리는 모든 PR을 집중된 검토자에게 보냅니다.

262* **외부 기여자 분류**: 포크에서 `true`. 모든 포크 기반 PR을 인간이 검토하기 전에 추가 보안 및 스타일 검토를 통해 라우팅합니다.

263* **검토 준비 완료만**: 초안 여부 `false`. 초안을 건너뛰므로 루틴은 PR이 검토 준비가 되었을 때만 실행됩니다.279* **검토 준비 완료만**: 초안 여부 `false`. 초안을 건너뛰므로 루틴은 PR이 검토 준비가 되었을 때만 실행됩니다.

264* **레이블 게이트 백포트**: 레이블 포함 `needs-backport`. 유지 관리자가 PR에 태그를 지정할 때만 다른 브랜치로의 포트 루틴을 트리거합니다.280* **레이블 게이트 백포트**: 레이블 포함 `needs-backport`. 유지 관리자가 PR에 태그를 지정할 때만 다른 브랜치로의 포트 루틴을 트리거합니다.

265 281 


275 291 

276모든 실행을 클릭하여 완전한 세션으로 엽니다. 거기서 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 요청을 생성하거나, 대화를 계속할 수 있습니다. 각 실행 세션은 다른 세션처럼 작동합니다. 세션 제목 옆의 드롭다운 메뉴를 사용하여 이름을 바꾸거나, 보관하거나, 삭제하세요.292모든 실행을 클릭하여 완전한 세션으로 엽니다. 거기서 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 요청을 생성하거나, 대화를 계속할 수 있습니다. 각 실행 세션은 다른 세션처럼 작동합니다. 세션 제목 옆의 드롭다운 메뉴를 사용하여 이름을 바꾸거나, 보관하거나, 삭제하세요.

277 293 

294<Note>

295 실행 목록의 녹색 상태는 세션이 시작되어 인프라 오류 없이 종료되었음을 의미합니다. 프롬프트의 작업이 성공했음을 의미하지는 않습니다. 실행을 열어 기록을 읽고 Claude가 실제로 수행한 작업을 확인하세요. 차단된 네트워크 요청, 누락된 커넥터 도구 및 작업 수준 오류는 모두 상태 표시기가 아닌 여기에 표시됩니다.

296</Note>

297 

278### 루틴 편집 및 제어298### 루틴 편집 및 제어

279 299 

280루틴 세부 정보 페이지에서 다음을 수행할 수 있습니다.300루틴 세부 정보 페이지에서 다음을 수행할 수 있습니다.


300 320 

301루틴 양식 외부에서 커넥터를 관리하거나 추가하려면 claude.ai의 **설정 > 커넥터**를 방문하거나 CLI에서 `/schedule update`를 사용하세요.321루틴 양식 외부에서 커넥터를 관리하거나 추가하려면 claude.ai의 **설정 > 커넥터**를 방문하거나 CLI에서 `/schedule update`를 사용하세요.

302 322 

303### 환경323### 환경 및 네트워크 액세스

304 324 

305각 루틴은 네트워크 액세스, 환경 변수 및 설정 스크립트를 제어하는 [클라우드 환경](/ko/claude-code-on-the-web#the-cloud-environment)에서 실행됩니다. 루틴을 생성하기 전에 환경을 구성하여 Claude에게 API에 액세스하거나, 종속성을 설치하거나, 네트워크 범위를 제한할 수 있게 하세요. 전체 설정 가이드는 [클라우드 환경](/ko/claude-code-on-the-web#the-cloud-environment)을 참조하세요.325각 루틴은 네트워크 액세스, 환경 변수 및 설정 스크립트를 제어하는 [클라우드 환경](/ko/claude-code-on-the-web#the-cloud-environment)에서 실행됩니다. 루틴은 모든 실행에서 환경의 네트워크 정책을 상속합니다.

326 

327**기본** 환경은 **신뢰할 수 있는** 네트워크 액세스를 사용합니다. [기본 허용 목록](/ko/claude-code-on-the-web#default-allowed-domains)의 패키지 레지스트리, 클라우드 공급자 API, 컨테이너 레지스트리 및 일반적인 개발 도메인에 도달할 수 있지만 임의의 도메인에는 도달할 수 없습니다. 다른 호스트로의 아웃바운드 요청은 `403` 및 `x-deny-reason: host_not_allowed`로 실패합니다. MCP 커넥터 트래픽은 Anthropic의 서버를 통해 라우팅되므로 루틴에 추가하는 커넥터는 **허용된 도메인**에 호스트를 추가하지 않고도 작동합니다. [커넥터](#connectors) 아래에서 필요하지 않은 커넥터를 제거하세요.

328 

329추가 도메인을 허용하려면:

330 

331<Steps>

332 <Step title="루틴을 편집하기 위해 열기">

333 루틴의 세부 정보 페이지에서 연필 아이콘을 클릭하여 **루틴 편집**을 엽니다.

334 </Step>

335 

336 <Step title="환경 선택기 열기">

337 **지침** 상자 아래에서 **기본**과 같은 환경의 이름을 표시하는 클라우드 아이콘을 선택합니다.

338 </Step>

339 

340 <Step title="환경 설정 열기">

341 목록의 환경 위에 마우스를 올리고 오른쪽에 나타나는 설정 아이콘을 클릭합니다.

342 </Step>

343 

344 <Step title="네트워크 액세스 수준 변경">

345 **클라우드 환경 업데이트** 대화 상자에서 **네트워크 액세스**를 **사용자 정의**로 변경하고 **허용된 도메인**에 도메인을 입력합니다. **기본 패키지 관리자 목록도 포함**을 확인하여 [기본 허용 목록](/ko/claude-code-on-the-web#default-allowed-domains)을 사용자 정의 도메인과 함께 유지합니다. 제한 없는 액세스를 위해 **전체**를 대신 선택합니다.

346 </Step>

347 

348 <Step title="저장">

349 **변경 사항 저장**을 클릭합니다. 새 정책은 다음 실행부터 적용됩니다.

350 </Step>

351</Steps>

352 

353액세스 수준 및 기본 허용 목록에 대한 자세한 내용은 [네트워크 액세스](/ko/claude-code-on-the-web#network-access)를 참조하세요.

306 354 

307## 사용 및 제한355## 사용 및 제한

308 356 


310 358 

311루틴이 일일 상한선 또는 구독 사용 제한에 도달할 때 추가 사용이 활성화된 조직은 계량된 초과 요금으로 루틴을 계속 실행할 수 있습니다. 추가 사용이 없으면 윈도우가 재설정될 때까지 추가 실행이 거부됩니다. claude.ai의 **설정 > 청구**에서 추가 사용을 활성화하세요.359루틴이 일일 상한선 또는 구독 사용 제한에 도달할 때 추가 사용이 활성화된 조직은 계량된 초과 요금으로 루틴을 계속 실행할 수 있습니다. 추가 사용이 없으면 윈도우가 재설정될 때까지 추가 실행이 거부됩니다. claude.ai의 **설정 > 청구**에서 추가 사용을 활성화하세요.

312 360 

361일회성 실행은 일일 루틴 실행 상한선에 포함되지 않습니다. 다른 세션과 마찬가지로 정기 구독 사용을 소비하지만 계정당 일일 루틴 실행 허용량에서 제외됩니다.

362 

313## 관련 리소스363## 관련 리소스

314 364 

315* [`/loop` 및 세션 내 예약](/ko/scheduled-tasks): 열린 CLI 세션 내에서 로컬 작업 예약365* [`/loop` 및 세션 내 예약](/ko/scheduled-tasks): 열린 CLI 세션 내에서 로컬 작업 예약

settings.md +19 −15

Details

156`settings.json`은 여러 옵션을 지원합니다:156`settings.json`은 여러 옵션을 지원합니다:

157 157 

158| 키 | 설명 | 예제 |158| 키 | 설명 | 예제 |

159| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |159| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |

160| `agent` | 메인 스레드를 명명된 subagent로 실행합니다. 해당 subagent의 시스템 프롬프트, 도구 제한 및 모델을 적용합니다. [subagents 명시적으로 호출](/ko/sub-agents#invoke-subagents-explicitly)을 참조하세요 | `"code-reviewer"` |160| `agent` | 메인 스레드를 명명된 subagent로 실행합니다. 해당 subagent의 시스템 프롬프트, 도구 제한 및 모델을 적용합니다. [subagents 명시적으로 호출](/ko/sub-agents#invoke-subagents-explicitly)을 참조하세요 | `"code-reviewer"` |

161| `allowedChannelPlugins` | (Managed 설정만) 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. 정의되지 않음 = 기본값으로 폴백, 빈 배열 = 모든 채널 플러그인 차단. `channelsEnabled: true`가 필요합니다. [채널 플러그인 실행 제한](/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |161| `allowedChannelPlugins` | (Managed 설정만) 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. 정의되지 않음 = 기본값으로 폴백, 빈 배열 = 모든 채널 플러그인 차단. `channelsEnabled: true`가 필요합니다. [채널 플러그인 실행 제한](/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

162| `allowedHttpHookUrls` | HTTP hooks가 대상으로 할 수 있는 URL 패턴의 허용 목록입니다. `*`를 와일드카드로 지원합니다. 설정되면 일치하지 않는 URL을 가진 hooks는 차단됩니다. 정의되지 않음 = 제한 없음, 빈 배열 = 모든 HTTP hooks 차단. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["https://hooks.example.com/*"]` |162| `allowedHttpHookUrls` | HTTP hooks가 대상으로 할 수 있는 URL 패턴의 허용 목록입니다. `*`를 와일드카드로 지원합니다. 설정되면 일치하지 않는 URL을 가진 hooks는 차단됩니다. 정의되지 않음 = 제한 없음, 빈 배열 = 모든 HTTP hooks 차단. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["https://hooks.example.com/*"]` |


164| `allowManagedHooksOnly` | (Managed 설정만) Managed hooks, SDK hooks 및 managed 설정 `enabledPlugins`에서 강제 활성화된 플러그인의 hooks만 로드됩니다. 사용자, 프로젝트 및 다른 모든 플러그인 hooks는 차단됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `true` |164| `allowManagedHooksOnly` | (Managed 설정만) Managed hooks, SDK hooks 및 managed 설정 `enabledPlugins`에서 강제 활성화된 플러그인의 hooks만 로드됩니다. 사용자, 프로젝트 및 다른 모든 플러그인 hooks는 차단됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `true` |

165| `allowManagedMcpServersOnly` | (Managed 설정만) Managed 설정의 `allowedMcpServers`만 존중됩니다. `deniedMcpServers`는 여전히 모든 소스에서 병합됩니다. 사용자는 여전히 MCP 서버를 추가할 수 있지만 관리자 정의 허용 목록만 적용됩니다. [Managed MCP 구성](/ko/mcp#managed-mcp-configuration)을 참조하세요 | `true` |165| `allowManagedMcpServersOnly` | (Managed 설정만) Managed 설정의 `allowedMcpServers`만 존중됩니다. `deniedMcpServers`는 여전히 모든 소스에서 병합됩니다. 사용자는 여전히 MCP 서버를 추가할 수 있지만 관리자 정의 허용 목록만 적용됩니다. [Managed MCP 구성](/ko/mcp#managed-mcp-configuration)을 참조하세요 | `true` |

166| `allowManagedPermissionRulesOnly` | (Managed 설정만) 사용자 및 프로젝트 설정이 `allow`, `ask` 또는 `deny` 권한 규칙을 정의하는 것을 방지합니다. Managed 설정의 규칙만 적용됩니다. [Managed 전용 설정](/ko/permissions#managed-only-settings)을 참조하세요 | `true` |166| `allowManagedPermissionRulesOnly` | (Managed 설정만) 사용자 및 프로젝트 설정이 `allow`, `ask` 또는 `deny` 권한 규칙을 정의하는 것을 방지합니다. Managed 설정의 규칙만 적용됩니다. [Managed 전용 설정](/ko/permissions#managed-only-settings)을 참조하세요 | `true` |

167| `alwaysThinkingEnabled` | 모든 세션에 대해 기본적으로 [확장 사고](/ko/model-config#extended-thinking)를 활성화합니다. 일반적으로 직접 편집하기보다는 `/config` 명령을 통해 구성됩니다 | `true` |167| `alwaysThinkingEnabled` | 모든 세션에 대해 기본적으로 [확장 사고](/ko/model-config#extended-thinking)를 활성화합니다. 일반적으로 직접 편집하기보다는 `/config` 명령을 통해 구성됩니다. 사고를 강제로 끄려면 `env`에서 [`CLAUDE_CODE_DISABLE_THINKING`](/ko/env-vars)을 설정합니다 | `true` |

168| `apiKeyHelper` | `/bin/sh`에서 실행될 사용자 정의 스크립트로 인증 값을 생성합니다. 이 값은 모델 요청에 대해 `X-Api-Key` 및 `Authorization: Bearer` 헤더로 전송됩니다 | `/bin/generate_temp_api_key.sh` |168| `apiKeyHelper` | `/bin/sh`에서 실행될 사용자 정의 스크립트로 인증 값을 생성합니다. 이 값은 모델 요청에 대해 `X-Api-Key` 및 `Authorization: Bearer` 헤더로 전송됩니다. [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다 | `/bin/generate_temp_api_key.sh` |

169| `attribution` | git 커밋 및 pull request에 대한 attribution을 사용자 정의합니다. [Attribution 설정](#attribution-settings)을 참조하세요 | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |169| `attribution` | git 커밋 및 pull request에 대한 attribution을 사용자 정의합니다. [Attribution 설정](#attribution-settings)을 참조하세요 | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

170| `autoMemoryDirectory` | [자동 메모리](/ko/memory#storage-location) 저장소를 위한 사용자 정의 디렉토리입니다. 절대 경로 또는 `~/` 접두사 경로를 허용합니다. 정책 및 사용자 설정과 `--settings` 플래그에서 허용됩니다. 복제된 저장소가 메모리 쓰기를 민감한 위치로 리디렉션할 수 있으므로 프로젝트 또는 local 설정에서는 허용되지 않습니다 | `"~/my-memory-dir"` |170| `autoMemoryDirectory` | [자동 메모리](/ko/memory#storage-location) 저장소를 위한 사용자 정의 디렉토리입니다. 절대 경로 또는 `~/` 접두사 경로를 허용합니다. 정책 및 사용자 설정과 `--settings` 플래그에서 허용됩니다. 복제된 저장소가 메모리 쓰기를 민감한 위치로 리디렉션할 수 있으므로 프로젝트 또는 local 설정에서는 허용되지 않습니다 | `"~/my-memory-dir"` |

171| `autoMemoryEnabled` | [자동 메모리](/ko/memory#enable-or-disable-auto-memory)를 활성화합니다. `false`일 때 Claude는 자동 메모리 디렉토리에서 읽거나 쓰지 않습니다. 기본값: `true`. 세션 중에 `/memory`로도 전환할 수 있습니다 | `false` |171| `autoMemoryEnabled` | [자동 메모리](/ko/memory#enable-or-disable-auto-memory)를 활성화합니다. `false`일 때 Claude는 자동 메모리 디렉토리에서 읽거나 쓰지 않습니다. 기본값: `true`. 세션 중에 `/memory`로도 전환할 수 있습니다. 환경 변수로 비활성화하려면 `env`에서 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/ko/env-vars)를 설정합니다 | `false` |

172| `autoMode` | [자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기가 차단하고 허용하는 것을 사용자 정의합니다. `environment`, `allow` 및 `soft_deny` 배열의 산문 규칙을 포함합니다. 배열에 리터럴 문자열 `"$defaults"`를 포함하여 해당 위치에서 기본 제공 규칙을 상속합니다. [자동 모드 구성](/ko/auto-mode-config)을 참조하세요. 공유 프로젝트 설정에서는 읽지 않음 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |172| `autoMode` | [자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기가 차단하고 허용하는 것을 사용자 정의합니다. `environment`, `allow` 및 `soft_deny` 배열의 산문 규칙을 포함합니다. 배열에 리터럴 문자열 `"$defaults"`를 포함하여 해당 위치에서 기본 제공 규칙을 상속합니다. [자동 모드 구성](/ko/auto-mode-config)을 참조하세요. 공유 프로젝트 설정에서는 읽지 않음 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

173| `autoScrollEnabled` | [fullscreen 렌더링](/ko/fullscreen)에서 새 출력을 대화의 맨 아래로 따릅니다. 기본값: `true`. `/config`에 **자동 스크롤**로 표시됩니다. 이것이 꺼져 있을 때도 권한 프롬프트는 여전히 보기로 스크롤됩니다 | `false` |173| `autoScrollEnabled` | [fullscreen 렌더링](/ko/fullscreen)에서 새 출력을 대화의 맨 아래로 따릅니다. 기본값: `true`. `/config`에 **자동 스크롤**로 표시됩니다. 이것이 꺼져 있을 때도 권한 프롬프트는 여전히 보기로 스크롤됩니다 | `false` |

174| `autoUpdatesChannel` | 업데이트를 따를 릴리스 채널입니다. 일반적으로 약 1주일 된 버전이고 주요 회귀가 있는 버전을 건너뛰는 `"stable"`을 사용하거나 가장 최근 릴리스인 `"latest"` (기본값)을 사용합니다 | `"stable"` |174| `autoUpdatesChannel` | 업데이트를 따를 릴리스 채널입니다. 일반적으로 약 1주일 된 버전이고 주요 회귀가 있는 버전을 건너뛰는 `"stable"`을 사용하거나 가장 최근 릴리스인 `"latest"` (기본값)을 사용합니다. 자동 업데이트를 완전히 비활성화하려면 `env`에서 [`DISABLE_AUTOUPDATER`](/ko/setup#disable-auto-updates)를 설정합니다 | `"stable"` |

175| `availableModels` | `/model`, `--model` 또는 `ANTHROPIC_MODEL`을 통해 사용자가 선택할 수 있는 모델을 제한합니다. 기본 옵션에는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요 | `["sonnet", "haiku"]` |175| `availableModels` | `/model`, `--model` 또는 `ANTHROPIC_MODEL`을 통해 사용자가 선택할 수 있는 모델을 제한합니다. 기본 옵션에는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요 | `["sonnet", "haiku"]` |

176| `awaySummaryEnabled` | 몇 분 동안 터미널에서 떨어져 있다가 돌아올 때 한 줄 세션 요약을 표시합니다. 비활성화하려면 `false`로 설정하거나 `/config`에서 세션 요약을 끕니다. [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/ko/env-vars)와 동일합니다 | `true` |176| `awaySummaryEnabled` | 몇 분 동안 터미널에서 떨어져 있다가 돌아올 때 한 줄 세션 요약을 표시합니다. 비활성화하려면 `false`로 설정하거나 `/config`에서 세션 요약을 끕니다. [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/ko/env-vars)와 동일합니다 | `true` |

177| `awsAuthRefresh` | `.aws` 디렉토리를 수정하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `aws sso login --profile myprofile` |177| `awsAuthRefresh` | `.aws` 디렉토리를 수정하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `aws sso login --profile myprofile` |

178| `awsCredentialExport` | AWS 자격 증명이 포함된 JSON을 출력하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `/bin/generate_aws_grant.sh` |178| `awsCredentialExport` | AWS 자격 증명이 포함된 JSON을 출력하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `/bin/generate_aws_grant.sh` |

179| `blockedMarketplaces` | (Managed 설정만) 마켓플레이스 소스의 차단 목록입니다. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 닿지 않습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "untrusted/plugins" }]` |179| `blockedMarketplaces` | (Managed 설정만) 마켓플레이스 소스의 차단 목록입니다. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 닿지 않습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

180| `channelsEnabled` | (Managed 설정만) 조직을 위해 [channels](/ko/channels)를 허용합니다. Claude.ai Team 및 Enterprise 플랜에서 설정되지 않거나 `false`이면 채널이 차단됩니다. [Anthropic Console](/ko/authentication#claude-console-authentication) 계정이 API 키 인증을 사용하는 경우 조직이 managed 설정을 배포하지 않으면 기본적으로 채널이 허용되며, 이 경우 이 키를 `true`로 설정해야 합니다 | `true` |180| `channelsEnabled` | (Managed 설정만) 조직을 위해 [channels](/ko/channels)를 허용합니다. Claude.ai Team 및 Enterprise 플랜에서 설정되지 않거나 `false`이면 채널이 차단됩니다. [Anthropic Console](/ko/authentication#claude-console-authentication) 계정이 API 키 인증을 사용하는 경우 조직이 managed 설정을 배포하지 않으면 기본적으로 채널이 허용되며, 이 경우 이 키를 `true`로 설정해야 합니다 | `true` |

181| `claudeMdExcludes` | [메모리](/ko/memory)를 로드할 때 건너뛸 `CLAUDE.md` 파일의 Glob 패턴 또는 절대 경로입니다. 패턴은 절대 파일 경로와 일치합니다. 사용자, 프로젝트 및 local 메모리에만 적용됩니다. managed 정책 파일은 제외할 수 없습니다 | `["**/vendor/**/CLAUDE.md"]` |

181| `cleanupPeriodDays` | 이 기간보다 오래된 세션 파일은 시작 시 삭제됩니다 (기본값: 30일, 최소 1). `0`으로 설정하면 검증 오류가 발생합니다. 또한 시작 시 [고아 subagent worktrees](/ko/worktrees#clean-up-worktrees)의 자동 제거에 대한 나이 기준을 제어합니다. 트랜스크립트 쓰기를 완전히 비활성화하려면 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ko/env-vars) 환경 변수를 설정하거나 비대화형 모드 (`-p`)에서 `--no-session-persistence` 플래그 또는 `persistSession: false` SDK 옵션을 사용합니다. | `20` |182| `cleanupPeriodDays` | 이 기간보다 오래된 세션 파일은 시작 시 삭제됩니다 (기본값: 30일, 최소 1). `0`으로 설정하면 검증 오류가 발생합니다. 또한 시작 시 [고아 subagent worktrees](/ko/worktrees#clean-up-worktrees)의 자동 제거에 대한 나이 기준을 제어합니다. 트랜스크립트 쓰기를 완전히 비활성화하려면 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ko/env-vars) 환경 변수를 설정하거나 비대화형 모드 (`-p`)에서 `--no-session-persistence` 플래그 또는 `persistSession: false` SDK 옵션을 사용합니다. | `20` |

182| `companyAnnouncements` | 시작 시 사용자에게 표시할 공지사항입니다. 여러 공지사항이 제공되면 무작위로 순환됩니다. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |183| `companyAnnouncements` | 시작 시 사용자에게 표시할 공지사항입니다. 여러 공지사항이 제공되면 무작위로 순환됩니다. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |

183| `defaultShell` | 입력 상자 `!` 명령의 기본 셸입니다. `"bash"` (기본값) 또는 `"powershell"`을 허용합니다. `"powershell"`을 설정하면 Windows에서 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. [PowerShell 도구](/ko/tools-reference#powershell-tool)를 참조하세요 | `"powershell"` |184| `defaultShell` | 입력 상자 `!` 명령의 기본 셸입니다. `"bash"` (기본값) 또는 `"powershell"`을 허용합니다. `"powershell"`을 설정하면 Windows에서 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. [PowerShell 도구](/ko/tools-reference#powershell-tool)를 참조하세요 | `"powershell"` |


189| `disableRemoteControl` | {/* min-version: 2.1.128 */}[Remote Control](/ko/remote-control) 비활성화: `claude remote-control`, `--remote-control` 플래그, 자동 시작 및 세션 내 전환을 차단합니다. 일반적으로 장치별 MDM 적용을 위해 [managed 설정](/ko/permissions#managed-settings)에 배치되지만 모든 범위에서 작동합니다. Claude Code v2.1.128 이상이 필요합니다 | `true` |190| `disableRemoteControl` | {/* min-version: 2.1.128 */}[Remote Control](/ko/remote-control) 비활성화: `claude remote-control`, `--remote-control` 플래그, 자동 시작 및 세션 내 전환을 차단합니다. 일반적으로 장치별 MDM 적용을 위해 [managed 설정](/ko/permissions#managed-settings)에 배치되지만 모든 범위에서 작동합니다. Claude Code v2.1.128 이상이 필요합니다 | `true` |

190| `disableSkillShellExecution` | [skills](/ko/skills) 및 사용자, 프로젝트, 플러그인 또는 추가 디렉토리 소스의 사용자 정의 명령에서 `` !`...` `` 및 ` ```! ` 블록에 대한 인라인 셸 실행을 비활성화합니다. 명령은 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 managed skills는 영향을 받지 않습니다. [managed 설정](/ko/permissions#managed-settings)에서 사용자가 재정의할 수 없을 때 가장 유용합니다 | `true` |191| `disableSkillShellExecution` | [skills](/ko/skills) 및 사용자, 프로젝트, 플러그인 또는 추가 디렉토리 소스의 사용자 정의 명령에서 `` !`...` `` 및 ` ```! ` 블록에 대한 인라인 셸 실행을 비활성화합니다. 명령은 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 managed skills는 영향을 받지 않습니다. [managed 설정](/ko/permissions#managed-settings)에서 사용자가 재정의할 수 없을 때 가장 유용합니다 | `true` |

191| `editorMode` | 입력 프롬프트의 키 바인딩 모드: `"normal"` 또는 `"vim"`. 기본값: `"normal"`. `/config`에 **편집기 모드**로 표시됩니다 | `"vim"` |192| `editorMode` | 입력 프롬프트의 키 바인딩 모드: `"normal"` 또는 `"vim"`. 기본값: `"normal"`. `/config`에 **편집기 모드**로 표시됩니다 | `"vim"` |

192| `effortLevel` | [노력 수준](/ko/model-config#adjust-effort-level)을 세션 간에 유지합니다. `"low"`, `"medium"`, `"high"` 또는 `"xhigh"`를 허용합니다. `/effort`를 이러한 값 중 하나로 실행할 때 자동으로 작성됩니다. [노력 수준 조정](/ko/model-config#adjust-effort-level)에서 지원되는 모델을 참조하세요 | `"xhigh"` |193| `effortLevel` | [노력 수준](/ko/model-config#adjust-effort-level)을 세션 간에 유지합니다. `"low"`, `"medium"`, `"high"` 또는 `"xhigh"`를 허용합니다. `/effort`를 이러한 값 중 하나로 실행할 때 자동으로 작성됩니다. `--effort` 및 [`CLAUDE_CODE_EFFORT_LEVEL`](/ko/env-vars)은 한 세션에 대해 이를 재정의합니다. [노력 수준 조정](/ko/model-config#adjust-effort-level)에서 지원되는 모델을 참조하세요 | `"xhigh"` |

193| `enableAllProjectMcpServers` | 프로젝트 `.mcp.json` 파일에 정의된 모든 MCP 서버를 자동으로 승인합니다 | `true` |194| `enableAllProjectMcpServers` | 프로젝트 `.mcp.json` 파일에 정의된 모든 MCP 서버를 자동으로 승인합니다 | `true` |

194| `enabledMcpjsonServers` | `.mcp.json` 파일에서 승인할 특정 MCP 서버 목록 | `["memory", "github"]` |195| `enabledMcpjsonServers` | `.mcp.json` 파일에서 승인할 특정 MCP 서버 목록 | `["memory", "github"]` |

195| `env` | 모든 세션에 적용될 환경 변수 | `{"FOO": "bar"}` |196| `env` | 모든 세션에 적용될 환경 변수 | `{"FOO": "bar"}` |

196| `fastModePerSessionOptIn` | `true`일 때 빠른 모드는 세션 간에 지속되지 않습니다. 각 세션은 빠른 모드가 꺼진 상태로 시작되며 사용자가 `/fast`로 활성화해야 합니다. 사용자의 빠른 모드 설정은 여전히 저장됩니다. [세션별 옵트인 필요](/ko/fast-mode#require-per-session-opt-in)를 참조하세요 | `true` |197| `fastModePerSessionOptIn` | `true`일 때 빠른 모드는 세션 간에 지속되지 않습니다. 각 세션은 빠른 모드가 꺼진 상태로 시작되며 사용자가 `/fast`로 활성화해야 합니다. 사용자의 빠른 모드 설정은 여전히 저장됩니다. [세션별 옵트인 필요](/ko/fast-mode#require-per-session-opt-in)를 참조하세요 | `true` |

197| `feedbackSurveyRate` | [세션 품질 설문조사](/ko/data-usage#session-quality-surveys)가 적격일 때 나타날 확률 (0–1). 완전히 억제하려면 `0`으로 설정합니다. Bedrock, Vertex 또는 Foundry를 사용할 때 유용하며 기본 샘플 레이트가 적용되지 않습니다 | `0.05` |198| `feedbackSurveyRate` | [세션 품질 설문조사](/ko/data-usage#session-quality-surveys)가 적격일 때 나타날 확률 (0–1). 완전히 억제하려면 `0`으로 설정하거나 `env`에서 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/ko/env-vars)를 설정합니다. Bedrock, Vertex 또는 Foundry를 사용할 때 유용하며 기본 샘플 레이트가 적용되지 않습니다 | `0.05` |

198| `fileSuggestion` | `@` 파일 자동 완성을 위한 사용자 정의 스크립트를 구성합니다. [파일 제안 설정](#file-suggestion-settings)을 참조하세요 | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |199| `fileSuggestion` | `@` 파일 자동 완성을 위한 사용자 정의 스크립트를 구성합니다. [파일 제안 설정](#file-suggestion-settings)을 참조하세요 | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

199| `forceLoginMethod` | `claudeai`를 사용하여 Claude.ai 계정으로만 로그인을 제한하거나, `console`을 사용하여 Claude Console (API 사용 청구) 계정으로만 제한합니다 | `claudeai` |200| `forceLoginMethod` | `claudeai`를 사용하여 Claude.ai 계정으로만 로그인을 제한하거나, `console`을 사용하여 Claude Console (API 사용 청구) 계정으로만 제한합니다 | `claudeai` |

200| `forceLoginOrgUUID` | 로그인이 특정 조직에 속하도록 요구합니다. 단일 UUID 문자열을 허용하며, 이는 로그인 중에 해당 조직을 사전 선택하거나, 나열된 조직이 사전 선택 없이 허용되는 UUID 배열을 허용합니다. Managed 설정에서 설정되면 인증된 계정이 나열된 조직에 속하지 않으면 로그인이 실패합니다. 빈 배열은 실패하고 잘못된 구성 메시지로 로그인을 차단합니다 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 또는 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |201| `forceLoginOrgUUID` | 로그인이 특정 조직에 속하도록 요구합니다. 단일 UUID 문자열을 허용하며, 이는 로그인 중에 해당 조직을 사전 선택하거나, 나열된 조직이 사전 선택 없이 허용되는 UUID 배열을 허용합니다. Managed 설정에서 설정되면 인증된 계정이 나열된 조직에 속하지 않으면 로그인이 실패합니다. 빈 배열은 실패하고 잘못된 구성 메시지로 로그인을 차단합니다 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 또는 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

201| `forceRemoteSettingsRefresh` | (Managed 설정만) 원격 managed 설정이 서버에서 새로 가져올 때까지 CLI 시작을 차단합니다. 가져오기가 실패하면 캐시된 또는 설정 없이 계속하는 대신 CLI가 종료됩니다. 설정되지 않으면 시작이 원격 설정을 기다리지 않고 계속됩니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 | `true` |202| `forceRemoteSettingsRefresh` | (Managed 설정만) 원격 managed 설정이 서버에서 새로 가져올 때까지 CLI 시작을 차단합니다. 가져오기가 실패하면 캐시된 또는 설정 없이 계속하는 대신 CLI가 종료됩니다. 설정되지 않으면 시작이 원격 설정을 기다리지 않고 계속됩니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 | `true` |

203| `gcpAuthRefresh` | GCP Application Default Credentials가 만료되거나 로드할 수 없을 때 새로고침하는 사용자 정의 스크립트입니다. [고급 자격 증명 구성](/ko/google-vertex-ai#advanced-credential-configuration)을 참조하세요 | `gcloud auth application-default login` |

202| `hooks` | 라이프사이클 이벤트에서 실행할 사용자 정의 명령을 구성합니다. 형식은 [hooks 문서](/ko/hooks)를 참조하세요 | [hooks](/ko/hooks) 참조 |204| `hooks` | 라이프사이클 이벤트에서 실행할 사용자 정의 명령을 구성합니다. 형식은 [hooks 문서](/ko/hooks)를 참조하세요 | [hooks](/ko/hooks) 참조 |

203| `httpHookAllowedEnvVars` | HTTP hooks가 헤더에 보간할 수 있는 환경 변수 이름의 허용 목록입니다. 설정되면 각 hook의 유효한 `allowedEnvVars`는 이 설정과의 교집합입니다. 정의되지 않음 = 제한 없음. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["MY_TOKEN", "HOOK_SECRET"]` |205| `httpHookAllowedEnvVars` | HTTP hooks가 헤더에 보간할 수 있는 환경 변수 이름의 허용 목록입니다. 설정되면 각 hook의 유효한 `allowedEnvVars`는 이 설정과의 교집합입니다. 정의되지 않음 = 제한 없음. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["MY_TOKEN", "HOOK_SECRET"]` |

204| `includeCoAuthoredBy` | **더 이상 사용되지 않음**: 대신 `attribution`을 사용하세요. git 커밋 및 pull request에 `co-authored-by Claude` 바이라인을 포함할지 여부 (기본값: `true`) | `false` |206| `includeCoAuthoredBy` | **더 이상 사용되지 않음**: 대신 `attribution`을 사용하세요. git 커밋 및 pull request에 `co-authored-by Claude` 바이라인을 포함할지 여부 (기본값: `true`) | `false` |

205| `includeGitInstructions` | Claude의 시스템 프롬프트에 기본 제공 커밋 및 PR 워크플로우 지침 및 git 상태 스냅샷을 포함합니다 (기본값: `true`). 예를 들어 자신의 git 워크플로우 skills을 사용할 때 이를 `false`로 설정하여 둘 다 제거합니다. `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 환경 변수가 설정되면 이 설정보다 우선합니다 | `false` |207| `includeGitInstructions` | Claude의 시스템 프롬프트에 기본 제공 커밋 및 PR 워크플로우 지침 및 git 상태 스냅샷을 포함합니다 (기본값: `true`). 예를 들어 자신의 git 워크플로우 skills을 사용할 때 이를 `false`로 설정하여 둘 다 제거합니다. `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 환경 변수가 설정되면 이 설정보다 우선합니다 | `false` |

206| `language` | Claude의 선호 응답 언어를 구성합니다 (예: `"japanese"`, `"spanish"`, `"french"`). Claude는 기본적으로 이 언어로 응답합니다. 또한 [음성 받아쓰기](/ko/voice-dictation#change-the-dictation-language) 언어를 설정합니다 | `"japanese"` |208| `language` | Claude의 선호 응답 언어를 구성합니다 (예: `"japanese"`, `"spanish"`, `"french"`). Claude는 기본적으로 이 언어로 응답합니다. 또한 [음성 받아쓰기](/ko/voice-dictation#change-the-dictation-language) 언어를 설정합니다 | `"japanese"` |

207| `minimumVersion` | 배경 자동 업데이트 및 `claude update`가 이 버전 아래로 설치되는 것을 방지하는 하한입니다. `"latest"` 채널에서 `"stable"`로 전환할 때 `/config`를 통해 현재 버전에 머물기 또는 다운그레이드를 허용하라는 메시지가 표시됩니다. 머물기를 선택하면 이 값이 설정됩니다. 또한 [managed 설정](/ko/permissions#managed-settings)에서 조직 전체 최소값을 고정하는 데 유용합니다 | `"2.1.100"` |209| `minimumVersion` | 배경 자동 업데이트 및 `claude update`가 이 버전 아래로 설치되는 것을 방지하는 하한입니다. `"latest"` 채널에서 `"stable"`로 전환할 때 `/config`를 통해 현재 버전에 머물기 또는 다운그레이드를 허용하라는 메시지가 표시됩니다. 머물기를 선택하면 이 값이 설정됩니다. 또한 [managed 설정](/ko/permissions#managed-settings)에서 조직 전체 최소값을 고정하는 데 유용합니다 | `"2.1.100"` |

208| `model` | Claude Code에 사용할 기본 모델을 재정의합니다 | `"claude-sonnet-4-6"` |210| `model` | Claude Code에 사용할 기본 모델을 재정의합니다. `--model` 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)은 한 세션에 대해 이를 재정의합니다 | `"claude-sonnet-4-6"` |

209| `modelOverrides` | Anthropic 모델 ID를 Bedrock 추론 프로필 ARN과 같은 공급자 특정 모델 ID로 매핑합니다. 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. [버전별 모델 ID 재정의](/ko/model-config#override-model-ids-per-version)를 참조하세요 | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |211| `modelOverrides` | Anthropic 모델 ID를 Bedrock 추론 프로필 ARN과 같은 공급자 특정 모델 ID로 매핑합니다. 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. [버전별 모델 ID 재정의](/ko/model-config#override-model-ids-per-version)를 참조하세요 | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

210| `otelHeadersHelper` | 동적 OpenTelemetry 헤더를 생성하는 스크립트입니다. 시작 시 및 주기적으로 실행됩니다 ([동적 헤더](/ko/monitoring-usage#dynamic-headers) 참조) | `/bin/generate_otel_headers.sh` |212| `otelHeadersHelper` | 동적 OpenTelemetry 헤더를 생성하는 스크립트입니다. 시작 시 및 주기적으로 실행됩니다. [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다. [동적 헤더](/ko/monitoring-usage#dynamic-headers) 참조하세요 | `/bin/generate_otel_headers.sh` |

211| `outputStyle` | 시스템 프롬프트를 조정하기 위한 출력 스타일을 구성합니다. [출력 스타일 문서](/ko/output-styles)를 참조하세요 | `"Explanatory"` |213| `outputStyle` | 시스템 프롬프트를 조정하기 위한 출력 스타일을 구성합니다. [출력 스타일 문서](/ko/output-styles)를 참조하세요 | `"Explanatory"` |

212| `permissions` | 권한의 구조는 아래 표를 참조하세요. | |214| `permissions` | 권한의 구조는 아래 표를 참조하세요. | |

213| `plansDirectory` | 계획 파일이 저장되는 위치를 사용자 정의합니다. 경로는 프로젝트 루트에 상대적입니다. 기본값: `~/.claude/plans` | `"./plans"` |215| `plansDirectory` | 계획 파일이 저장되는 위치를 사용자 정의합니다. 경로는 프로젝트 루트에 상대적입니다. 기본값: `~/.claude/plans` | `"./plans"` |


219| `showClearContextOnPlanAccept` | 계획 수락 화면에서 "컨텍스트 지우기" 옵션을 표시합니다. 기본값: `false`. 옵션을 복원하려면 `true`로 설정합니다 | `true` |221| `showClearContextOnPlanAccept` | 계획 수락 화면에서 "컨텍스트 지우기" 옵션을 표시합니다. 기본값: `false`. 옵션을 복원하려면 `true`로 설정합니다 | `true` |

220| `showThinkingSummaries` | 대화형 세션에서 [확장 사고](/ko/model-config#extended-thinking) 요약을 표시합니다. 설정되지 않거나 `false` (대화형 모드의 기본값)일 때 사고 블록은 API에 의해 편집되고 축소된 스텁으로 표시됩니다. 편집은 표시되는 내용만 변경하고 모델이 생성하는 내용은 변경하지 않습니다. 사고 지출을 줄이려면 [예산을 낮추거나 사고를 비활성화](/ko/model-config#extended-thinking)하세요. 비대화형 모드 (`-p`) 및 SDK 호출자는 이 설정과 관계없이 항상 요약을 받습니다 | `true` |222| `showThinkingSummaries` | 대화형 세션에서 [확장 사고](/ko/model-config#extended-thinking) 요약을 표시합니다. 설정되지 않거나 `false` (대화형 모드의 기본값)일 때 사고 블록은 API에 의해 편집되고 축소된 스텁으로 표시됩니다. 편집은 표시되는 내용만 변경하고 모델이 생성하는 내용은 변경하지 않습니다. 사고 지출을 줄이려면 [예산을 낮추거나 사고를 비활성화](/ko/model-config#extended-thinking)하세요. 비대화형 모드 (`-p`) 및 SDK 호출자는 이 설정과 관계없이 항상 요약을 받습니다 | `true` |

221| `showTurnDuration` | 응답 후 턴 지속 시간 메시지를 표시합니다 (예: "Cooked for 1m 6s"). 기본값: `true`. `/config`에 **턴 지속 시간 표시**로 표시됩니다 | `false` |223| `showTurnDuration` | 응답 후 턴 지속 시간 메시지를 표시합니다 (예: "Cooked for 1m 6s"). 기본값: `true`. `/config`에 **턴 지속 시간 표시**로 표시됩니다 | `false` |

224| `skillOverrides` | {/* min-version: 2.1.129 */}skill 이름으로 키가 지정된 skill별 가시성 재정의입니다. 값은 `"on"`, `"name-only"`, `"user-invocable-only"` 또는 `"off"`입니다. SKILL.md를 편집하지 않고 skill을 숨기거나 축소할 수 있습니다. 플러그인 skills에는 적용되지 않으며, 이는 `/plugin`을 통해 관리됩니다. `/skills` 메뉴는 이를 `.claude/settings.local.json`에 작성합니다. [설정에서 skill 가시성 재정의](/ko/skills#override-skill-visibility-from-settings)를 참조하세요. Claude Code v2.1.129 이상이 필요합니다 | `{"legacy-context": "name-only", "deploy": "off"}` |

222| `skipWebFetchPreflight` | [WebFetch 도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 건너뜁니다. 이 검사는 각 요청된 호스트명을 가져오기 전에 `api.anthropic.com`으로 전송합니다. Bedrock, Vertex AI 또는 Foundry 배포와 같이 Anthropic으로의 트래픽을 차단하는 환경에서 `true`로 설정합니다. 건너뛰면 WebFetch는 차단 목록을 참조하지 않고 모든 URL을 시도합니다 | `true` |225| `skipWebFetchPreflight` | [WebFetch 도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 건너뜁니다. 이 검사는 각 요청된 호스트명을 가져오기 전에 `api.anthropic.com`으로 전송합니다. Bedrock, Vertex AI 또는 Foundry 배포와 같이 Anthropic으로의 트래픽을 차단하는 환경에서 `true`로 설정합니다. 건너뛰면 WebFetch는 차단 목록을 참조하지 않고 모든 URL을 시도합니다 | `true` |

223| `spinnerTipsEnabled` | Claude가 작업 중일 때 스피너에 팁을 표시합니다. 팁을 비활성화하려면 `false`로 설정합니다 (기본값: `true`) | `false` |226| `spinnerTipsEnabled` | Claude가 작업 중일 때 스피너에 팁을 표시합니다. 팁을 비활성화하려면 `false`로 설정합니다 (기본값: `true`) | `false` |

224| `spinnerTipsOverride` | 사용자 정의 문자열로 스피너 팁을 재정의합니다. `tips`: 팁 문자열 배열. `excludeDefault`: `true`이면 사용자 정의 팁만 표시하고, `false`이거나 없으면 사용자 정의 팁이 기본 제공 팁과 병합됩니다 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |227| `spinnerTipsOverride` | 사용자 정의 문자열로 스피너 팁을 재정의합니다. `tips`: 팁 문자열 배열. `excludeDefault`: `true`이면 사용자 정의 팁만 표시하고, `false`이거나 없으면 사용자 정의 팁이 기본 제공 팁과 병합됩니다 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |


226| `sshConfigs` | [Desktop](/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 표시할 SSH 연결입니다. 각 항목에는 `id`, `name` 및 `sshHost`가 필요하며, `sshPort`, `sshIdentityFile` 및 `startDirectory`는 선택 사항입니다. Managed 설정에서 설정되면 연결은 사용자에게 읽기 전용입니다. Managed 및 사용자 설정에서만 읽음 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |229| `sshConfigs` | [Desktop](/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 표시할 SSH 연결입니다. 각 항목에는 `id`, `name` 및 `sshHost`가 필요하며, `sshPort`, `sshIdentityFile` 및 `startDirectory`는 선택 사항입니다. Managed 설정에서 설정되면 연결은 사용자에게 읽기 전용입니다. Managed 및 사용자 설정에서만 읽음 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

227| `statusLine` | 컨텍스트를 표시하기 위한 사용자 정의 상태 줄을 구성합니다. [`statusLine` 문서](/ko/statusline)를 참조하세요 | `{"type": "command", "command": "~/.claude/statusline.sh"}` |230| `statusLine` | 컨텍스트를 표시하기 위한 사용자 정의 상태 줄을 구성합니다. [`statusLine` 문서](/ko/statusline)를 참조하세요 | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

228| `strictKnownMarketplaces` | (Managed 설정만) 플러그인 마켓플레이스 소스의 허용 목록입니다. 정의되지 않음 = 제한 없음, 빈 배열 = 잠금. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |231| `strictKnownMarketplaces` | (Managed 설정만) 플러그인 마켓플레이스 소스의 허용 목록입니다. 정의되지 않음 = 제한 없음, 빈 배열 = 잠금. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

229| `teammateMode` | [에이전트 팀](/ko/agent-teams) 팀원이 표시되는 방식: `auto` (tmux 또는 iTerm2에서 분할 창 선택, 그 외에는 in-process), `in-process` 또는 `tmux`. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `"in-process"` |232| `syntaxHighlightingDisabled` | diffs, 코드 블록 파일 미리보기에서 구문 강조 비활성화 | `true` |

233| `teammateMode` | [에이전트 팀](/ko/agent-teams) 팀원이 표시되는 방식: `auto` (tmux 또는 iTerm2에서 분할 창 선택, 그 외에는 in-process), `in-process` 또는 `tmux`. `--teammate-mode`은 한 세션에 대해 이를 재정의합니다. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `"in-process"` |

230| `terminalProgressBarEnabled` | 지원되는 터미널에서 터미널 진행률 표시줄을 표시합니다: ConEmu, Ghostty 1.2.0+ 및 iTerm2 3.6.6+. 기본값: `true`. `/config`에 **터미널 진행률 표시줄**로 표시됩니다 | `false` |234| `terminalProgressBarEnabled` | 지원되는 터미널에서 터미널 진행률 표시줄을 표시합니다: ConEmu, Ghostty 1.2.0+ 및 iTerm2 3.6.6+. 기본값: `true`. `/config`에 **터미널 진행률 표시줄**로 표시됩니다 | `false` |

231| `tui` | 터미널 UI 렌더러입니다. 깜박임 없는 [alt-screen 렌더러](/ko/fullscreen)가 있는 가상화된 스크롤백을 위해 `"fullscreen"`을 사용합니다. 클래식 메인 화면 렌더러를 위해 `"default"`를 사용합니다. `/tui`를 통해 설정합니다 | `"fullscreen"` |235| `tui` | 터미널 UI 렌더러입니다. 깜박임 없는 [alt-screen 렌더러](/ko/fullscreen)가 있는 가상화된 스크롤백을 위해 `"fullscreen"`을 사용합니다. 클래식 메인 화면 렌더러를 위해 `"default"`를 사용합니다. `/tui`를 통해 설정합니다. [`CLAUDE_CODE_NO_FLICKER`](/ko/env-vars) 환경 변수도 설정할 수 있습니다 | `"fullscreen"` |

232| `useAutoModeDuringPlan` | 자동 모드를 사용할 수 있을 때 계획 모드가 자동 모드 의미론을 사용할지 여부입니다. 기본값: `true`. 공유 프로젝트 설정에서는 읽지 않음. `/config`에 "계획 중 자동 모드 사용"으로 표시됨 | `false` |236| `useAutoModeDuringPlan` | 자동 모드를 사용할 수 있을 때 계획 모드가 자동 모드 의미론을 사용할지 여부입니다. 기본값: `true`. 공유 프로젝트 설정에서는 읽지 않음. `/config`에 "계획 중 자동 모드 사용"으로 표시됨 | `false` |

233| `viewMode` | 시작 시 기본 트랜스크립트 보기 모드: `"default"`, `"verbose"` 또는 `"focus"`. 설정되면 sticky `/focus` 선택을 재정의합니다 | `"verbose"` |237| `viewMode` | 시작 시 기본 트랜스크립트 보기 모드: `"default"`, `"verbose"` 또는 `"focus"`. 설정되면 sticky `/focus` 선택을 재정의합니다. `--verbose` 플래그는 한 세션에 대해 이를 재정의합니다 | `"verbose"` |

234| `voice` | [음성 받아쓰기](/ko/voice-dictation) 설정: `enabled`는 받아쓰기를 켜고, `mode`는 `"hold"` 또는 `"tap"`을 선택하고, `autoSubmit`은 hold 모드에서 키 릴리스 시 프롬프트를 전송합니다. `/voice`를 실행할 때 자동으로 작성됩니다. Claude.ai 계정이 필요합니다 | `{ "enabled": true, "mode": "tap" }` |238| `voice` | [음성 받아쓰기](/ko/voice-dictation) 설정: `enabled`는 받아쓰기를 켜고, `mode`는 `"hold"` 또는 `"tap"`을 선택하고, `autoSubmit`은 hold 모드에서 키 릴리스 시 프롬프트를 전송합니다. `/voice`를 실행할 때 자동으로 작성됩니다. Claude.ai 계정이 필요합니다 | `{ "enabled": true, "mode": "tap" }` |

235| `voiceEnabled` | `voice.enabled`에 대한 레거시 별칭입니다. `voice` 객체를 선호합니다 | `true` |239| `voiceEnabled` | `voice.enabled`에 대한 레거시 별칭입니다. `voice` 객체를 선호합니다 | `true` |

236| `wslInheritsWindowsSettings` | (Windows managed 설정만) `true`일 때 WSL의 Claude Code는 `/etc/claude-code`에 추가하여 Windows 정책 체인에서 managed 설정을 읽으며 Windows 소스가 우선합니다. Windows 관리자가 작성해야 하는 HKLM 레지스트리 키 또는 `C:\Program Files\ClaudeCode\managed-settings.json`에서 설정된 경우에만 적용됩니다. HKCU 정책도 WSL에 적용되려면 플래그를 HKCU 자체에도 설정해야 합니다. 기본 Windows에는 영향을 주지 않습니다 | `true` |240| `wslInheritsWindowsSettings` | (Windows managed 설정만) `true`일 때 WSL의 Claude Code는 `/etc/claude-code`에 추가하여 Windows 정책 체인에서 managed 설정을 읽으며 Windows 소스가 우선합니다. Windows 관리자가 작성해야 하는 HKLM 레지스트리 키 또는 `C:\Program Files\ClaudeCode\managed-settings.json`에서 설정된 경우에만 적용됩니다. HKCU 정책도 WSL에 적용되려면 플래그를 HKCU 자체에도 설정해야 합니다. 기본 Windows에는 영향을 주지 않습니다 | `true` |


244</Note>248</Note>

245 249 

246| 키 | 설명 | 예제 |250| 키 | 설명 | 예제 |

247| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------ |251| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

248| `autoConnectIde` | Claude Code가 외부 터미널에서 시작될 때 실행 중인 IDE에 자동으로 연결합니다. 기본값: `false`. VS Code 또는 JetBrains 터미널 외부에서 실행할 때 `/config`에 \*\*IDE에 자동 연결 (외부 터미널)\*\*로 표시됩니다 | `true` |252| `autoConnectIde` | Claude Code가 외부 터미널에서 시작될 때 실행 중인 IDE에 자동으로 연결합니다. 기본값: `false`. VS Code 또는 JetBrains 터미널 외부에서 실행할 때 `/config`에 \*\*IDE에 자동 연결 (외부 터미널)\*\*로 표시됩니다. [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/ko/env-vars) 환경 변수가 설정되면 이를 재정의합니다 | `true` |

249| `autoInstallIdeExtension` | VS Code 터미널에서 실행할 때 Claude Code IDE 확장을 자동으로 설치합니다. 기본값: `true`. VS Code 또는 JetBrains 터미널 내에서 실행할 때 `/config`에 **IDE 확장 자동 설치**로 표시됩니다. [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/ko/env-vars) 환경 변수도 설정할 수 있습니다 | `false` |253| `autoInstallIdeExtension` | VS Code 터미널에서 실행할 때 Claude Code IDE 확장을 자동으로 설치합니다. 기본값: `true`. VS Code 또는 JetBrains 터미널 내에서 실행할 때 `/config`에 **IDE 확장 자동 설치**로 표시됩니다. [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/ko/env-vars) 환경 변수도 설정할 수 있습니다 | `false` |

250| `externalEditorContext` | `Ctrl+G`로 외부 편집기를 열 때 Claude의 이전 응답을 `#` 주석 처리된 컨텍스트로 앞에 붙입니다. 기본값: `false`. `/config`에 **외부 편집기에 마지막 응답 표시**로 표시됩니다 | `true` |254| `externalEditorContext` | `Ctrl+G`로 외부 편집기를 열 때 Claude의 이전 응답을 `#` 주석 처리된 컨텍스트로 앞에 붙입니다. 기본값: `false`. `/config`에 **외부 편집기에 마지막 응답 표시**로 표시됩니다 | `true` |

251 255 


472 * Managed 계층 내에서 우선순위는: 서버 관리 > MDM/OS 수준 정책 > 파일 기반 (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU 레지스트리 (Windows만). 하나의 managed 소스만 사용되며 소스는 병합되지 않습니다. 파일 기반 계층 내에서 드롭인 파일과 기본 파일이 함께 병합됩니다.476 * Managed 계층 내에서 우선순위는: 서버 관리 > MDM/OS 수준 정책 > 파일 기반 (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU 레지스트리 (Windows만). 하나의 managed 소스만 사용되며 소스는 병합되지 않습니다. 파일 기반 계층 내에서 드롭인 파일과 기본 파일이 함께 병합됩니다.

473 477 

4742. **명령줄 인수**4782. **명령줄 인수**

475 * 특정 세션에 대한 임시 재정의479 * 특정 세션에 대한 임시 재정의. `--settings <file-or-json>`을 통해 전달된 JSON은 파일 기반 설정과 동일한 규칙을 사용하여 병합됩니다: 여기에 설정된 키는 local, project 또는 user 설정의 동일한 키를 재정의하고, 키를 생략하면 낮은 계층 값이 유지됩니다

476 480 

4773. **Local 프로젝트 설정** (`.claude/settings.local.json`)4813. **Local 프로젝트 설정** (`.claude/settings.local.json`)

478 * 개인 프로젝트 특정 설정482 * 개인 프로젝트 특정 설정

setup.md +7 −3

Details

175 175 

176## Claude Code 업데이트176## Claude Code 업데이트

177 177 

178네이티브 설치는 백그라운드에서 자동으로 업데이트됩니다. [릴리스 채널을 구성](#configure-release-channel)하여 즉시 업데이트를 받을지 또는 지연된 안정적인 일정으로 받을지 제어하거나, [자동 업데이트를 비활성화](#disable-auto-updates)할 수 있습니다. Homebrew, WinGet 및 [Linux 패키지 관리자](#install-with-linux-package-managers) 설치는 수동 업데이트가 필요합니다.178네이티브 설치는 백그라운드에서 자동으로 업데이트됩니다. [릴리스 채널을 구성](#configure-release-channel)하여 즉시 업데이트를 받을지 또는 지연된 안정적인 일정으로 받을지 제어하거나, [자동 업데이트를 비활성화](#disable-auto-updates)할 수 있습니다. Homebrew, WinGet 및 [Linux 패키지 관리자](#install-with-linux-package-managers) 설치는 기본적으로 수동 업데이트가 필요합니다.

179 179 

180### 자동 업데이트180### 자동 업데이트

181 181 

182Claude Code는 시작 시 및 실행 중에 주기적으로 업데이트를 확인합니다. 업데이트는 백그라운드에서 다운로드 및 설치되며 다음 번에 Claude Code를 시작할 때 적용됩니다.182Claude Code는 시작 시 및 실행 중에 주기적으로 업데이트를 확인합니다. 업데이트는 백그라운드에서 다운로드 및 설치되며 다음 번에 Claude Code를 시작할 때 적용됩니다.

183 183 

184<Note>184<Note>

185 Homebrew, WinGet, apt, dnf 및 apk 설치는 자동으로 업데이트되지 않습니다. Homebrew의 경우 `brew upgrade claude-code` 또는 `brew upgrade claude-code@latest`를 실행하세요(설치한 cask에 따라 다름). WinGet의 경우 `winget upgrade Anthropic.ClaudeCode`를 실행하세요. Linux 패키지 관리자의 경우 [Linux 패키지 관리자로 설치](#install-with-linux-package-managers)의 업그레이드 명령을 참조하세요.185 Homebrew, WinGet, apt, dnf 및 apk 설치는 기본적으로 자동으로 업데이트되지 않습니다. Homebrew WinGet에 대해 옵트인하려면 아래를 참조하세요. Homebrew를 수동으로 업그레이드하려면 `brew upgrade claude-code` 또는 `brew upgrade claude-code@latest`를 실행하세요(설치한 cask에 따라 다름). WinGet의 경우 `winget upgrade Anthropic.ClaudeCode`를 실행하세요. Linux 패키지 관리자의 경우 [Linux 패키지 관리자로 설치](#install-with-linux-package-managers)의 업그레이드 명령을 참조하세요.

186 

187 Claude Code가 Homebrew 또는 WinGet에서 업그레이드 명령을 실행하도록 하려면 [`CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`](/ko/env-vars)를 `1`로 설정하세요. Claude Code는 새 버전을 사용할 수 있을 때 백그라운드에서 업그레이드를 실행하고 성공 시 재시작 프롬프트를 표시합니다. 업그레이드는 Claude Code 패키지만 대상으로 하며 설치한 다른 소프트웨어에는 영향을 주지 않습니다.

188 

189 WinGet에서는 Claude Code가 실행 중일 때 Windows가 실행 파일을 잠그기 때문에 업그레이드가 실패할 수 있습니다. 이 경우 Claude Code는 수동 명령을 대신 표시합니다. apt, dnf 및 apk는 이러한 명령이 상승된 권한이 필요하기 때문에 계속 수동 업그레이드가 필요합니다.

186 190 

187 **알려진 문제:** Claude Code는 새 버전이 이러한 패키지 관리자에서 사용 가능하기 전에 업데이트를 알릴 수 있습니다. 업그레이드가 실패하면 잠시 기다렸다가 나중에 다시 시도하세요.191 **알려진 문제:** Claude Code는 새 버전이 이러한 패키지 관리자에서 사용 가능하기 전에 업데이트를 알릴 수 있습니다. 업그레이드가 실패하면 잠시 기다렸다가 나중에 다시 시도하세요.

188 192 


489 493 

490## Claude Code 제거494## Claude Code 제거

491 495 

492Claude Code를 제거하려면 설치 방법에 따른 지침을 따르세요.496Claude Code를 제거하려면 설치 방법에 따른 지침을 따르세요. 제거 후에도 `claude`가 계속 실행되면 두 번째 설치 또는 이전 설치 프로그램의 남은 셸 별칭이 있을 가능성이 높습니다. [충돌하는 설치 확인](/ko/troubleshoot-install#check-for-conflicting-installations)을 참조하여 이를 찾아 제거하세요.

493 497 

494### 네이티브 설치498### 네이티브 설치

495 499 

skills.md +60 −27

Details

8 8 

9Skills는 Claude가 할 수 있는 작업을 확장합니다. `SKILL.md` 파일을 지침과 함께 생성하면 Claude가 이를 자신의 도구 모음에 추가합니다. Claude는 관련이 있을 때 skills를 사용하거나 `/skill-name`으로 직접 호출할 수 있습니다.9Skills는 Claude가 할 수 있는 작업을 확장합니다. `SKILL.md` 파일을 지침과 함께 생성하면 Claude가 이를 자신의 도구 모음에 추가합니다. Claude는 관련이 있을 때 skills를 사용하거나 `/skill-name`으로 직접 호출할 수 있습니다.

10 10 

11같은 플레이북, 체크리스트 또는 다단계 절차를 계속 채팅에 붙여넣거나, CLAUDE.md의 섹션이 사실이 아닌 절차로 성장했을 때 skill을 생성합니다. CLAUDE.md 콘텐츠와 달리, skill의 본문은 사용할 때만 로드되므로 긴 참조 자료는 필요할 때까지 거의 비용이 들지 않습니다.11같은 지침, 체크리스트 또는 다단계 절차를 계속 채팅에 붙여넣거나, CLAUDE.md의 섹션이 사실이 아닌 절차로 성장했을 때 skill을 생성합니다. CLAUDE.md 콘텐츠와 달리, skill의 본문은 사용할 때만 로드되므로 긴 참조 자료는 필요할 때까지 거의 비용이 들지 않습니다.

12 12 

13<Note>13<Note>

14 `/help` 및 `/compact`와 같은 기본 제공 명령어와 `/debug` 및 `/simplify`와 같은 번들 skills는 [명령어 참조](/ko/commands)를 참조하세요.14 `/help` 및 `/compact`와 같은 기본 제공 명령어와 `/debug` 및 `/simplify`와 같은 번들 skills는 [명령어 참조](/ko/commands)를 참조하세요.


20 20 

21## 번들 skills21## 번들 skills

22 22 

23Claude Code에는 모든 세션에서 사용 가능한 번들 skills 세트가 포함되어 있으며, `/simplify`, `/batch`, `/debug`, `/loop`, `/claude-api`를 포함합니다. 고정 로직을 직접 실행하는 대부분의 기본 제공 명령어와 달리, 번들 skills는 프롬프트 기반입니다: Claude에 상세한 플레이북을 제공하고 도구를 사용하여 작업을 조율하도록 합니다. 다른 skill과 동일한 방식으로 호출합니다: `/` 다음에 skill 이름을 입력합니다.23Claude Code에는 모든 세션에서 사용 가능한 번들 skills 세트가 포함되어 있으며, `/simplify`, `/batch`, `/debug`, `/loop`, `/claude-api`를 포함합니다. 고정 로직을 직접 실행하는 대부분의 기본 제공 명령어와 달리, 번들 skills는 프롬프트 기반입니다: Claude에 상세한 지시사항을 제공하고 도구를 사용하여 작업을 조율하도록 합니다. 다른 skill과 동일한 방식으로 호출합니다: `/` 다음에 skill 이름을 입력합니다.

24 24 

25번들 skills는 [명령어 참조](/ko/commands)에 나열되어 있으며, 목적 열에 **Skill**로 표시됩니다.25번들 skills는 [명령어 참조](/ko/commands)에 나열되어 있으며, 목적 열에 **Skill**로 표시됩니다.

26 26 


28 28 

29### 첫 번째 skill 생성29### 첫 번째 skill 생성

30 30 

31이 예제는 Claude에게 시각적 다이어그램과 유추를 사용하여 코드를 설명하도록 가르치는 skill을 생성합니다. 기본 frontmatter를 사용하므로 Claude는 코드가 어떻게 작동하는지 물어볼 때 자동으로 로드하거나 `/explain-code`로 직접 호출할 수 있습니다.31이 예제는 git 저장소의 커밋되지 않은 변경 사항을 요약하고 위험한 항목을 표시하는 skill을 생성합니다. 라이브 diff를 Claude가 읽기 전에 프롬프트로 가져오므로, 응답은 Claude가 열린 파일에서 추측할 수 있는 것이 아니라 실제 작업 트리에 기반합니다. Claude는 변경 사항에 대해 물어볼 때 자동으로 skill을 로드하거나 `/summarize-changes`로 직접 호출할 수 있습니다.

32 32 

33<Steps>33<Steps>

34 <Step title="skill 디렉토리 생성">34 <Step title="skill 디렉토리 생성">

35 개인 skills 폴더에 skill을 위한 디렉토리를 생성합니다. 개인 skills는 모든 프로젝트에서 사용 가능합니다.35 개인 skills 폴더에 skill을 위한 디렉토리를 생성합니다. 개인 skills는 모든 프로젝트에서 사용 가능합니다.

36 36 

37 ```bash theme={null}37 ```bash theme={null}

38 mkdir -p ~/.claude/skills/explain-code38 mkdir -p ~/.claude/skills/summarize-changes

39 ```39 ```

40 </Step>40 </Step>

41 41 

42 <Step title="SKILL.md 작성">42 <Step title="SKILL.md 작성">

43 모든 skill에는 두 부분이 있는 `SKILL.md` 파일이 필요합니다: Claude에게 skill을 언제 사용할지 알려주는 YAML frontmatter (`---` 마커 사이)와 skill이 호출될 때 Claude가 따르는 지침이 있는 markdown 콘텐츠입니다. 디렉토리 이름이 `/slash-command`가 되고, `description`은 Claude가 자동으로 로드할 시기를 결정하는 데 도움이 됩니다.43 모든 skill에는 두 부분이 있는 `SKILL.md` 파일이 필요합니다: Claude에게 skill을 언제 사용할지 알려주는 YAML frontmatter (`---` 마커 사이)와 skill이 실행될 때 Claude가 따르는 지침이 있는 markdown 콘텐츠입니다. 디렉토리 이름이 입력하는 명령어가 되고, `description`은 Claude가 자동으로 skill을 로드할 시기를 결정하는 데 도움이 됩니다.

44 44 

45 `~/.claude/skills/explain-code/SKILL.md` 생성:45 이를 `~/.claude/skills/summarize-changes/SKILL.md` 저장합니다:

46 46 

47 ```yaml theme={null}47 ```yaml theme={null}

48 ---48 ---

49 description: Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?"49 description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.

50 ---50 ---

51 51 

52 When explaining code, always include:52 ## Current changes

53 53 

54 1. **Start with an analogy**: Compare the code to something from everyday life54 !`git diff HEAD`

55 2. **Draw a diagram**: Use ASCII art to show the flow, structure, or relationships

56 3. **Walk through the code**: Explain step-by-step what happens

57 4. **Highlight a gotcha**: What's a common mistake or misconception?

58 55 

59 Keep explanations conversational. For complex concepts, use multiple analogies.56 ## Instructions

57 

58 Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.

60 ```59 ```

60 

61 `` !`git diff HEAD` `` 줄은 [동적 컨텍스트 주입](#inject-dynamic-context)을 사용합니다: Claude Code는 명령어를 실행하고 Claude가 skill 콘텐츠를 보기 전에 줄을 출력으로 바꾸므로, 지침은 현재 diff가 이미 인라인된 상태로 도착합니다.

61 </Step>62 </Step>

62 63 

63 <Step title="skill 테스트">64 <Step title="skill 테스트">

64 두 가지 방법으로 테스트할 수 있습니다:65 git 프로젝트를 열고, 파일을 약간 편집한 후, `claude`를 실행하여 Claude Code를 시작합니다. 두 가지 방법으로 skill을 테스트할 수 있습니다.

65 66 

66 **Claude가 자동으로 호출하도록 하기** - 설명과 일치하는 항목을 물어봅니다:67 **Claude가 자동으로 호출하도록 하기** - 설명과 일치하는 항목을 물어봅니다:

67 68 

68 ```text theme={null}69 ```text theme={null}

69 How does this code work?70 What did I change?

70 ```71 ```

71 72 

72 **또는 skill 이름으로 직접 호출하기**:73 **또는 skill 이름으로 직접 호출하기**:

73 74 

74 ```text theme={null}75 ```text theme={null}

75 /explain-code src/auth/login.ts76 /summarize-changes

76 ```77 ```

77 78 

78 어느 쪽이든 Claude는 설명에 유추와 ASCII 다이어그램을 포함해야 합니다.79 어느 쪽이든 Claude는 편집의 짧은 요약과 위험 목록으로 응답해야 합니다.

79 </Step>80 </Step>

80</Steps>81</Steps>

81 82 


168 169 

169`SKILL.md`는 모든 것을 포함할 수 있지만, skill을 호출하는 방식(사용자, Claude 또는 둘 다)과 실행 위치(인라인 또는 subagent)를 생각하면 포함할 내용을 안내하는 데 도움이 됩니다. 복잡한 skills의 경우, [지원 파일을 추가](#add-supporting-files)하여 주요 skill을 집중적으로 유지할 수도 있습니다.170`SKILL.md`는 모든 것을 포함할 수 있지만, skill을 호출하는 방식(사용자, Claude 또는 둘 다)과 실행 위치(인라인 또는 subagent)를 생각하면 포함할 내용을 안내하는 데 도움이 됩니다. 복잡한 skills의 경우, [지원 파일을 추가](#add-supporting-files)하여 주요 skill을 집중적으로 유지할 수도 있습니다.

170 171 

172본문 자체는 간결하게 유지합니다. Skill이 로드되면, 그 콘텐츠는 [턴 전체에 걸쳐 컨텍스트에 유지](#skill-content-lifecycle)되므로, 모든 줄이 반복되는 토큰 비용입니다. 어떻게 또는 왜인지 설명하기보다는 무엇을 할지 명시하고, [CLAUDE.md 콘텐츠](/ko/best-practices#write-an-effective-claude-md)에 적용할 동일한 간결성 테스트를 적용합니다.

173 

171### Frontmatter 참조174### Frontmatter 참조

172 175 

173markdown 콘텐츠 외에도, `SKILL.md` 파일 상단의 `---` 마커 사이의 YAML frontmatter 필드를 사용하여 skill 동작을 구성할 수 있습니다:176markdown 콘텐츠 외에도, `SKILL.md` 파일 상단의 `---` 마커 사이의 YAML frontmatter 필드를 사용하여 skill 동작을 구성할 수 있습니다:


305 308 

306`allowed-tools` 필드는 skill이 활성화되었을 때 나열된 도구에 대한 권한을 부여하므로 Claude는 승인을 요청하지 않고 사용할 수 있습니다. 사용 가능한 도구를 제한하지 않습니다: 모든 도구는 호출 가능하게 유지되며, [권한 설정](/ko/permissions)은 나열되지 않은 도구에 대한 도구를 계속 관리합니다.309`allowed-tools` 필드는 skill이 활성화되었을 때 나열된 도구에 대한 권한을 부여하므로 Claude는 승인을 요청하지 않고 사용할 수 있습니다. 사용 가능한 도구를 제한하지 않습니다: 모든 도구는 호출 가능하게 유지되며, [권한 설정](/ko/permissions)은 나열되지 않은 도구에 대한 도구를 계속 관리합니다.

307 310 

311프로젝트의 `.claude/skills/` 디렉토리에 체크인된 skills의 경우, `allowed-tools`는 해당 폴더에 대한 작업 공간 신뢰 대화를 수락한 후 적용되며, `.claude/settings.json`의 권한 규칙과 동일합니다. 프로젝트 skills를 신뢰하기 전에 검토하세요. skill은 자신에게 광범위한 도구 액세스 권한을 부여할 수 있습니다.

312 

308이 skill은 skill을 호출할 때마다 Claude가 승인을 요청하지 않고 git 명령어를 실행할 수 있게 합니다:313이 skill은 skill을 호출할 때마다 Claude가 승인을 요청하지 않고 git 명령어를 실행할 수 있게 합니다:

309 314 

310```yaml theme={null}315```yaml theme={null}


416사용자, 프로젝트, 플러그인 또는 [추가 디렉토리](#skills-from-additional-directories) 소스의 skills 및 사용자 정의 명령어에 대해 이 동작을 비활성화하려면, [설정](/ko/settings)에서 `"disableSkillShellExecution": true`를 설정합니다. 각 명령어는 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 관리 skills는 영향을 받지 않습니다. 이 설정은 사용자가 재정의할 수 없는 [관리 설정](/ko/permissions#managed-settings)에서 가장 유용합니다.421사용자, 프로젝트, 플러그인 또는 [추가 디렉토리](#skills-from-additional-directories) 소스의 skills 및 사용자 정의 명령어에 대해 이 동작을 비활성화하려면, [설정](/ko/settings)에서 `"disableSkillShellExecution": true`를 설정합니다. 각 명령어는 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 관리 skills는 영향을 받지 않습니다. 이 설정은 사용자가 재정의할 수 없는 [관리 설정](/ko/permissions#managed-settings)에서 가장 유용합니다.

417 422 

418<Tip>423<Tip>

419 skill에서 [확장 사고](/ko/common-workflows#use-extended-thinking-thinking-mode)를 활성화하려면 skill 콘텐츠의 어디든 "ultrathink"라는 단어를 포함합니다.424 skill에서 더 깊은 추론을 요청하려면 skill 콘텐츠의 어디든 `ultrathink`를 포함합니다. [일회성 깊은 추론을 위해 ultrathink 사용](/ko/model-config#use-ultrathink-for-one-off-deep-reasoning) 참조하세요.

420</Tip>425</Tip>

421 426 

422### Subagent에서 Skills 실행427### Subagent에서 Skills 실행


496 `user-invocable` 필드는 메뉴 가시성만 제어하고 Skill 도구 액세스는 제어하지 않습니다. 프로그래밍 방식 호출을 차단하려면 `disable-model-invocation: true`를 사용합니다.501 `user-invocable` 필드는 메뉴 가시성만 제어하고 Skill 도구 액세스는 제어하지 않습니다. 프로그래밍 방식 호출을 차단하려면 `disable-model-invocation: true`를 사용합니다.

497</Note>502</Note>

498 503 

504### 설정에서 Skill 가시성 재정의

505 

506`skillOverrides` 설정은 skill의 자체 frontmatter 대신 [설정](/ko/settings)에서 skill 가시성을 제어합니다. 공유 프로젝트 리포지토리에 체크인되거나 MCP 서버에서 제공하는 것처럼 SKILL.md를 편집하고 싶지 않은 skills에 사용합니다. `/skills` 메뉴가 이를 작성합니다: skill을 강조하고 `Space`를 눌러 상태를 순환한 다음 `Enter`를 눌러 `.claude/settings.local.json`에 저장합니다.

507 

508각 키는 skill 이름이고 각 값은 다음 네 가지 상태 중 하나입니다:

509 

510| 값 | Claude에 나열됨 | `/` 메뉴에서 |

511| :---------------------- | :---------- | :------- |

512| `"on"` | 이름 및 설명 | 예 |

513| `"name-only"` | 이름만 | 예 |

514| `"user-invocable-only"` | 숨김 | 예 |

515| `"off"` | 숨김 | 숨김 |

516 

517`skillOverrides`에 없는 skill은 `"on"`으로 처리됩니다. 아래 예제는 한 skill을 이름으로 축소하고 다른 skill을 완전히 끕니다:

518 

519```json theme={null}

520{

521 "skillOverrides": {

522 "legacy-context": "name-only",

523 "deploy": "off"

524 }

525}

526```

527 

528플러그인 skills은 `skillOverrides`의 영향을 받지 않습니다. `/plugin`을 통해 이를 관리합니다.

529 

499## Skills 공유530## Skills 공유

500 531 

501Skills는 대상에 따라 다양한 범위에서 배포할 수 있습니다:532Skills는 대상에 따라 다양한 범위에서 배포할 수 있습니다:


516mkdir -p ~/.claude/skills/codebase-visualizer/scripts547mkdir -p ~/.claude/skills/codebase-visualizer/scripts

517```548```

518 549 

519`~/.claude/skills/codebase-visualizer/SKILL.md` 생성. 설명은 Claude에게 이 Skill을 언제 활성화할지 알려주고, 지침은 Claude에게 번들 스크립트를 실행하도록 알려줍니다:550`~/.claude/skills/codebase-visualizer/SKILL.md` 저장합니다. 설명은 Claude에게 이 Skill을 언제 활성화할지 알려주고, 지침은 Claude에게 번들 스크립트를 실행하도록 알려줍니다. 스크립트 경로는 [`${CLAUDE_SKILL_DIR}`](#available-string-substitutions)를 사용하므로 skill이 개인, 프로젝트 또는 플러그인 수준에서 설치되었는지 여부에 관계없이 올바르게 해석됩니다:

520 551 

521````yaml theme={null}552````yaml theme={null}

522---553---

523name: codebase-visualizer554name: codebase-visualizer

524description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.555description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.

525allowed-tools: Bash(python *)556allowed-tools: Bash(python3 *)

526---557---

527 558 

528# Codebase Visualizer559# Codebase Visualizer


534Run the visualization script from your project root:565Run the visualization script from your project root:

535 566 

536```bash567```bash

537python ~/.claude/skills/codebase-visualizer/scripts/visualize.py .568python3 ${CLAUDE_SKILL_DIR}/scripts/visualize.py .

538```569```

539 570 

540This creates `codebase-map.html` in the current directory and opens it in your default browser.571This creates `codebase-map.html` in the current directory and opens it in your default browser.


547- **Directory totals**: Shows aggregate size of each folder578- **Directory totals**: Shows aggregate size of each folder

548````579````

549 580 

550`~/.claude/skills/codebase-visualizer/scripts/visualize.py` 생성. 이 스크립트는 디렉토리 트리를 스캔하고 다음을 포함하는 자체 포함 HTML 파일을 생성합니다:581`~/.claude/skills/codebase-visualizer/scripts/visualize.py` 저장합니다. 이 스크립트는 디렉토리 트리를 스캔하고 다음을 포함하는 자체 포함 HTML 파일을 생성합니다:

551 582 

552* 파일 수, 디렉토리 수, 총 크기 및 파일 유형 수를 보여주는 **요약 사이드바**583* 파일 수, 디렉토리 수, 총 크기 및 파일 유형 수를 보여주는 **요약 사이드바**

553* 파일 유형별로 코드베이스를 분석하는 **막대 차트**(크기 기준 상위 8개)584* 파일 유형별로 코드베이스를 분석하는 **막대 차트**(크기 기준 상위 8개)

554* 디렉토리를 확장 및 축소할 수 있는 **축소 가능한 트리**로, 색상으로 코딩된 파일 유형 표시기 포함585* 디렉토리를 확장 및 축소할 수 있는 **축소 가능한 트리**로, 색상으로 코딩된 파일 유형 표시기 포함

555 586 

556스크립트는 Python이 필요하지만 기본 제공 라이브러리만 사용하므로 설치할 패키지가 없습니다:587스크립트는 Python 3이 필요하지만 기본 제공 라이브러리만 사용하므로 설치할 패키지가 없습니다:

557 588 

558```python expandable theme={null}589```python expandable theme={null}

559#!/usr/bin/env python3590#!/usr/bin/env python3


562import json593import json

563import sys594import sys

564import webbrowser595import webbrowser

596from html import escape

565from pathlib import Path597from pathlib import Path

566from collections import Counter598from collections import Counter

567 599 


650 {lang_bars}682 {lang_bars}

651 </div>683 </div>

652 <div class="main">684 <div class="main">

653 <h1>📁 {data["name"]}</h1>685 <h1>📁 {escape(data["name"])}</h1>

654 <ul class="tree" id="root"></ul>686 <ul class="tree" id="root"></ul>

655 </div>687 </div>

656 </div>688 </div>


658 const data = {json.dumps(data)};690 const data = {json.dumps(data)};

659 const colors = {json.dumps(colors)};691 const colors = {json.dumps(colors)};

660 function fmt(b) {{ if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; }}692 function fmt(b) {{ if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; }}

693 function esc(s) {{ return s.replace(/[&<>"']/g, c => ({{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}}[c])); }}

661 function render(node, parent) {{694 function render(node, parent) {{

662 if (node.children) {{695 if (node.children) {{

663 const det = document.createElement('details');696 const det = document.createElement('details');

664 det.open = parent === document.getElementById('root');697 det.open = parent === document.getElementById('root');

665 det.innerHTML = `<summary><span class="folder">📁 ${{node.name}}</span><span class="size">${{fmt(node.size)}}</span></summary>`;698 det.innerHTML = `<summary><span class="folder">📁 ${{esc(node.name)}}</span><span class="size">${{fmt(node.size)}}</span></summary>`;

666 const ul = document.createElement('ul'); ul.className = 'tree';699 const ul = document.createElement('ul'); ul.className = 'tree';

667 node.children.sort((a,b) => (b.children?1:0)-(a.children?1:0) || a.name.localeCompare(b.name));700 node.children.sort((a,b) => (b.children?1:0)-(a.children?1:0) || a.name.localeCompare(b.name));

668 node.children.forEach(c => render(c, ul));701 node.children.forEach(c => render(c, ul));


670 const li = document.createElement('li'); li.appendChild(det); parent.appendChild(li);703 const li = document.createElement('li'); li.appendChild(det); parent.appendChild(li);

671 }} else {{704 }} else {{

672 const li = document.createElement('li'); li.className = 'file';705 const li = document.createElement('li'); li.className = 'file';

673 li.innerHTML = `<span class="dot" style="background:${{colors[node.ext]||'#6b7280'}}"></span>${{node.name}}<span class="size">${{fmt(node.size)}}</span>`;706 li.innerHTML = `<span class="dot" style="background:${{colors[node.ext]||'#6b7280'}}"></span>${{esc(node.name)}}<span class="size">${{fmt(node.size)}}</span>`;

674 parent.appendChild(li);707 parent.appendChild(li);

675 }}708 }}

676 }}709 }}


715 748 

716Skill 설명은 Claude가 사용 가능한 항목을 알 수 있도록 컨텍스트에 로드됩니다. 모든 skill 이름은 항상 포함되지만, 많은 skills가 있으면 설명이 단축되어 문자 예산에 맞출 수 있으며, 이는 Claude가 요청과 일치하는 데 필요한 키워드를 제거할 수 있습니다. 예산은 컨텍스트 윈도우의 1%에서 동적으로 확장되며, 8,000자의 폴백이 있습니다.749Skill 설명은 Claude가 사용 가능한 항목을 알 수 있도록 컨텍스트에 로드됩니다. 모든 skill 이름은 항상 포함되지만, 많은 skills가 있으면 설명이 단축되어 문자 예산에 맞출 수 있으며, 이는 Claude가 요청과 일치하는 데 필요한 키워드를 제거할 수 있습니다. 예산은 컨텍스트 윈도우의 1%에서 동적으로 확장되며, 8,000자의 폴백이 있습니다.

717 750 

718제한을 높이려면 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 환경 변수를 설정합니다. 또는 소스에서 설명을 자릅니다: 주요 사용 사례를 앞에 배치합니다. 각 항목의 결합된 텍스트는 예산과 관계없이 1,536자로 제한됩니다.751제한을 높이려면 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 환경 변수를 설정합니다. 다른 skills를 위해 예산을 확보하려면 [`skillOverrides`](#override-skill-visibility-from-settings)에서 낮은 우선순위 항목을 `"name-only"`로 설정하여 설명 없이 나열되도록 합니다. 또한 소스에서 `description` 및 `when_to_use` 텍스트를 자를 수 있습니다: 주요 사용 사례를 먼저 배치합니다. 각 항목의 결합된 텍스트는 예산과 관계없이 1,536자로 제한됩니다.

719 752 

720## 관련 리소스753## 관련 리소스

721 754 

statusline.md +10 −11

Details

134 134 

135**업데이트 시기**135**업데이트 시기**

136 136 

137스크립트는 새로운 어시스턴트 메시지 후, 권한 모드가 변경될 때 또는 vim 모드가 전환될 때 실행됩니다. 업데이트는 300ms에서 디바운스되므로 빠른 변경이 함께 일괄 처리되고 스크립트는 상황이 안정화되면 한 번 실행됩니다. 스크립트가 여전히 실행 중인 동안 새 업데이트가 트리거되면 진행 중인 실행이 취소됩니다. 스크립트를 편집하면 Claude Code와의 다음 상호 작용이 업데이트를 트리거할 때까지 변경 사항이 나타나지 않습니다.137스크립트는 새로운 어시스턴트 메시지 후, `/compact` 완료 후, 권한 모드가 변경될 때 또는 vim 모드가 전환될 때 실행됩니다. 업데이트는 300ms에서 디바운스되므로 빠른 변경이 함께 일괄 처리되고 스크립트는 상황이 안정화되면 한 번 실행됩니다. 스크립트가 여전히 실행 중인 동안 새 업데이트가 트리거되면 진행 중인 실행이 취소됩니다. 스크립트를 편집하면 Claude Code와의 다음 상호 작용이 업데이트를 트리거할 때까지 변경 사항이 나타나지 않습니다.

138 138 

139이러한 트리거는 주 세션이 유휴 상태일 때(예: 코디네이터가 백그라운드 서브에이전트를 기다릴 때) 조용해질 수 있습니다. 유휴 기간 동안 시간 기반 또는 외부 소스 세그먼트를 최신 상태로 유지하려면 [`refreshInterval`](#manually-configure-a-status-line)을 설정하여 고정 타이머에서도 명령을 다시 실행합니다.139이러한 트리거는 주 세션이 유휴 상태일 때(예: 코디네이터가 백그라운드 서브에이전트를 기다릴 때) 조용해질 수 있습니다. 유휴 기간 동안 시간 기반 또는 외부 소스 세그먼트를 최신 상태로 유지하려면 [`refreshInterval`](#manually-configure-a-status-line)을 설정하여 고정 타이머에서도 명령을 다시 실행합니다.

140 140 


161| `cost.total_duration_ms` | 세션 시작 이후의 총 벽시계 시간(밀리초) |161| `cost.total_duration_ms` | 세션 시작 이후의 총 벽시계 시간(밀리초) |

162| `cost.total_api_duration_ms` | API 응답 대기에 소비된 총 시간(밀리초) |162| `cost.total_api_duration_ms` | API 응답 대기에 소비된 총 시간(밀리초) |

163| `cost.total_lines_added`, `cost.total_lines_removed` | 변경된 코드 줄 |163| `cost.total_lines_added`, `cost.total_lines_removed` | 변경된 코드 줄 |

164| `context_window.total_input_tokens`, `context_window.total_output_tokens` | 세션 전체의 누적 토큰 수 |164| `context_window.total_input_tokens`, `context_window.total_output_tokens` | 컨텍스트 윈도우에 현재 있는 토큰 수(가장 최근 API 응답에서). 입력에는 캐시 읽기 및 쓰기가 포함됩니다. v2.1.132 이전에는 누적 세션 합계였습니다 |

165| `context_window.context_window_size` | 토큰 단위의 최대 컨텍스트 윈도우 크기. 기본값은 200,000이거나 확장된 컨텍스트가 있는 모델의 경우 1,000,000입니다. |165| `context_window.context_window_size` | 토큰 단위의 최대 컨텍스트 윈도우 크기. 기본값은 200,000이거나 확장된 컨텍스트가 있는 모델의 경우 1,000,000입니다. |

166| `context_window.used_percentage` | 사용된 컨텍스트 윈도우의 사전 계산된 백분율 |166| `context_window.used_percentage` | 사용된 컨텍스트 윈도우의 사전 계산된 백분율 |

167| `context_window.remaining_percentage` | 남은 컨텍스트 윈도우의 사전 계산된 백분율 |167| `context_window.remaining_percentage` | 남은 컨텍스트 윈도우의 사전 계산된 백분율 |


215 "total_lines_removed": 23215 "total_lines_removed": 23

216 },216 },

217 "context_window": {217 "context_window": {

218 "total_input_tokens": 15234,218 "total_input_tokens": 15500,

219 "total_output_tokens": 4521,219 "total_output_tokens": 1200,

220 "context_window_size": 200000,220 "context_window_size": 200000,

221 "used_percentage": 8,221 "used_percentage": 8,

222 "remaining_percentage": 92,222 "remaining_percentage": 92,


272 272 

273 **`null`일 수 있는 필드**:273 **`null`일 수 있는 필드**:

274 274 

275 * `context_window.current_usage`: 세션의 첫 번째 API 호출 전에 `null`275 * `context_window.current_usage`: 세션의 첫 번째 API 호출 전에 `null`이고, `/compact` 후에 다시 `null`이 되었다가 다음 API 호출이 이를 다시 채울 때까지 유지됩니다

276 * `context_window.used_percentage`, `context_window.remaining_percentage`: 세션 초기에 `null`일 수 있음276 * `context_window.used_percentage`, `context_window.remaining_percentage`: 세션 초기에 `null`일 수 있음

277 277 

278 스크립트에서 조건부 액세스로 누락된 필드를 처리하고 null 값을 폴백 기본값으로 처리합니다.278 스크립트에서 조건부 액세스로 누락된 필드를 처리하고 null 값을 폴백 기본값으로 처리합니다.


280 280 

281### 컨텍스트 윈도우 필드281### 컨텍스트 윈도우 필드

282 282 

283`context_window` 객체는 컨텍스트 사용량을 추적하는 가지 방법을 제공합니다:283`context_window` 객체는 가장 최근 API 응답의 라이브 컨텍스트 윈도우를 설명합니다. v2.1.132부터 `total_input_tokens` `total_output_tokens`는 누적 세션 합계가 아닌 현재 컨텍스트 사용량을 반영합니다.

284 284 

285* **누적 합계** (`total_input_tokens`, `total_output_tokens`): 전체 세션 전체의 모든 토큰의 합계로, 소비량을 추적하는 유용합니다285* **결합된 합계** (`total_input_tokens`, `total_output_tokens`): 컨텍스트 윈도우에 현재 있는 토큰. `total_input_tokens`는 `input_tokens`, `cache_creation_input_tokens` `cache_read_input_tokens`의 합계입니다. `total_output_tokens`는 가장 최근 응답의 출력 토큰입니다. 둘 다 첫 번째 API 응답 전에는 `0`입니다.

286* **현재 사용량** (`current_usage`): 가장 최근 API 호출의 토큰 수로, 실제 컨텍스트 상태를 반영하므로 정확한 컨텍스트 백분율에 사용합니다286* **구성 요소별 사용량** (`current_usage`): 카테고리별로 분류된 동일한 토큰 수. 캐시 히트를 새로운 입력과 분리해야 이를 사용합니다.

287 287 

288`current_usage` 객체에는 다음이 포함됩니다:288`current_usage` 객체에는 다음이 포함됩니다:

289 289 


296 296 

297`current_usage`에서 컨텍스트 백분율을 수동으로 계산하는 경우 동일한 입력 전용 공식을 사용하여 `used_percentage`와 일치시킵니다.297`current_usage`에서 컨텍스트 백분율을 수동으로 계산하는 경우 동일한 입력 전용 공식을 사용하여 `used_percentage`와 일치시킵니다.

298 298 

299`current_usage` 객체는 세션의 첫 번째 API 호출 전에 `null`입니다.299`current_usage` 객체는 세션의 첫 번째 API 호출 전에 `null`이고, `/compact` 직후에 다시 `null`이 되었다가 다음 API 호출이 이를 다시 채울 때까지 유지됩니다.

300 300 

301## 예제301## 예제

302 302 


1011 1011 

1012**컨텍스트 백분율이 예상치 못한 값을 표시함**1012**컨텍스트 백분율이 예상치 못한 값을 표시함**

1013 1013 

1014* 누적 합계 대신 정확한 컨텍스트 상태를 위해 `used_percentage`를 사용합니다1014* 가장 간단한 정확한 컨텍스트 상태를 위해 `used_percentage`를 사용합니다

1015* `total_input_tokens` 및 `total_output_tokens`는 세션 전체에 누적되며 컨텍스트 윈도우 크기를 초과할 수 있습니다

1016* 각각이 계산되는 시기로 인해 컨텍스트 백분율이 `/context` 출력과 다를 수 있습니다1015* 각각이 계산되는 시기로 인해 컨텍스트 백분율이 `/context` 출력과 다를 수 있습니다

1017 1016 

1018**OSC 8 링크를 클릭할 수 없음**1017**OSC 8 링크를 클릭할 수 없음**

Details

24대부분의 터미널에서 Shift+Enter를 누를 수도 있지만 터미널 에뮬레이터에 따라 지원이 다릅니다:24대부분의 터미널에서 Shift+Enter를 누를 수도 있지만 터미널 에뮬레이터에 따라 지원이 다릅니다:

25 25 

26| 터미널 | 줄 바꿈을 위한 Shift+Enter |26| 터미널 | 줄 바꿈을 위한 Shift+Enter |

27| :--------------------------------------------------------------------------- | :------------------------------- |27| :---------------------------------------------------------------------- | :------------------------------- |

28| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal | 구성 없이 작동 |28| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | 구성 없이 작동 |

29| VS Code, Cursor, Windsurf, Alacritty, Zed | 한 번 `/terminal-setup` 실행 |29| VS Code, Cursor, Windsurf, Alacritty, Zed | 한 번 `/terminal-setup` 실행 |

30| Windows Terminal, gnome-terminal, PyCharm 및 Android Studio와 같은 JetBrains IDE | 사용 불가; Ctrl+J 또는 `\` 다음 Enter 사용 |30| gnome-terminal, PyCharm 및 Android Studio와 같은 JetBrains IDE | 사용 불가; Ctrl+J 또는 `\` 다음 Enter 사용 |

31 31 

32VS Code, Cursor, Windsurf, Alacritty 및 Zed의 경우 `/terminal-setup`은 Shift+Enter 및 기타 키 바인딩을 터미널의 구성 파일에 씁니다. VS Code, Cursor 및 Windsurf에서는 [전체 화면 모드](/ko/fullscreen)에서 더 부드러운 스크롤링을 위해 편집기 설정에서 `terminal.integrated.mouseWheelScrollSensitivity`도 설정합니다. 기존 바인딩 및 설정은 그대로 유지됩니다. `VSCode terminal Shift+Enter key binding already configured`와 같은 메시지가 표시되면 변경이 이루어지지 않았습니다. tmux 또는 screen 내부가 아닌 호스트 터미널에서 직접 `/terminal-setup`을 실행하세요. 호스트 터미널의 구성에 써야 하기 때문입니다.32VS Code, Cursor, Windsurf, Alacritty 및 Zed의 경우 `/terminal-setup`은 Shift+Enter 및 기타 키 바인딩을 터미널의 구성 파일에 씁니다. VS Code, Cursor 및 Windsurf에서는 [전체 화면 모드](/ko/fullscreen)에서 더 부드러운 스크롤링을 위해 편집기 설정에서 `terminal.integrated.mouseWheelScrollSensitivity`도 설정합니다. 기존 바인딩 및 설정은 그대로 유지됩니다. `VSCode terminal Shift+Enter key binding already configured`와 같은 메시지가 표시되면 변경이 이루어지지 않았습니다. tmux 또는 screen 내부가 아닌 호스트 터미널에서 직접 `/terminal-setup`을 실행하세요. 호스트 터미널의 구성에 써야 하기 때문입니다.

33 33